Xilinx / RapidWright

Build Customized FPGA Implementations for Vivado
http://www.rapidwright.io
Other
274 stars 105 forks source link

Adding shape support for DREAMPlaceFPGA inputs and Interchange Netlist #1011

Open clavin-xlnx opened 1 week ago

clavin-xlnx commented 1 week ago

@zhilix - take a look when you are ready.

clavin-xlnx commented 1 week ago

@clavin-xlnx Hi Chris, I checked out the changes, the schema part is working fine and I was able to recompile and parse. But when I ran java com.xilinx.rapidwright.interchange.DcpToInterchange test/RapidWrightDCP/picoblaze_ooc_X10Y235_2022_1.dcp It generates a .netlist file that doesn't contain any shapes, so when I parse the .netlist it has output: Parsing netlist file benchmarks/IF_netlist/picoblaze_ooc_X10Y235_2022_1.netlist Number of shapes: 0 Is it because I have to include ShapeTools.extractShapes(design, null); ?

Yes, that method will populate the design with the shape objects and then the writer will write them out. For now, it will gather the shapes from the shape file, in future, RapidWright will extract them directly from the design.

zhilix commented 1 week ago

@clavin-xlnx Hi Chris, I checked out the changes, the schema part is working fine and I was able to recompile and parse. But when I ran java com.xilinx.rapidwright.interchange.DcpToInterchange test/RapidWrightDCP/picoblaze_ooc_X10Y235_2022_1.dcp It generates a .netlist file that doesn't contain any shapes, so when I parse the .netlist it has output: Parsing netlist file benchmarks/IF_netlist/picoblaze_ooc_X10Y235_2022_1.netlist Number of shapes: 0 Is it because I have to include ShapeTools.extractShapes(design, null); ?

Yes, that method will populate the design with the shape objects and then the writer will write them out. For now, it will gather the shapes from the shape file, in future, RapidWright will extract them directly from the design.

Thanks. Now I got some other errors when I call extractShapes():

Exception in thread "main" java.lang.RuntimeException: ERROR: Please add the following library to your design's netlist: hdi_primitives at com.xilinx.rapidwright.design.Cell.getCompatiblePlacements(Unknown Source) at com.xilinx.rapidwright.design.shapes.Shape.addCell(Shape.java:97) at com.xilinx.rapidwright.design.shapes.ShapeTools.readDebugShapeFile(ShapeTools.java:250) at com.xilinx.rapidwright.design.shapes.ShapeTools.extractShapes(ShapeTools.java:116) at com.xilinx.rapidwright.interchange.DcpToInterchange.main(DcpToInterchange.java:46)