- Oct 28, 2018
-
-
Jack Koenig authored
This makes "skip chisel tests" work properly
-
Adam Izraelevitz authored
This reverts commit 7e2f787e.
-
- Oct 25, 2018
-
-
Adam Izraelevitz authored
Added Target, which now supports Instance Annotations. See #865 for details.
-
Schuyler Eldridge authored
Better error message on missing BlackBox resource
-
Schuyler Eldridge authored
This wraps interactions with a BlackBox resource file such that a FileNotFoundException are wrapped in a BlackBoxNotFoundException and rethrown. This provides a better, verbose error message to the user and avoids a FileNotFoundException showing up as an internal FIRRTL error. This adds tests that the expected exception is thrown for both BlackBoxResourceAnno and BlackBoxResourceAnno. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Oct 17, 2018
-
-
Adam Izraelevitz authored
-
- Oct 13, 2018
-
-
Schuyler Eldridge authored
Verilog renaming uses "_", works on whole AST
-
Schuyler Eldridge authored
This moves VerilogRename out of Passes.scala and genericizes it as the new Transform KemoveKeywordCollisions. This new Transform will remove keywords for arbitrary sets of reserved keyword. This adds VerilogRename back as a class instead of an object. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Summary of changes to firrtl.passes.VerilogRename: - Use "_" to mangle names that conflict with Verilog keywords (previously "$") - Rewrite to operate on the whole AST to propogate mangled ports and module names - Make VerilogRename a Transform (was previously a Pass) - Renames are now propagated - Adds documentation for new VerilogRename This makes the VerilogRename Transform (previously a Pass) use an underscore ('_') instead of a dollar sign ('$') to mangle names that conflict with Verilog keywords. This prevents problems with potentially buggy tools that are not expecting '$' in Verilog names. This reimplements VerilogRename to be safe for name collisions that may occur anywhere in the AST, e.g., in ports, module names, circuit names, or in any statements/expressions. Previously, names were only mangled in statements and in place. This resulted in problems where renames of ports in a child's namespace would not be guaranteed to be mangled the same way in a parent's namespace. The algorithm is reimplemented to walk all modules in reverse topological order (from leafs to main) and relying on a RenameMap to track name changes. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Oct 05, 2018
-
-
Schuyler Eldridge authored
Use "_" for Inline Name Mangling, Respect Namespaces
-
- Oct 04, 2018
-
-
Schuyler Eldridge authored
Summary of changes: - Use "_" as an inlining delimiter instead of "$" - Makes inlining avoid namespace conflicts This changes the delimiter used for inlining to "_" instead of "$". This avoids problems with buggy parsers that may not handle "$" correctly. As ClockListTransform relies on the explicit use of "$", the delimiter is a FIRRTL-private val that the ClockListTransform overrides (to the original "$"). Namespace conflicts could occur previously, but are very rare as users will almost never use "$" in a name (even though it's allowed by both the FIRRTL and Verilog specifications). Moving to "_" increases the probability of namespace conflicts occurring. This adds explicit checking that inlined names will not introduce namespace conflicts and that generated names are prefix unique (as defined in the spec). Note: inlined modules may not have unique prefixes. A test is included that this is the case and an ignored test shows what prefix uniqueness would look like. MISC: - [skip chisel tests]: Changing the delimiter causes the Chisel InlineSpec to fail as this explicitly checks for "$". Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This makes findValidPrefix and enumerateNames both private to FIRRTL (previously, these were private). This enables their use for name generation by other FIRRTL passes/transforms. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This adds a method, cloneUnderlying, to Namespace that returns a copy of the underlying mutable.HashSet. This is useful for constructing a Namespace that you would like to manipulate manually without using Namespace's methods to generate temporaries. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Oct 02, 2018
-
-
albertchen-sifive authored
-
- Sep 28, 2018
-
-
Ben Marshall authored
* Merge makefile changes from dev/specification-fixes - New top level makefile target: `specification` - Builds the specification document. * Number all code examples. This is more a change of convenience than anything. Referring to syntax examples is much easier when they are numbered! This commit is in the context of freechipsproject/firrtl#890 - Updating examples and syntax specification is made easier if they are numbered. - Change `verbatim` environments to `lstlisting` - Add very basic keyword highlighting. - Rebuild specification PDF. On branch dev/number-code-examples Changes to be committed: modified: spec/spec.pdf modified: spec/spec.tex
-
Schuyler Eldridge authored
This adds a utility, expandPrefixes, that expands a string into all possible prefixes based on a delimiter. Any repeated occurrence of the delimiter is viewed as a contributing to a prefix. E.g., "foo_bar" expands to Seq("foo_", "foo_bar"). This is useful for inlining and keyword mangling on LowForm. You would like to be able to generate a new name that is prefix unique with respect to a namespace. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Sep 27, 2018
-
-
Schuyler Eldridge authored
Enforce port uniqueness in Chirrtl/High Checks
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
alonamid authored
When different levels of the circuit were annotated, the TopWiring signals of the lower levels would "run-over" the TopWiring signals of the higher levels
-
- Sep 22, 2018
-
-
Albert Magyar authored
-
- Sep 14, 2018
-
-
albertchen-sifive authored
-
- Sep 08, 2018
-
-
alonamid authored
* bug fixes in TopWiring
-
- Aug 31, 2018
-
-
albertchen-sifive authored
add description nodes, transform; modify VerilogEmitter to emit comments
-
- Aug 30, 2018
-
-
Schuyler Eldridge authored
[F764.3] Add explicit SystemVerilogCompiler class Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This adds a SystemVerilogCompiler class that extends, without modifying, the existing VerilogCompiler. This is used by FIRRTL's Driver and will cause a warning to be emitted indicating that the SystemVerilogCompiler behaves the same as the VerilogCompiler. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
[F764.1] Bump scopt from 3.6.0 -> 3.7.0 Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This provides support for increased introspection of options inside of scopt, e.g., getting an options short option (shortOpt). Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Aug 29, 2018
-
-
Jim Lawson authored
* Filter resource file names to avoid including the same file multiple times. Addresses issue #882. * Use a Set instead of a Map to filter Verilog files. * Use canonical paths for file name comparison and unify name generation. Provide a common method for copying resources to a directory to ensure the same resource ends up with the same name if it's copied by multiple clients. * Reduce confusion - another absolute -> canonical switch. Use the canonical path on the verilator command line for the filter additional Verilog sources.
-
- Aug 25, 2018
-
-
Jack Koenig authored
-
- Aug 24, 2018
-
-
Jack Koenig authored
Previously, mems marked no dedup would prevent mems with the same instance name in other modules from deduping
-
Schuyler Eldridge authored
[764: opts/annos] Easy conversion of String => LogLevel.value
-
Schuyler Eldridge authored
This adds an apply method to the LogLevel object for conversion from a String to a LogLevel.value. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Aug 22, 2018
-
-
Andrew Waterman authored
Allow the #delay before random initialization to be overridden
-
Andrew Waterman authored
The default of 0.002 can be less than the Verilog time precision, which effectively causes it to be rounded down to 0. So, allow the user to `define RANDOMIZE_DELAY to some other value. If the macro is not defined, the old behavior is preserved.
-
Jim Lawson authored
* Bump to Scala 2.12.6 and make it the default. * Use Scala 2.11.12 for chisel tests. * Try with Scala 2.12.4.
-
- Aug 18, 2018
-
-
Chick Markley authored
- Fixed edge case file name that starts with . and has no suffix
-
- Aug 15, 2018
-
-
Leway Colin authored
-
- Aug 11, 2018
-
-
Deborah Soung authored
-
- Aug 09, 2018
-
-
albertchen-sifive authored
Fixes #780
-
- Aug 08, 2018
-
-
Schuyler Eldridge authored
- makes RemoveWires properly include registers in dependency graph - adds an apply method to WRef for DefNode - adds a test case requiring register reordering
-