1. May 14, 2019
    • chick's avatar
      A number of style/import cleanups to chisel-stage · 5a6d8b20
      chick authored
      import cleanup AddImplicitOutputAnnotationFile
      scaladoc link cleanup in Convert
      DriverCompatibility import and scaladoc link cleanup
      Elaborate import cleanup
      ChiselAnnotations import cleanup
      ChiselCli map changed to foreach
      ChiselStage import cleanup
      package import cleanup
      5a6d8b20
  2. May 13, 2019
  3. May 11, 2019
  4. 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
  5. May 09, 2019
  6. May 05, 2019
  7. May 02, 2019
  8. Apr 27, 2019
  9. Apr 25, 2019
  10. Apr 24, 2019
  11. Apr 20, 2019
  12. Apr 17, 2019
  13. Apr 16, 2019
  14. Apr 13, 2019
  15. Apr 02, 2019
  16. Mar 30, 2019