| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Newer GCCs emit the following warning for opt_dff:
passes/opt/opt_dff.cc:560:17: warning: operation on ‘ff.Yosys::FfData::has_clk’ may be undefined [-Wsequence-point]
560 | ff.has_clk = ff.has_ce = ff.has_clk = false;
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Which is correct: the order of whether the read or write of has_clk
occurs first is undefined since there is no sequence point between them.
This is almost certainly just a typo/copy paste error and objectively
wrong, so just fix it.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
|
|
|
|
| |
Fixes #3117.
|
|
|
|
| |
Fixes #3113.
|
|
|
|
|
|
|
| |
This should remove instances of zero-width sigspecs in the netlist,
avoiding problems in the Verilog backend with emitting them.
See #3103.
|
|
|
|
| |
This is a fixed version of #3072.
|
|
|
|
| |
Co-authored-by: Eddie Hung <eddie@fpgeh.com>
|
|
|
|
| |
Fixes #3078.
|
|\
| |
| | |
Add genlib support to ABC command
|
| | |
|
| |
| |
| |
| | |
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
|
|
|
| |
Fixes #3064.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
| |
This will enable other features to use same core logic for replacing an
existing AstModule with a newly elaborated version.
|
|
|
|
| |
Also fixes some completely broken code in extract_reduce.
|
|
|
|
| |
Fixes #3047.
|
|
|
|
|
|
| |
This if condition is repeated verbatim, and I can't imagine a legitimate
way the inputs could change in between. I imagine it's a copy/paste
mistake.
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- *_en is split into *_ce (clock enable) and *_aload (async load aka
latch gate enable), so both can be present at once
- has_d is removed
- has_gclk is added (to have a clear marker for $ff)
- d_is_const and val_d leftovers are removed
- async2sync, clk2fflogic, opt_dff are updated to operate correctly on
FFs with async load
|
| |
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
Mutating the SigMap by adding a new connection will throw off FfInitVals
index. Work around this by removing the relevant init values from index
whenever we connect nets, then re-add the new init value.
Should fix #2920.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Fixes #2962.
|
|
|
|
| |
If all of us are wide, then none of us are!
|
|
|
|
| |
This unlocks wide port recognition by default.
|
| |
|
| |
|
|\
| |
| | |
logger: Add -check-expected subcommand.
|
| |
| |
| |
| |
| | |
This allows us to have multiple "expect this warning" calls in a single
long script, covering only as many passes as necessary.
|
|/
|
|
| |
This fixes wide port recognition in some cases.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This also aligns the functionality:
- in all cases, the onehot attribute is used to create appropriate
constraints (previously, opt_dff didn't do it at all, and share
created one-hot constraints based on $pmux presence alone, which
is unsound)
- in all cases, shift and mul/div/pow cells are now skipped when
importing the SAT problem (previously only memory_share did this)
— this avoids creating clauses for hard cells that are unlikely
to help with proving the UNSATness needed for optimization
|
|
|
|
| |
Partial #2920 fix.
|
|
|
|
| |
Fixes #2912.
|
|
|
|
| |
Fixes #2907.
|
|
|
|
|
|
| |
This will make more sense when the new transparency masks land.
Fixes #2902.
|