| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
If a local variable is always assigned before it is used, then adding
nosync prevents latches from being needlessly generated.
|
| |
|
|
|
|
|
|
|
|
| |
- Prevent unmatched expected error patterns from self-matching
- Prevent infinite recursion on unmatched expected warnings
- Always print the error message for unmatched error patterns
- Add test coverage for all unmatched message types
- Add test coverage for excess matched logs and warnings
|
| |
|
|
|
|
|
| |
- add generated doubleslash.v to .gitignore
- ensure backend verilog can be read again
|
| |
|
|
|
|
| |
Fixes #3117.
|
|
|
|
|
| |
I also removed the unnecessary shadowing of `width_hint` and `sign_hint`
in the corresponding case in `simplify()`.
|
|
|
|
|
|
|
|
|
|
|
| |
The preprocessor currently destroys double slash containing escaped
identifiers (for example \a//b ). This is due to next_token trying to
convert single line comments (//) into /* */ comments. This then leads
to an unintuitive error message like this:
ERROR: syntax error, unexpected '*'
This patch fixes the error by recognizing escaped identifiers and
returning them as single token. It also adds a testcase.
|
|
|
|
| |
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
|
| |
|
|
|
|
| |
Co-authored-by: Eddie Hung <eddie@fpgeh.com>
|
|
|
| |
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
|
|
|
|
|
|
| |
* remove `write_edif` and `write_blif` options
* remove redundant `abc` call before muxcover
* update style
|
| |
|
| |
|
|
|
|
| |
Wrap initial blocks with a NO_INIT so that tests for archs without register initialization feature don't fail.
|
|
|
|
| |
Signed-off-by: Patrick Urban <patrick.urban@web.de>
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
- Attempt to lookup a derived module if it potentially contains a port
connection with elaboration ambiguities
- Mark the cell if module has not yet been derived
- This can be extended to implement automatic hierarchical port
connections in a future change
|
|
|
|
| |
Fixes #3047.
|
|
|
|
| |
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- FfData now keeps track of the module and underlying cell, if any (so
calling emit on FfData created from a cell will replace the existing cell)
- FfData implementation is split off to its own .cc file for faster
compilation
- the "flip FF data sense by inserting inverters in front and after"
functionality that zinit uses is moved onto FfData class and beefed up
to have dffsr support, to support more use cases
|
|\
| |
| | |
Fix "make vgtest"
|
| |
| |
| |
| | |
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
|
| |
| |
| |
| |
| |
| | |
This enables the usage of declarations of wand or wor with a base type
of logic, integer, or a typename. Note that declarations of nets with
2-state base types is still permitted, in violation of the spec.
|
|/
|
|
|
|
|
|
| |
- Root AST_PREFIX nodes are now subject to genblk expansion to allow
them to refer to a locally-visible generate block
- Part selects on AST_PREFIX member leafs can now refer to generate
block items (previously would not resolve and raise an error)
- Add source location information to AST_PREFIX nodes
|
|
|
|
|
|
|
|
|
| |
* Add testcase
* Cleanup some state at end of abc9
* Re-assign abc9_box_id from scratch
* Suppress delete unless prep_bypass did something
|
|
|
|
|
| |
* Add testcase
* holes module to instantiate cells with NEW_ID
|
|
|
|
|
|
|
|
|
|
|
| |
* Add close bracket
* Add testcase
* Replace cell type/param if in unmap_design
* Improve abc9_box error message too
* Update comment as per review
|
|
|
|
|
|
|
|
| |
This is accomplished by generating a unique name for the genvar,
renaming references to the genvar only in the loop's initialization,
guard, and incrementation, and finally adding a localparam inside the
loop body with the original name so that the genvar can be shadowed as
expected.
|
|
|
|
|
| |
In line with other tools, this adds an extra wrapping block around such
for loops to appropriately scope the variable.
|
|
|
|
|
|
|
|
|
|
| |
Previously, opt_clean would reconnect all ports (including FF Q ports)
to a "canonical" SigBit chosen by complex rules, but would leave the
init attribute on the old wire. This change applies the same
canonicalization rules to the init attributes, ensuring that init moves
to wherever the Q port moved.
Part of another jab at #2920.
|
|
|
|
|
|
|
|
|
| |
* deal with active-low tristate
* remove empty port
* update sim models
* add expected lut1 to tests
|
|
|
|
| |
Fixes #2962.
|
|
|
|
| |
If all of us are wide, then none of us are!
|
|
|
|
| |
This unlocks wide port recognition by default.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- User-defined types must be data types. Using a net type (e.g. wire) is
a syntax error.
- User-defined types without a net type are always variables (i.e.
logic).
- Nets and variables can now be explicitly declared using user-defined
types:
typedef logic [1:0] W;
wire W w;
typedef logic [1:0] V;
var V v;
Fixes #2846
|
|
|
|
|
|
|
|
|
|
| |
These parts keep rereading a Verilog module, then using chparam
to test it with various parameter combinations. Since the default
parameters are on the large side, this spends a lot of time
needlessly elaborating the default parametrization that will then
be discarded. Fix it with -deref and manual hierarchy call.
Shaves 30s off the test time on my machine.
|
| |
|
| |
|
| |
|
|
|
|
| |
Partial #2920 fix.
|
|
|
|
|
|
|
|
| |
If width of a case expression was large, explicit patterns could cause
the existing logic to take an extremely long time, or exhaust the
maximum size of the underlying set. For cases where all of the patterns
are fully defined and there are no constants in the case expression,
this change uses a simple set to track which patterns have been seen.
|