| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|\
| |
| | |
select: do not select inside black-/white- boxes unless '=' prefix used
|
| | |
|
| | |
|
|\ \
| | |
| | | |
tests: fix various/plugin.sh when PREFIX != /usr/local/share
|
| | | |
|
|\ \ \
| | | |
| | | | |
design: -import to not count black/white-boxes as candidates for top
|
| | |/
| |/| |
|
|\ \ \
| | | |
| | | | |
sim: Fix handling of constant-connected cell inputs at startup
|
| | |/
| |/|
| | |
| | | |
Signed-off-by: David Shah <dave@ds0.me>
|
| | |
| | |
| | |
| | | |
Fixes #1821.
|
|\ \ \
| | | |
| | | | |
Improved rewrite code for writing to bit slice
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| |/ /
|/| | |
|
| |/
|/| |
|
| | |
|
|\ \
| | |
| | | |
ast: Fix handling of identifiers in the global scope
|
| |/
| |
| |
| | |
Signed-off-by: David Shah <dave@ds0.me>
|
|/ |
|
|\
| |
| | |
zinit: handle $__DFFS?E?_[NP][NP][01] too
|
| | |
|
|\ \
| | |
| | | |
Fix handling of ternary with constant condition
|
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
By operating at a layer of abstraction over the rather clumsy Intel primitives,
we can avoid special hacks like `dffinit -highlow` in favour of simple techmapping.
This also makes the primitives much easier to manipulate, and more descriptive
(no more cyclonev_lcell_comb to mean anything from a LUT2 to a LUT6).
|
|/
|
|
|
|
|
|
|
|
|
| |
Detect the places in the $alu where the carry bit is constant (due to
const A[i] == B[i] ^ BI) and split it into smaller $alu at these points.
Also, make the existing const-carry detection for low bits more generic
(now handles cases where both BI and CI are constant, but not equal to
one another).
Fixes #1912.
|
|
|
|
| |
Fixes #1704.
|
|\
| |
| | |
support using previously declared types/localparams/parameters in package
|
| |
| |
| |
| |
| |
| |
| | |
(parameters in systemverilog packages can't actually be overridden, so
allowing parameters in addition to localparams doesn't actually add any
new functionality, but it's useful to be able to use the parameter
keyword also)
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Fixes #1500.
|
| | |
|
|\ \
| | |
| | | |
ice40/ecp5: add support for both 1364.1 and Synplify/LSE RAM/ROM attributes
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit tries to carefully follow the documented behavior of LSE
and Synplify. It will use `syn_ramstyle` attribute if there are any
write ports, and `syn_romstyle` attribute otherwise.
* LSE supports both `syn_ramstyle` and `syn_romstyle`.
* Synplify only supports `syn_ramstyle`, with same values as LSE.
* Synplify also supports `syn_rw_conflict_logic`, which is not
documented as supported for LSE.
Limitations of the Yosys implementation:
* LSE/Synplify support `syn_ramstyle="block_ram,no_rw_check"`
syntax to turn off insertion of transparency logic. There is
currently no way to support multiple valued attributes in
memory_bram. It is also not clear if that is a good idea, since
it can cause sim/synth mismatches.
* LSE/Synplify/1364.1 support block ROM inference from full case
statements. Yosys does not currently perform this transformation.
* LSE/Synplify propagate `syn_ramstyle`/`syn_romstyle` attributes
from the module to the inner memories. There is currently no way
to do this in Yosys (attrmvcp only works on cells and wires).
|
| | |
| | |
| | |
| | | |
LSE/Synplify use case insensitive matching.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit tries to carefully follow the documented behavior of LSE
and Synplify. It will use `syn_ramstyle` attribute if there are any
write ports, and `syn_romstyle` attribute otherwise.
* LSE supports both `syn_ramstyle` and `syn_romstyle`.
* Synplify only supports `syn_ramstyle`, with same values as LSE.
* Synplify also supports `syn_rw_conflict_logic`, which is not
documented as supported for LSE.
Limitations of the Yosys implementation:
* LSE/Synplify appear to interpret attribute values insensitive
to case. There is currently no way to do this in Yosys (attrmap
can only change case of attribute names).
* LSE/Synplify support `syn_ramstyle="block_ram,no_rw_check"`
syntax to turn off insertion of transparency logic. There is
currently no way to support multiple valued attributes in
memory_bram. It is also not clear if that is a good idea, since
it can cause sim/synth mismatches.
* LSE/Synplify/1364.1 support block ROM inference from full case
statements. Yosys does not currently perform this transformation.
* LSE/Synplify propagate `syn_ramstyle`/`syn_romstyle` attributes
from the module to the inner memories. There is currently no way
to do this in Yosys (attrmvcp only works on cells and wires).
|
| | |
| | |
| | |
| | |
| | |
| | | |
iCE40 does not have LUTRAM. This was erroneously added in commit
caab66111e2b5052bd26c8fd64b1324e7e4a4106, and tested for BRAM,
essentially a duplicate of the "dpram.ys" test.
|
| |/
|/| |
|