diff options
author | Alessandro Comodi <acomodi@antmicro.com> | 2021-03-12 16:37:00 +0100 |
---|---|---|
committer | Alessandro Comodi <acomodi@antmicro.com> | 2021-03-16 15:39:01 +0100 |
commit | 490fdb0a1c3bb78856d26be2186e4dca5d3d021f (patch) | |
tree | 7c0c98c57c240cc85e9c37064dd9ccdba8d99bb5 /fpga_interchange/examples | |
parent | 77ffdd7fd4e90e0da43e81b1f5e021b08ee64a9f (diff) | |
download | nextpnr-490fdb0a1c3bb78856d26be2186e4dca5d3d021f.tar.gz nextpnr-490fdb0a1c3bb78856d26be2186e4dca5d3d021f.tar.bz2 nextpnr-490fdb0a1c3bb78856d26be2186e4dca5d3d021f.zip |
fpga_interchange: cmake: generate only one device family
Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
Diffstat (limited to 'fpga_interchange/examples')
9 files changed, 72 insertions, 49 deletions
diff --git a/fpga_interchange/examples/chipdb.cmake b/fpga_interchange/examples/chipdb.cmake index 5f1e4a67..81cc01f9 100644 --- a/fpga_interchange/examples/chipdb.cmake +++ b/fpga_interchange/examples/chipdb.cmake @@ -1,6 +1,6 @@ function(create_rapidwright_device_db) set(options) - set(oneValueArgs part) + set(oneValueArgs device part) set(multiValueArgs) cmake_parse_arguments( @@ -11,6 +11,7 @@ function(create_rapidwright_device_db) ${ARGN} ) + set(device ${create_rapidwright_device_db_device}) set(part ${create_rapidwright_device_db_part}) set(rapidwright_device_db ${CMAKE_CURRENT_BINARY_DIR}/${part}.device) add_custom_command( @@ -24,35 +25,32 @@ function(create_rapidwright_device_db) ${RAPIDWRIGHT_PATH}/scripts/invoke_rapidwright.sh ) - add_custom_target(rapidwright-${part}-device DEPENDS ${rapidwright_device_db}) - set_property(TARGET rapidwright-${part}-device PROPERTY LOCATION ${rapidwright_device_db}) + add_custom_target(rapidwright-${device}-device DEPENDS ${rapidwright_device_db}) + set_property(TARGET rapidwright-${device}-device PROPERTY LOCATION ${rapidwright_device_db}) endfunction() -function(generate_chipdb) +function(create_patched_device_db) set(options) - set(oneValueArgs part) + set(oneValueArgs device) set(multiValueArgs) cmake_parse_arguments( - generate_chipdb + create_patched_device_db "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) - set(part ${generate_chipdb_part}) - - create_rapidwright_device_db(part ${part}) + set(device ${create_patched_device_db_device}) - set(rapidwright_device_target rapidwright-${part}-device) - get_property(rapidwright_device_loc TARGET ${rapidwright_device_target} PROPERTY LOCATION) + get_property(rapidwright_device_loc TARGET rapidwright-${device}-device PROPERTY LOCATION) - set(constraints_device ${CMAKE_CURRENT_BINARY_DIR}/${part}_constraints.device) + set(constraints_device ${CMAKE_CURRENT_BINARY_DIR}/${device}_constraints.device) add_custom_command( OUTPUT ${constraints_device} COMMAND - python3 -mfpga_interchange.patch + ${PYTHON_EXECUTABLE} -mfpga_interchange.patch --schema_dir ${INTERCHANGE_SCHEMA_PATH} --schema device --patch_path constraints @@ -61,16 +59,16 @@ function(generate_chipdb) ${PYTHON_INTERCHANGE_PATH}/test_data/series7_constraints.yaml ${constraints_device} DEPENDS - ${rapidwright_device_target} + rapidwright-${device}-device ) - add_custom_target(constraints-${part}-device DEPENDS ${constraints_device}) + add_custom_target(constraints-${device}-device DEPENDS ${constraints_device}) - set(constraints_luts_device ${CMAKE_CURRENT_BINARY_DIR}/${part}_constraints_luts.device) + set(constraints_luts_device ${CMAKE_CURRENT_BINARY_DIR}/${device}_constraints_luts.device) add_custom_command( OUTPUT ${constraints_luts_device} COMMAND - python3 -mfpga_interchange.patch + ${PYTHON_EXECUTABLE} -mfpga_interchange.patch --schema_dir ${INTERCHANGE_SCHEMA_PATH} --schema device --patch_path lutDefinitions @@ -82,26 +80,50 @@ function(generate_chipdb) ${constraints_device} ) - add_custom_target(constraints-luts-${part}-device DEPENDS ${constraints_luts_device}) - set_property(TARGET constraints-luts-${part}-device PROPERTY LOCATION ${constraints_luts_device}) + add_custom_target(constraints-luts-${device}-device DEPENDS ${constraints_luts_device}) + set_property(TARGET constraints-luts-${device}-device PROPERTY LOCATION ${constraints_luts_device}) +endfunction() + +function(generate_chipdb) + set(options) + set(oneValueArgs device part) + set(multiValueArgs) + + cmake_parse_arguments( + generate_chipdb + "${options}" + "${oneValueArgs}" + "${multiValueArgs}" + ${ARGN} + ) + + set(device ${generate_chipdb_device}) + set(part ${generate_chipdb_part}) + + create_rapidwright_device_db( + device ${device} + part ${part} + ) + create_patched_device_db(device ${device}) - set(chipdb_bba ${chipdb_dir}/chipdb-${part}.bba) + get_property(constrained_luts_device_loc TARGET constraints-luts-${device}-device PROPERTY LOCATION) + set(chipdb_bba ${chipdb_dir}/chipdb-${device}.bba) add_custom_command( OUTPUT ${chipdb_bba} COMMAND - python3 -mfpga_interchange.nextpnr_emit + ${PYTHON_EXECUTABLE} -mfpga_interchange.nextpnr_emit --schema_dir ${INTERCHANGE_SCHEMA_PATH} - --output_dir ${chipdb_dir} + --output_dir ${CMAKE_CURRENT_BINARY_DIR} --bel_bucket_seeds ${PYTHON_INTERCHANGE_PATH}/test_data/series7_bel_buckets.yaml - --device ${constraints_luts_device} + --device ${constrained_luts_device_loc} COMMAND - mv ${chipdb_dir}/chipdb.bba ${chipdb_bba} + mv ${CMAKE_CURRENT_BINARY_DIR}/chipdb.bba ${chipdb_bba} DEPENDS - ${constraints_luts_device} + constraints-luts-${device}-device ) - add_custom_target(chipdb-${part}-bba DEPENDS ${chipdb_bba}) - add_dependencies(chipdb-${family}-bbas chipdb-${part}-bba) + add_custom_target(chipdb-${device}-bba DEPENDS ${chipdb_bba}) + add_dependencies(chipdb-${family}-bbas chipdb-${device}-bba) endfunction() set(chipdb_dir ${CMAKE_CURRENT_BINARY_DIR}/${family}/chipdb) diff --git a/fpga_interchange/examples/devices/CMakeLists.txt b/fpga_interchange/examples/devices/CMakeLists.txt index 5b96ac80..8497484b 100644 --- a/fpga_interchange/examples/devices/CMakeLists.txt +++ b/fpga_interchange/examples/devices/CMakeLists.txt @@ -1 +1,4 @@ -add_subdirectory(xc7a35t) +generate_chipdb( + device xc7a50t + part xc7a50tfgg484-1 +) diff --git a/fpga_interchange/examples/devices/xc7a35t/CMakeLists.txt b/fpga_interchange/examples/devices/xc7a35t/CMakeLists.txt deleted file mode 100644 index 2b0dce53..00000000 --- a/fpga_interchange/examples/devices/xc7a35t/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -generate_chipdb(part xc7a35tcsg324-1) -generate_chipdb(part xc7a35tcpg236-1) diff --git a/fpga_interchange/examples/tests.cmake b/fpga_interchange/examples/tests.cmake index a550fb8f..cb2ec483 100644 --- a/fpga_interchange/examples/tests.cmake +++ b/fpga_interchange/examples/tests.cmake @@ -2,8 +2,8 @@ function(add_interchange_test) # ~~~ # add_interchange_test( # name <name> - # part <part> - # part <package> + # device <common device> + # package <package> # tcl <tcl> # xdc <xdc> # top <top name> @@ -12,7 +12,7 @@ function(add_interchange_test) # ~~~ set(options) - set(oneValueArgs name part package tcl xdc top) + set(oneValueArgs name device package tcl xdc top) set(multiValueArgs sources) cmake_parse_arguments( @@ -24,7 +24,7 @@ function(add_interchange_test) ) set(name ${add_interchange_test_name}) - set(part ${add_interchange_test_part}) + set(device ${add_interchange_test_device}) set(package ${add_interchange_test_package}) set(top ${add_interchange_test_top}) set(tcl ${CMAKE_CURRENT_SOURCE_DIR}/${add_interchange_test_tcl}) @@ -54,14 +54,14 @@ function(add_interchange_test) add_custom_target(test-${family}-${name}-json DEPENDS ${synth_json}) # Logical Netlist - set(device_target constraints-luts-${part}-device) - get_property(device_loc TARGET constraints-luts-${part}-device PROPERTY LOCATION) + set(device_target constraints-luts-${device}-device) + get_property(device_loc TARGET constraints-luts-${device}-device PROPERTY LOCATION) set(netlist ${CMAKE_CURRENT_BINARY_DIR}/${name}.netlist) add_custom_command( OUTPUT ${netlist} COMMAND - python3 -mfpga_interchange.yosys_json + ${PYTHON_EXECUTABLE} -mfpga_interchange.yosys_json --schema_dir ${INTERCHANGE_SCHEMA_PATH} --device ${device_loc} --top ${top} @@ -74,7 +74,7 @@ function(add_interchange_test) add_custom_target(test-${family}-${name}-netlist DEPENDS ${netlist}) - set(chipdb_target chipdb-${part}-bba) + set(chipdb_target chipdb-${device}-bba) # Physical Netlist set(phys ${CMAKE_CURRENT_BINARY_DIR}/${name}.phys) @@ -82,7 +82,7 @@ function(add_interchange_test) OUTPUT ${phys} COMMAND nextpnr-fpga_interchange - --chipdb ${chipdb_dir}/chipdb-${part}.bba + --chipdb ${chipdb_dir}/chipdb-${device}.bba --xdc ${xdc} --netlist ${netlist} --phys ${phys} diff --git a/fpga_interchange/examples/tests/const_wire/CMakeLists.txt b/fpga_interchange/examples/tests/const_wire/CMakeLists.txt index 163f4a97..6dbeaae5 100644 --- a/fpga_interchange/examples/tests/const_wire/CMakeLists.txt +++ b/fpga_interchange/examples/tests/const_wire/CMakeLists.txt @@ -1,6 +1,6 @@ add_interchange_test( name const_wire_basys3 - part xc7a35tcpg236-1 + device xc7a50t package cpg236 tcl run.tcl xdc wire.xdc @@ -9,7 +9,7 @@ add_interchange_test( add_interchange_test( name const_wire_arty - part xc7a35tcsg324-1 + device xc7a50t package csg324 tcl run.tcl xdc wire.xdc diff --git a/fpga_interchange/examples/tests/counter/CMakeLists.txt b/fpga_interchange/examples/tests/counter/CMakeLists.txt index e105a86a..ac180070 100644 --- a/fpga_interchange/examples/tests/counter/CMakeLists.txt +++ b/fpga_interchange/examples/tests/counter/CMakeLists.txt @@ -1,6 +1,6 @@ add_interchange_test( name counter_basys3 - part xc7a35tcpg236-1 + device xc7a50t package cpg236 tcl run.tcl xdc counter.xdc @@ -9,7 +9,7 @@ add_interchange_test( add_interchange_test( name counter_arty - part xc7a35tcsg324-1 + device xc7a50t package csg324 tcl run.tcl xdc counter.xdc diff --git a/fpga_interchange/examples/tests/ff/CMakeLists.txt b/fpga_interchange/examples/tests/ff/CMakeLists.txt index 66074c64..30ae0417 100644 --- a/fpga_interchange/examples/tests/ff/CMakeLists.txt +++ b/fpga_interchange/examples/tests/ff/CMakeLists.txt @@ -1,6 +1,6 @@ add_interchange_test( name ff_basys3 - part xc7a35tcpg236-1 + device xc7a50t package cpg236 tcl run.tcl xdc ff.xdc @@ -9,7 +9,7 @@ add_interchange_test( add_interchange_test( name ff_arty - part xc7a35tcsg324-1 + device xc7a50t package csg324 tcl run.tcl xdc ff.xdc diff --git a/fpga_interchange/examples/tests/lut/CMakeLists.txt b/fpga_interchange/examples/tests/lut/CMakeLists.txt index 4ec74b3d..ac504351 100644 --- a/fpga_interchange/examples/tests/lut/CMakeLists.txt +++ b/fpga_interchange/examples/tests/lut/CMakeLists.txt @@ -1,6 +1,6 @@ add_interchange_test( name lut_basys3 - part xc7a35tcpg236-1 + device xc7a50t package cpg236 tcl run.tcl xdc lut.xdc @@ -9,7 +9,7 @@ add_interchange_test( add_interchange_test( name lut_arty - part xc7a35tcsg324-1 + device xc7a50t package csg324 tcl run.tcl xdc lut.xdc diff --git a/fpga_interchange/examples/tests/wire/CMakeLists.txt b/fpga_interchange/examples/tests/wire/CMakeLists.txt index 7736877f..1d3b36ac 100644 --- a/fpga_interchange/examples/tests/wire/CMakeLists.txt +++ b/fpga_interchange/examples/tests/wire/CMakeLists.txt @@ -1,6 +1,6 @@ add_interchange_test( name wire_basys3 - part xc7a35tcpg236-1 + device xc7a50t package cpg236 tcl run.tcl xdc wire.xdc @@ -9,7 +9,7 @@ add_interchange_test( add_interchange_test( name wire_arty - part xc7a35tcsg324-1 + device xc7a50t package csg324 tcl run.tcl xdc wire.xdc |