1. May 22, 2019
    • Jim Lawson's avatar
      Minor Scaladoc update (#1099) · dad4c236
      Jim Lawson authored
      * Minor Scaladoc update
       - add/move package descriptive text
       - fix FixedPoint link (it's chisel3.experimental.FixedPoint)
      
      * Add missing period at EOS
      dad4c236
  2. May 21, 2019
    • Jim Lawson's avatar
      Repackagecore rebase (#1078) · 38727478
      Jim Lawson authored
      * Move Bits, Data, and BitPat to chiselFrontend/src/main/scala/chisel3
       and deal with the subsequent fallout.
      
      * Move Aggregate, Clock, Mem, Printf, Reg
      
      * Move almost all chisel3.core definitions to chisel3 or chisel3.experimental
      
      * Revive core package object to provide aliases for moved definitions.
      
      * Cleanup package definitions; eliminate ambiguous implicits
      
      * Move more definitions to experimental.
      Extract BaseModule, DataMirror, ExtModule, IO into their own files.
      
      * Put BitPat back in chisel3.util
      
      * More experimental motion - avoid multiple import definitions.
      
      * Add experimental.FixedPoint alias
      
      * Add EnumType definition to core package.
      Update deprecated messages to refer to correct object
      
      * Move FixedPoint into the experimental package (but keep it in Bits.scala).
      
      * Add missing implicits to core/package - compatibility
      
      * Cleanup: update ScalaDoc references; remove unused imports
      
      * Add Reset alias to core/package
      
      * Use common 3.2...
      38727478
  3. May 14, 2019
    • Chick Markley's avatar
      RawModule with no reset should be able to use withClock method. (#1065) · 89ef4d78
      Chick Markley authored
      * RawModule with no reset should be able to use withClock method.
      - refactor ClockAndReset
        - now has `clockOpt: Option[Clock]` and `resetOpt: Option[Reset]` constructor params
        - convenience methods clock and reset tries to deref the option
        - ClockAndReset.empty is factory method for (None, None)
      - In Builder
        - forcedClock does not check resetOpt now
        - forcedReset does not check clockOpt now
      - withClock no longer looks at resetOpt
      - withReset no longer looks at clockOpt
      - Module starts with empty ClockAndReset
      
      * RawModule with no reset should be able to use withClock method.
      Refactor again based on @ducky64 comments
      - refactor away ClockAndReset, now builder just has a
        - currentClock
        - currentReset
      - withClock, withRest, withClockAndReset just use these fields directly
      
      * RawModule with no reset should be able to use withClock method.
      - Fixed typo in withReset handler, now picks up new reset
      89ef4d78
    • Schuyler Eldridge's avatar
      Merge pull request #1022 from freechipsproject/cleanup-scaladoc · df0e0b1c
      Schuyler Eldridge authored
      Miscellaneous Scaladoc Cleanup
      df0e0b1c
    • Schuyler Eldridge's avatar
      86530051
  4. May 13, 2019
  5. May 11, 2019
  6. May 10, 2019
    • Andrew Waterman's avatar
      9af531c3
    • Andrew Waterman's avatar
      Fix LFSR regression · af90047d
      Andrew Waterman authored
      af90047d
    • Schuyler Eldridge's avatar
      Merge pull request #1092 from freechipsproject/lfsr-async-reset · e02d25c2
      Schuyler Eldridge authored
      LFSR/PRNG Asynchronous Safety, Use Vec[Bool] to store internal state
      e02d25c2
    • Schuyler Eldridge's avatar
      PRNG state UInt->Vec[Bool], make async reset safe · 356d5c99
      Schuyler Eldridge authored
      
      
      Changes the internal state of PRNG to use Vec[Bool] instead of UInt.
      This fixes an @aswaterman identified future problem with asynchronous
      reset.
      
      A register with an asynchronous reset can only be reset to a literal.
      Previously, an LFSR would store state as a UInt. If it was not
      parameterized with a seed it should have its least significant bit
      reset to something to avoid locking up. It's ideal to not reset the
      full UInt (better test coverage, decreased reset fanout). However,
      it's difficult to only reset one bit of a UInt. Conversely, it's
      trivial to reset one bit of a Vec[Bool]. This also moves PRNG/LFSR
      closer to a canonical representation of their internal state, i.e.,
      it's natural to think of generalizing Vec[Bool] to arbitrary finite
      fields (Vec[A <: Field]) whereas UInt is tightly coupled to GF2.
      
      Minor updates:
      
      - Updates/fixes to some scaladoc
      - Add assertion to period test to make sure LFSR is changing
      
      Signed-off-by: default avatarSchuyler Eldridge <schuyler.eldridge@ibm.com>
      356d5c99
    • Jack Koenig's avatar
      Fix treatment of Vec of Analog and Vec of Bundle of Analog (#1091) · 6be76f79
      Jack Koenig authored
      * IO(Analog) fixed for RawModule
      
      * Add a Analog Port for RawModule test & spec
      
      * Fixes around Module instantiation and ports in AnalogPortRawModuleTest
      
      * Shorten Comment
      
      * Add Data.isSynthesizable to distinguish SampleElementBinding
      
      This helps clarify the notion of being bound but not hardware.
      Data.topBindingOpt is now used to get the *actual* top binding,
      including across SampleElements (eg. in Analog checking that the top is
      bound to a Port or a Wire)
      
      * Fix pretty printing for Vec
      
      * Refactor tests for Vec of Analog, add test for Vec of Bundle of Analog
      6be76f79
    • Schuyler Eldridge's avatar
      Merge pull request #1088 from freechipsproject/lfsr · a9bf10cc
      Schuyler Eldridge authored
      - Add chisel3.util.random package with Galois and Fibonacci LFSRs
      - Add maximal period LFSR generation and maximal period taps
      - Deprecate chisel3.util.LFSR16 in favor of chisel3.util.random.LFSR(16)
      a9bf10cc
    • Schuyler Eldridge's avatar
    • Schuyler Eldridge's avatar
      Add Lfsr tests · f35f2a27
      Schuyler Eldridge authored
      
      
      Add LFSR tests using LFSR16 testing infrastructure. This also adds
      tests that are the same as the examples shown for LFSR scaladoc.
      
      Signed-off-by: default avatarSchuyler Eldridge <schuyler.eldridge@ibm.com>
      f35f2a27
    • Schuyler Eldridge's avatar
      Add chisel3.util.random lib w/ LFSR generator · 7ce0f10f
      Schuyler Eldridge authored
      Builds out PRNG and LFSR type hierarchy. PRNG is the base class of
      LFSR of which Galois and Fibonacci are concrete implementations.
      
      PRNGs contain state (a UInt) and an update (delta) function. They have
      a compile-time optional seed to set the PRNG state. The seed/state can
      also be set at run-time. PRNGs can be run-time parameterized based on
      how many updates they should do per cycle and whether or not to send
      the seed through step-count state updates before loading it. (h/t
      @jwright6323)
      
      LFSRs are parameterized in a reduction operation (XOR or XNOR). An
      LFSR that does NOT have a seed will be automatically initialized to a
      minimally safe state (set/reset one bit) based on their reduction
      operation. (h/t @aswaterman)
      
      Adds Galois and Fibonacci LFSRs that define appropriate update
      functions. Companion objects provide helpers to automatically generate
      maximal period variants. Taps are provide for a very large set of
      widths. The LFSR companion object provides an apply method to generate
      a Fibonacci LFSR random variable (like the old LFSR16).
      7ce0f10f
  7. May 09, 2019
  8. May 05, 2019
  9. May 02, 2019
  10. Apr 27, 2019
  11. Apr 25, 2019
  12. Apr 24, 2019
  13. Apr 20, 2019
  14. Apr 17, 2019
  15. Apr 16, 2019
  16. Apr 13, 2019
  17. Apr 02, 2019
  18. Mar 30, 2019
  19. Mar 29, 2019
  20. Mar 27, 2019
  21. Mar 26, 2019
  22. Mar 24, 2019
  23. Mar 23, 2019