1. Mar 21, 2023
  2. Feb 03, 2023
  3. Jan 26, 2023
  4. Jan 13, 2023
  5. Dec 16, 2022
  6. Dec 07, 2022
    • mergify[bot]'s avatar
      Enhance find heap bound (#2579) (#2580) · 39165592
      mergify[bot] authored
      * Enhance find_heap_bound to not go smaller than min_step
      
      Previously, it could accidentally get a step size smaller than the
      min_step and just continue looping forever. Now the while loop has a new
      termination condition to catch this case.
      
      * Add context to find_heap_bound
      
      This new option allows for checking additional heap sizes in increments
      of the min_step above the found minimum heap size.
      
      (cherry picked from commit 64ac2d2c
      
      )
      
      Co-authored-by: default avatarJack Koenig <koenig@sifive.com>
      39165592
  7. Nov 11, 2022
  8. Sep 23, 2022
  9. Sep 20, 2022
  10. Sep 14, 2022
    • mergify[bot]'s avatar
      Make the Parser handle errors more gracefully (#2549) (#2552) · d1dab1db
      mergify[bot] authored
      Ever since introducing the Listener, the firrtl Parser now can hit
      errors in the code converting from concrete syntax to abstract syntax
      that may be due to syntax errors. These errors are essentially broken
      assumptions about the structure of the parsed code because there is an
      error. These errors are reported before the standard ANTLR syntax errors
      are aggregated and reported, and thus could result in less than elegant
      error messages (eg. NullPointerException). Now, the Parser will mask off
      such errors in the event of standard syntax errors caught by the
      ANTLR-generated parser.
      
      This commit also cleans up some ParserSpec tests slightly to make the
      ScalaTest style more canonical.
      
      (cherry picked from commit 6cf4a175
      
      )
      
      Co-authored-by: default avatarJack Koenig <koenig@sifive.com>
      d1dab1db
  11. Sep 13, 2022
  12. Aug 05, 2022
  13. May 28, 2022
  14. Apr 23, 2022
  15. Apr 12, 2022
  16. Apr 08, 2022
  17. Apr 06, 2022
  18. Mar 26, 2022
  19. Mar 15, 2022
  20. Mar 03, 2022
  21. Jan 27, 2022
    • mergify[bot]'s avatar
      Fix faulty MemorySynthInit behavior (#2468) (#2476) · 2f007ce4
      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: default avatarJean Bruant <jean.bruant@ovhcloud.com>
      (cherry picked from commit 475c165c
      
      )
      
      Co-authored-by: default avatarJohn's Brew <46595442+johnsbrew@users.noreply.github.com>
      2f007ce4
  22. Jan 26, 2022
  23. Jan 20, 2022
  24. Jan 18, 2022
  25. Jan 12, 2022
  26. Jan 06, 2022
    • sinofp's avatar
      Add FileInfo to asyncResetAlwaysBlocks (#2451) · 3e494b5c
      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
      3e494b5c
  27. Dec 28, 2021
  28. Dec 22, 2021
    • Jack Koenig's avatar
      Remove some warnings (#2448) · 4f3d1003
      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
      4f3d1003
    • Kevin Laeufer's avatar
      2d197c84
  29. Dec 18, 2021
  30. Dec 17, 2021
  31. Dec 14, 2021