1. Jul 03, 2018
    • Jack Koenig's avatar
      Direct to FIRRTL (#829) · 3d8064a9
      Jack Koenig authored
      Provide direct conversion from ChiselIR to FIRRTL.
      Provide Driver support for dumping ProtoBuf.
      3d8064a9
  2. Jun 30, 2018
  3. Jun 26, 2018
  4. Jun 21, 2018
    • Jack Koenig's avatar
      Programmatic Port Creation (#833) · 980778b1
      Jack Koenig authored
      Add chisel3.experimental.IO for programmatic port creation in Raw and
      MultiIOModules. suggestName is required to name ports that cannot be
      named by reflection. Two ports cannot be given the same name.
      980778b1
  5. Jun 19, 2018
  6. Jun 02, 2018
    • Jack Koenig's avatar
      Literals set their ref so they no longer get named (#826) · d0cdd3b4
      Jack Koenig authored
      Fixes #763
      Add tests for #763 and #472
      
      This has a few implications
      * Constructing a literal no longer increments _T_ suffixes
      * Internally, wrapping a literal Bits in Node(...) will work
      * Literal Bools work in withReset/withClockAndReset
      d0cdd3b4
  7. Jun 01, 2018
  8. May 25, 2018
  9. May 24, 2018
  10. Apr 27, 2018
  11. Apr 25, 2018
  12. Apr 23, 2018
  13. Mar 24, 2018
    • Richard Lin's avatar
      Fallback null insertion for autoclonetype (#801) · a86e3888
      Richard Lin authored
      If autoclonetype is unable to determine an outer class, this attempts to insert a null (and give a deprecation warning), preserving old behavior (in some cases) where the new behavior doesn't work.
      
      This doesn't provide full compatibility with old autoclonetype: this does not attempt null insertion in the general first argument (if it's not an outer class reference). Reasoning is that inserting a null for an explicit argument is probably not the right thing to do, and will likely cause a difficult-to-debug NullPointerException (whereas that would be unlikely for an outer class, which is not always referenced in Bundle subclass code).
      a86e3888
  14. Mar 10, 2018
  15. Mar 07, 2018
    • Andrew Waterman's avatar
      Fix SyncReadMem.read; add test (#796) · a4aa3929
      Andrew Waterman authored
      SyncReadMem.read with an enable signal currently only works in
      compatibility mode, where Wires are implicitly initialized to
      DontCare.  Fix by explicitly assigning DontCare to the Wire.
      
      This might fix #775.
      a4aa3929
  16. Mar 04, 2018
  17. Mar 03, 2018
    • Richard Lin's avatar
      Fix for 792 (#793) · 531dd6cb
      Richard Lin authored
      Makes Builder.updateBundleStack a bit stricter in deciding how many stack frames to discard by additionally matching against method names and deleting stack frames at or above the frame currently being inserted.
      531dd6cb
  18. Mar 01, 2018
    • Jack Koenig's avatar
      Refactor Annotations (#767) · 46553432
      Jack Koenig authored
      * Generalize ChiselAnnotation
      
      This allows us to delay creation of Annotations till elaboration is
      complete. Also update all annotation-related code.
      
      * Add RunFirrtlTransform
      
      Use a Chisel-specific RunFirrtlTransform API to preserve behavior of old
      ChiselAnnotation (now called ChiselLegacyAnnotation)
      
      * Use unique test directories in ChiselRunners.compile
      46553432
    • Richard Lin's avatar
      97871178
  19. Feb 24, 2018
  20. Feb 23, 2018
  21. Feb 22, 2018
  22. Feb 21, 2018
  23. Feb 13, 2018
  24. Feb 09, 2018
    • Richard Lin's avatar
      Make uncloneable IO deprecated instead of error, improve error handling (#771) · a57e4b1e
      Richard Lin authored
      It appears #754 breaks more code than I thought, so this makes it a soft error (with a runtime deprecation warning - to get people to fix their stuff before we break it for real) for now.
      
      This additionally changes the autoclonetype errors to be more deterministic (reporting class names instead of object names) in the most common cases, to allow the deprecations manager to deduplicate warnings.
      a57e4b1e
  25. Feb 08, 2018
    • Richard Lin's avatar
      Cloning IO with compatibility 🦆 (#754) · 254597c1
      Richard Lin authored
      Changes the API such that IO(...) clones. All Bundles will need to be clone-able, but auto clone type is expected to handle most cases.
      254597c1
    • Richard Lin's avatar
      Better support for autoclonetype of nested Bundles (#769) · 7be9b1c6
      Richard Lin authored
      * Better support for autoclonetype of nested Bundles
      
      * Move bundleStack to dynamicContext
      
      * prefer $outer if available, make guesses distinct
      
      * Catch IllegalAccessException in autoclonetype
      In strange circumstances this type of exception can occur when accessing $outer
      7be9b1c6
  26. Feb 03, 2018
  27. Jan 25, 2018
    • Richard Xia's avatar
      Remove unused BuildInfo.BuildTime. (#766) · 639617ea
      Richard Xia authored
      BuildInfo.BuildTime appears to cause sbt to always recompile BuildInfo to get
      the latest time, which causes a recompile on any package that depends on
      chisel3. This is quite painful for doing development on any Chisel projects.
      BuildTime doesn't actually appear to be in use, and removing it fixes the
      unnecessary recompilation issue.
      639617ea
  28. Jan 24, 2018
    • Richard Lin's avatar
      Runtime API deprecation warnings (#761) · 224740ac
      Richard Lin authored
      Add runtime warnings for use of deprecated Chisel methods. This is done using a macro that takes the message from a `@deprecated` annotation, and adds a call to `Builder.deprecated`.
      
      Reasoning is that by default, Scala doesn't print all deprecations, and that it's somewhat tricky to notice them - yet some support questions revolve around the use of deprecated and terribad API. This now prints warnings for uses of deprecated functions at runtime, and aggregates them by error and line to avoid spam. Also included is convenient information on enabling scalac deprecations.
      
      This also changes how line numbers for Chisel's error facility is determined, using prefix string comparison of the stack trace element classnames, instead of checking if the class is a subtype of UserModule. The previous one (specifically, calls to Class.forName) seems to interact badly with reflection-based cloneType when called at scale. This should also give more accurate reporting of errors that are in user code but outside of a UserModule.
      
      It turns out that `@deprecated` on macro functions don't do anything, so this changes the tags to the functions that the macros point to, which seems to work properly. It also turns out that there's a bunch of uses of deprecated functions in chiselTests which needs to be fixed.
      
      Not all `@deprecated` functions are also annotated with `@chiselRuntimeDeprecation`, because they're still used in Chisel internals, and we can't track whether they're called by the user or by Chisel and it will give a misleading error. These are a small amount of functions.
      224740ac
  29. Jan 20, 2018
  30. Jan 19, 2018
  31. Jan 17, 2018
  32. Jan 03, 2018