openXC7 / nextpnr-xilinx

Experimental flows using nextpnr for Xilinx devices
ISC License
39 stars 14 forks source link

json2dcp: replace deprecated RapidWright API; fix cell placement and routing #51

Open hansemro opened 3 weeks ago

hansemro commented 3 weeks ago

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:

Experimental branch: https://github.com/hansemro/nextpnr-xilinx/commits/rapidwright-2024.1.0/

hansemro commented 3 weeks ago

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.

hansemro commented 3 weeks ago

Experimental branch with inter-site/tile net routing: https://github.com/hansemro/json2dcp-notebook/tree/inter-site-routing-dev

Partially routed jtag-test design: image

Now focusing on identifying remaining routing and DRC issues...

hansemro commented 3 weeks ago

Currently, createIBUFDS only supports Ultrascale series with DIFFINBUF+IBUFCTRL BELs, so we will need to find a different way to support 7 series.

hansemro commented 2 weeks ago

I am seeing some bogus PIPs in the nextpnr netlist:

clb jtag test json netlist: https://gist.github.com/hansemro/dea2b6b9eac13566f113f7a91474b5d1

Currently, createIBUFDS only supports Ultrascale series with DIFFINBUF+IBUFCTRL BELs, so we will need to find a different way to support 7 series.

IBUFDS support for 7 series being experimented in https://gist.github.com/hansemro/24adef209d9ff91f2c01b6f053990861

hansemro commented 2 weeks ago

Finally got around to handling IBUFDS in https://github.com/hansemro/json2dcp-notebook/commit/9a41b8296c2e49593eaddbc3cd49eaad1034fa92.