1. May 11, 2021
  2. May 10, 2021
  3. May 05, 2021
  4. Apr 29, 2021
  5. Apr 28, 2021
  6. Apr 27, 2021
    • Jiuyang Liu's avatar
      Memlib Refactor (#2191) · 54b6d871
      Jiuyang Liu authored
      * remove all deprecations, switch to new API.
      
      * Add MemLibOutConfigFileAnnotation to replace ConfWriter.
      
      * Inline CreateMemoryAnnotations in ReplSeqMem.
      
      * Dont use ConfWriter anymore.
      
      * Fix ReplSeqMemTests, rewrite checkMemConf to directly read from annoation.
      
      * Fix for review.
      
      0. Since DependencyAPI only initiate transform only once, ListBuffer is
         dangerous to use, remove defAnnotatedMemories from Transform.
      1. Add trait HasAnnotatedMemories to store ListBuffer,
         MemLibOutConfigFileAnnotation also extends from which now.
      
      * Use two annotations converting and storing DefMemory.
      
      0. rewrite CreateMemoryAnnotations to match ReplSeqMemAnnotation
         creating PinAnnotation.
      1. add DumpMemoryAnnotations to convert from
         AnnotatedMemoriesCollectorAnnotation to MemLibOutConfigFileAnnotation
      2. refactor MemLibOutConfigFileAnnotation and remove
         HasAnnotatedMemories
      3. add private AnnotatedMemoriesCollectorAnnotation to store mutable
         DefAnnotatedMemory
      4. change ReplSeqMem to SeqTransform
      
      * Fix for review.
      
      0. replace AnnotatedMemoriesCollectorAnnotation with immutable
         AnnotatedMemoriesAnnotation.
      1. add ListBuffer[DefAnnotatedMemory] in ReplaceMemMacros.execute.
      
      * private functions in ReplaceMemMacros transform.
      
      * scalafmt
      
      * remove ConfWriter API.
      54b6d871
    • Jiuyang Liu's avatar
      33c0b431
  7. Apr 22, 2021
  8. Apr 20, 2021
  9. Apr 19, 2021
  10. Apr 17, 2021
  11. Apr 16, 2021
    • Fabian Schuiki's avatar
      Fix signedness of xor const prop with zero (#2179) · e9b2946c
      Fabian Schuiki authored
      Constant propagation of the Xor op folds `xor(a, SInt(0))` to
      `asUInt(a)`. For comparison, Or folds to `asUInt(pad(a, W))`. This can
      be a problem in the following case:
      
          circuit Foo :
            module Foo :
              input a: UInt<3>
              output b: UInt<4>
              b <= asUInt(xor(asSInt(a), SInt<4>(0)))
      
      This would emit the assignment as `b = a` instead of the sign-extended
      `b = {{1{a[2]}},a}`.
      
      This requires adjusting the `pad(e, t)` function use in const prop,
      which currently just inserts a `Pad` prim op with the requested output
      type. However, the function advertises that it pads *to the width* of
      the type `t`. Some of the folds rely on this and request the padding of
      a SInt<N> to the width of a UInt<M>. But the current implementation then
      then actually returns a `Pad` op with type UInt<M>, instead of the
      SInt<M> that was requested.
      e9b2946c
    • Jack Koenig's avatar
      Add Workflow to automatically update .mergify.yml (#2180) · fc86112b
      Jack Koenig authored
      Also make minor updates to CI workflow
      fc86112b
  12. Apr 14, 2021
    • Jared Barocsi's avatar
      Add indent parameter to Serializer.serialize() (#2177) · 20890bbd
      Jared Barocsi authored
      
      
      Using Utils.indent() gives deprecation warnings to use Serializer instead. However,
      the Serializer class itself doesn't provide a means to manually indent a FirrtlNode
      string a certain number of times.
      
      The indent variable, previously hardcoded to 0, is now exposed as a second parameter
      for the modified serialize function, and the old serialize function just calls the
      modified serialize with indents = 0 for binary compatibility
      
      Co-authored-by: default avatarMegan Wachs <megan@sifive.com>
      20890bbd
  13. Apr 12, 2021
  14. Apr 07, 2021
  15. Apr 06, 2021