diff options
author | Wade Fife <wade.fife@ettus.com> | 2021-06-09 10:13:09 -0500 |
---|---|---|
committer | Wade Fife <wade.fife@ettus.com> | 2021-06-17 08:16:59 -0500 |
commit | 0076076467303247c4e62e5824e5bf8ce79cbe66 (patch) | |
tree | 2fe7e3a987fd38e1e556b71c962d57a97d033f17 /fpga/usrp3/top/x400/sim/x4xx_qsfp_wrapper/Makefile | |
parent | 319d8c6411f62a2150b21b38bfe5fd55366ee700 (diff) | |
download | uhd-0076076467303247c4e62e5824e5bf8ce79cbe66.tar.gz uhd-0076076467303247c4e62e5824e5bf8ce79cbe66.tar.bz2 uhd-0076076467303247c4e62e5824e5bf8ce79cbe66.zip |
fpga: Update testbenches to work in ModelSim
Diffstat (limited to 'fpga/usrp3/top/x400/sim/x4xx_qsfp_wrapper/Makefile')
-rw-r--r-- | fpga/usrp3/top/x400/sim/x4xx_qsfp_wrapper/Makefile | 159 |
1 files changed, 86 insertions, 73 deletions
diff --git a/fpga/usrp3/top/x400/sim/x4xx_qsfp_wrapper/Makefile b/fpga/usrp3/top/x400/sim/x4xx_qsfp_wrapper/Makefile index 0e669b6e5..b38f30755 100644 --- a/fpga/usrp3/top/x400/sim/x4xx_qsfp_wrapper/Makefile +++ b/fpga/usrp3/top/x400/sim/x4xx_qsfp_wrapper/Makefile @@ -9,12 +9,9 @@ #------------------------------------------------- # Define BASE_DIR to point to the "top" dir BASE_DIR = $(abspath ../../../../top) -IP_DIR = $(BASE_DIR)/x400/ip - # Include viv_sim_preamble after defining BASE_DIR include $(BASE_DIR)/../tools/make/viv_sim_preamble.mak -IP_BUILD_DIR = $(BASE_DIR)/x400/build-ip/xczu28drffvg1517-1e #------------------------------------------------- # Design Specific @@ -24,106 +21,122 @@ ARCH = zynquplusRFSOC PART_ID = xczu28dr/ffvg1517/-1/e # Include makefiles and sources for the DUT and its dependencies -include $(BASE_DIR)/../lib/control/Makefile.srcs -include $(BASE_DIR)/../lib/axi/Makefile.srcs include $(BASE_DIR)/../lib/axi4_sv/Makefile.srcs include $(BASE_DIR)/../lib/axi4s_sv/Makefile.srcs -include $(BASE_DIR)/../lib/axi4lite_sv/Makefile.srcs -include $(BASE_DIR)/../lib/packet_proc/Makefile.srcs -include $(BASE_DIR)/../lib/xge_interface/Makefile.srcs include $(BASE_DIR)/../lib/xge/Makefile.srcs -include $(BASE_DIR)/../lib/wb_spi/Makefile.srcs -include $(BASE_DIR)/../lib/fifo/Makefile.srcs +include $(BASE_DIR)/../lib/xge_interface/Makefile.srcs include $(BASE_DIR)/../lib/rfnoc/utils/Makefile.srcs -include $(BASE_DIR)/../lib/rfnoc/xport/Makefile.srcs include $(BASE_DIR)/../lib/rfnoc/xport_sv/Makefile.srcs include $(BASE_DIR)/../lib/rfnoc/crossbar/Makefile.srcs include $(BASE_DIR)/../lib/rfnoc/core/Makefile.srcs -include $(BASE_DIR)/../lib/xge/Makefile.srcs -include $(IP_DIR)/Makefile.inc - - -IP_AXI_ETH_DMA_BD_HDL_SIM_SRCS = $(wildcard $(addprefix $(IP_BUILD_DIR)/axi_eth_dma_bd/axi_eth_dma_bd/, \ -sim/axi_eth_dma_bd.v\ -ip/*/sim/*.h\ -ip/*/sim/*.v\ -ip/*/sim/*.vhd\ -ip/*/bd_0/hdl/*.v\ -ip/*/bd_0/sim/*.v\ -ip/*/bd_0/ip/ip_*/sim/*.v\ -ip/*/bd_0/ip/ip_*/sim/*.sv\ -ip/*/bd_0/ip/ip_*/sim/*.vhd\ -ipshared/*/hdl/*.sv\ -ipshared/*/hdl/*.v\ -ipshared/*/simulation/*.v\ -ipshared/*/hdl/verilog/*.v\ -ipshared/*/hdl/verilog/*.svh\ -ipshared/*/hdl/verilog/*.vh\ -)) - -IP_AXI_INTERCONNECT_DMA_BD_HDL_SIM_SRCS = $(wildcard $(addprefix $(IP_BUILD_DIR)/axi_interconnect_dma_bd/axi_interconnect_dma_bd/, \ -ip/*/sim/*.v\ -)) - -TOP_SRC = \ -$(abspath $(BASE_DIR)/x400/x4xx_qsfp_wrapper.sv) \ -$(abspath $(BASE_DIR)/x400/x4xx_qsfp_wrapper_temp.sv) \ -$(abspath $(BASE_DIR)/x400/x4xx_mgt_io_core.sv) \ -$(abspath $(BASE_DIR)/x400/x4xx.v) - -# Xilinx IP wants lots of libraries -MODELSIM_LIBS += secureip unimacro_ver unisims_ver xilinx_vip xpm -# Needed for the HACK_SRC, speeds up the alignment phase (still long!) -VLOG_ARGS = +define+SIM_SPEED_UP -SVLOG_ARGS = -lint +define+BUILD_100G=1 -# Xilinx IP wants a second file loaded -MODELSIM_ARGS = glbl -t 1fs -DESIGN_SRCS = $(abspath \ +DESIGN_SRCS += $(abspath \ $(AXI4_SV_SRCS) \ $(AXI4S_SV_SRCS) \ -$(AXI4LITE_SV_SRCS) \ -$(FIFO_SRCS) \ -$(CONTROL_LIB_SRCS) \ -$(AXI_SRCS) \ +$(XGE_SRCS) \ $(XGE_INTERFACE_SRCS) \ -$(PACKET_PROC_SRCS) \ $(RFNOC_UTIL_SRCS) \ -$(RFNOC_XPORT_SRCS) \ $(RFNOC_XPORT_SV_SRCS) \ $(RFNOC_XBAR_SRCS) \ $(RFNOC_CORE_SRCS) \ -$(WISHBONE_SRCS) \ -$(XGE_SRCS) \ -$(XGE_INTERFACE_SRCS) \ -$(XGE_PCS_PMA_SRCS) \ -$(IP_AXI_ETH_DMA_BD_HDL_SIM_SRCS) \ -$(IP_AXI_INTERCONNECT_DMA_BD_HDL_SIM_SRCS) \ +) + +# Add files for the DUT +DESIGN_SRCS += $(abspath \ +$(BASE_DIR)/x400/x4xx_mgt_io_core.sv \ +$(BASE_DIR)/x400/x4xx_qsfp_wrapper.sv \ +$(BASE_DIR)/x400/x4xx_qsfp_wrapper_temp.sv \ +) + +#------------------------------------------------- +# IP Specific +#------------------------------------------------- +# If simulation contains IP, define the IP_DIR and point +# it to the base level IP directory +IP_DIR = ../../ip + +# Include makefiles and sources for all IP components +# *after* defining the IP_DIR +include $(IP_DIR)/axi_interconnect_eth_bd/Makefile.inc +include $(IP_DIR)/axi_interconnect_dma_bd/Makefile.inc +include $(IP_DIR)/axi_eth_dma_bd/Makefile.inc +include $(IP_DIR)/xge_pcs_pma/Makefile.inc +include $(IP_DIR)/eth_100g_bd/Makefile.inc + +DESIGN_SRCS += $(abspath \ $(IP_AXI_INTERCONNECT_ETH_HDL_SRCS) \ +$(IP_AXI_INTERCONNECT_ETH_BD_SRCS) \ $(IP_AXI_INTERCONNECT_DMA_HDL_SRCS) \ +$(IP_AXI_INTERCONNECT_DMA_BD_SRCS) \ $(IP_AXI_ETH_DMA_BD_HDL_SRCS) \ +$(IP_AXI_ETH_DMA_BD_SRCS) \ +$(XGE_PCS_PMA_SRCS) \ $(IP_100G_HDL_SRCS) \ -$(AURORA_PHY_SRCS) \ -$(IP_HDL_SIM_SRCS) \ -$(TOP_SRC) \ +$(IP_100G_BD_SRCS) \ ) #------------------------------------------------- +# ModelSim Specific +#------------------------------------------------- + +IP_AXI_ETH_DMA_BD_HDL_SIM_SRCS = $(wildcard $(addprefix $(IP_BUILD_DIR)/axi_eth_dma_bd/axi_eth_dma_bd/, \ +sim/axi_eth_dma_bd.v \ +ip/*/sim/*.h \ +ip/*/sim/*.v \ +ip/*/sim/*.vhd \ +ip/*/bd_0/hdl/*.v \ +ip/*/bd_0/sim/*.v \ +ip/*/bd_0/ip/ip_*/sim/*.v \ +ip/*/bd_0/ip/ip_*/sim/*.sv \ +ip/*/bd_0/ip/ip_*/sim/*.vhd \ +ipshared/*/hdl/*.sv \ +ipshared/*/hdl/*.v \ +ipshared/*/simulation/*.v \ +ipshared/*/hdl/verilog/*.v \ +ipshared/*/hdl/verilog/*.svh \ +ipshared/*/hdl/verilog/*.vh \ +)) + +IP_AXI_INTERCONNECT_DMA_BD_HDL_SIM_SRCS = $(wildcard $(addprefix $(IP_BUILD_DIR)/axi_interconnect_dma_bd/axi_interconnect_dma_bd/, \ +sim/*.v \ +ip/*/sim/*.v \ +)) + +MISC_IP_SIM_SRCS += \ +$(VIVADO_PATH)/data/verilog/src/glbl.v \ +$(abspath $(IP_BUILD_DIR)/xge_pcs_pma/model_10gbe.sv) \ + +DESIGN_SRCS += $(abspath \ +$(IP_AXI_ETH_DMA_BD_HDL_SIM_SRCS) \ +$(IP_AXI_INTERCONNECT_DMA_BD_HDL_SIM_SRCS) \ +$(IP_AXI_INTERCONNECT_ETH_HDL_SIM_SRCS) \ +$(IP_100G_HDL_SIM_SRCS) \ +$(IP_XGE_PCS_PMA_HDL_SIM_SRCS) \ +$(MISC_IP_SIM_SRCS) \ +) + +# Xilinx IP wants lots of libraries +MODELSIM_LIBS += secureip unimacro_ver unisims_ver xilinx_vip xpm +MODELSIM_ARGS += glbl -t 1fs +# Needed for the HACK_SRC, speeds up the alignment phase (still long!) +VLOG_ARGS += +define+SIM_SPEED_UP + +# Suppressing the following worthless reminder. +#* Warning: M:/usrp4-hw/oss-repo/fpga/usrp3/lib/axi4s_sv/axi4s_remove_bytes.sv(228): (vlog-2583) [SVCHK] - +# Extra checking for conflicts with always_comb and always_latch variables is done at vopt time +SVLOG_ARGS += -suppress 2583 + +#------------------------------------------------- # Testbench Specific #------------------------------------------------- -# Define only one toplevel module +# Define only one top-level module TB_TOP_MODULE ?= x4xx_qsfp_wrapper_all_tb SIM_TOP = $(TB_TOP_MODULE) SIM_SRCS = \ $(abspath x4xx_qsfp_wrapper_tb.sv) \ -$(abspath $(TB_TOP_MODULE).sv) - -# Suppressing the following worthless reminder. -#* Warning: M:/usrp4-hw/oss-repo/fpga/usrp3/lib/axi4s_sv/axi4s_remove_bytes.sv(228): (vlog-2583) [SVCHK] - -# Extra checking for conflicts with always_comb and always_latch variables is done at vopt time -SVLOG_ARGS = -suppress 2583 +$(abspath $(TB_TOP_MODULE).sv) \ #------------------------------------------------- # Bottom-of-Makefile |