You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
this contract currently isn't documented anywhere (I suspect it might originate from an implicit contract of Vivado) and would be a surprise to anyone implementing another PnR implementation without looking at nextpnr
there are edge cases not covered by this as discussed later on in Wrong LUT equation when used as LUT-thru python-fpga-interchange#76. In particular for the case where a net re-enters a site via a site pin being used for another purpose. Use of site route-through PIPs should probably be disallowed in this edge case too but we need to formally document the exact allowed/illegal behaviour here and then implement accordingly in nextpnr.
The text was updated successfully, but these errors were encountered:
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:
The text was updated successfully, but these errors were encountered: