| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \ \ \
| | | | |
| | | | | |
Initialization of Anlogic DFFs
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Sometimes the FF cell might be initialized during the map process, e.g.
some FPGA platforms (Anlogic Eagle and Lattice ECP5 for example) has
only a "SR" pin for a FF for async reset, that resets the FF to the
initial value, which means the async reset value should be set as the
initial value. In this case the DFFINIT pass shouldn't reinitialize it
to a different value, which will lead to error.
Add a "-noreinit" parameter for the safeguard. If a FF is not
technically initialized before DFFINIT pass, the default value should be
set to x.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
On some platforms the string to initialize DFF might not be "high" and
"low", e.g. with Anlogic TD it's "SET" and "RESET".
Add a "-strinit" parameter for dffinit to allow specify the strings used
for high and low.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
|\ \ \ \ \
| | | | | |
| | | | | | |
opt_lut: elimination fixes
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Otherwise, some LUTs will be missed during elimination.
|
| | | | | | |
|
| | |/ / /
| |/| | | |
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The initial list of hits was generated with the codespell command
below, and each hit was evaluated and fixed manually while taking
context into consideration.
DIRS="kernel/ frontends/ backends/ passes/ techlibs/"
DIRS="${DIRS} libs/ezsat/ libs/subcircuit"
codespell $DIRS -S *.o -L upto,iff,thru,synopsys,uint
More hits were found by looking through comments and strings manually.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Previously, only completely empty switches were removed.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The semantics of an RTLIL constant that has less bits than its
declared bit width is zero padding. Therefore, if the output of
memory_collect will be used for simulation, truncating 'x from
the end of \INIT will produce incorrect simulation results.
|
|/ / /
| | |
| | |
| | | |
Signed-off-by: David Shah <davey1576@gmail.com>
|
| | | |
|
|\ \ \
| | | |
| | | | |
select: print selection if a -assert-* flag causes an error
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
deminout fixes
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: David Shah <dave@ds0.me>
|
| |/ / /
| | | |
| | | |
| | | | |
Signed-off-by: David Shah <dave@ds0.me>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|\ \ \ \
| | | | |
| | | | | |
equiv_opt: new command, for verifying optimization passes
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This allows avoiding techmap crashes e.g. because of large memories
in white-box cell models.
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
memory_bram: Fix initdata bit order after shuffling
|
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In some cases the memory_bram pass shuffles the order of the bits in a
memory's RD_DATA port. Although the order of the bits in the WR_DATA and
WR_EN ports is changed to match the RD_DATA port, the order of the bits
in the initialization data is not.
This causes reads of initialized memories to return invalid data (until
the initialization data is overwritten).
This commit fixes the bug by shuffling the initdata bits in exactly the
same order as the RD_DATA/WR_DATA/WR_EN bits.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Proof-of-concept: preserve naming through ABC using dress
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: David Shah <dave@ds0.me>
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
rename: add -src, for inferring names from source locations
|
| | |_|/ / /
| |/| | | | |
|
|\ \ \ \ \ \
| |_|_|/ / /
|/| | | | | |
lut2mux: handle 1-bit INIT constant in $lut cells
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This pass already handles INIT constants shorter than 2^width, but
that was not done for the recursion base case.
|
| |/ / / / |
|
| | | | | |
|
| | | | | |
|
| |/ / /
|/| | | |
|
|/ / /
| | |
| | |
| | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
These are always either buffers or inverters, and keeping the larger
LUT preserves more source-level information about the design.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|\ \ \
| | | |
| | | | |
Add option to only use DFFE is the resulting E signal would be use > N times
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|\ \ \ \
| |/ / /
|/| | | |
Splits SigSpec into bits before calling check_signal_in_fanout (solves #675)
|
| | | |
| | | |
| | | |
| | | | |
Sig before setting the port to new signal
|
| | | | |
|
| | | | |
|