aboutsummaryrefslogtreecommitdiff
path: root/src/main
AgeCommit message (Collapse)Author
2017-09-30Fixed zero width cat but (#651)Adam Izraelevitz
2017-09-29StringLit.verilogEscape should support all printable ASCII chars (#668)Jack Koenig
Defined as the range from ' ' to '~' [0x20, 0x7e]
2017-09-29Namespace - only save suffix for temp names (#667)Jack Koenig
This prevents collisions for one prefix (including temp) from incrementing the suffix for other prefixes. Makes names more stable.
2017-09-22Fix string lit (#663)Jack Koenig
Refactor StringLit to use String instead of Array[Byte]
2017-09-21Some ScalaDoc warning fixesEdward Wang
2017-09-21Fix problem where wrong verilog file is used. (#661)Chick Markley
When calling verilator in a subdirectory like ./test_run_dir/... verilator will read the verilog file from the current working directory if there is a file there with the right name. This fix specifies the specific path of the verilog file intended.
2017-09-19Provide mechanism so that programs can optionally (#660)Chick Markley
not exit when --help is included in program flags
2017-09-19Create way of collecting program arguments in Driver (#659)Chick Markley
Adds programArgs to commonOptions programArgs is all arguments on command line with out leading -/+ or are not bound to a flag. Create simple test
2017-09-12Make pathsInDAG walk all possible paths (#655)Schuyler Eldridge
* Make pathsInDAG walk all possible paths Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com> * Use linearization order when finding all paths in DAG
2017-09-05Make InstanceGraph track module hierarchies not contained in the top-level ↵Albert Magyar
hierarchy
2017-08-31Added option to emit final annotations (#649)Adam Izraelevitz
* Added option to emit final annotations * Removed extra > from output-anno-file * Removed other extra > from input-anno-file
2017-08-23Reorder port and wire assignments in Verilog (#641)Adam Izraelevitz
* Reorder port and wire assignments in Verilog * Fixed up syntax
2017-08-14Constant propagation across module boundaries (#633)Jack Koenig
2017-08-04bug fix for cases when we want to flatten a module in which a module is ↵Andrey Ayupov
instantiated multiple times (#634)
2017-08-01DCE for IsInvalid (#629)Donggyu
2017-07-26Flatten transformation (#631)Andrey Ayupov
* initial implementation of InlineDeepTransformation * rewrote transformation to not have any side effects in terms on inlining that was not annotated to be inlined * minor rewrites * renamed transformations to Flatten * fixes according to review * added more comments and fixed formating/style * fixed spacing, minor style fixes
2017-07-17do not swap wire names with node namesDonggyu Kim
2017-07-17Fix ConstProp bug where multiple names would swap with oneJack Koenig
Fixes issue in https://github.com/freechipsproject/rocket-chip/pull/848
2017-07-14Fix bug in DiGraph.reverse on an graph with one vertex, no edges (#628)Jack Koenig
2017-07-06Fixed inability to disable combo loop check (#619)Chick Markley
* Fixed inability to disable combo loop check Moved checking of dontCheckComboLoops into loadAnnotations so that it works in cases where Driver.execute is not used. * Fix test for annotations, modifications to loadAnnotations made 2 more annotations visible. * Remove debug println from DriverSpec
2017-06-29ConstProp registers that are only connected to or reset to a consantJack Koenig
2017-06-29Connect registers with no connections to zeroJack Koenig
2017-06-29Preserve "better" names in Constant PropagationJack Koenig
Names that do not start with '_' are "better" than those that do
2017-06-28Make Constant Propagation respect dontTouchJack Koenig
Constant Propagation will not optimize across components marked dontTouch
2017-06-28Promote ConstProp to a transformJack Koenig
2017-06-27Add RemoveReset transform to replace register reset with a MuxJack Koenig
2017-06-27Emitting reg update mux tree, only walk netlist for wires and nodesJack Koenig
Fixes bug where the Verilog emitter could pull the next value for a register that feeds a second register, removing the first register from the second register's update.
2017-06-26Add support for wires in ConstPropJack Koenig
This requires a quick second pass to back propagate constant wires but the QoR win is substantial. We also only need to count back propagations in determining whether to run ConstProp again which shaves off an iteration in the common case.
2017-06-26Speed up ConstProp by doing ConstProp before recording nodeJack Koenig
Similar to #543
2017-06-21Add --no-dce command-line option to skip DCEJack Koenig
2017-06-13Replace IsInvalids on LowForm with connection to zeroJack Koenig
2017-06-13Canonicalize spacing in RemoveValidIfJack Koenig
2017-06-13Make ExpandWhens delete 'is invalid' for attached Analog componentsJack Koenig
Also add tests for what should happen to 'is invalid' in ExpandWhens Fixes #606
2017-06-12Add option to disable combinational loop detectionJack Koenig
Resolves #600
2017-06-12Move CheckCombLoops from passes/ to transforms/Jack Koenig
2017-06-12Change CheckCombLoops to a TransformJack Koenig
2017-06-12Fixes a typo in the verilog `elsif code generation (#603)Shreesha Srinath
2017-06-06Display the total time firrtl took to compile (#599)Colin Schmidt
* Display the total time firrtl took to compile * Switch timing print out to error(aka default)
2017-05-30Change base of randomization values to _RAND instead of _GENJack Koenig
2017-05-30Add some comments to `endifJack Koenig
Makes Verilog more readable to both humans and scripts
2017-05-27Prep for Scala 2.12 (#557)Jim Lawson
* Update dependencies and JavaConverters for Scala 2.12 * Bump Scala (and library) version(s). * replace "error" with "Utils.error"; bump Scala version to 2.11.11
2017-05-25Fix performance bug in DCE (#596)Jack Koenig
We walked the whole set of vertices for every dont touch
2017-05-25Fix performance bug in ZeroWidth (#594)Jack Koenig
We were recursing on Types of Expressions which not only is super inefficient (especially since we are already calling InferTypes afterward), but also duplicates each of the Type objects that need changing.
2017-05-19Delete black_box_verilog_files.f if we aren't going to create it - fixes ↵Jim Lawson
#504 (#551)
2017-05-18Upgrade Logging facility (#488)Chick Markley
* Upgrade Logging facility Make thread-safe Make logging by package name work Use caching of class names to level for performance Make some tests to show this working * quick fix for dynamic logging variable * A number of changes based on Adam's suggestions Default LoggerState But there is an invoke method now to handle threading issues. This should be propagated to other projects Driver.execute methods * Add built-in support for string capture of Logging * Usability fixes for logging stuff. Settings made to the logger prior to execute/invoke will be passed along if possible. * A couple style fixes Comment and privatize Logger state * Name and save string buffers used for logging * Fix default logging state setting Fix logging test, did not have change to command argument * comment out logging in InlineInstanceTests * Changed invoke to makeScope Nested makeScopes share same state object Removed earlier named string buffer implementation * Better name for captor get data * Add trace tests to make sure it works too * Fix call into logger settings
2017-05-17Make sure not to DCE input-only extmodules unless specified (#590)Jack Koenig
Fixes #589
2017-05-12Bugfix: renaming instance ports was broken. (#588)Adam Izraelevitz
2017-05-12Fix pad, second try (#465)Adam Izraelevitz
* Bugfix: pad is max(width,const) during constprop * Fixed max syntax
2017-05-11Improved Global Dead Code Elimination (#549)Jack Koenig
Performs DCE by constructing a global dependency graph starting with top-level outputs, external module ports, and simulation constructs as circuit sinks. External modules can optionally be eligible for DCE via the OptimizableExtModuleAnnotation. Dead code is eliminated across module boundaries. Wires, ports, registers, and memories are all eligible for removal. Components marked with a DontTouchAnnotation will be treated as a circuit sink and thus anything that drives such a marked component will NOT be removed. This transform preserves deduplication. All instances of a given DefModule are treated as the same individual module. Thus, while certain instances may have dead code due to the circumstances of their instantiation in their parent module, they will still not be removed. To remove such modules, use the NoDedupAnnotation to prevent deduplication.
2017-05-11Refactor WIR WSub{Field,Index,Access} - rename exp -> expr #521 (#586)Jim Lawson