This PR adds two combinatorial examples. One with 2000 LUTs (LUT4, LUT5 and LUT6),, 16 inputs and 16 outputs and another similar one, but with 3000 LUTs.
These examples have been generated with utils/generate_design.py script, which I also include in this PR.
The workflow used to generated these designs consists of the following steps:
run utils/generate_design.py -c <number of luts> -I number of input ports> -o <number of output ports>
run Vivado in tcl mode (vivado -mode tcl)
Load the generated netlist:
Vivado% link_design -part <part name>
Vivado% source <path to tcl file generated with utils/generate_design.py>
Export EDIF (must have the same name as top module which in this case is netlist_EMPTY - a default value)
Vivado% write_edif netlist_EMPTY.edif
Constrain ports
Vivado% place_ports
Vivado% write_xdc <path to xdc> -no_fixed_only -type physical
For the use with nextpnr-fpga-interchange, you can convert the EDIF to LogicalNetlist
Invoke Rapidwright's EdifToLogicalNetlist class, which performs the conversion:
${RAPIDWRIGHT_PATH}/scripts/invoke_rapidwright.sh com.xilinx.rapidwright.interchange.EdifToLogicalNetlist <path to edif> <path to netlist>
NOTE 1: The constraint files have been manually edited to include IOSTANDARDs and allow Vivado to accept combinatorial loops.
NOTE 2: The designs include both .netlist and .edif files. Those should contain equivalent data. The .netlist files were created from the .edif netlists.
This PR adds two combinatorial examples. One with 2000 LUTs (LUT4, LUT5 and LUT6),, 16 inputs and 16 outputs and another similar one, but with 3000 LUTs.
These examples have been generated with
utils/generate_design.py
script, which I also include in this PR. The workflow used to generated these designs consists of the following steps:utils/generate_design.py -c <number of luts> -I number of input ports> -o <number of output ports>
vivado -mode tcl
)netlist_EMPTY
- a default value)EdifToLogicalNetlist
class, which performs the conversion:NOTE 1: The constraint files have been manually edited to include IOSTANDARDs and allow Vivado to accept combinatorial loops.
NOTE 2: The designs include both
.netlist
and.edif
files. Those should contain equivalent data. The.netlist
files were created from the.edif
netlists.