chipsalliance / fpga-interchange-schema

https://fpga-interchange-schema.readthedocs.io/
Apache License 2.0
51 stars 20 forks source link

Site PIP usage contract #50

Closed gatecat closed 3 years ago

gatecat commented 3 years ago

Currently there is an undocumented contract inside nextpnr that site PIPs should only be used for nets that originate/terminate inside that site: https://github.com/YosysHQ/nextpnr/blob/c322cda3f875a5e5dd2575d3a390cbe1cee073e0/fpga_interchange/arch.cc#L1769-L1791

In particular, site PIPs shouldn't be used as general route-throughs, for example through sites that aren't otherwise occupied at all. Tile pseudo-PIPs should be used for these cases.

However, there are two problems:

gatecat commented 3 years ago

I think the second bullet point is somewhat covered by this FIXME and was intended to be illegal but not implemented: https://github.com/YosysHQ/nextpnr/blob/c322cda3f875a5e5dd2575d3a390cbe1cee073e0/fpga_interchange/arch.cc#L1793

GitHub
YosysHQ/nextpnr
nextpnr portable FPGA place and route tool. Contribute to YosysHQ/nextpnr development by creating an account on GitHub.