aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeith Rothman <537074+litghost@users.noreply.github.com>2021-03-19 18:28:48 -0700
committerKeith Rothman <537074+litghost@users.noreply.github.com>2021-03-22 09:47:33 -0700
commit0f4014615cf9059332a75244a0ef5a9df4886ed0 (patch)
tree56fdd651a81690eff1d3aaa0af519459590fce4f
parent53ed6979a964f3eaaabc0d97399eec9b4c3347f9 (diff)
downloadnextpnr-0f4014615cf9059332a75244a0ef5a9df4886ed0.tar.gz
nextpnr-0f4014615cf9059332a75244a0ef5a9df4886ed0.tar.bz2
nextpnr-0f4014615cf9059332a75244a0ef5a9df4886ed0.zip
Add missing dependencies to CMake targets.
- Add additional targets useful for various situations. - Have counter test use common remap.v file. Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
-rw-r--r--fpga_interchange/examples/chipdb.cmake36
-rw-r--r--fpga_interchange/examples/tests.cmake92
-rw-r--r--fpga_interchange/examples/tests/counter/CMakeLists.txt4
-rw-r--r--fpga_interchange/examples/tests/counter/remap.v11
-rw-r--r--fpga_interchange/family.cmake2
5 files changed, 128 insertions, 17 deletions
diff --git a/fpga_interchange/examples/chipdb.cmake b/fpga_interchange/examples/chipdb.cmake
index e0cf2c13..676c8c77 100644
--- a/fpga_interchange/examples/chipdb.cmake
+++ b/fpga_interchange/examples/chipdb.cmake
@@ -315,6 +315,42 @@ function(generate_chipdb)
)
add_custom_target(
+ chipdb-${device}-bin-check-verbose
+ COMMAND
+ nextpnr-fpga_interchange
+ --chipdb ${chipdb_bin}
+ --package ${test_package}
+ --test --verbose
+ DEPENDS
+ ${chipdb_bin}
+ chipdb-${device}-bin
+ )
+
+ add_custom_target(
+ chipdb-${device}-bin-check-verbose2
+ COMMAND
+ nextpnr-fpga_interchange
+ --chipdb ${chipdb_bin}
+ --package ${test_package}
+ --test --debug
+ DEPENDS
+ ${chipdb_bin}
+ chipdb-${device}-bin
+ )
+
+ add_custom_target(
+ chipdb-${device}-bin-check-debug
+ COMMAND gdb --args
+ $<TARGET_FILE:nextpnr-fpga_interchange>
+ --chipdb ${chipdb_bin}
+ --package ${test_package}
+ --test
+ DEPENDS
+ ${chipdb_bin}
+ chipdb-${device}-bin
+ )
+
+ add_custom_target(
chipdb-${device}-bin-check-test-data
COMMAND
nextpnr-fpga_interchange
diff --git a/fpga_interchange/examples/tests.cmake b/fpga_interchange/examples/tests.cmake
index 7598d25c..9df19903 100644
--- a/fpga_interchange/examples/tests.cmake
+++ b/fpga_interchange/examples/tests.cmake
@@ -69,12 +69,12 @@ function(add_interchange_test)
set(synth_json ${CMAKE_CURRENT_BINARY_DIR}/${name}.json)
add_custom_command(
OUTPUT ${synth_json}
- COMMAND
- SOURCES=${sources}
+ COMMAND ${CMAKE_COMMAND} -E env
+ SOURCES="${sources}"
OUT_JSON=${synth_json}
TECHMAP=${techmap}
yosys -c ${tcl}
- DEPENDS ${sources}
+ DEPENDS ${sources} ${techmap} ${tcl}
)
add_custom_target(test-${family}-${name}-json DEPENDS ${synth_json})
@@ -134,12 +134,98 @@ function(add_interchange_test)
--phys ${phys}
--package ${package}
DEPENDS
+ nextpnr-fpga_interchange
+ ${netlist}
+ ${xdc}
+ ${chipdb_bin_target}
+ ${chipdb_bin_loc}
+ )
+
+ add_custom_target(
+ test-${family}-${name}-phys-verbose
+ COMMAND
+ nextpnr-fpga_interchange
+ --chipdb ${chipdb_bin_loc}
+ --xdc ${xdc}
+ --netlist ${netlist}
+ --phys ${phys}
+ --package ${package}
+ --verbose
+ DEPENDS
+ ${netlist}
+ ${xdc}
+ ${chipdb_bin_target}
+ ${chipdb_bin_loc}
+ )
+
+ add_custom_target(
+ test-${family}-${name}-phys-verbose2
+ COMMAND
+ nextpnr-fpga_interchange
+ --chipdb ${chipdb_bin_loc}
+ --xdc ${xdc}
+ --netlist ${netlist}
+ --phys ${phys}
+ --package ${package}
+ --debug
+ DEPENDS
${netlist}
${xdc}
${chipdb_bin_target}
${chipdb_bin_loc}
)
+ add_custom_target(
+ test-${family}-${name}-phys-debug
+ COMMAND gdb --args
+ $<TARGET_FILE:nextpnr-fpga_interchange>
+ --chipdb ${chipdb_bin_loc}
+ --xdc ${xdc}
+ --netlist ${netlist}
+ --phys ${phys}
+ --package ${package}
+ DEPENDS
+ ${netlist}
+ ${xdc}
+ ${chipdb_bin_target}
+ ${chipdb_bin_loc}
+ )
+
+ add_custom_target(
+ test-${family}-${name}-phys-valgrind
+ COMMAND
+ PYTHONMALLOC=malloc valgrind
+ $<TARGET_FILE:nextpnr-fpga_interchange>
+ --chipdb ${chipdb_bin_loc}
+ --xdc ${xdc}
+ --netlist ${netlist}
+ --phys ${phys}
+ --package ${package}
+ DEPENDS
+ ${netlist}
+ ${xdc}
+ ${chipdb_bin_target}
+ ${chipdb_bin_loc}
+ )
+
+ if(PROFILER)
+ add_custom_target(
+ test-${family}-${name}-phys-profile
+ COMMAND CPUPROFILE=${name}.prof
+ $<TARGET_FILE:nextpnr-fpga_interchange>
+ --chipdb ${chipdb_bin_loc}
+ --xdc ${xdc}
+ --netlist ${netlist}
+ --phys ${phys}
+ --package ${package}
+ DEPENDS
+ ${netlist}
+ ${xdc}
+ ${chipdb_bin_target}
+ ${chipdb_bin_loc}
+ )
+ endif()
+
add_custom_target(test-${family}-${name}-phys DEPENDS ${phys})
# Physical Netlist YAML
diff --git a/fpga_interchange/examples/tests/counter/CMakeLists.txt b/fpga_interchange/examples/tests/counter/CMakeLists.txt
index dc41d8da..6e187071 100644
--- a/fpga_interchange/examples/tests/counter/CMakeLists.txt
+++ b/fpga_interchange/examples/tests/counter/CMakeLists.txt
@@ -6,7 +6,7 @@ add_interchange_test(
tcl run.tcl
xdc counter_basys3.xdc
sources counter.v
- techmap remap.v
+ techmap ../../remap.v
)
add_interchange_test(
@@ -17,5 +17,5 @@ add_interchange_test(
tcl run.tcl
xdc counter_arty.xdc
sources counter.v
- techmap remap.v
+ techmap ../../remap.v
)
diff --git a/fpga_interchange/examples/tests/counter/remap.v b/fpga_interchange/examples/tests/counter/remap.v
deleted file mode 100644
index 6dfc0b4a..00000000
--- a/fpga_interchange/examples/tests/counter/remap.v
+++ /dev/null
@@ -1,11 +0,0 @@
-module INV(input I, output O);
-
-LUT1 #(.INIT(2'b01)) _TECHMAP_REPLACE_ (.I0(I), .O(O));
-
-endmodule
-
-module BUF(input I, output O);
-
-LUT1 #(.INIT(2'b10)) _TECHMAP_REPLACE_ (.I0(I), .O(O));
-
-endmodule
diff --git a/fpga_interchange/family.cmake b/fpga_interchange/family.cmake
index 16a38fa7..c288736c 100644
--- a/fpga_interchange/family.cmake
+++ b/fpga_interchange/family.cmake
@@ -9,7 +9,7 @@ set(RAPIDWRIGHT_PATH $ENV{HOME}/RapidWright CACHE PATH "Path to RapidWright")
set(INVOKE_RAPIDWRIGHT ${RAPIDWRIGHT_PATH}/scripts/invoke_rapidwright.sh CACHE PATH "Path to RapidWright invocation script")
# FIXME: Make patch data available in the python package and remove this cached var
set(PYTHON_INTERCHANGE_PATH $ENV{HOME}/python-fpga-interchange CACHE PATH "Path to the FPGA interchange python library")
-set(INTERCHANGE_SCHEMA_PATH $ENV{HOME}/fpga_interchange_schema CACHE PATH "Path to the FPGA interchange schema dir")
+set(INTERCHANGE_SCHEMA_PATH ${PROJECT_SOURCE_DIR}/3rdparty/fpga-interchange-schema/interchange CACHE PATH "Path to the FPGA interchange schema dir")
add_subdirectory(3rdparty/fpga-interchange-schema/cmake/cxx_static)