Lofty
8a09cc5463
analogdevices: LUT RAM only on positive edge
2026-03-05 05:37:13 +00:00
Lofty
dea8c275ff
analogdevices: DSP tweaks
2026-03-05 05:37:12 +00:00
Lofty
39cb61615f
analogdevices: DSP inference
2026-03-05 05:37:12 +00:00
Lofty
891b89f60d
analogdevices: remove cells_xtra
2026-03-05 05:37:12 +00:00
Lofty
4954fc980f
analogdevices: timings for t40lp
2026-03-05 05:37:12 +00:00
Lofty
2c3876671b
analogdevices: use single tech param
2026-03-05 05:37:12 +00:00
Lofty
0a2b6a4f21
analogdevices: expreso does not care about clock buffers
2026-03-05 05:37:12 +00:00
Lofty
6ee0bfa913
analogdevices: prepare for t40lp timings
2026-03-05 05:37:12 +00:00
Krystine Sherwin
9dcffc3dbf
analogdevices: Adding RBRAM2 and -tech
2026-03-05 05:37:12 +00:00
Krystine Sherwin
99e26d80b0
analogdevices: (some) Native BRAM
...
Specifically, the SDP configurations for RBRAM (ignoring 2048x09 because it makes the memlib format unhappy).
Drop the unused defines from the synth pass.
Remove comments from the lutram files referencing xilinx.
2026-03-05 05:37:12 +00:00
Krystine Sherwin
376f746bc9
analogdevices: Native LUTRAM primitives
2026-03-05 05:37:12 +00:00
Lofty
30a03886a5
analogdevices: LUTRAM config
2026-03-05 05:37:12 +00:00
Lofty
ae5325fe53
analogdevices: update timing model
2026-03-05 05:37:12 +00:00
Lofty
85eb07d14d
analogdevices: user retargeting
2026-03-05 05:37:12 +00:00
Lofty
c9f6d7b2d4
analogdevices: more housekeeping
2026-03-05 05:37:12 +00:00
Lofty
f659cbd159
analogdevices: remove some extra cells!
2026-03-05 05:37:12 +00:00
Lofty
6f205b41f5
test suite
2026-03-05 05:37:12 +00:00
Lofty
4f2f064262
synth_analogdevices: remove scopeinfo cells
2026-03-05 05:37:12 +00:00
Lofty
d5ea7f7016
Create synth_analogdevices
2026-03-05 05:37:12 +00:00
YRabbit
26dc01102e
GOWIN. Disable read-before-write mode.
...
According to the latest documentation from GOWIN -
"UG285-1.4E Gowin BSRAM & SSRAM User Guide"
The dual port BSRAM of all 55nm devices (including GW1N, GW2A and GW1A
series) does not support the read-before-write mode (WRITE_MODE = 2)
Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2026-03-05 09:17:37 +10:00
Miodrag Milanovic
7f1f247c56
gowin: remove spurious warning
2026-02-27 13:12:32 +01:00
Krystine Sherwin
2386923b8f
gowin: Fix bram ADA byte enables
2026-02-22 09:00:37 +01:00
Miodrag Milanović
e4b32d6aae
Merge pull request #5670 from max-kudinov/gowin_mult
...
Gowin: Add DSP inference for GW1N and GW2A
2026-02-12 14:30:27 +01:00
Maxim Kudinov
5b94a97fb3
gowin: synth_gowin: Add -nodsp option
2026-02-12 13:58:47 +03:00
Maxim Kudinov
542b29fa6a
gowin: synth_gowin: Merge flatten label with coarse
2026-02-12 13:58:47 +03:00
Maxim Kudinov
5ea073d45e
gowin: format MULT instances
2026-02-12 13:35:49 +03:00
Gus Smith
e3db8fee6f
Merge pull request #3459 from gs-jgj/feature_dsp48e1_presub
...
Add support for subtract in preadder
2026-02-11 08:02:18 -08:00
Emil J
992e64342c
Merge pull request #5621 from rocallahan/remove-opt-sort
...
Remove `Design::sort()` calls from optimization passes
2026-02-04 16:55:56 +01:00
Jeppe Johansen
44afd4bbdd
Add support for subtraction in preadder
2026-02-03 08:31:01 -08:00
Krystine Sherwin
c3ffb48a6b
Add and use fix_mod.py
2026-01-28 07:45:58 +13:00
Maxim Kudinov
808ec8c04b
gowin: synth_gowin: Add MULT inference for GW1N and GW2A
2026-01-25 22:10:08 +03:00
Robert O'Callahan
e87bb65956
Move `Design::sort()` calls out of `opt` and `opt_clean` passes into the synth passes that need them.
2026-01-23 01:14:35 +00:00
YRabbit
8a78f2f7c5
Gowin. Fix style.
...
Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2026-01-05 20:07:31 +10:00
YRabbit
ea90f54783
Gowin. Implement byte enable.
...
Enable write port with byte enables for BSRAM primitives.
Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2026-01-03 17:42:49 +10:00
nataliakokoromyti
e289e4c893
add ID::src to allowlist instead
2025-12-17 01:31:32 -08:00
nataliakokoromyti
cf8be2bae7
Update ice40_wrapcarry.cc
2025-12-16 09:33:47 -08:00
Emil J. Tywoniak
1edc32dcd0
opensta, sdc_expand: mark as experimental
2025-11-19 15:31:17 +01:00
Emil J. Tywoniak
85d2702ef6
opensta, sdc_expand: fix help
2025-11-19 15:20:50 +01:00
Emil J. Tywoniak
411fc149df
opensta: refactor default command
2025-11-19 15:20:50 +01:00
Emil J. Tywoniak
a5b6c3cc19
opensta, sdc_expand: more scratchpad
2025-11-19 15:20:50 +01:00
Emil J. Tywoniak
6846168db3
opensta: opensta.exe scratchpad variable
2025-11-19 15:20:50 +01:00
Emil J. Tywoniak
5acb77cab1
sdc_expand, opensta: typos
2025-11-19 15:20:50 +01:00
Emil J. Tywoniak
7bc88d5c40
sdc_expand: cleanup
2025-11-19 15:20:50 +01:00
Emil J. Tywoniak
793594bd59
sdc_expand: log header
2025-11-19 15:20:50 +01:00
Emil J. Tywoniak
7bed6ec658
opensta: quiet blackbox warning
2025-11-19 15:20:50 +01:00
Emil J. Tywoniak
0c4105d72c
opensta: quiet net width mismatch warning
2025-11-19 15:20:50 +01:00
Emil J. Tywoniak
bbf1e4bca2
sdc_expand, opensta: start
2025-11-19 15:20:50 +01:00
Emil J. Tywoniak
f47540b950
techlibs: remove cells.lib
2025-11-14 15:40:14 +01:00
Emil J. Tywoniak
f2263642a4
xilinx: fix IdString memory leak
2025-11-13 14:10:52 +01:00
Emil J. Tywoniak
a915143768
ice40: fix IdString memory leak
2025-11-13 14:10:52 +01:00
Emil J. Tywoniak
bc3fc21248
microchip: fix IdString memory leak
2025-11-13 14:10:52 +01:00
KrystalDelusion
39fab4a07f
Makefile: Add gatemate genfiles
...
Allows files to be cleaned with `make clean`, without which it breaks out-of-tree builds if an in-tree build has previously run and subsequently cleaned.
2025-11-04 11:46:27 +13:00
YRabbit
2a3720921c
Gowin. Fix GW5A ADCs.
...
For these primitives, Gowin decided to use a different option for
describing ports—directly in the module header, i.e.
``` verilog
module ADC(input CLK);
```
instead of
``` verilog
module ADC(CLK);
input CLK;
```
Since this one-time parser becomes too confusing, it is easier to simply
add ADC descriptions as they are from a separate file, especially since
these primitives are only available in the GW5A series.
Test:
``` shell
yosys -p "read_verilog top.v; synth_gowin -json top-synth.json -family gw5a"
```
The old version of Yosys simply won't compile the design due to the lack
of port descriptions, while the new version will compile without errors.
Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2025-10-29 12:48:21 +10:00
Patrick Urban
14c1802b01
gatemate: fix SERDES CDR parameters
2025-10-27 15:47:48 +01:00
YRabbit
3956f103a9
Gowin. Handle the WRITE_MODE.
...
Process the WRITE_MODE in the GW5A series in a more concise manner.
You can check it in the same way as in
https://github.com/YosysHQ/yosys/pull/5440
Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2025-10-25 23:15:23 +01:00
YRabbit
64700dec65
Gowin. Disable unsupported BSRAM mode in GW5A
...
All supported (and planned to be supported) GW5A series chips do not
support the 2: Read-before-Write write mode.
Here, we prohibit the generation of BSRAM with this mode.
Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2025-10-23 09:59:56 +01:00
Maxim Kudinov
6535995005
synth_gowin: fix help hint style
2025-10-16 11:09:28 +01:00
Maxim Kudinov
8c347826f6
synth_gowin: make help description more clear
2025-10-16 11:09:28 +01:00
Maxim Kudinov
8f6d63c082
synth_gowin: make setundef an off by default option
2025-10-16 11:09:28 +01:00
YRabbit
02e40e8118
Gowin. Reduce the range of flip-flop types.
...
UG303-1.0E_Arora Ⅴ Configurable Function Unit (CFU) User Guide.pdf
specifies that the only flip-flop types supported in GW5 are DFFSE,
DFFRE, DFFPE, and DFFCE.
However, the bit streams generated by the vendor IDE also contain DFF
flip-flops, which are probably the result of optimisation, so we leave
them in the list of permitted items, but add a flag that will allow the
generation of completely correct output files, acceptable for further P&
R using vendor tools (they will not allow the use of flip-flops other
than the four specified in the netlist).
In the GW5 SemiDual Port BSRAM series, the primitive does not have
RESETA and RESETB ports—they are replaced by the RESET port, so we
separate the files for BSRAM generation, especially since in the future
we may have to take into account other, as yet unexplored, differences
in BSRAM.
Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2025-10-11 21:12:35 +10:00
Miodrag Milanović
869910055f
Merge pull request #3908 from YosysHQ/ecp5_2_lattice
...
synth_ecp5 and synth_nexus to synth_lattice
2025-10-08 13:07:33 +02:00
Ethan Sifferman
d5beb65d30
added SIMLIB_VERILATOR_COMPAT
2025-10-01 10:19:25 -07:00
Miodrag Milanovic
714603bf69
synth_nexus to synth_lattice
2025-09-26 19:45:03 +01:00
Miodrag Milanovic
58f9531bfb
enable ABC9 by default except for XO2/3/3D
2025-09-25 15:44:05 +01:00
Miodrag Milanović
4b9e4bfae9
Update techlibs/lattice/synth_lattice.cc
...
Co-authored-by: Lofty <dan.ravensloft@gmail.com>
2025-09-25 15:44:05 +01:00
Miodrag Milanovic
faf82a5ff5
Add help message for synth_ecp5
2025-09-25 15:44:05 +01:00
Miodrag Milanovic
47a2215fe0
Update filenames and location for test script
2025-09-25 15:44:05 +01:00
Miodrag Milanovic
4a7f94f1c1
Enable synth_ecp5 wrapper and copy sim files for backwards compatibility
2025-09-25 15:44:05 +01:00
Miodrag Milanovic
e7ac237499
Delete synth_ecp5
2025-09-25 15:44:03 +01:00
Miodrag Milanovic
cfe53b7395
Move diamond tests
2025-09-25 15:38:57 +01:00
Miodrag Milanovic
b94b39cd40
Special DP16KD model is required
2025-09-25 15:38:55 +01:00
Ethan Sifferman
0eb93c80e6
added ifndef SIMLIB_NOCONNECT
2025-09-24 20:50:47 -07:00
Emil J. Tywoniak
d30f7847d8
techmap: map $alu to $fa instead of relying on extract_fa
2025-09-23 17:05:12 +02:00
Robert O'Callahan
1e5f920dbd
Remove .c_str() from parameters to log_debug()
2025-09-23 19:10:33 +12:00
Emil J
a78eb9e151
Merge pull request #5315 from YosysHQ/emil/write_rtlil-no-sort
...
write_rtlil: don't sort
2025-09-22 11:14:39 +02:00
YRabbit
d60dc93e92
Gowin. Renaming inputs of the DCS primitive.
...
The dynamic clock selection (DCS) primitive has undergone changes with
the release of the GW5A series—the CLK0,1,2,3 inputs are now
CLKIN0,1,2,3, but only for GW5A series chips.
There are no functional changes, only renaming.
Here we are transferring the description of the DCS primitive from
general to specialized files for each chip series.
We have also fixed a bug in the generation script that caused the loss
of primitive parameters. Fortunately, this only affected the
analog-to-digital converter, which has not yet been implemented.
Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2025-09-20 16:22:23 +01:00
Jannis Harder
1251e92e3a
Add `$input_port` and `$connect` cell types
2025-09-17 13:56:46 +02:00
Robert O'Callahan
a7c46f7b4a
Remove .c_str() calls from parameters to log_warning()/log_warning_noprefix()
2025-09-16 23:02:16 +00:00
Robert O'Callahan
5ac6858f26
Remove .c_str() from log_cmd_error() and log_file_error() parameters
2025-09-16 22:59:08 +00:00
Emil J. Tywoniak
73747f6928
read_verilog: add -relativeshare for synthesis reproducibility testing
2025-09-16 15:47:35 +02:00
Robert O'Callahan
1a367b907c
Use fast path for 32-bit Const integer constructor in more places
2025-09-16 03:17:24 +00:00
Robert O'Callahan
09b493cfcd
Update techlibs to avoid bits()
2025-09-16 03:17:23 +00:00
Robert O'Callahan
e0ae7b7af4
Remove .c_str() calls from log()/log_error()
...
There are some leftovers, but this is an easy regex-based approach that removes most of them.
2025-09-11 20:59:37 +00:00
Robert O'Callahan
c7df6954b9
Remove .c_str() from stringf parameters
2025-09-01 23:34:42 +00:00
N. Engelhardt
15d24bf2e6
synth_quicklogic: add -noflatten option
2025-08-25 17:25:58 +02:00
Miodrag Milanović
c7e6275d0d
Merge pull request #5045 from danderson/push-nwpulrqymkqp
...
techlibs/lattice: add missing clock muxes to ECP5 block ram blackboxes
2025-08-25 15:28:34 +02:00
Robert O'Callahan
8b75c06141
Add a general tests/.gitignore and remove redundant entries in subdirectory .gitignore files.
2025-07-22 10:38:38 +00:00
Martin Povišer
9ab1946799
Merge pull request #5209 from povik/hieropt
...
Start `opt_hier` to enable hierarchical optimization
2025-07-17 14:12:18 +02:00
Martin Povišer
415b7d3f65
Drop experimental label off `synth -hieropt`
2025-07-17 12:02:44 +02:00
Martin Povišer
22a44e4333
Start `opt_hier`
2025-07-05 16:45:52 +02:00
YRabbit
85e7c68fc6
Gowin. BUGFIX. Fix multi-line descriptions.
...
If let's say the enumeration of inputs took several lines, then all
after the first one were ignored. Since the first line ended with a
comma, an error was generated when trying to use the resulting file.
Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2025-07-02 12:39:18 +10:00
KrystalDelusion
5268565410
Merge pull request #5108 from marzoul/adrien-uram
...
Create a single-port URAM mapping to support memories 2048 x 144b
2025-05-13 09:54:36 +12:00
Adrien Prost-Boucle
6bf7587338
URAM mapping : Add test for 2048 x 144b
2025-05-10 14:53:56 +02:00
Adrien Prost-Boucle
c7de531231
URAM mapping : Fix port indexes according to Yosys warnings
2025-05-09 15:09:11 +02:00
Adrien Prost-Boucle
c4a49f0c55
Create a single-port URAM mapping to support memories 2048 x 144b
2025-05-09 14:16:03 +02:00
Patrick Urban
6d575918fc
gatemate: Set unused BRAM inputs to 'bx
...
This will reduce the number of CPEs to generate fixed values at the block RAM inputs, if it is not used.
2025-04-28 14:42:16 +02:00
KrystalDelusion
2d6255175e
Merge pull request #5057 from secworks/blocking_assignment_greenpak4_cells_sim_digital
...
Change to use blocking assignments in non-clocked processes.
2025-04-26 11:15:10 +12:00
KrystalDelusion
6564810ae3
Merge pull request #4992 from Anhijkt/fix-ice40dsp-unsigned
...
ice40_dsp: fix const handling
2025-04-26 11:15:02 +12:00
Miodrag Milanović
febc07e6fb
Merge pull request #5039 from YosysHQ/gatemate_bram
...
gatemate: WRITE_THROUGH mode change
2025-04-25 09:53:43 +02:00
Emil J
f8c027b70e
Merge pull request #5056 from secworks/blocking_assignment_gatemate_cells_sim
...
Change to blocking assignments in non-clocked process.
2025-04-23 23:13:54 +02:00