- Apr 06, 2022
-
-
Chick Markley authored
-
Chick Markley authored
under Scala 2.13. This fix forces a deterministic ordering of the ports serialization
-
- Mar 03, 2022
-
-
mergify[bot] authored
This fixes handling of signed modulus and removes some redundant work. (cherry picked from commit 95cae3cd ) Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Jan 27, 2022
-
-
mergify[bot] authored
- Fix & test MemorySynthInit behavior with MemoryArrayInitAnnotation and MemoryScalarInitAnnotation. Add test case for MemoryRandomInitAnnotation which is, on the contrary, expected not to leak any randomization statement in synthesis context. - Refactor MemoryInitSpec for improved results readability Context: PR #2166 (commit: 4530152) introduced MemorySynthInit annotation to control whether statement generated with Memory*InitAnnotation (emitted within initial begin block in verilog) should be guarded with ifndef SYNTHESIS or not. Unfortunately only one configuration (MemoryFileInlineAnnotation) has been tested while the others have been generating incorrect verilog statements (MemoryArrayInitAnnotation and MemoryScalarInitAnnotation). Signed-off-by:
Jean Bruant <jean.bruant@ovhcloud.com> (cherry picked from commit 475c165c ) Co-authored-by:
John's Brew <46595442+johnsbrew@users.noreply.github.com>
-
- Jan 26, 2022
-
-
mergify[bot] authored
emission-options flags swapped to match their functionality (cherry picked from commit 922f58c8 ) Co-authored-by:
Andrea Nardi <buongiorno19972@gmail.com>
-
- Jan 20, 2022
-
-
mergify[bot] authored
Verification statements are guarded by reset. If this reset happens to be a "preset" type reset, they should always be active. The easiest way to achieve that is to replace all uses of "preset" resets with zero. (cherry picked from commit c98ee338 ) Co-authored-by:
Kevin Laeufer <laeufer@cs.berkeley.edu>
-
- Jan 18, 2022
-
-
Jack Koenig authored
-
mergify[bot] authored
This fixes an off by one error, where 3 was erroneously accepted as in-bounds for a memory of depth=3 (cherry picked from commit 5569c72c ) Co-authored-by:
Kevin Laeufer <laeufer@cs.berkeley.edu>
-
- Jan 12, 2022
-
-
Jack Koenig authored
-
github-actions[bot] authored
-
- Jan 06, 2022
-
-
sinofp authored
* Add FileInfo to asyncResetAlwaysBlocks Always blocks need three FileInfo (if, true, false) to show line numbers, but initially, every always blocks only have one FileInfo (false). RemoveReset adds the extra two FileInfo to sync always blocks, so sync always blocks can have line numbers. Async always blocks don't provide their only FileInfo, so there are no line numbers. This commit gives async always block the extra FileInfo to show line numbers for them. This code: ```scala import chisel3._ import chisel3.stage._ import firrtl.CustomDefaultRegisterEmission class Test extends Module with RequireAsyncReset { val io = IO(new Bundle { val in = Input(Bool()) val out = Output(Bool()) }) val valid = RegInit(false.B) valid := io.in io.out := valid } object Test extends App { new ChiselStage().execute(Array(), Seq( ChiselGeneratorAnnotation(() => new Test()), CustomDefaultRegisterEmission(useInitAsPreset = false, disableRandomization = true) )) } ``` will generate this Verilog: ```verilog module Test( input clock, input reset, input io_in, output io_out ); reg valid; // @[Playground.scala 10:22] assign io_out = valid; // @[Playground.scala 12:10] always @(posedge clock or posedge reset) begin if (reset) begin // @[Playground.scala 10:22] valid <= 1'h0; // @[Playground.scala 10:22] end else begin valid <= io_in; // @[Playground.scala 11:9] end end endmodule ``` they have correct line numbers (10, 10, 11). * Add test for async always block line numbers * Add comment for review
-
- Dec 28, 2021
-
-
Jiuyang Liu authored
-
- Dec 22, 2021
-
-
Jack Koenig authored
* Fix unreachable code warning by changing match order Simulation Statements did not previously extend IsDeclaration, but now they do so their match blocks need to be above IsDeclaration. * Handle MemoryNoInit case in RtlilEmitter * Remove use of deprecated logToFile * Fix uses of LegalizeClocksTransform Replaced all uses of LegalizeClocksTransform with LegalizeClocksAndAsyncResetsTransform. * Remove use of CircuitForm in ZeroWidth
-
Kevin Laeufer authored
-
- Dec 18, 2021
-
-
Jack Koenig authored
Fix bugs related to arithmetic ops inlined into a mux leg. Add formal equivalence checks to lock in this behavior. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@sifive.com>
-
Kevin Laeufer authored
This should fix issue #2436
-
Jack Koenig authored
* Add renamemap.MutableRenameMap which includes these methods without deprecation * Deprecate Stringly typed RenameMap APIs which were accidentally undeprecated a while ago Co-authored-by:mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Jack Koenig authored
Co-authored-by:mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Jack Koenig authored
* Change AnnotationSeq underlying from List to Seq It was nothing but pointless copying. * Make propagateAnnotations faster There was lots of expensive logic for very little benefit.
-
- Dec 17, 2021
-
-
Scala Steward authored
-
- Dec 14, 2021
-
-
Scala Steward authored
Co-authored-by:mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Scala Steward authored
Co-authored-by:mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Jiuyang Liu authored
1. Add CustomRadix{Def,Apply}Annotation to define and apply custom radix. 2. Add CustomRadixConfigFileAnnotation to output a JSON config file so users can generate scripts on their own. Reviewed-by:Jiuyang Liu <liu@jiuyang.me> Co-authored-by:
sinofp <sinofp@tuta.io>
-
- Dec 05, 2021
-
-
Scala Steward authored
-
- Dec 02, 2021
-
-
Jack Koenig authored
Improve ANTLR Parser
-
Jack Koenig authored
The ANTLR-generated concrete syntax tree (CST) takes up much more memory than the parsed .fir file. By using a Listener, we can construct the FIRRTL AST live with CST construction and null out the CST as we consume pieces of it. Not only does this improve performance, it drastically reduces max memory use for the parser.
-
Jack Koenig authored
Tweak the grammar to handle references without left-recursion. Also split references and subreferences out from the regular expression rule to make their parsing more efficient.
-
Jack Koenig authored
The classes should not really be part of the firrtl public API to begin with and they cause issues during ScalaDoc generation.
-
Jack Koenig authored
-
- Nov 30, 2021
-
-
Jiuyang Liu authored
Co-authored-by:Jack Koenig <koenig@sifive.com>
-
Scala Steward authored
Co-authored-by:mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Jiuyang Liu authored
Also remove all related APIs: ComposableOptions HasParser CommonOptions HasCommonOptions FirrtlExecutionOptions HasFirrtlOptions FirrtlExecutionResult FirrtlExecutionSuccess FirrtlExecutionFailure ExecutionOptionsManager firrtl.stage.DriverCompatibility.firrtlResultView logger.Logger.makeScope OutputConfig SingleFile OneFilePerModule * Change default LogLevel to None which means "unset" Logger.getGlobalLevel then returns LogLevel.Warn when the current value is LogLevel.None. This preserves the behavior of the default being "Warn" but now uses LogLevel.None to indicate "I'm not setting the value." This resolves issues where it was not possible to tell if annotations were actually setting the log level or if the default level of warn was just being filled in. Co-authored-by:
sinofp <sinofp@tuta.io> Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Nov 24, 2021
-
-
Carlos Eduardo authored
-
Jiuyang Liu authored
Co-authored-by:sinofp <sinofp@tuta.io>
-
Jiuyang Liu authored
Co-authored-by:sinofp <sinofp@tuta.io>
-
- Nov 23, 2021
-
-
Jiuyang Liu authored
Co-authored-by:mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Jiuyang Liu authored
Co-authored-by:mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Jiuyang Liu authored
Co-authored-by:mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Jiuyang Liu authored
Co-authored-by:mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Jiuyang Liu authored
* remove firrtl.Utils.get_flip. * remove firrtl.Utils.indent.
-