* fabulous: report port as unconstrained unless BEL attr set
Signed-off-by: Leo Moser <leomoser99@gmail.com>
* fabulous: only create global clock if needed
Signed-off-by: Leo Moser <leomoser99@gmail.com>
---------
Signed-off-by: Leo Moser <leomoser99@gmail.com>
chore: seems like working pcf
feat: add reg support and clean up
chore: add clean up
delay io check and add cell timing min-max delay
fix rebase error
better pcf syntax
add regex support for prohibit command
fix regex and repeat create
fix cell can potentially have no bel
fix IO
chore: clean up
chore: review comment
feat: set pseudo cell loc by wire info
yosys based IO insert
finalise
final finalise
Two user-visible changes were made:
* `-DUSE_RUST` is replaced with `-DBUILD_RUST`, by analogy with
`-DBUILD_PYTHON`
* `-DCOVERAGE` was removed as it doesn't work with either modern GCC
or Clang
While it served a purpose (granting the ability to build `.bba` files
separately from the rest of nextpnr), it made things excessively
convoluted, especially around paths.
This commit removes the ability to pre-generate chip databases. As far
as I know, I was the primary user of that feature. It can be added back
if there is demand for it.
In exchange the per-family `CMakeLists.txt` files are now much easier
to understand.
When implementing concepts such as partition pins or deliberately split
nets, there's a need for something that looks like a cell (starts/ends
routing with pins on nets, has timing data) but isn't mapped to a fixed
bel in the architecture, but instead can have pin mappings defined at
runtime.
The PseudoCell allows this by providing an alternate, virtual-function
based API for such cells. When a cell has `pseudo_cell` used, instead of
calling functions such as getBelPinWire, getBelLocation or getCellDelay
in the Arch API; such data is provided by the cell itself, fully
flexible at runtime regardless of arch, via methods on the PseudoCell
implementation.
This uses a new data structure for net.users that allows gaps, so
removing a port from a net is no longer an O(n) operation on the number
of users the net has.
Signed-off-by: gatecat <gatecat@ds0.me>