| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Anlogic FPGAs all have two kinds of BRAMs, one is 9bit*1K when being
true dual port (or 18bit*512 when simple dual port), the other is
16bit*2K.
Supports mapping of these two kinds of BRAMs. 9Kbit BRAM in SDP mode and
32Kbit BRAM with 8bit width are not support yet.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
|
|
|
| |
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
|
| |
|
|
|
|
|
|
| |
* 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>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
|
|
| |
* Add close bracket
* Add testcase
* Replace cell type/param if in unmap_design
* Improve abc9_box error message too
* Update comment as per review
|
|
|
|
|
|
|
|
|
| |
* deal with active-low tristate
* remove empty port
* update sim models
* add expected lut1 to tests
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Fixes #2061.
|
| |
|
|
|
|
|
| |
Also properly skip read ports with init value or reset when not making
use of make_outreg. Proper support for matching those will land later.
|
|
|
|
| |
Signed-off-by: gatecat <gatecat@ds0.me>
|
|
|
|
| |
Signed-off-by: gatecat <gatecat@ds0.me>
|
|
|
|
| |
Signed-off-by: gatecat <gatecat@ds0.me>
|
|
|
|
| |
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Co-authored-by: Grzegorz Latosiński <glatosinski@antmicro.com>
Co-authored-by: Maciej Kurc <mkurc@antmicro.com>
Co-authored-by: Tarachand Pagarani <tpagarani@quicklogic.com>
Co-authored-by: Lalit Sharma <lsharma@quicklogic.com>
Co-authored-by: kkumar23 <kkumar@quicklogic.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Calling log_signal is problematic for several reasons:
- with recent changes, empty string is serialized as { }, which violates
the "no spaces in IdString" rule
- the type (plain / real / signed / string) is dropped, wrongly conflating
functionally different values and potentially introducing a subtle
elaboration bug
Instead, use a custom simple serialization scheme.
|
|
|
|
|
|
|
| |
This prevents issues like processes in whiteboxes triggering an error in
the JSON backend.
Signed-off-by: gatecat <gatecat@ds0.me>
|
|
|
|
| |
values.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The presence of IS_*_INVERTED on FD* cells follows Vivado, which
apparently has been decided by a dice roll. Just assume false if the
parameter doesn't exist.
Fixes #2559.
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This test pretty much passes by accident — the `prep` command runs
memory_collect without memory_dff first, which prevents merging read
register into the memory, and thus blocks block RAM inference for a
reason completely unrelated to the attribute.
The attribute setting didn't actually work because it was set on the
containing module instead of the actual memory.
|
|
|
|
|
|
|
|
|
| |
When the register being merged into the EN signal happens to be a $sdff,
the current code creates a new $mux for every bit, even if they happen
to be identical (as is usually the case), preventing proper grouping
further down the flow. Fix this by adding a simple cache.
Fixes #2409.
|
|\
| |
| | |
synth_nexus: Initial implementation
|
| |
| |
| |
| | |
Signed-off-by: David Shah <dave@ds0.me>
|
|\ \
| |/
|/| |
Clean up and parallelize testsuite
|
| | |
|