1. Jan 31, 2023
  2. Jan 28, 2023
  3. Jan 27, 2023
  4. Jan 25, 2023
  5. Jan 21, 2023
  6. Jan 19, 2023
  7. Jan 18, 2023
  8. Jan 16, 2023
  9. Jan 15, 2023
  10. Jan 14, 2023
  11. Jan 13, 2023
    • Will Dietz's avatar
      Support zero-width integer literals. (#2932) · fc3b4a08
      Will Dietz authored
      * assert{Inferred,Known}Width: tweak to support width of zero.
      
      Can't create -1.S(0.W), special-case zero-width.
      
      * Bits: nicer error messages for zero-width
      
      * Support zero-width integer literals.
      
      These are in the FIRRTL language specification now
      and supported by both SFC + MFC.
      
      For SInt, special-case handle zero-width as not needing a sign bit.
      
      Zero-width literals must be explicitly zero-width (`0.U(0.W)`);
      literals such as `0.U` are (still) at least 1-bit.
      
      * check zero-width to bool conversion
      
      * onehot test
      
      * UIntOps: test a few operations.
      
      * SIntOps: test a few operations
      
      * {S,U}IntOps: touchup test description, now includes head/tail/pad.
      
      * ChiselSpec: Fix assert{Known,Inferred}Width for zero-width.
      
      Specifically, fix the inferred-width check.
      
      Start from zero-width literal, otherwise 0.U will need 1 bit.
      
      * WidthSpec: update inferred zero-width test
      fc3b4a08
  12. Jan 12, 2023
  13. Jan 11, 2023
  14. Jan 10, 2023
  15. Jan 07, 2023
    • Jack Koenig's avatar
      Merge pull request #2921 from chipsalliance/fix-lazy-clone · 8bac0d7f
      Jack Koenig authored
      Fix lazy cloning and apply the optimization in more cases
      8bac0d7f
    • Jack Koenig's avatar
      Add tests for lazy cloning behavior of Vecs · 051ddf26
      Jack Koenig authored
      051ddf26
    • Jack Koenig's avatar
      55e22bdd
    • Jack Koenig's avatar
      Change mustClone calculation to use _minId · 4ecac958
      Jack Koenig authored
      Previously it used a calculation of whether a given Record (or Bundle)
      contained an "external reference", defined as any element with an _id
      less than the _id of the Record. This does not work for certain cases
      because it is not recursive and a child Record could itself contain an
      external reference. Changing the calculation to be recursive negates
      much of the benefit because many cases that should not need to clone end
      up cloning.
      
      The new algorithm instead uses a notion of "minimum id" for a Data. For
      most Data, this is just _id, but for Records, it is the minimum id of
      any of its children (recursively). This does replace the previous 1-byte
      memoized field with an 8-byte field, but this algorithm works better and
      should result in more savings from lazy cloning.
      4ecac958
  16. Jan 06, 2023
  17. Jan 05, 2023
    • Jack Koenig's avatar
      Fix bug where Flipped did not properly flip (#2919) · 643ee29b
      Jack Koenig authored
      In cases when Flipped needs to clone, it was using the specified
      direction of the clone. Since cloneType does not propagate
      specifiedDirection, it was essentially always flipping an unspecified
      direction even if the direction had been specified.
      643ee29b