| Age | Commit message (Collapse) | Author |
|
|
|
This includes the built-in functions in BackendCompilationUtilities
which are a public API
|
|
Cleanup verilog emitter casts
|
|
Many tools don't except 'always @(posedge 1'h0)' so we assign the
literal to a wire and use that as the posedge target.
|
|
[skip formal checks]
Adds new InlineCastsTransform to the VerilogEmitter which removes
Statements that do nothing but cast by inlining the cast Expression
|
|
|
|
Fetch and checkout the base branch before attempting to inspect the log
|
|
[skip formal checks]
* ConstProp FoldEqual/FoldNotEqual propagate boolean (non-)equality with true/false
* transform InlineNots
* transform back-to-back Nots into straight rename
* swap mux with inverted select
Co-authored-by: Jack Koenig <jack.koenig3@gmail.com>
|
|
This removes the incorrect short --firrtl-source option. This was
supposed to be the helpValueName.
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>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
freechipsproject/infer-resets-last-connect-semantics
Infer resets last connect semantics
|
|
* Move Map lookup into closure so it only occurs if necessary
* Replace gender with flow and improve code clarity
|
|
InferResets will now support last connect semantics (within the same
scope) when determining the concrete reset type for components of type
Reset. This only includes *unconditional* last connects; it remains
illegal to drive a component of type Reset with different concrete types
under differing when conditions.
For example, the following is now legal:
input a : UInt<1>
input b : AsyncReset
output z : Reset
z <= a
z <= b
The second connect will when and z will be of type AsyncReset.
The following remains illegal:
input a : UInt<1>
input b : AsyncReset
input c : UInt<1>
output z : Reset
z <= a
when c :
z <= b
This commit also ensures that components of type Reset with no drivers
(or only invalidation) default to type UInt<1>. This fixes a bug where
the transform would crash with such input.
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
FirrtlOption and CircuitOption represent, respectively, something that
is convertible to FirrtlOptions or something that is convertible to a
FirrtlCircuitAnnotation. Neither of these is intended to be serialized
automatically in output JSON.
This has the effect of *not* JSON-serializing the
FirrtlCircuitAnnotation. This serialization is supposed to be to a
file via an emitter.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
The switch to using our own Logger triggered a latent bug, described in comments to #1258. Make the `val logger` introduced by the 'trait LazyLogging` protected.
|
|
This moves the --no-dedup option to be FIRRTL-stage specific as
opposed to a global option common to all stages.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
|
|
Remove scala-logging fully in favor of our own logger
|
|
There was some vestigial logging that conflicts with the homebrewed
logger used by most of the codebase
|
|
* Types containing bundles can't generally be converted to a single mask granularity
* Update ReplSeqMemTests to check for illegal masks
|
|
[Mergify] Automatically merge backport PRs when ready
|
|
|
|
|
|
* Closes #1242
|
|
Use Mergify to automate backporting to 1.2.x
|
|
|
|
getSimpleName considered harmful
|
|
This changes uses of `getSimpleName` to `getName`. The former throws
idiotic exceptions under Java 8, e.g., `getSimpleName` will fail if
used on a class inside an object.
This fixes a bug where any call to the `name` method of a custom
transform defined inside an object (or in an environment wrapping
things in objects like a REPL) will throw a malformed class name
exception. E.g., if you do this and run with `-ll info` or your custom
transform deletes annotations.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
* Add spec for Analog type and attach statement
* Describe role of attaches in partial connection algorithm
* Change references that describe ground types where appropriate
* Closes #1194
* Fix typo
|
|
|
|
|
|
|
|
Add separate Issue and PR templates
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
Recursive literal lookup needs to be guarded against combinational loops
Added a test-case to illustrate the issue when CheckResets is run before CheckCombLoops
|
|
|
|
Supply a trait to allow user annotations to provide JsonProtocol type hints
|
|
|
|
* Closes #1162
* Instances of extmodules remain in the final hierarchy
* Extmodule definitions are not renamed or duplicated
* The rest of the pass may proceed as normal
|
|
* Fixes #1154
* Tests that #1154 example produces SyntaxErrorsException
* Generally helps catch trailing syntax errors
* Performance-neutral relative to previous grammar
* Recommended by antlr4 devs, can help performance in some cases
* See antlr/antlr4#1540
|
|
Guard initial blocks in emitted Verilog with `ifndef SYNTHESIS
|
|
|
|
Change findInstancesInHierarchy to return implicit top instance
|
|
|
|
|
|
|
|
Co-Authored-By: Jack Koenig <koenig@sifive.com>
|