| # Copyright (C) 2017-2020 The Project X-Ray Authors. |
| # |
| # Use of this source code is governed by a ISC-style |
| # license that can be found in the LICENSE file or at |
| # https://opensource.org/licenses/ISC |
| # |
| # SPDX-License-Identifier: ISC |
| |
| FUZDIR=$(shell pwd) |
| BUILD_FOLDER=build_${XRAY_PART} |
| BUILD_DIR=$(FUZDIR)/$(BUILD_FOLDER) |
| TILEGRID_TDB_DEPENDENCIES= |
| 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 |
| TILEGRID_TDB_DEPENDENCIES += mmcm/$(BUILD_FOLDER)/segbits_tilegrid.tdb |
| TILEGRID_TDB_DEPENDENCIES += dsp_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb |
| GENERATE_FULL_ARGS= |
| |
| # Artix7 only fuzzers |
| ifeq (${XRAY_DATABASE}, artix7) |
| TILEGRID_TDB_DEPENDENCIES += pcie/$(BUILD_FOLDER)/segbits_tilegrid.tdb |
| TILEGRID_TDB_DEPENDENCIES += pcie_int_interface/$(BUILD_FOLDER)/segbits_tilegrid.tdb |
| TILEGRID_TDB_DEPENDENCIES += gtp_common/$(BUILD_FOLDER)/segbits_tilegrid.tdb |
| TILEGRID_TDB_DEPENDENCIES += gtp_channel/$(BUILD_FOLDER)/segbits_tilegrid.tdb |
| TILEGRID_TDB_DEPENDENCIES += gtp_int_interface/$(BUILD_FOLDER)/segbits_tilegrid.tdb |
| endif |
| |
| # Zynq7 only fuzzers |
| ifeq (${XRAY_DATABASE}, zynq7) |
| TILEGRID_TDB_DEPENDENCIES += ps7_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb |
| endif |
| |
| # Kintex7 only fuzzers |
| ifeq (${XRAY_DATABASE}, kintex7) |
| # xc7k420t/xc7k480t have no high performance banks |
| ifneq (${XRAY_FABRIC}, $(filter ${XRAY_FABRIC}, xc7k480t)) |
| TILEGRID_TDB_DEPENDENCIES += iob18/$(BUILD_FOLDER)/segbits_tilegrid.tdb |
| TILEGRID_TDB_DEPENDENCIES += iob18_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb |
| TILEGRID_TDB_DEPENDENCIES += ioi18/$(BUILD_FOLDER)/segbits_tilegrid.tdb |
| endif |
| |
| # These kintex parts give an empty design |
| ifneq (${XRAY_FABRIC}, $(filter ${XRAY_FABRIC}, xc7k160t xc7k325t xc7k480t)) |
| TILEGRID_TDB_DEPENDENCIES += orphan_int_column/$(BUILD_FOLDER)/segbits_tilegrid.tdb |
| endif |
| endif |
| |
| BASICDB_TILEGRID=$(BUILD_FOLDER)/basicdb/${XRAY_FABRIC}/tilegrid.json |
| |
| database: $(BUILD_FOLDER)/tilegrid.json |
| |
| pushdb: $(BUILD_FOLDER)/tilegrid.json |
| cp $(BUILD_FOLDER)/tilegrid.json ${XRAY_FAMILY_DIR}/${XRAY_FABRIC}/tilegrid.json |
| |
| $(BUILD_FOLDER)/tiles/tiles.txt: |
| bash generate.sh $(BUILD_FOLDER)/tiles tiles |
| |
| ${BASICDB_TILEGRID}: generate.py $(BUILD_FOLDER)/tiles/tiles.txt |
| mkdir -p $(BUILD_FOLDER)/basicdb/${XRAY_FABRIC} |
| ln -sf $(XRAY_DATABASE_DIR)/$(XRAY_DATABASE)/mapping $(BUILD_FOLDER)/basicdb/ |
| 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_FABRIC}/tilegrid.json |
| |
| clb/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd clb && $(MAKE) |
| |
| clb_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd clb_int && $(MAKE) |
| |
| cfg/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd cfg && $(MAKE) |
| |
| iob/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd iob && $(MAKE) |
| |
| iob18/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd iob18 && $(MAKE) |
| |
| iob_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd iob_int && $(MAKE) |
| |
| iob18_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd iob18_int && $(MAKE) |
| |
| ioi/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd ioi && $(MAKE) |
| |
| ioi18/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd ioi18 && $(MAKE) |
| |
| mmcm/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd mmcm && $(MAKE) |
| |
| pll/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd pll && $(MAKE) |
| |
| ps7_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd ps7_int && $(MAKE) |
| |
| monitor/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd monitor && $(MAKE) |
| |
| monitor_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd monitor_int && $(MAKE) |
| |
| bram/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd bram && $(MAKE) |
| |
| bram_block/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd bram_block && $(MAKE) |
| |
| bram_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd bram_int && $(MAKE) |
| |
| dsp/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd dsp && $(MAKE) |
| |
| dsp_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd dsp_int && $(MAKE) |
| |
| fifo_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd fifo_int && $(MAKE) |
| |
| cfg_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd cfg_int && $(MAKE) |
| |
| orphan_int_column/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd orphan_int_column && $(MAKE) |
| |
| clk_hrow/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd clk_hrow && $(MAKE) |
| |
| clk_bufg/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd clk_bufg && $(MAKE) |
| |
| hclk_cmt/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd hclk_cmt && $(MAKE) |
| |
| hclk_ioi/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd hclk_ioi && $(MAKE) |
| |
| pcie/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd pcie && $(MAKE) |
| |
| pcie_int_interface/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd pcie_int_interface && $(MAKE) |
| |
| gtp_common/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd gtp_common && $(MAKE) |
| |
| gtp_channel/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd gtp_channel && $(MAKE) |
| |
| gtp_int_interface/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} |
| cd gtp_int_interface && $(MAKE) |
| |
| $(BUILD_FOLDER)/tilegrid_tdb.json: add_tdb.py $(TILEGRID_TDB_DEPENDENCIES) |
| python3 add_tdb.py \ |
| --fn-in ${BASICDB_TILEGRID} \ |
| --fn-out $(BUILD_FOLDER)/tilegrid_tdb.json |
| |
| $(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_part |
| $(MAKE) database |
| $(MAKE) pushdb |
| touch run.${XRAY_PART}.ok |
| |
| clean: |
| rm -rf build_* run.*.ok |
| cd clb && $(MAKE) clean |
| cd clb_int && $(MAKE) clean |
| cd cfg && $(MAKE) clean |
| cd iob && $(MAKE) clean |
| cd iob18 && $(MAKE) clean |
| cd iob_int && $(MAKE) clean |
| cd iob18_int && $(MAKE) clean |
| cd ioi && $(MAKE) clean |
| cd ioi18 && $(MAKE) clean |
| cd mmcm && $(MAKE) clean |
| cd pll && $(MAKE) clean |
| cd ps7_int && $(MAKE) clean |
| cd bram && $(MAKE) clean |
| cd bram_block && $(MAKE) clean |
| cd bram_int && $(MAKE) clean |
| cd dsp && $(MAKE) clean |
| cd dsp_int && $(MAKE) clean |
| cd fifo_int && $(MAKE) clean |
| cd monitor && $(MAKE) clean |
| cd monitor_int && $(MAKE) clean |
| cd cfg_int && $(MAKE) clean |
| cd orphan_int_column && $(MAKE) clean |
| cd clk_hrow && $(MAKE) clean |
| cd clk_bufg && $(MAKE) clean |
| cd hclk_cmt && $(MAKE) clean |
| cd hclk_ioi && $(MAKE) clean |
| cd pcie && $(MAKE) clean |
| cd pcie_int_interface && $(MAKE) clean |
| cd gtp_common && $(MAKE) clean |
| cd gtp_channel && $(MAKE) clean |
| cd gtp_int_interface && $(MAKE) clean |
| |
| clean_part: |
| rm -rf $(BUILD_FOLDER) run.${XRAY_PART}.ok |
| cd clb && $(MAKE) clean_part |
| cd clb_int && $(MAKE) clean_part |
| cd cfg && $(MAKE) clean_part |
| cd iob && $(MAKE) clean_part |
| cd iob18 && $(MAKE) clean_part |
| cd iob_int && $(MAKE) clean_part |
| cd iob18_int && $(MAKE) clean_part |
| cd ioi && $(MAKE) clean_part |
| cd ioi18 && $(MAKE) clean_part |
| cd mmcm && $(MAKE) clean_part |
| cd pll && $(MAKE) clean_part |
| cd ps7_int && $(MAKE) clean_part |
| cd bram && $(MAKE) clean_part |
| cd bram_block && $(MAKE) clean_part |
| cd bram_int && $(MAKE) clean_part |
| cd dsp && $(MAKE) clean_part |
| cd dsp_int && $(MAKE) clean_part |
| cd fifo_int && $(MAKE) clean_part |
| cd monitor && $(MAKE) clean_part |
| cd monitor_int && $(MAKE) clean_part |
| cd cfg_int && $(MAKE) clean_part |
| cd orphan_int_column && $(MAKE) clean_part |
| cd clk_hrow && $(MAKE) clean_part |
| cd clk_bufg && $(MAKE) clean_part |
| cd hclk_cmt && $(MAKE) clean_part |
| cd hclk_ioi && $(MAKE) clean_part |
| cd pcie && $(MAKE) clean_part |
| cd pcie_int_interface && $(MAKE) clean_part |
| cd gtp_common && $(MAKE) clean_part |
| cd gtp_channel && $(MAKE) clean_part |
| cd gtp_int_interface && $(MAKE) clean_part |
| |
| .PHONY: database pushdb clean clean_part run |
| |