| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |/ |
|
|/
|
|
| |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|\
| |
| | |
flowmap: new techmap pass
|
| | |
|
|\ \
| |/
|/| |
opt_expr: refactor and improve simplification of comparisons
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The idea behind this simplification is that a N-bit signal X being
compared with an M-bit constant where M>N and the constant has Nth
or higher bit set, it either always succeeds or always fails.
However, the existing implementation only worked with one-hot signals
for some reason. It also printed incorrect messages.
This commit adjusts the simplification to have as much power as
possible, and fixes other bugs.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Before this commit, only unsigned comparisons with all-0 would be
simplified. This commit also makes the code handling such comparisons
to be more rigorous and not abort on unexpected input.
|
|\ \
| | |
| | | |
anlogic: implement DRAM initialization
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As the TD tool doesn't accept the DRAM cell to contain unknown values in
the initial value, the initialzation support of DRAM is previously
skipped.
Now add the support by add a new pass to determine unknown values in the
initial value.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
|\ \ \ |
|
| |\ \ \
| | | | |
| | | | | |
Initialization of Anlogic DFFs
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
As dffinit has already supported for different initialization strings
for DFFs and check for re-initialization, initialization of Anlogic
DFFs are now ready to go.
Support for set the init values of Anlogic DFFs.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| | | | | | |
|
| | | |_|/
| | |/| | |
|
| |\ \ \ \
| | | | | |
| | | | | | |
synth: add k-LUT mode
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| |\| | | |
| | | | | |
| | | | | | |
cmp2lut: new techmap pass
|
| | |/ / / |
|
|/ / / /
| | | |
| | | |
| | | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|\ \ \ \
| |/ / /
|/| | | |
Fix typographical and grammatical errors and inconsistencies
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\ \ \
| | | |
| | | | |
opt_lut: eliminate LUTs evaluating to constants or inputs
|
|/ / / |
|
| | |
| | |
| | |
| | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|\ \ \
| | | |
| | | | |
anlogic: add latch cells
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | | |
Add latch cells to Anlogic cells replacement library by copying other
FPGAs' latch code to it.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
| | |
| | |
| | |
| | | |
in techlibs/ecp5/Makefile.inc to permit out-of-tree builds
|
| | | |
|
|\ \ \
| | | |
| | | | |
proc_clean: remove any empty cases, if possible to do safely
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Previously, only completely empty switches were removed.
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Clifford Wolf <clifford@clifford.at>
|
|\ \ \ \ |
|
| |\ \ \ \
| | |/ / /
| |/| | | |
manual: document $meminit cell and memory_* passes
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |\ \ \ \
| | | | | |
| | | | | | |
tcl: add support for passing arguments to scripts
|
| | | |/ /
| | |/| | |
|
| |\ \ \ \
| | |/ / /
| |/| | | |
memory_collect: do not truncate 'x from \INIT
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|