nextpnr/ecp5
Adam Greig 8d8c244e00
Add remapping of DSP clk/ce/rst signals in a block.
Each DSP block contains two slices, and each slice contains multiple
MULT18X18D and ALU54B units. Each unit configures each register to use
any of CLK0/1/2/3, CE0/1/2/3, and RST0/1/2/3 ports, and the ports are
connected per unit (so for example, two MULTs in the same block could
connect their CLK0s to different external signals). However, the
hardware only has one actual port per block, so it's required that
all CLK0 signals within a block are the same.

Because the packer is in general allowed to combine two unrelated units
into one block, it may end up combining units that use different signals
for the same port, which would eventually have caused a router failure.

This commit adds validity checks which ensure only unique signals are
used per block, and adds remapping so that conflicting signals are
automatically reassigned when possible and required.
2023-01-04 18:34:30 +00:00
..
docs docs: Tidy up 2020-10-01 09:02:29 +01:00
.gitignore Update git ignore locations 2020-06-27 13:18:06 +02:00
arch_place.cc Add remapping of DSP clk/ce/rst signals in a block. 2023-01-04 18:34:30 +00:00
arch_pybindings.cc ecp5: Fix Python bindings for pip iterators 2022-11-28 09:00:41 +01:00
arch_pybindings.h Fixing old emails and names in copyrights 2021-06-12 13:22:38 +01:00
arch.cc Add remapping of DSP clk/ce/rst signals in a block. 2023-01-04 18:34:30 +00:00
arch.h Add remapping of DSP clk/ce/rst signals in a block. 2023-01-04 18:34:30 +00:00
archdefs.h ecp5: Split the SLICE bel into separate LUT/FF/RAMW bels 2022-04-07 18:02:36 +01:00
baseconfigs.cc ecp5: Add SYSCONFIG settings to bitstream 2020-07-12 14:51:14 +01:00
bitstream.cc ecp5: Split bitstream generation into more functions 2022-09-15 13:28:43 +02:00
bitstream.h Fixing old emails and names in copyrights 2021-06-12 13:22:38 +01:00
cells.cc refactor: Use IdString::in instead of || chains 2022-08-10 18:58:22 +01:00
cells.h refactor: Use IdString::in instead of || chains 2022-08-10 18:58:22 +01:00
CMakeLists.txt Use CMake's Python3 rather than PythonInterp in subdirs 2022-08-21 17:48:01 +01:00
config.cc Fixing old emails and names in copyrights 2021-06-12 13:22:38 +01:00
config.h Fixing old emails and names in copyrights 2021-06-12 13:22:38 +01:00
constids.inc Add remapping of DSP clk/ce/rst signals in a block. 2023-01-04 18:34:30 +00:00
dcu_bitstream.h refactor: Use constids instead of id("..") 2022-02-16 17:09:54 +00:00
family.cmake Merge pull request #460 from whitequark/better-embed 2020-06-26 11:32:13 +01:00
gfx.cc refactor: Use IdString::in instead of || chains 2022-08-10 18:58:22 +01:00
gfx.h Fixing old emails and names in copyrights 2021-06-12 13:22:38 +01:00
globals.cc refactor: Use IdString::in instead of || chains 2022-08-10 18:58:22 +01:00
globals.h Fixing old emails and names in copyrights 2021-06-12 13:22:38 +01:00
iotypes.inc ecp5: Add support for top pseudo diff outputs 2020-01-15 11:43:12 +00:00
lpf.cc ecp5: Improve error handling for missing end-" 2023-01-02 08:39:00 +01:00
main.cc ecp5: Only write bitstream if --textcfg passed 2022-12-17 10:37:15 +00:00
pack.cc Remove deprecated functions 2022-12-22 15:26:39 +01:00
pio.cc Fixing old emails and names in copyrights 2021-06-12 13:22:38 +01:00
pio.h Fixing old emails and names in copyrights 2021-06-12 13:22:38 +01:00
trellis_import.py ecp5: Split the SLICE bel into separate LUT/FF/RAMW bels 2022-04-07 18:02:36 +01:00