| Age | Commit message (Collapse) | Author |
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
* Eliminate warnings on `sbt doc` and `sbt unidoc`
- removed toFirrtl reference on MultiTargetAnnotation
- lots of places where package path has to be added to comment references
- Change to use `/** text starts here` convention when wrong in comment with a doc fix.
- Did not exhaustively change these
- Wrestled doc example in RenderDiGraph#renderNode, not sure if I won
- Cleaned up InferWidths & CatchExceptions imports
- Added missing license message to a couple of files.
- fixed a couple of stale parameter names in scaladoc
- Added @unchecked to stop erasure warning in Emitting where emission annotations are collected
- Change types to [_] on match in RenameMap#recordAll to fix erasure warning
* Where possible change [[firrtl.ir.X]] to [[firrtl.ir.X X]] for better display in scaladoc
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
* Fixes #1464
|
|
* Link to Java API Documentation
This adds a build.sbt apiMappings to allow for Scaladoc/Unidoc linking
to Java API documentation. This uses the exact strategy that Scala
upstream uses for linking.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
* Add example of Java and Scala API docs linking
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
* Remove toNamed (and friends) deprecation.
* Add inadvertently deleted leading double quote.
* Remove commented out deprecations.
|
|
(#1463)
* Explicitly initialize firrtl.stage.Forms to prevent multi-thread collisions
See https://github.com/freechipsproject/firrtl/issues/1462.
Convert `lazy val` members of firrtl.stage.Forms to plan `val`s.
Reference firrtl.stage.Forms in sufficient locations to ensure the object is initialized before its members are accessed.
* Respond to comments - make _dummyForms private.
* Move Forms initialization to package object.
* Merge with master
|
|
* Change from log-level debug to trace
* Serialize as JSON rather than .serialize on each annotation
Co-Authored-By: Chick Markley <chick@qrhino.com>
|
|
|
|
* Fixes #1096
|
|
* Fixes #1436
|
|
Fixes #1453
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
Introduce Preset Register Specialized Emission
- Introduce EmissionOption trait
- Introduce PresetAnnotation & PresetRegAnnotation
- Enable the collection of Annotations in the Emitter
- Introduce collection mechanism for EmissionOptions in the Emitter
- Add PropagatePresetAnnotation transform to annotate register for emission and clean-up the useless reset tree (no DCE involved)
- Add corresponding tests spec and tester
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
|
|
* Fixes #1214
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
Co-authored-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Co-authored-by: Albert Magyar <albert.magyar@gmail.com>
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
|
|
Co-authored-by: Albert Magyar <albert.magyar@gmail.com>
|
|
* Provide an annotation mix-in that marks RTs as dontTouch
* Update src/main/scala/firrtl/transforms/OptimizationAnnotations.scala
Co-Authored-By: Albert Magyar <albert.magyar@gmail.com>
* Update src/test/scala/firrtlTests/DCETests.scala
Co-Authored-By: Albert Magyar <albert.magyar@gmail.com>
* Update src/main/scala/firrtl/transforms/OptimizationAnnotations.scala
* Update OptimizationAnnotations.scala
Co-authored-by: Albert Magyar <albert.magyar@gmail.com>
|
|
* Add firrtl-json serializers
* Added support for ports, info. Added docs and tests
|
|
* Avoid IndexOutOfBoundsException when Bits has too few consts
* Check for negative consts in all relevant primops
* Use BigInt for all checks on primop constants
|
|
* Feedback from @jackkoening
* Merge into same stage as Ops to avoid Travis delays
|
|
This reverts commit f77487d37bd7c61be231a8000a3197d37cf55499.
|
|
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
Adds a case to CircuitState.resolvePaths such that if no targets are
requested, then no ResolvePaths annotations are added.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
This adds a prettyPrint method to the DependencyManager to enable
textual visualization of the TransformLikes that a DependencyManager
determines need to be run.
This also cleans up the GraphViz visualization with better edge
coloring and now uses the `name` method when labeling graphviz nodes.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
This makes a change to the Dependency API that breaks chisel3. This
needs to [skip chisel tests], but is fixed with
https://github.com/freechipsproject/chisel3/pull/1270.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
|
|
This reverts commit eabc38559b7634ff7147aa0ab3d71e78558d5162.
|
|
* Revert "Infer resets last connect semantics (#1291)"
* Fix handling of invalidated and undriven components of type Reset
* Run CheckTypes after InferResets
* Make reset inference bidirectional on connect
* Support AsyncResetType in RemoveValidIf
* Fix InferResets for parent constraints on child ports
* Apply suggestions from code review
* Add ScalaDoc to InferResets
Co-authored-by: Albert Magyar <albert.magyar@gmail.com>
Co-authored-by: Schuyler Eldridge <schuyler.eldridge@gmail.com>
|
|
* Add SimplifyBinaryOp trait
* Add extra functionality to comparison folding
* Add tests
* Fix comments from review
|
|
Adds new APIs for querying sets of modules in an InstanceGraph:
- modules: the set of all modules
- reachableModules: set of modules reachable from the main/top
- unreachableModules: set of modules not reachable from the main/top
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
Change the behavior of RenameMap.completeTarget so that self-renames
do not silently *not* happen. Previously, requests to self-rename
would be ignored unless they were packaged in a sequences of renames
that included a self-rename.
Change renames to be recorded distinctly so that multiple requests to
rename to the same thing will now deduplicate. Previously, these
renames would be recorded multiple times. This change was required
because allowing self-renames exposed a bug in InferWidthsAnnosSpec
due to multiple renames.
These changes benefit the situation where you rightly want to do a
self-rename. Namely, when doing module duplication (with the
EliminateTargetPaths transform).
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Do not record the same rename multiple times
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
* Consume NoDedupMemAnnotations in ResolveMemoryReference
The ComponentName being pointed to by the annotation no longer exists
after ReplaceSeqMems so we should consume the annotations
* Support renaming in ReplaceMemMacros
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
Change InstanceGraph.staticInstanceCount to include modules with no
instances. Previously, these modules would just not be included.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
* Generates lint-clean Verilog for the case: x + -1
...where x is anything and 1 is any literal.
Master behavior:
input x : SInt<8>
output z : SInt<9>
z <= add(x, SInt(-2))
generates
assign z = $signed(x) + -8'sh2;
After this PR:
assign z = $signed(x) - 8'sh2;
If the literal is the maximum possible literal, a special case is triggered to properly trim the resulting subtraction.
Input:
input x : SInt<2>
output z : SInt<3>
z <= add(x, SInt(-2))
now generates (after this PR)
assign z = $signed(x) - 3'sh2;
* Updated documentation
* Change ArrayBuffer to ListBuffer
* Change name to minNegValue
* Remove mutable public interfaces
Co-authored-by: Albert Magyar <albert.magyar@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
Change the behavior of EliminateTargetPaths to generate ModuleTarget
renames when instances are duplicated. Previously, only InstanceTarget
renames would be generated.
In effect, annotations targeting a duplicated module when be
duplicated to point at the original and duplicated module.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
This adds a utility method, referringModule, to the Target object that
behaves like IsMember.pathlessTarget except that it returns the module
of an InstanceTarget. This is useful for situations where you want to
get at "the module" a target is pointing at, but you want behavior
to get an actual module from an instance.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
|
|
* Fixes #1240
* Add failing reg const prop test case from #1240
|
|
* Add constant prop to async regs
* Added another test of no reset value but constant assignment
* Clarify name of updateNodeMap
* Update constant assignment of async reset to not be inferred as a latch, works with donttouch
* Revert "Update constant assignment of async reset to not be inferred as a latch, works with donttouch"
This reverts commit 952bf38127cb32f814496a2b4b3bfb173d532728.
|
|
* Fixes #1344
|
|
|