- Apr 06, 2021
-
-
Albert Magyar authored
* Address @ekiwi comments from review * Change match cases to scalafmt-mandated lined-up style
-
Albert Magyar authored
* Update test to include both 'old' and 'new' read-under-write values
-
Albert Magyar authored
-
Albert Magyar authored
* Optionally defines read-under-write behavior for all 'undefined' memories * Use DefaultReadFirstAnnotation to choose read-first default * Use DefaultWriteFirstAnnotation to choose write-first default * Seal DefaultReadUnderWriteAnnotation based on Jack's feedback
-
Albert Magyar authored
* This is enabled by adding a PassthroughSimpleSyncReadMemsAnnotation * Can be emitted directly with new changes to the Verilog emitter * Add some new deprecations to VerilogMemDelays * Run scalafmt on VerilogMemDelays
-
Albert Magyar authored
* Emit readwrite ports, if applicable * Does not change VerilogMemDelays -> no effect on default flow * Use more single-line declare-and-assign statements for mem wires * Update error messages for too-complex memories in VerilogEmitter * Run scalafmt on VerilogEmitter
-
Albert Magyar authored
-
- Apr 04, 2021
-
-
Jiuyang Liu authored
-
- Apr 02, 2021
-
-
Carlos Eduardo authored
This PR adds options for memory initialization inside or outside the `ifndef SYNTHESIS` block.
-
- Mar 31, 2021
-
-
Jack Koenig authored
* Fix Mill support for non-M1 Macs * Update build.sc Co-authored-by:
edwardcwang <edwardcwang@users.noreply.github.com> Co-authored-by:
edwardcwang <edwardcwang@users.noreply.github.com>
-
Jack Koenig authored
-
Jiuyang Liu authored
-
- Mar 30, 2021
-
-
Scala Steward authored
Co-authored-by:mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Jack Koenig authored
CSESubAccesses was intended to be a simple workaround for a quadratic performance bug in RemoveAccesses but ended up having tricky corner cases and was hard to get right. The solution to the RemoveAccesses bug--quadratic expansion of dynamic indexes of vecs of aggreate type--turned out to be quite simple and makes CSESubAccesses much less useful and not worth fixing. Co-authored-by:mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
- Mar 27, 2021
-
-
Jiuyang Liu authored
* add --no-constant-propagation to disable constant propagation * add test * deprecate DisableFold. Co-authored-by:mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Schuyler Eldridge authored
* Fix bug in zero-width memory removal Correctly remove all extraneous connections to all types of memory ports (read, write, readwrite) for zero-width memories. Previously, only read ports were correctly handled. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@sifive.com> * fixup! Fix bug in zero-width memory removal
-
- Mar 26, 2021
-
-
Jiuyang Liu authored
-
- Mar 23, 2021
-
-
Jiuyang Liu authored
* fix for #2071 * add mill compile to CI
-
- Mar 20, 2021
-
-
Jack Koenig authored
This fixes an error with negating a negative SInt literal and a [debatable] lint warning in Verilator when negating any value. This behavior matches that of Chisel (which directly emits the 0 - x already).
-
- Mar 19, 2021
-
-
Jack Koenig authored
Previously, InlineCasts could inline complex (ie. non-cast) Expressions into other complex Expressions. Now it will only inline so long as there no more than 1 complex Expression in the current nested Expression. Co-authored-by:Albert Magyar <albert.magyar@gmail.com>
-
- Mar 17, 2021
-
-
Jack Koenig authored
Due to inlining of Boolean expressions, the following circuit is handled directly by the VerilogEmitter: input a: UInt<4> input b: SInt<1> output o: UInt<5> o <= dshl(a, asUInt(cvt(b))) Priot to this change, this could crash due to mishandling of cvt in the logic to inject parentheses based on Verilog precedence rules. This is a corner case, but similar bugs would drop up if we open up the VerilogEmitter to more expression inlining.
-
- Mar 14, 2021
-
-
Jack Koenig authored
-
Jack Koenig authored
Previously, concatenating two SInts where one is of zero-width would return the non-zero-width SInt. This is incorrect because the output of Cat should be of type UInt. Now the ZeroWidth transform will introduce a cast when removing a Cat when the argument type is non-UInt.
-
- Mar 11, 2021
-
-
Jack Koenig authored
The flow of a LHS SubAccess node may still be SourceFlow if the type of the Vec element has a flip. Tweak the logic of CSESubAccesses to check every Expression flow while recursing instead of just the flow of the final SubAccess. Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com> Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com>
-
- Mar 10, 2021
-
-
Carlos Eduardo authored
-
Carlos Eduardo authored
This PR adds a new annotation allowing inline loading for memory files in Verilog code.
-
- Mar 09, 2021
-
-
Kevin Laeufer authored
This finally removes all randomization code from the transition system conversion and into a separate pass using DefRandom nodes.
-
Kevin Laeufer authored
* SMT: memory port inout fields cannot be used as RHS expressions * smt: add end2end check for read enable modelling
-
- Mar 05, 2021
-
-
Kevin Laeufer authored
With this PR the smt backend now supports memories with more than two write ports and the conservative memory modelling can be selectively turned off with a new annotation.
-
- Mar 04, 2021
-
-
Jack Koenig authored
Fixes n^2 performance problem when dynamically indexing Vecs of aggregate types. Co-authored-by:mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Deborah Soung authored
-
- Mar 03, 2021
-
-
Jack Koenig authored
-
Jack Koenig authored
Bumping Scala minor version but not bumping CI guards on the version causes tests to no longer run. Change to using startsWith(...) so that minor version bumps won't cause issues in the future. Also run ScalaFmt
-
- Feb 26, 2021
-
-
Albert Magyar authored
-
- Feb 18, 2021
-
-
Kevin Laeufer authored
-
Kevin Laeufer authored
* firrtl: add optional statement labels for stop, printf, assert, assume and cover * test: parsing of statement labels * ir: ensure that name is properly retained * SymbolTable: add support for labled statements * test: parsing statement labels * test: lower types name collisions with named statements * ignore empty names * Inline: deal with named and unnamed statements * RemoveWires: treat stop, printf and verification statements as "others" * test: fix InlineInstance tests * DeadCodeEliminations: statements are now als declarations * CheckHighForm: ensure that statement names are not used as references * CheckSpec: throw error if statement name collides * add pass to automatically add missing statement names * check: make sure that two statements cannot have the same name * stmtLabel -> stmtName * scalafmt * add statement names to spec * spec: meta data -> metadata * EnsureStatementNames: explain naming algorithm * remove returns * better namespace use * ir: add CanBeReferenced trait * ir: add newline as jack requested
-
- Feb 17, 2021
-
-
Jack Koenig authored
Add "Must Deduplicate" API
-
Jack Koenig authored
This enables marking modules as "must deduplicate". If modules marked as such do not deduplicate, the transform will create error reports and make suggestions as to why deduplication failed.
-
Jack Koenig authored
* New factory method enables direct construction of DiGraphs from edges * DiGraph.prettyTree enables visualization of tree or multi-tree diagraphs
-
- Feb 06, 2021
-
-
John's Brew authored
Signed-off-by:Jean Bruant <jean.bruant@ovhcloud.com>
-