From 9f839a7a083234cfa7f3fb627badc6ee855a9df6 Mon Sep 17 00:00:00 2001 From: Keith Rothman <537074+litghost@users.noreply.github.com> Date: Tue, 18 Feb 2020 09:00:34 -0800 Subject: [PATCH] Attempt to parallelize 074 for additional parts. Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com> --- .github/kokoro/db-full.sh | 26 +-- .gitignore | 2 + Makefile | 16 +- fuzzers/000-init-db/Makefile | 23 ++- fuzzers/001-part-yaml/Makefile | 24 +-- fuzzers/005-tilegrid/Makefile | 129 ++++++------- fuzzers/005-tilegrid/add_tdb.py | 53 +++--- fuzzers/005-tilegrid/fuzzaddr/common.mk | 13 +- fuzzers/005-tilegrid/fuzzaddr/generate.sh | 2 +- fuzzers/072-ordered_wires/Makefile | 6 +- fuzzers/073-get_counts/Makefile | 9 +- fuzzers/074-dump_all/Makefile | 15 +- fuzzers/074-dump_all/generate_after_dump.sh | 21 ++- fuzzers/075-pins/Makefile | 9 +- fuzzers/Makefile | 199 ++++++++++---------- minitests/roi_harness/Makefile | 18 +- 16 files changed, 284 insertions(+), 281 deletions(-) diff --git a/.github/kokoro/db-full.sh b/.github/kokoro/db-full.sh index 696bc5c1..c3d41152 100755 --- a/.github/kokoro/db-full.sh +++ b/.github/kokoro/db-full.sh @@ -38,11 +38,9 @@ echo "========================================" echo "Running Database build" echo "----------------------------------------" ( - cd fuzzers - # Output which fuzzers we are going to run echo "make --dry-run" - make --dry-run + make --dry-run db-${XRAY_SETTINGS}-all echo "----------------------------------------" # Run the fuzzers @@ -55,7 +53,7 @@ echo "----------------------------------------" export MAX_VIVADO_PROCESS=$((CORES/2 < 20 ? CORES/2 : 20)) set -x +e tmp=`mktemp` - script --return --flush --command "make -j $CORES MAX_VIVADO_PROCESS=$MAX_VIVADO_PROCESS" $tmp + script --return --flush --command "make -j $CORES MAX_VIVADO_PROCESS=$MAX_VIVADO_PROCESS db-${XRAY_SETTINGS}-all" $tmp DATABASE_RET=$? set +x -e @@ -86,26 +84,6 @@ echo "----------------------------------------" ) echo "----------------------------------------" -# Generate extra harness files (additional part yaml's, harness). -set +e -# Attempt to generate extra harnesses here, but don't check until after diff reporting. -make db-extras-${XRAY_SETTINGS}-harness -EXTRAS_HARNESS_RET=$? -set -e - -# Generate extra parts file (tilegrid, tileconn, part yaml, part json and package_pin) -set +e -( - export MAX_VIVADO_PROCESS=$((CORES/2 < 20 ? CORES/2 : 20)) - - # Use all the memory available on the system for generating the final - # grid and tileconn. - export MAX_GRID_CPU=${MAX_CPU_PER_GRID} - make db-extras-${XRAY_SETTINGS}-parts -j $CORES -) -EXTRAS_PARTS_RET=$? -set -e - # Format the database make db-format-${XRAY_SETTINGS} # Update the database/Info.md file diff --git a/.gitignore b/.gitignore index ec469db3..c33ccb73 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,13 @@ env build +build_* logs database .Xil **/specimen_* **/output run.ok +run.*.ok __pycache__ *.pyc *.swp diff --git a/Makefile b/Makefile index 96948608..cdfbba14 100644 --- a/Makefile +++ b/Makefile @@ -114,6 +114,9 @@ define database # $(1) - Database name +db-$(1): + +source settings/$(1).sh && $$(MAKE) -C fuzzers + db-check-$(1): @echo @echo "Checking $(1) database" @@ -127,9 +130,15 @@ db-format-$(1): @$(IN_ENV) cd database/$(1); python3 ../../utils/sort_db.py @if [ -e database/Info.md ]; then $(IN_ENV) ./utils/info_md.py --keep; fi -.PHONY: db-check-$(1) db-format-$(1) +.PHONY: db-$(1) db-check-$(1) db-format-$(1) db-extras-$(1) db-extras-$(1)-parts db-extras-$(1)-harness .NOTPARALLEL: db-check-$(1) db-format-$(1) +db-extras-$(1): db-extras-$(1)-parts db-extras-$(1)-harness + +db-$(1)-all: db-$(1) db-extras-$(1)-parts + # Build harnesses after database is complete + $$(MAKE) db-extras-$(1)-harness + db-check: db-check-$(1) db-format: db-format-$(1) @@ -137,8 +146,6 @@ endef $(foreach DB,$(DATABASES),$(eval $(call database,$(DB)))) -.PHONY: db-extras-artix7 db-extras-kintex7 db-extras-zynq7 - # Targets related to Project X-Ray parts # -------------------------------------- @@ -159,9 +166,12 @@ endef $(foreach PART,$(XRAY_PARTS),$(eval $(call multiple-parts,$(PART)))) + db-extras-artix7-parts: $(addprefix db-part-only-,$(ARTIX_PARTS)) db-extras-artix7-harness: + +XRAY_PIN_00=J13 XRAY_PIN_01=J14 XRAY_PIN_02=K15 XRAY_PIN_03=K16 \ + XRAY_PART=xc7a35tftg256-1 XRAY_EQUIV_PART=xc7a50tfgg484-1 $(MAKE) -C fuzzers roi_only +source minitests/roi_harness/basys3-swbut.sh && $(MAKE) -C fuzzers roi_only +source minitests/roi_harness/arty-uart.sh && $(MAKE) -C fuzzers roi_only +source minitests/roi_harness/basys3-swbut.sh && \ diff --git a/fuzzers/000-init-db/Makefile b/fuzzers/000-init-db/Makefile index 169e8368..849adebd 100644 --- a/fuzzers/000-init-db/Makefile +++ b/fuzzers/000-init-db/Makefile @@ -55,17 +55,19 @@ BLOCK_RAM_EXTRA_DB_FILES=\ DB_FILES=$(sort $(addsuffix .origin_info.db,$(DB_SIMPLE)) $(addsuffix .db,$(DB_SIMPLE)) $(BLOCK_RAM_EXTRA_DB_FILES)) DB_FILES_PATH=$(addprefix $(XRAY_DATABASE_DIR)/$(XRAY_DATABASE)/,$(DB_FILES)) +BUILD_DIR = build_${XRAY_PART} + check: - @mkdir -p build - @rm -f build/existing.txt + @mkdir -p build_ + @rm -f $(BUILD_DIR)/existing.txt @for DB_FILE in $(sort $(notdir $(wildcard $(XRAY_DATABASE_DIR)/$(XRAY_DATABASE)/*.db))); do \ - echo $$DB_FILE >> build/existing.txt; \ + echo $$DB_FILE >> $(BUILD_DIR)/existing.txt; \ done - @rm -f build/tocreate.txt + @rm -f $(BUILD_DIR)/tocreate.txt @for DB_FILE in $(sort $(DB_FILES)); do \ - echo $$DB_FILE >> build/tocreate.txt; \ + echo $$DB_FILE >> $(BUILD_DIR)/tocreate.txt; \ done - diff -u build/existing.txt build/tocreate.txt + diff -u $(BUILD_DIR)/existing.txt $(BUILD_DIR)/tocreate.txt status: @echo $(DB_FILES_PATH) @@ -82,15 +84,18 @@ status: $(DB_FILES_PATH): touch $@ -pushdb: $(DB_FILES_PATH) +${XRAY_FAMILY_DIR}/${XRAY_PART}: + mkdir -p ${XRAY_FAMILY_DIR}/${XRAY_PART} + +pushdb: $(DB_FILES_PATH) ${XRAY_FAMILY_DIR}/${XRAY_PART} @true run: $(MAKE) clean $(MAKE) pushdb - touch run.ok + touch run.${XRAY_PART}.ok clean: - rm -rf build run.ok + rm -rf build_* run.*.ok .PHONY: pushdb clean run diff --git a/fuzzers/001-part-yaml/Makefile b/fuzzers/001-part-yaml/Makefile index efc4320c..2cd79e3c 100644 --- a/fuzzers/001-part-yaml/Makefile +++ b/fuzzers/001-part-yaml/Makefile @@ -1,12 +1,14 @@ N := 1 -SPECIMENS := $(addprefix build/specimen_,$(shell seq -f '%03.0f' $(N))) +SPECIMENS := $(addprefix build_${XRAY_PART}/specimen_,$(shell seq -f '%03.0f' $(N))) + +BUILD_DIR = build_${XRAY_PART} database: $(SPECIMENS) - mkdir -p build - cp build/specimen_001/part.yaml build/part.yaml - python3 -m utils.xyaml build/part.yaml > build/part_no_iobanks.json - python3 add_iobanks.py --part_json build/part_no_iobanks.json --iobanks_info build/specimen_001/iobanks.txt > build/part.json - cp ${XRAY_PART}_required_features.fasm build/ 2>/dev/null || true + mkdir -p $(BUILD_DIR) + cp $(BUILD_DIR)/specimen_001/part.yaml $(BUILD_DIR)/part.yaml + python3 -m utils.xyaml $(BUILD_DIR)/part.yaml > $(BUILD_DIR)/part_no_iobanks.json + python3 add_iobanks.py --part_json $(BUILD_DIR)/part_no_iobanks.json --iobanks_info $(BUILD_DIR)/specimen_001/iobanks.txt > $(BUILD_DIR)/part.json + cp ${XRAY_PART}_required_features.fasm $(BUILD_DIR)/ 2>/dev/null || true $(SPECIMENS): Makefile.specimen mkdir -p $@ @@ -14,17 +16,17 @@ $(SPECIMENS): Makefile.specimen pushdb: mkdir -p ${XRAY_FAMILY_DIR}/${XRAY_PART} - cp build/part.json $(XRAY_FAMILY_DIR)/${XRAY_PART}/part.json - cp build/part.yaml $(XRAY_FAMILY_DIR)/${XRAY_PART}/part.yaml - cp build/${XRAY_PART}_required_features.fasm ${XRAY_FAMILY_DIR}/${XRAY_PART}/required_features.fasm 2>/dev/null || true + cp $(BUILD_DIR)/part.json $(XRAY_FAMILY_DIR)/${XRAY_PART}/part.json + cp $(BUILD_DIR)/part.yaml $(XRAY_FAMILY_DIR)/${XRAY_PART}/part.yaml + cp $(BUILD_DIR)/${XRAY_PART}_required_features.fasm ${XRAY_FAMILY_DIR}/${XRAY_PART}/required_features.fasm 2>/dev/null || true run: $(MAKE) clean $(MAKE) database $(MAKE) pushdb - touch run.ok + touch run.${XRAY_PART}.ok clean: - rm -rf build run.ok + rm -rf build_* run.*.ok .PHONY: database pushdb clean run $(SPECIMENS) diff --git a/fuzzers/005-tilegrid/Makefile b/fuzzers/005-tilegrid/Makefile index 9e9e38a6..81959b4c 100644 --- a/fuzzers/005-tilegrid/Makefile +++ b/fuzzers/005-tilegrid/Makefile @@ -1,144 +1,145 @@ FUZDIR=$(shell pwd) -BUILD_DIR=$(FUZDIR)/build +BUILD_FOLDER=build_${XRAY_PART} +BUILD_DIR=$(FUZDIR)/$(BUILD_FOLDER) TILEGRID_TDB_DEPENDENCIES= -TILEGRID_TDB_DEPENDENCIES += iob/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += iob_int/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += ioi/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += monitor/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += bram/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += bram_block/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += bram_int/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += clb/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += clb_int/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += cfg/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += dsp/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += fifo_int/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += cfg_int/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += monitor_int/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += clk_hrow/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += clk_bufg/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += hclk_cmt/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += pll/build/segbits_tilegrid.tdb -TILEGRID_TDB_DEPENDENCIES += hclk_ioi/build/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += iob/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += iob_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += ioi/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += monitor/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += bram/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += bram_block/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += bram_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += clb/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += clb_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += cfg/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += dsp/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += fifo_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += cfg_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += monitor_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += clk_hrow/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += clk_bufg/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += hclk_cmt/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += pll/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += hclk_ioi/$(BUILD_FOLDER)/segbits_tilegrid.tdb GENERATE_FULL_ARGS= ifeq (${XRAY_DATABASE}, zynq7) # Zynq7 only -TILEGRID_TDB_DEPENDENCIES += ps7_int/build/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += ps7_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb else # Artix7/Kintex7 only -TILEGRID_TDB_DEPENDENCIES += mmcm/build/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += mmcm/$(BUILD_FOLDER)/segbits_tilegrid.tdb endif ifeq (${XRAY_DATABASE}, kintex7) -TILEGRID_TDB_DEPENDENCIES += orphan_int_column/build/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += orphan_int_column/$(BUILD_FOLDER)/segbits_tilegrid.tdb else # Disable DSP INT fuzzer on kintex7. It doesn't work, and isn't required. -TILEGRID_TDB_DEPENDENCIES += dsp_int/build/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += dsp_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb endif -BASICDB_TILEGRID=build/basicdb/${XRAY_PART}/tilegrid.json +BASICDB_TILEGRID=$(BUILD_FOLDER)/basicdb/${XRAY_PART}/tilegrid.json -database: build/tilegrid.json +database: $(BUILD_FOLDER)/tilegrid.json -pushdb: build/tilegrid.json - cp build/tilegrid.json ${XRAY_FAMILY_DIR}/${XRAY_PART}/tilegrid.json +pushdb: $(BUILD_FOLDER)/tilegrid.json + cp $(BUILD_FOLDER)/tilegrid.json ${XRAY_FAMILY_DIR}/${XRAY_PART}/tilegrid.json -build/tiles/tiles.txt: - bash generate.sh build/tiles tiles +$(BUILD_FOLDER)/tiles/tiles.txt: + bash generate.sh $(BUILD_FOLDER)/tiles tiles -${BASICDB_TILEGRID}: generate.py build/tiles/tiles.txt - mkdir -p build/basicdb/${XRAY_PART} - cd build && python3 ${FUZDIR}/generate.py \ - --tiles $(FUZDIR)/build/tiles/tiles.txt \ - --pin_func $(FUZDIR)/build/tiles/pin_func.txt \ +${BASICDB_TILEGRID}: generate.py $(BUILD_FOLDER)/tiles/tiles.txt + mkdir -p $(BUILD_FOLDER)/basicdb/${XRAY_PART} + cd $(BUILD_FOLDER) && python3 ${FUZDIR}/generate.py \ + --tiles $(BUILD_DIR)/tiles/tiles.txt \ + --pin_func $(BUILD_DIR)/tiles/pin_func.txt \ --out ${BUILD_DIR}/basicdb/${XRAY_PART}/tilegrid.json -clb/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +clb/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd clb && $(MAKE) -clb_int/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +clb_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd clb_int && $(MAKE) -cfg/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +cfg/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd cfg && $(MAKE) -iob/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +iob/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd iob && $(MAKE) -iob_int/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +iob_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd iob_int && $(MAKE) -ioi/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +ioi/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd ioi && $(MAKE) -mmcm/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +mmcm/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd mmcm && $(MAKE) -pll/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +pll/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd pll && $(MAKE) -ps7_int/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +ps7_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd ps7_int && $(MAKE) -monitor/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +monitor/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd monitor && $(MAKE) -monitor_int/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +monitor_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd monitor_int && $(MAKE) -bram/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +bram/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd bram && $(MAKE) -bram_block/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +bram_block/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd bram_block && $(MAKE) -bram_int/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +bram_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd bram_int && $(MAKE) -dsp/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +dsp/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd dsp && $(MAKE) -dsp_int/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +dsp_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd dsp_int && $(MAKE) -fifo_int/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +fifo_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd fifo_int && $(MAKE) -cfg_int/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +cfg_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd cfg_int && $(MAKE) -orphan_int_column/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +orphan_int_column/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd orphan_int_column && $(MAKE) -clk_hrow/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +clk_hrow/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd clk_hrow && $(MAKE) -clk_bufg/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +clk_bufg/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd clk_bufg && $(MAKE) -hclk_cmt/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +hclk_cmt/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd hclk_cmt && $(MAKE) -hclk_ioi/build/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} +hclk_ioi/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd hclk_ioi && $(MAKE) -build/tilegrid_tdb.json: add_tdb.py $(TILEGRID_TDB_DEPENDENCIES) +$(BUILD_FOLDER)/tilegrid_tdb.json: add_tdb.py $(TILEGRID_TDB_DEPENDENCIES) python3 add_tdb.py \ --fn-in ${BASICDB_TILEGRID} \ - --fn-out build/tilegrid_tdb.json + --fn-out $(BUILD_FOLDER)/tilegrid_tdb.json -build/tilegrid.json: generate_full.py build/tilegrid_tdb.json - cd build && python3 ${FUZDIR}/generate_full.py \ +$(BUILD_FOLDER)/tilegrid.json: generate_full.py $(BUILD_FOLDER)/tilegrid_tdb.json + cd $(BUILD_FOLDER) && python3 ${FUZDIR}/generate_full.py \ --json-in tilegrid_tdb.json --json-out ${BUILD_DIR}/tilegrid.json run: $(MAKE) clean $(MAKE) database $(MAKE) pushdb - touch run.ok + touch run.${XRAY_PART}.ok clean: - rm -rf build run.ok + rm -rf build_* run.*.ok cd clb && $(MAKE) clean cd clb_int && $(MAKE) clean cd cfg && $(MAKE) clean diff --git a/fuzzers/005-tilegrid/add_tdb.py b/fuzzers/005-tilegrid/add_tdb.py index 61403894..e526f38d 100644 --- a/fuzzers/005-tilegrid/add_tdb.py +++ b/fuzzers/005-tilegrid/add_tdb.py @@ -76,34 +76,35 @@ def run(fn_in, fn_out, verbose=False): # FIXME: generate words from pitch int_frames, int_words = localutil.get_int_params() tdb_fns = [ - ("iob/build/segbits_tilegrid.tdb", 42, 4), - ("ioi/build/segbits_tilegrid.tdb", 42, 4), - ("mmcm/build/segbits_tilegrid.tdb", 30, 101), - ("pll/build/segbits_tilegrid.tdb", 30, 26), - ("monitor/build/segbits_tilegrid.tdb", 30, 101), - ("bram/build/segbits_tilegrid.tdb", 28, 10), - ("bram_block/build/segbits_tilegrid.tdb", 128, 10), - ("clb/build/segbits_tilegrid.tdb", 36, 2), - ("cfg/build/segbits_tilegrid.tdb", 30, 101), - ("dsp/build/segbits_tilegrid.tdb", 28, 10), - ("clk_hrow/build/segbits_tilegrid.tdb", 30, 18), - ("clk_bufg/build/segbits_tilegrid.tdb", 30, 8), - ("hclk_cmt/build/segbits_tilegrid.tdb", 30, 10), - ("hclk_ioi/build/segbits_tilegrid.tdb", 42, 1), - ("clb_int/build/segbits_tilegrid.tdb", int_frames, int_words), - ("iob_int/build/segbits_tilegrid.tdb", int_frames, int_words), - ("bram_int/build/segbits_tilegrid.tdb", int_frames, int_words), - ("dsp_int/build/segbits_tilegrid.tdb", int_frames, int_words), - ("fifo_int/build/segbits_tilegrid.tdb", int_frames, int_words), - ("ps7_int/build/segbits_tilegrid.tdb", int_frames, int_words), - ("cfg_int/build/segbits_tilegrid.tdb", int_frames, int_words), - ("monitor_int/build/segbits_tilegrid.tdb", int_frames, int_words), - ( - "orphan_int_column/build/segbits_tilegrid.tdb", int_frames, - int_words), + ("iob", 42, 4), + ("ioi", 42, 4), + ("mmcm", 30, 101), + ("pll", 30, 26), + ("monitor", 30, 101), + ("bram", 28, 10), + ("bram_block", 128, 10), + ("clb", 36, 2), + ("cfg", 30, 101), + ("dsp", 28, 10), + ("clk_hrow", 30, 18), + ("clk_bufg", 30, 8), + ("hclk_cmt", 30, 10), + ("hclk_ioi", 42, 1), + ("clb_int", int_frames, int_words), + ("iob_int", int_frames, int_words), + ("bram_int", int_frames, int_words), + ("dsp_int", int_frames, int_words), + ("fifo_int", int_frames, int_words), + ("ps7_int", int_frames, int_words), + ("cfg_int", int_frames, int_words), + ("monitor_int", int_frames, int_words), + ("orphan_int_column", int_frames, int_words), ] - for (tdb_fn, frames, words) in tdb_fns: + for (subdir, frames, words) in tdb_fns: + tdb_fn = os.path.join( + subdir, 'build_{}'.format(os.environ['XRAY_PART']), + 'segbits_tilegrid.tdb') if not os.path.exists(tdb_fn): verbose and print('Skipping {}, file not found!'.format(tdb_fn)) continue diff --git a/fuzzers/005-tilegrid/fuzzaddr/common.mk b/fuzzers/005-tilegrid/fuzzaddr/common.mk index 21b185d6..f54efa78 100644 --- a/fuzzers/005-tilegrid/fuzzaddr/common.mk +++ b/fuzzers/005-tilegrid/fuzzaddr/common.mk @@ -1,12 +1,13 @@ N ?= 10 +BUILD_DIR = build_$(XRAY_PART) GENERATE_ARGS ?= -SPECIMENS := $(addprefix build/specimen_,$(shell seq -f '%03.0f' $(N))) +SPECIMENS := $(addprefix $(BUILD_DIR)/specimen_,$(shell seq -f '%03.0f' $(N))) SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS)) -database: build/segbits_tilegrid.tdb +database: $(BUILD_DIR)/segbits_tilegrid.tdb -build/segbits_tilegrid.tdb: $(SPECIMENS_OK) - ${XRAY_SEGMATCH} -o build/segbits_tilegrid.tdb $$(find build -name "segdata_tilegrid.txt") +$(BUILD_DIR)/segbits_tilegrid.tdb: $(SPECIMENS_OK) + ${XRAY_SEGMATCH} -o $(BUILD_DIR)/segbits_tilegrid.tdb $$(find $(BUILD_DIR) -name "segdata_tilegrid.txt") $(SPECIMENS_OK): GENERATE_ARGS=${GENERATE_ARGS} bash ../fuzzaddr/generate.sh $(subst /OK,,$@) @@ -16,10 +17,10 @@ run: $(MAKE) clean $(MAKE) database $(MAKE) pushdb - touch run.ok + touch run.${XRAY_PART}.ok clean: - rm -rf build + rm -rf build_* run.*.ok .PHONY: database pushdb run clean diff --git a/fuzzers/005-tilegrid/fuzzaddr/generate.sh b/fuzzers/005-tilegrid/fuzzaddr/generate.sh index 76503f6d..f5095f62 100644 --- a/fuzzers/005-tilegrid/fuzzaddr/generate.sh +++ b/fuzzers/005-tilegrid/fuzzaddr/generate.sh @@ -7,7 +7,7 @@ source ${XRAY_GENHEADER} # Some projects have hard coded top.v, others are generated if [ -f $FUZDIR/top.py ] ; then - XRAY_DATABASE_ROOT=$FUZDIR/../build/basicdb python3 $FUZDIR/top.py >top.v + XRAY_DATABASE_ROOT=$FUZDIR/../build_${XRAY_PART}/basicdb python3 $FUZDIR/top.py >top.v fi ${XRAY_VIVADO} -mode batch -source $FUZDIR/generate.tcl diff --git a/fuzzers/072-ordered_wires/Makefile b/fuzzers/072-ordered_wires/Makefile index 851bebc8..49682145 100644 --- a/fuzzers/072-ordered_wires/Makefile +++ b/fuzzers/072-ordered_wires/Makefile @@ -1,6 +1,6 @@ N := 1 -SPECIMENS := $(addprefix build/specimen_,$(shell seq -f '%03.0f' $(N))) +SPECIMENS := $(addprefix build_${XRAY_PART}/specimen_,$(shell seq -f '%03.0f' $(N))) SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS)) MAX_VIVADO_PROCESS ?= 4 MAX_PIPS_INSTANCE ?= 340000 @@ -19,10 +19,10 @@ run: $(MAKE) clean $(MAKE) database $(MAKE) pushdb - touch run.ok + touch run.${XRAY_PART}.ok clean: - rm -rf build run.ok + rm -rf build_* run.*.ok .PHONY: database pushdb run clean diff --git a/fuzzers/073-get_counts/Makefile b/fuzzers/073-get_counts/Makefile index e4542ba5..1b7fcab7 100644 --- a/fuzzers/073-get_counts/Makefile +++ b/fuzzers/073-get_counts/Makefile @@ -1,13 +1,14 @@ N := 1 -SPECIMENS := $(addprefix build/specimen_,$(shell seq -f '%03.0f' $(N))) +BUILD_DIR = build_${XRAY_PART} +SPECIMENS := $(addprefix $(BUILD_DIR)/specimen_,$(shell seq -f '%03.0f' $(N))) SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS)) database: $(SPECIMENS_OK) true pushdb: - cp build/specimen_001/*.csv ${XRAY_DATABASE_DIR}/$(XRAY_DATABASE)/ + cp $(BUILD_DIR)/specimen_001/*.csv ${XRAY_DATABASE_DIR}/$(XRAY_DATABASE)/ $(SPECIMENS_OK): bash generate.sh $(subst /OK,,$@) @@ -17,10 +18,10 @@ run: $(MAKE) clean $(MAKE) database $(MAKE) pushdb - touch run.ok + touch run.${XRAY_PART}.ok clean: - rm -rf build run.ok + rm -rf build_* run.${XRAY_PART}.ok .PHONY: database pushdb run clean diff --git a/fuzzers/074-dump_all/Makefile b/fuzzers/074-dump_all/Makefile index b5247934..9d3850c5 100644 --- a/fuzzers/074-dump_all/Makefile +++ b/fuzzers/074-dump_all/Makefile @@ -1,6 +1,7 @@ N := 1 -SPECIMENS := $(addprefix build/specimen_,$(shell seq -f '%03.0f' $(N))) +BUILD_DIR = build_${XRAY_PART} +SPECIMENS := $(addprefix $(BUILD_DIR)/specimen_,$(shell seq -f '%03.0f' $(N))) SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS)) MAX_VIVADO_PROCESS ?= 4 MAX_TILES_INSTANCE ?= 300 @@ -10,10 +11,10 @@ database: $(SPECIMENS_OK) true pushdb: - cp build/output/tile_type_*.json ${XRAY_FAMILY_DIR}/ + cp $(BUILD_DIR)/output/tile_type_*.json ${XRAY_FAMILY_DIR}/ rm ${XRAY_FAMILY_DIR}/tile_type_*_site_type_*.json - cp build/output/site_type_*.json ${XRAY_FAMILY_DIR}/ - cp build/output/tileconn.json ${XRAY_FAMILY_DIR}/$(XRAY_PART)/ + cp $(BUILD_DIR)/output/site_type_*.json ${XRAY_FAMILY_DIR}/ + cp $(BUILD_DIR)/output/tileconn.json ${XRAY_FAMILY_DIR}/$(XRAY_PART)/ $(SPECIMENS_OK): bash generate.sh $(subst /OK,,$@) -p=$(MAX_VIVADO_PROCESS) -t=$(MAX_TILES_INSTANCE) -n=$(MAX_NODES_INSTANCE) @@ -24,11 +25,11 @@ run: $(MAKE) database $(MAKE) pushdb # Clean up intermediate files after successful pushdb. - find build -name "*.json5" -delete - touch run.ok + find $(BUILD_DIR) -name "*.json5" -delete + touch run.${XRAY_PART}.ok clean: - rm -rf build run.ok + rm -rf build_* run.*.ok .PHONY: database pushdb run clean diff --git a/fuzzers/074-dump_all/generate_after_dump.sh b/fuzzers/074-dump_all/generate_after_dump.sh index 5c5bc9d9..712a7e2b 100755 --- a/fuzzers/074-dump_all/generate_after_dump.sh +++ b/fuzzers/074-dump_all/generate_after_dump.sh @@ -3,16 +3,19 @@ # By default use ~50 GiB for generate_grid.py, but allow override. export DEFAULT_MAX_GRID_CPU=10 -rm -rf build/output -mkdir -p build/output +export BUILD_DIR=build_${XRAY_PART} +rm -rf ${BUILD_DIR}/output +mkdir -p ${BUILD_DIR}/output python3 reduce_tile_types.py \ - --root_dir build/specimen_001/ \ - --output_dir build/output + --root_dir ${BUILD_DIR}/specimen_001/ \ + --output_dir ${BUILD_DIR}/output python3 create_node_tree.py \ - --dump_all_root_dir build/specimen_001/ \ - --ordered_wires_root_dir ../072-ordered_wires/build/specimen_001/ \ - --output_dir build/output -python3 reduce_site_types.py --output_dir build/output -python3 generate_grid.py --root_dir build/specimen_001/ --output_dir build/output \ + --dump_all_root_dir ${BUILD_DIR}/specimen_001/ \ + --ordered_wires_root_dir ../072-ordered_wires/${BUILD_DIR}/specimen_001/ \ + --output_dir ${BUILD_DIR}/output +python3 reduce_site_types.py --output_dir ${BUILD_DIR}/output +python3 generate_grid.py \ + --root_dir ${BUILD_DIR}/specimen_001/ \ + --output_dir ${BUILD_DIR}/output \ --ignored_wires ignored_wires/${XRAY_DATABASE}/${XRAY_PART}_ignored_wires.txt \ --max_cpu=${MAX_GRID_CPU:-${DEFAULT_MAX_GRID_CPU}} diff --git a/fuzzers/075-pins/Makefile b/fuzzers/075-pins/Makefile index 0c1bb466..299e73c5 100644 --- a/fuzzers/075-pins/Makefile +++ b/fuzzers/075-pins/Makefile @@ -1,12 +1,13 @@ N := 1 -SPECIMENS := $(addprefix build/specimen_,$(shell seq -f '%03.0f' $(N))) +BUILD_DIR = build_${XRAY_PART} +SPECIMENS := $(addprefix $(BUILD_DIR)/specimen_,$(shell seq -f '%03.0f' $(N))) SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS)) database: $(SPECIMENS_OK) pushdb: mkdir -p ${XRAY_FAMILY_DIR}/${XRAY_PART}/ - cp build/specimen_001/*_package_pins.csv ${XRAY_FAMILY_DIR}/${XRAY_PART}/package_pins.csv + cp $(BUILD_DIR)/specimen_001/*_package_pins.csv ${XRAY_FAMILY_DIR}/${XRAY_PART}/package_pins.csv $(SPECIMENS_OK): bash generate.sh $(subst /OK,,$@) @@ -16,9 +17,9 @@ run: $(MAKE) clean $(MAKE) database $(MAKE) pushdb - touch run.ok + touch run.$(XRAY_PART).ok clean: - rm -rf build run.ok + rm -rf build_* run.*.ok .PHONY: database pushdb run clean diff --git a/fuzzers/Makefile b/fuzzers/Makefile index fb0f29b2..7ef38090 100644 --- a/fuzzers/Makefile +++ b/fuzzers/Makefile @@ -23,9 +23,15 @@ define fuzzer # $(1) - Fuzzer name/directory # $(2) - Space seperated list of dependencies for the fuzzer. +# $(3) - Is this fuzzer setting specific? # Make the all target depend on the run.ok file for the fuzzer. +ifeq ($(3),Y) +all: $(1)/run.$(XRAY_PART).ok +part_only: $(1)/run.$(XRAY_PART).ok +else all: $(1)/run.ok +endif # Make the clean target run `make clean` in the fuzzer's directory. clean_fuzzers:: @@ -40,92 +46,123 @@ clean_logs:: ifeq ($(VERBOSE),Y) # When verbose we just call make directory -$(1)/run.ok: $(addsuffix /run.ok,$(2)) +ifeq ($(3),Y) + +$(1)/run.$(XRAY_PART).ok: $(addprefix fuzzer_, $(2)) $$(MAKE) -C $(1) run else +$(1)/run.ok: $(addprefix fuzzer_, $(2)) + $$(MAKE) -C $(1) run + +endif + +else + # When not verbose, we use the run_fuzzer wrapper which will save the results # to log files. -$(1)/run.ok: $(addsuffix /run.ok,$(2)) +ifeq ($(3),Y) + +$(1)/run.$(XRAY_PART).ok: $(addprefix fuzzer_, $(2)) + +@$(SELF_DIR)/run_fuzzer.py $(1) + +else + +$(1)/run.ok: $(addprefix fuzzer_, $(2)) +@$(SELF_DIR)/run_fuzzer.py $(1) endif +endif + +.PHONY:: fuzzer_$(1) + +ifeq ($(3),Y) + +fuzzer_$(1): $(1)/run.$(XRAY_PART).ok + +else + +fuzzer_$(1): $(1)/run.ok + +endif + + endef -$(eval $(call fuzzer,000-init-db,)) +$(eval $(call fuzzer,000-init-db,,Y)) ifneq ($(FUZZONLY),Y) -$(eval $(call fuzzer,001-part-yaml,000-init-db)) -$(eval $(call fuzzer,005-tilegrid,001-part-yaml)) +$(eval $(call fuzzer,001-part-yaml,000-init-db,Y)) +$(eval $(call fuzzer,005-tilegrid,001-part-yaml,Y)) else all:: 005-tilegrid/run.ok touch 005-tilegrid/run.ok endif ifneq ($(XRAY_DATABASE),kintex7) -$(eval $(call fuzzer,007-timing,005-tilegrid)) +$(eval $(call fuzzer,007-timing,005-tilegrid,N)) endif -$(eval $(call fuzzer,010-clb-lutinit,005-tilegrid)) -$(eval $(call fuzzer,011-clb-ffconfig,005-tilegrid)) -$(eval $(call fuzzer,012-clb-n5ffmux,005-tilegrid)) -$(eval $(call fuzzer,013-clb-ncy0,005-tilegrid)) -$(eval $(call fuzzer,014-clb-ffsrcemux,005-tilegrid)) -$(eval $(call fuzzer,015-clb-nffmux,005-tilegrid)) -$(eval $(call fuzzer,016-clb-noutmux,005-tilegrid)) -$(eval $(call fuzzer,017-clb-precyinit,005-tilegrid)) -$(eval $(call fuzzer,018-clb-ram,005-tilegrid)) -$(eval $(call fuzzer,019-clb-ndi1mux,005-tilegrid)) -$(eval $(call fuzzer,025-bram-config,005-tilegrid)) -$(eval $(call fuzzer,026-bram-data,005-tilegrid)) -$(eval $(call fuzzer,027-bram36-config,005-tilegrid)) -$(eval $(call fuzzer,028-fifo-config,005-tilegrid)) -$(eval $(call fuzzer,029-bram-fifo-config,005-tilegrid)) -$(eval $(call fuzzer,030-iob,005-tilegrid)) -$(eval $(call fuzzer,032-cmt-pll,005-tilegrid)) -$(eval $(call fuzzer,034-cmt-pll-pips,005-tilegrid 071-ppips)) -$(eval $(call fuzzer,035-iob-ilogic,005-tilegrid)) -$(eval $(call fuzzer,035a-iob-idelay,005-tilegrid)) -$(eval $(call fuzzer,036-iob-ologic,005-tilegrid)) -$(eval $(call fuzzer,037-iob-pips,005-tilegrid)) -$(eval $(call fuzzer,038-cfg,005-tilegrid)) -$(eval $(call fuzzer,039-hclk-config,005-tilegrid)) -$(eval $(call fuzzer,040-clk-hrow-config,005-tilegrid)) -$(eval $(call fuzzer,041-clk-hrow-pips,005-tilegrid)) -$(eval $(call fuzzer,042-clk-bufg-config,005-tilegrid)) -$(eval $(call fuzzer,043-clk-rebuf-pips,005-tilegrid)) -$(eval $(call fuzzer,044-clk-bufg-pips,046-clk-bufg-muxed-pips)) -$(eval $(call fuzzer,045-hclk-cmt-pips,005-tilegrid)) -$(eval $(call fuzzer,046-clk-bufg-muxed-pips,005-tilegrid)) -$(eval $(call fuzzer,047-hclk-ioi-pips,005-tilegrid)) -$(eval $(call fuzzer,047a-hclk-idelayctrl-pips,047-hclk-ioi-pips)) -$(eval $(call fuzzer,048-int-piplist,005-tilegrid)) -$(eval $(call fuzzer,049-int-imux-gfan,048-int-piplist)) -$(eval $(call fuzzer,050-pip-seed,048-int-piplist)) -$(eval $(call fuzzer,051-pip-imuxlout-bypalts,048-int-piplist)) -$(eval $(call fuzzer,052-pip-clkin,048-int-piplist)) -$(eval $(call fuzzer,053-pip-ctrlin,048-int-piplist)) -$(eval $(call fuzzer,054-pip-fan-alt,048-int-piplist)) -$(eval $(call fuzzer,055-pip-gnd,048-int-piplist)) -$(eval $(call fuzzer,056-pip-rem,049-int-imux-gfan 050-pip-seed 051-pip-imuxlout-bypalts 052-pip-clkin 053-pip-ctrlin 054-pip-fan-alt 055-pip-gnd 059-pip-byp-bounce)) -$(eval $(call fuzzer,057-pip-bi,056-pip-rem)) +$(eval $(call fuzzer,010-clb-lutinit,005-tilegrid,N)) +$(eval $(call fuzzer,011-clb-ffconfig,005-tilegrid,N)) +$(eval $(call fuzzer,012-clb-n5ffmux,005-tilegrid,N)) +$(eval $(call fuzzer,013-clb-ncy0,005-tilegrid,N)) +$(eval $(call fuzzer,014-clb-ffsrcemux,005-tilegrid,N)) +$(eval $(call fuzzer,015-clb-nffmux,005-tilegrid,N)) +$(eval $(call fuzzer,016-clb-noutmux,005-tilegrid,N)) +$(eval $(call fuzzer,017-clb-precyinit,005-tilegrid,N)) +$(eval $(call fuzzer,018-clb-ram,005-tilegrid,N)) +$(eval $(call fuzzer,019-clb-ndi1mux,005-tilegrid,N)) +$(eval $(call fuzzer,025-bram-config,005-tilegrid,N)) +$(eval $(call fuzzer,026-bram-data,005-tilegrid,N)) +$(eval $(call fuzzer,027-bram36-config,005-tilegrid,N)) +$(eval $(call fuzzer,028-fifo-config,005-tilegrid,N)) +$(eval $(call fuzzer,029-bram-fifo-config,005-tilegrid,N)) +$(eval $(call fuzzer,030-iob,005-tilegrid,N)) +$(eval $(call fuzzer,032-cmt-pll,005-tilegrid,N)) +$(eval $(call fuzzer,034-cmt-pll-pips,005-tilegrid 071-ppips,N)) +$(eval $(call fuzzer,035-iob-ilogic,005-tilegrid,N)) +$(eval $(call fuzzer,035a-iob-idelay,005-tilegrid,N)) +$(eval $(call fuzzer,036-iob-ologic,005-tilegrid,N)) +$(eval $(call fuzzer,037-iob-pips,005-tilegrid,N)) +$(eval $(call fuzzer,038-cfg,005-tilegrid,N)) +$(eval $(call fuzzer,039-hclk-config,005-tilegrid,N)) +$(eval $(call fuzzer,040-clk-hrow-config,005-tilegrid,N)) +$(eval $(call fuzzer,041-clk-hrow-pips,005-tilegrid,N)) +$(eval $(call fuzzer,042-clk-bufg-config,005-tilegrid,N)) +$(eval $(call fuzzer,043-clk-rebuf-pips,005-tilegrid,N)) +$(eval $(call fuzzer,044-clk-bufg-pips,046-clk-bufg-muxed-pips,N)) +$(eval $(call fuzzer,045-hclk-cmt-pips,005-tilegrid,N)) +$(eval $(call fuzzer,046-clk-bufg-muxed-pips,005-tilegrid,N)) +$(eval $(call fuzzer,047-hclk-ioi-pips,005-tilegrid,N)) +$(eval $(call fuzzer,047a-hclk-idelayctrl-pips,047-hclk-ioi-pips,N)) +$(eval $(call fuzzer,048-int-piplist,005-tilegrid,N)) +$(eval $(call fuzzer,049-int-imux-gfan,048-int-piplist,N)) +$(eval $(call fuzzer,050-pip-seed,048-int-piplist,N)) +$(eval $(call fuzzer,051-pip-imuxlout-bypalts,048-int-piplist,N)) +$(eval $(call fuzzer,052-pip-clkin,048-int-piplist,N)) +$(eval $(call fuzzer,053-pip-ctrlin,048-int-piplist,N)) +$(eval $(call fuzzer,054-pip-fan-alt,048-int-piplist,N)) +$(eval $(call fuzzer,055-pip-gnd,048-int-piplist,N)) +$(eval $(call fuzzer,056-pip-rem,049-int-imux-gfan 050-pip-seed 051-pip-imuxlout-bypalts 052-pip-clkin 053-pip-ctrlin 054-pip-fan-alt 055-pip-gnd 059-pip-byp-bounce,N)) +$(eval $(call fuzzer,057-pip-bi,056-pip-rem,N)) ifneq ($(QUICK),Y) -$(eval $(call fuzzer,058-pip-hclk,005-tilegrid)) -$(eval $(call fuzzer,059-pip-byp-bounce,048-int-piplist)) -$(eval $(call fuzzer,060-bram-cascades,005-tilegrid)) -$(eval $(call fuzzer,071-ppips,057-pip-bi 058-pip-hclk 060-bram-cascades)) +$(eval $(call fuzzer,058-pip-hclk,005-tilegrid,N)) +$(eval $(call fuzzer,059-pip-byp-bounce,048-int-piplist,N)) +$(eval $(call fuzzer,060-bram-cascades,005-tilegrid,N)) +$(eval $(call fuzzer,071-ppips,057-pip-bi 058-pip-hclk 060-bram-cascades,N)) ifneq ($(BITONLY),Y) -$(eval $(call fuzzer,072-ordered_wires,)) -$(eval $(call fuzzer,073-get_counts,)) -$(eval $(call fuzzer,074-dump_all,005-tilegrid 072-ordered_wires)) -$(eval $(call fuzzer,075-pins,)) +$(eval $(call fuzzer,072-ordered_wires,,Y)) +$(eval $(call fuzzer,073-get_counts,,Y)) +$(eval $(call fuzzer,074-dump_all,005-tilegrid 072-ordered_wires,Y)) +$(eval $(call fuzzer,075-pins,,Y)) ifeq ($(XRAY_DATABASE),zynq7) -$(eval $(call fuzzer,076-ps7,)) +$(eval $(call fuzzer,076-ps7,,N)) endif endif endif -$(eval $(call fuzzer,100-dsp-mskpat,005-tilegrid)) +$(eval $(call fuzzer,100-dsp-mskpat,005-tilegrid,N)) quick: $(MAKE) QUICK=Y @@ -133,51 +170,11 @@ quick: # Part only targets # ----------------- -$(addprefix ${XRAY_FAMILY_DIR}/${XRAY_PART}/part.,yaml json): - $(MAKE) 001-part-yaml/run.ok - -${XRAY_FAMILY_DIR}/${XRAY_PART}/package_pins.csv: - $(MAKE) 075-pins/run.ok - -${XRAY_FAMILY_DIR}/${XRAY_PART}/tilegrid.json: - $(MAKE) 005-tilegrid/run.ok - -${XRAY_FAMILY_DIR}/${XRAY_PART}/tileconn.json: - $(MAKE) 072-ordered_wires/run.ok - $(MAKE) 073-get_counts/run.ok - $(MAKE) 074-dump_all/run.ok - -part_only_yaml: ${XRAY_FAMILY_DIR}/${XRAY_PART}/part.yaml -part_only_tilegrid: ${XRAY_FAMILY_DIR}/${XRAY_PART}/tilegrid.json -part_only_tileconn: ${XRAY_FAMILY_DIR}/${XRAY_PART}/tileconn.json -part_only_pins: ${XRAY_FAMILY_DIR}/${XRAY_PART}/package_pins.csv - -# part_only runs the fuzzers required to support additional parts -part_only: - +$(MAKE) clean_fuzzers - # Create PART-specific directory - mkdir -p ${XRAY_FAMILY_DIR}/${XRAY_PART} - # Generate YAML - +$(MAKE) part_only_yaml - # Generate Tile grid - +$(MAKE) part_only_tilegrid - # Generate Tile connections - +$(MAKE) part_only_tileconn - # Generate package pins - +$(MAKE) part_only_pins - # roi_only runs the fuzzers required for supporting additional parts when building # a roi harness. -roi_only: - +$(MAKE) clean_fuzzers - # Create PART-specific directory - mkdir -p ${XRAY_FAMILY_DIR}/${XRAY_PART} - # Generate YAML - +$(MAKE) part_only_yaml - # Generate package pins - +$(MAKE) part_only_pins +roi_only: 000-init-db/run.${XRAY_PART}.ok 001-part-yaml/run.${XRAY_PART}.ok 075-pins/run.${XRAY_PART}.ok # Copy tilegrid and tileconn cp ${XRAY_FAMILY_DIR}/${XRAY_EQUIV_PART}/tilegrid.json ${XRAY_FAMILY_DIR}/${XRAY_PART}/tilegrid.json cp ${XRAY_FAMILY_DIR}/${XRAY_EQUIV_PART}/tileconn.json ${XRAY_FAMILY_DIR}/${XRAY_PART}/tileconn.json -.PHONY: all clean clean_fuzzers clean_logs quick part_only roi_only +.PHONY:: all clean clean_fuzzers clean_logs quick part_only roi_only diff --git a/minitests/roi_harness/Makefile b/minitests/roi_harness/Makefile index 36aed8f5..5eb613da 100644 --- a/minitests/roi_harness/Makefile +++ b/minitests/roi_harness/Makefile @@ -1,28 +1,28 @@ -BUILD_DIR=build -HARNESS_DIR ?= harness -export BUILD_DIR - XRAY_PINCFG ?= BASYS3-SWBUT export XRAY_PINCFG +BUILD_DIR=build_$(XRAY_PINCFG) +HARNESS_DIR ?= harness_$(XRAY_PINCFG) +export BUILD_DIR + HARNESS_FILES=$(BUILD_DIR)/design.bit $(BUILD_DIR)/design.txt $(BUILD_DIR)/design.json $(BUILD_DIR)/design.dcp # official demo configuration -all: $(HARNESS_FILES) +all: $(BUILD_DIR)/run.ok -$(HARNESS_FILES): runme.sh runme.tcl +$(BUILD_DIR)/run.ok: runme.sh runme.tcl ./runme.sh + touch $(BUILD_DIR)/run.ok -copy: $(HARNESS_FILES) +copy: $(BUILD_DIR)/run.ok mkdir -p $(HARNESS_DIR) cp $(HARNESS_FILES) $(HARNESS_DIR) clean: - rm -rf $(BUILD_DIR) $(HARNESS_DIR) + rm -rf build_* harness_* run: make clean make copy .PHONY: all clean copy run -