Add bel.v3.txt, which carries per-arc BEL timing (Delay/SetupHold/
ClkToOut/Clock) with config-bit conditions, on top of bel.v2's structural
blocks. Timing is applied per instance: a representative per-type estimate in
prePlace, then each placed BEL's own arcs in postPlace (bel_timing_by_bel,
keyed by BelId).
Add placement_estimate.txt carrying BEL timing estimates and nextpnr
placer/router tunables (delayScale/delayOffset/delayEpsilon/ripupPenalty/
carryPredictDelay, each defaulting to nextpnr's historical hardcoded value).
A more detailed description of the FABulous model files can be found here:
https://fabulous.readthedocs.io/en/latest/user_guide/using_doc/pnr/nextpnr.html#bel-v3-txt-bel-timing
bel.v3.txt and placement_estimate.txt were added as separate files
to keep compatibility with older nextpnr versions and existing fabulous projects.
A few cosmetics and comments added.
Define open_(o|i)fstream_and_log_error in log.h to:
- quote 'filename'
- add error cause to easier troubleshoot
- use existing consistent string style
- easily allows OS specific message
Introduce it when file are opened and add it where error message
was missing.
* 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
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>