- Aug 13, 2019
-
-
Andrew Waterman authored
-
Jack Koenig authored
* Add abstract "Reset" which can be inferred to AsyncReset or UInt<1> * Enhance async reset initial value literal check to support aggregates
-
- Aug 10, 2019
-
-
Albert Magyar authored
-
- Aug 08, 2019
-
-
Schuyler Eldridge authored
Improve RemoveReset on Invalid Inits
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
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>
-
Albert Magyar authored
* Check mems for legal latencies; ban zero write latency. * Trigger
-
Albert Magyar authored
* Avoid redundancy between CheckChirrtl and CheckHighForm, add more checks * Add test case for illegal Chirrtl memory in HighForm
-
- Aug 06, 2019
-
-
Schuyler Eldridge authored
Fix FileUtils.getLines, add simple FileUtils tests
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Aug 02, 2019
-
-
Schuyler Eldridge authored
Followup to PR #1142
-
chick authored
- use scala.io.Source instead of io.Source - .toList cleaner way to force stream to be read. - clear old commented out code in ProtoBufSpec
-
chick authored
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()
-
- Aug 01, 2019
-
-
Chick Markley authored
- 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
-
- Jul 31, 2019
-
-
Albert Magyar authored
-
Schuyler Eldridge authored
- Fixes BlackBoxSourceHelper deprecation "since"
-
- Jul 26, 2019
-
-
Sequencer authored
* add multi target annotation for advices * use Seq[Seq[Target]] store targets * add flat function * doc simplify
-
Albert Magyar authored
* 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
-
- Jul 25, 2019
-
-
Schuyler Eldridge authored
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>
-
- Jul 24, 2019
-
-
Donggyu Kim authored
-
- Jul 22, 2019
-
-
Albert Chen authored
* fix RenameMap chaining * fix order of chaining, add another test case
-
- Jul 20, 2019
-
-
Albert Magyar authored
* Add SimplifyMems transform to lower memories without splitting * Remove spurious anonymous function
-
- Jul 19, 2019
-
-
Albert Chen authored
* 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
-
- Jul 18, 2019
-
-
Schuyler Eldridge authored
README.md Patches
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Jul 16, 2019
-
-
Schuyler Eldridge authored
Change Dependency API to Class[_ <: A]
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Jul 12, 2019
-
-
Schuyler Eldridge authored
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>
-
- Jul 09, 2019
-
-
Leway Colin authored
-
Leway Colin authored
-
- Jul 04, 2019
-
-
Schuyler Eldridge authored
Add Dependency API
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Adds tests for the PhaseManager. This includes outputs in "test_run_dir" of Graphviz output. This will automatically generate a PNG if "dot" is on the path. Otherwise, it will just generate the Graphviz output. This includes tests that check for determinism.
-
Schuyler Eldridge authored
Adds the DependencyManager class which can be used to determine a legal sequence of TransformLikes given their Dependency API constraints. A DependencyManager determines an ordering that results in some target TransformLikes being run (without invalidations) given an initial state (some other set of TransformLikes). Algorithmically, this works as follows: 1. A DAG of TransformLikes w/ invalidation edges is constructed (the "invalidate graph") 2. A DAG of TransformLikes w/ prerequisite and dependent edges is constructed (the "dependents graph") 3. A toplogical sort of the dependents graph, seeded with the reverse topological sort of the invalidate graph, gives an ordering of TransformLikes. 4. This ordering is examined, node by node, cleaning up any mismatches between TransformLikes by solving DependencyManager sub-problems. As new graph nodes (which are classes) are found, these are lazily constructed. Data structures are maintained that map from classes to objects and back. All discovered classes will point to the same object. Determinism is maintained internally using LinkedHashMap and LinkedHashSet. Other changes: - Some methods that generate Graphviz for a DependencyManager are added. - One concrete implementation of a DependencyManager is added for Phases called "PhaseManager". Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This adds a PreservesAll that can be used to override the default invalidation scheme (invalidated everything except yourself) such that nothing is invalidated. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This adds a TransformLike mixin, DependencyAPI, that defines the basis of the Dependency API for Stage/Phase. DependencyAPI defines three members that define dependency relationships for some TransformLike "Foo": - "Prerequisites" define TransformLikes that should run before Foo - "Dependents" define TransformLikes that should run after Foo. This allows Foo to inject prerequisites into some other TransformLike. - "Invalidates" define a function that will return true if a specific TransformLike would be invalidated by Foo Prerequisites and Dependents are not Sets due to lack of a fast, immutable Set that preserves insertion order. Internally, these are converted to a private LinkedHashSet. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This adds a method to DiGraph called "seededLinearize". This generalizes the original topological sort ("linearize") to be parametric in an initial set of vertices. This enables the user to massage the DFS to produce a better topological sort if they have information about how the DFS should proceed. The initial set of vertices is expected to be made ordered via a LinkedHashSet. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Jul 03, 2019
-
-
Leway Colin authored
-