Skip to content

v3.0-SNAPSHOT_2017-03-23

Pre-release
Pre-release
Compare
Choose a tag to compare
@ucbjrl ucbjrl released this 22 Dec 18:09
· 5784 commits to main since this release
  • The register creation API has been changed to offer clearer functional choices. (#553)
    • RegInit should be used to create a register with a specified initializer.
    • RegNext should be used to create a register with a specified next value.
  • log2Up and log2Down have been deprecated, users should now use log2Ceil and log2Floor. Internal references to these functions have been fixed.. (#528)
  • QueueIO and ArbiterIO work proper when given zero entries.
  • Support has been added for field names that begin with a number in the new aggregate type Record. (#531)
  • New warnings on inappropriate parameters for a number of chisel constructs. (#455)
    • Vec creation warns when type given is a literal. (#530)
  • If OHToUInt is given only one argument it always returns that. (#546)
  • Custom transforms are executed in the order they are specified in the options manager. (#532)
  • ShiftRegister applies the enable to all registers created. (#370)
  • Fixed a bug where compile errors were caused by assertions containing %. (#500)
  • Fixed an an inconsistency in Chisel, a UInt -& UInt now returns an SInt. (#502)
  • There is a new low level API for creating elements of a given type asTypeOf. (#450)
    • fromBits currently untouched but will be chisel3-deprecated if possible as a future PR.
    • Code that needs to create a super-type of several types into cloneSupertype See. #446
      • This should be the only thing that changes externally visible API, in that the checks are now more consistent.
      • oneHotMux now checks against inconsistent input types.
      • Mux now checks that each branch is of equivalent type.
    • Simplify Vec construction using above.
    • Move cloneTypeWidth from Data to Bits. It used to silently drop the width parameter when called on any non-Bits, this makes uses of it explicit and always correct, minus the Bool case.
    • Eventually want to get rid of cloneTypeWidth. The only stragglers are Bits.pad (which can instead create a new UInt/etc from scratch) and Reg (which clears widths behind the scenes for you). Not sure how to address the Reg case.
  • Deprecate flatten, hopefully will remove it eventually using more local operations.