| Age | Commit message (Collapse) | Author |
|
Modifies the Verilog emitter to emit "else if" blocks as opposed to
more deeply nested "else begin if" blocks. This improves the output
Verilog readability.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
|
|
|
|
|
|
* Additional refactoring to clean up pass implementation
* Make register names match old scheme to appease CI
|
|
Major features:
- Added Interval type, as well as PrimOps asInterval, clip, wrap, and sqz.
- Changed PrimOp names: bpset -> setp, bpshl -> incp, bpshr -> decp
- Refactored width/bound inferencer into a separate constraint solver
- Added transforms to infer, trim, and remove interval bounds
- Tests for said features
Plan to be released with 1.3
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
This changes TopWiringTransform to remove TopWiringAnnotations after
it runs.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
(#1186)
* Replace instance analysis code with InstanceGraph API calls
* Add convenience implicits for using TargetTokens as safe boxed strings
|
|
|
|
Fix minor regression from #1124
|
|
* Corrects behavior under write collisions
* Avoids heavily refactoring pass
|
|
* Stop ignoring read-under-write (RUW) parameter
* Add conservative check: blackbox only when RUW is "undefined"
* VerilogMemDelays now throws InternalError for read-first memories
* Previously, read-first mems were incorrectly implemented as write-first
|
|
* Make the read-under-write (RUW) parameter typesafe
* Add RUW support to the FIRRTL proto and CHIRRTL grammar
|
|
* dont chain inline and refix RenameMaps
* cache already inlined modules
* reduce number of chained RenameMaps
* InlineInstances: cleanup and add comments
|
|
Create instance maps once for each Module
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
The following names are changed:
- gender -> flow
- Gender -> Flow
- MALE -> SourceFlow
- FEMALE -> SinkFlow
- BIGENDER -> DuplexFlow
- UNKNOWNGENDER -> UnknownFlow
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
Adds a space to correct in an exception message. Corrects
capitalization in Github to it's official name (GitHub) and adds a
link to file an issue.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
|
|
* Refactor: remove redundancy code
* Fixed coding style
|
|
|
|
|
|
This adds the StageError Error. This Error indicates that a
Stage/Phase has hit an unrecoverable error, it cannot continue, and
requests that the entire Stage/Phase hierarchy be killed with an
ExitFailure ExitCode. StageMain is modified to catch StageError and
exit the application with the provided exit code number.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
This should be a helpValueName and not a shortOption.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
|
|
* Add abstract "Reset" which can be inferred to AsyncReset or UInt<1>
* Enhance async reset initial value literal check to support aggregates
|
|
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
This modifies RemoveReset to NOT generate a mux for
invalid (IsInvalid) inits. In the case of an invalid init, the reset
is converted to a self-connect and no mux is generated.
This is implemented as a new, initial pass over the module to populate
a set of all invalid signals. During the subsequent, circuit-modifying
pass, this invalid set is queried to special case the handling of
invalid inits.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
* Check mems for legal latencies; ban zero write latency.
* Trigger
|
|
* Avoid redundancy between CheckChirrtl and CheckHighForm, add more checks
* Add test case for illegal Chirrtl memory in HighForm
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
- use scala.io.Source instead of io.Source
- .toList cleaner way to force stream to be read.
- clear old commented out code in ProtoBufSpec
|
|
Fixes a threading bug in where lazy reading of file
caused a problem for multithreaded access to the that was read.
Changes all uses of io.Source to use new API
getText
getLines
getTextResource
getLinesResouce
Make style to only import FileUtils and not its methods
So code is more explicit as e.g. FileUtils.getText()
|
|
- Provide new tools for reading in text
- from a file
- from a string file name
- from a resource file
- text can be read in as
- a single string with newlines
- a seq of strings, one string per line
- FileUtils put in its own file
- in same package to keep existing API the same
Hopefully this will protect users from creating resource leaks that
may explain sbt crashing.
Also simpler interface should make code more streamlined, existing
uses of io.Source seem often to be converting between text and seq
unnecessarily.
Add note of caution on requiring slash on resource readers
|
|
- Fixes BlackBoxSourceHelper deprecation "since"
|
|
* add multi target annotation for advices
* use Seq[Seq[Target]] store targets
* add flat function
* doc simplify
|
|
* Allow name of blackbox resource .f file to change from static value
* Restore fileListName as a deprecated def per Jack's feedback
* Support both local and absolute paths for .f resource files
|
|
This fixes a bug in the TopWiringTransform when wiring aggregates by
adding ExpandConnects to its list of fixup passes. TopWiringTransform
is MidForm => MidForm, but when wiring aggregates, it will output bulk
connects. This violates the MidForm prerequisite that ExpandConnects
has run. Symptomatically, this will manifest as match errors in
LowerTypes if a user tries to use the TopWiringTransform on
aggregates.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
|
|
* fix RenameMap chaining
* fix order of chaining, add another test case
|
|
* Add SimplifyMems transform to lower memories without splitting
* Remove spurious anonymous function
|
|
* check isLocal before removing target tokens in RenameMap
* add fix for Adam's test case, add more test cases
* fix multiple renaming bug
* call componentGet before checking underlying for ReferenceTargets in recursiveGet
* add ModuleGet that implements new instance rename order
* normalize target before renaming
* fix forall/exists bug
* add guards for isLocal cases
* fix circuit renaming, fix traverseHierarchy, add debug prints
* remove sensitivity stuff
* add more tests
* reapply parent path to renamed subpath, fix reference -> instance renames
* remove debug prints
* add instance as reference test case
* fix Ref->IsMod, IsMod->Ref renamed, fix extra test cases
* fix ofModule renaming for refs/instances
* fix renaming of ofModules, change tests
* fix more InstanceTarget rename bugs
* remove bad ReferenceTarget test case
* cleanup midRename of recursiveGet
* fix comments
* fix multiple ModuleTarget renames for InstanceTargets
* dis-allow renaming of ModuleTargets to References
* add back removed lines in RemoveCHIRRTL
* fix indents
* only add ofModule to refs if renaming an inst as a ref
* change .moduleOpt.get to .module
* disallow renaming ReferenceTarget->ModuleTarget
* disallow ref->mod renames in tests, add inst as ref test cases
* cache results of get functions
* fix bot/mid/top renames, add andThen
* fix andThen, add test case
* add more test cases, fix ++
* fix comments, make things private
* dont quit if earlier returns None, add dedup/inline rename tests
* don't rename OfModules to instances paths
* update dedup test
* don't treat references as instances, don't reapply parents to absolute paths
* fix more test cases
* short-circuit OfModule renames if an absolute path is found
* update andThen, remove orElse, deprecate ++
* removed commented code
* update comments
* respond to comments
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
This changes the Dependency API to specify dependencies in terms of
classes subtyping the DependencyAPI trait. Previously, this was
invariant which caused a bunch of ugly, unneeded .asInstanceOf jank.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
|
|
|