-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
json2dcp: replace deprecated RapidWright API; fix cell placement and routing #51
Comments
Ported json2dcp to python jupyter notebook with IOB PAD/IBUF/OBUF and routing handling improvements: https://github.com/hansemro/json2dcp-notebook/blob/main/json2dcp.ipynb This should hopefully help out anyone interested in experimenting with this work. |
Experimental branch with inter-site/tile net routing: https://github.com/hansemro/json2dcp-notebook/tree/inter-site-routing-dev Partially routed jtag-test design: Now focusing on identifying remaining routing and DRC issues... |
Currently, |
I am seeing some bogus PIPs in the nextpnr netlist:
clb jtag test json netlist: https://gist.github.com/hansemro/dea2b6b9eac13566f113f7a91474b5d1
IBUFDS support for 7 series being experimented in https://gist.github.com/hansemro/24adef209d9ff91f2c01b6f053990861 |
Finally got around to handling IBUFDS in hansemro/json2dcp-notebook@9a41b82. |
Where did you find json2dcp? I did not find it in nextpnr-xilinx nor prjxray, nor searching the net gave anything useful. |
Located at nextpnr-xilinx/xilinx/java/json2dcp.java:
The original java utility was left abandoned for some time (without following RapidWright API changes over time) but it seemed promising for checking the netlist visually and for bugs. To make testing changes a bit easier for myself, I ported the project as a python notebook and later made improvements to fix placement and routing bugs that I encountered. There are still some bugs left but some of it comes from nextpnr-xilinx's final json netlist missing some details (missing PIPs/SitePIPs) that make filling in the gaps a bit more challenging (which also raises some questions of the validity of json2dcp as a verification tool). |
json2dcp
has not been maintained for some time but could be useful for post-placement/routing validation and DRC in Vivado. While replacing deprecated RapidWright API is fairly straightforward, it will be less trivial to fix json2dcp to handle a post-route netlist json file produced with more recent versions of nextpnr-xilinx.From what I have experimented so far, the following needs work:
createAndPlaceIOB
should be used to create IBUF/OBUF cells but require specifying IOSTANDARD and PACKAGE_PIN attributes which are retained in PAD cells.SITEWIRE/<SITE>/<SRCNET>
toSITEWIRE/<SITE>/<SNKNET>
) routing, we can userouteIntraSiteNet
Experimental branch: https://github.com/hansemro/nextpnr-xilinx/commits/rapidwright-2024.1.0/
-DRAPIDWRIGHT_PATH=/path/to/RapidWright -DGSON_PATH=/path/to/gson.jar
The text was updated successfully, but these errors were encountered: