1. Dec 21, 2022
  2. Dec 20, 2022
  3. Dec 19, 2022
  4. Dec 18, 2022
    • Schuyler Eldridge's avatar
      [circt] Cleanup CIRCT error behavior · f0838916
      Schuyler Eldridge authored
      
      
      Change the behavior of what happens if firtool returns a non-zero exit
      code from printing information to stdout to throwing an exception with
      this information in the body.  This is done primarily to ease
      interoperability with mdoc.  However, this is generally better
      principled than the previous behavior of scattering information in
      different mediums.  Add a test of this behavior.
      
      Stop intercepting a file not found error if CIRCT fails to print this to
      stdout and wrap this in a StageError.  It is better to just let the file
      not found exception through as this already includes all the information
      necessary to tell the user what the problem is.  Do not test this
      behavior (as it is tedious to test).
      
      Signed-off-by: default avatarSchuyler Eldridge <schuyler.eldridge@sifive.com>
      f0838916
  5. Dec 17, 2022
  6. Dec 14, 2022
  7. Dec 10, 2022
  8. Dec 08, 2022
    • Jack Koenig's avatar
      [ci] Update Github Actions (#2876) · b01dd3cb
      Jack Koenig authored
      * Switch from deprecated setup-scala to setup-java
      * Switch from deprecated set-output to $GITHUB_OUTPUT
      * Use $GITHUB_STEP_SUMMARY for reporting
      b01dd3cb
  9. Dec 07, 2022
    • Chick Markley's avatar
      Remove deprecated code from core (#2758) · 7372c9e2
      Chick Markley authored
      
      
      * Remove parenthesized forms of:
      `.unary_-()`, `.unary_%()`, `.unary_~()`, `.unary_!()`,
      `.orR()`, `.andR()`, `.xorR()`,  `.zext()`, 
      `.asBool()`, `.asBools()`, `.asSInt()`, `.asAsyncReset()`,
      `.asClock()`, `.isLit()`, `.litOption()`, `.litValue()`,
      `.abs()`
      * Remove protected `Data.bindingToString`
      * Remove `RawModule.getPorts`
      * Remove `._applyMacroWithMessage` in assert and assume
      * Remove `stop` that accepts non-zero return code
      * Remove public `WhenContext` constructor
      * Remove parenthesized `WhenContext.active()`
      * Remove `blacklistPackages`, `builderName`, and `chiselStackTrace` from `ChiselException`
      * Remove `MultiIOModule` (`Module` can have multiple `IOs`)
      * Remove `chisel3.getModulePorts`
      * Undo deprecation of `Data.flatten` which is package private and useful
      * Also remove all internal uses of these removed methods
      
      Co-authored-by: default avatarJack Koenig <koenig@sifive.com>
      7372c9e2
  10. Dec 06, 2022
  11. Dec 04, 2022
    • Jack Koenig's avatar
    • Jack Koenig's avatar
      Optimize _ids (#2866) · f88dc626
      Jack Koenig authored
      * Don't copy _ids to a Seq just to Iterate on them
      
      Saves a copy of a large data structure.
      
      * Only add Data to _ids when the binding is constrained
      
      ConstrainedBinding means that the bound Data is scoped to a module.
      Since _ids are used for naming of signals within a module, there is no
      reason to add Unconstrained Data to the _ids of the Module they were
      constructed during. Unconstrained Data include things like literals and
      children of Aggregates (which sort of are constrained to a Module but
      only via their parent, they are not directly named by the module).
      f88dc626
  12. Dec 02, 2022
  13. Dec 01, 2022
  14. Nov 30, 2022
  15. Nov 29, 2022
    • Jack Koenig's avatar
      Implement compressed Namespace (#2856) · 1654d87a
      Jack Koenig authored
      The namespace disambiguates requests for the same name with _<idx>.
      Rather than storing every disambiguated name in the underlying HashMap,
      it now only stores the base along with the "next available" index. This
      makes the logic for checking if a name is already contained in the
      namespace slightly more sophisticated because users can name things in a
      way that will collide with disambiguated names from a common substring.
      
      For example, in naming the sequence "foo", "foo", "foo_1", the 2nd "foo"
      takes the name "foo_1" so the following "foo_1" gets disambiguated to
      "foo_1_1". But since we compressed that original "foo_1" into the same
      HashMap entry as just "foo", we have to do a form of "prefix checking"
      whenever naming something that ends in "_<idx>".
      
      In practice, the saved memory allocations more than make up for the more
      complicated logic to disambiguate names because the common case is still
      fast.
      1654d87a
  16. Nov 19, 2022
    • Jack Koenig's avatar
      Make PriorityMux stack safe (#2854) · 269ce472
      Jack Koenig authored
      It used to be implemented with recursion, now it's implemented with a
      stack safe reverse and foldLeft.
      
      Also there were no tests for PriorityMux so I added one which helps
      prove the change is functionally correct.
      269ce472
  17. Nov 17, 2022