1. Jul 04, 2018
    • Andrew Waterman's avatar
      Improve code generation for smem wmode and [w]mask ports (#834) · ceac36d7
      Andrew Waterman authored
      [skip formal checks] LEC passes with Formality
      
      * Improve code generation for smem RW-port wmode port
      
      A common case for these port-enables is
      
          wen = valid & write
          ren = valid & !write
      
      which the RW-port transform currently turns into
      
          en = (valid & write) | (valid & !write)
          wmode = valid & write
      
      because it proved `wen` and `ren` are mutually exclusive via `write`.
      
      Synthesis tools can trivially optimize `en` to `valid`, so that's not a
      problem, but the wmode field can't be optimized if going into a black box.
      This PR instead sets `wmode` to whatever node was used to prove
      mutual exclusion, which is always a simpler expression.  In this case:
      
          en = (valid & write) | (valid & !write)
          wmode = write
      
      * In RemoveCHIRRTL, infer mask relative to port definition
      
      Previously, it was inferred relative to the memory definition causing
      the mask condition to be redundantly conjoined with the enable signal.
      
      Also enable ReplSeqMems to ignore all ValidIfs (not just on Clocks) to
      improve QoR.
      ceac36d7
  2. Jul 03, 2018
  3. Jun 29, 2018
  4. Jun 23, 2018
  5. Jun 22, 2018
  6. Jun 19, 2018
  7. Jun 16, 2018
    • Jack Koenig's avatar
      Improve Parser and Visitor (#819) · 9b6ff229
      Jack Koenig authored
      * Update Parser to use ANTLR CharStreams
      
      This removes some unnecessary object creation in String reading and
      manipulation
      
      * Remove two unnecessary traversals from Block construction in Visitor
      9b6ff229
  8. Jun 15, 2018
    • Jim Lawson's avatar
      Fix TopWiringTests use of /tmp. (#825) · 9fff25ab
      Jim Lawson authored
      Relying on /tmp as a place for test output will fail on multiuser systems and may fail if multiple instances of tests are running for the same user.
      9fff25ab
  9. Jun 14, 2018
  10. Jun 13, 2018
  11. Jun 12, 2018
  12. Jun 11, 2018
  13. Jun 09, 2018
  14. Jun 07, 2018
  15. May 31, 2018
  16. May 30, 2018
    • Jack Koenig's avatar
      Fix pad (#817) · f24a733d
      Jack Koenig authored
      * Make VerilogEmitter properly handle pad of width <= width of arg
      
      * Constant prop pads with pad amount <= width of arg
      f24a733d
  17. May 24, 2018
  18. May 22, 2018
  19. May 18, 2018
  20. May 17, 2018
  21. May 16, 2018
  22. May 12, 2018
    • alonamid's avatar
      TopWiring Transform (#798) · abcb22d6
      alonamid authored
      * top wiring transform
      
      * fixup comments
      
      * TopWiring cosmetics
      
      * move prefix into TopWiringAnnotation
      
      * remove test function from transform file
      
      * add ChildrenMap to InstanceGraph API
      
      * use namespaces
      
      * remove wiringUtils from TopWiring pass
      
      * enable multiple output functions
      
      * TopWiring cosmetics, tests and lowform
      abcb22d6
  23. May 10, 2018
  24. May 03, 2018
  25. Apr 30, 2018
  26. Apr 27, 2018
    • Jack Koenig's avatar
      Fix bug in VerilogMemDelays (#795) · b72b6ebe
      Jack Koenig authored
      * Change VerilogMemDelays to put new Statements at end of Module
      
      Fixes #547
      
      This is instead of putting them right after the modified DefMemory which could
      result in use before declaration errors for things that feed into the new
      logic.
      
      * Adds tests that show VerilogMemDelays crashing. (#792)
      b72b6ebe
  27. Apr 17, 2018
    • Jim Lawson's avatar
      Cleaning up BlackBoxSourceHelper - use absolute file paths. (#789) · 1b4b17c7
      Jim Lawson authored
      * Cleaning up BlackBoxSourceHelper - use absolute file paths.
      ```bash
      make[1]: *** No rule to make target `test_run_dir/examples.AccumBlackBox_PeekPokeTest_Verilator345491158/AccumBlackBox.v', needed by `/Users/john/chisel-testers/test_run_dir/examples.AccumBlackBox_PeekPokeTest_Verilator345491158/VAccumBlackBoxWrapper.h'.  Stop.
      ```
      since the path `test_run_dir/examples.AccumBlackBox_PeekPokeTest_Verilator345491158/AccumBlackBox.v` does not exist inside `test_run_dir`.
      We should either:
       - strip the targetDir prefix,
       - prepend a `../` to the path,
       - use absolute paths
      I decided to go with the latter since this makes the least assumptions about the actual downstream processing and we already use absolute paths in other parts of this code.
      
      * Minor cleanup.
       - Anonymize make failure comment.
       - Use common map syntax.
      1b4b17c7
  28. Apr 14, 2018
  29. Apr 12, 2018
  30. Apr 11, 2018