The rnfoc/xport section is refactored in System Verilog to allow the
following improvements
(1) CPU_W - Sets the size of the c2e and e2c pipes. This can be run
at a different clock rate than the main ethernet pipe
(2) CHDR_W - Sets the size of the v2e and e2v pipes. This can be run
at a different clock rate than the main ethernet pipe
(3) ENET_W - Sets the size of the eth_tx and eth_rx pipes.
eth_interface_tb runs traffic from e2c,e2v,v2e,c2e simultaneously
against the original xport_sv implementation, and against the new
implementation with widths of 64/128/512. A chdr_management node
info request queries the port info of the node0 in the eth_interface.
eth_ifc_synth_test.sv can be compiled with the make xsim target to test
out the size of various configurations.
Original-commit: eed4988cc266a63370a4332351d02fadedde3a3b
82 lines
2.7 KiB
Makefile
82 lines
2.7 KiB
Makefile
#
|
|
# Copyright 2020 Ettus Research, a National Instruments Brand
|
|
#
|
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
|
#
|
|
|
|
#-------------------------------------------------
|
|
# Top-of-Makefile
|
|
#-------------------------------------------------
|
|
# Define BASE_DIR to point to the "top" dir
|
|
BASE_DIR = $(abspath ../../../../top)
|
|
# Include viv_sim_preamble after defining BASE_DIR
|
|
include $(BASE_DIR)/../tools/make/viv_sim_preamble.mak
|
|
|
|
#-------------------------------------------------
|
|
# Design Specific
|
|
#-------------------------------------------------
|
|
SYNTH_DUT = eth_ifc_synth_test
|
|
|
|
# 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/axi4s_sv/Makefile.srcs
|
|
include $(BASE_DIR)/../lib/packet_proc/Makefile.srcs
|
|
include $(BASE_DIR)/../lib/xge_interface/Makefile.srcs
|
|
include $(BASE_DIR)/../lib/fifo/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
|
|
|
|
BUILD_IP_DIR = $(abspath $(BASE_DIR)/x300/build-ip/xc7k410tffg900-2)
|
|
|
|
IP_SRC = \
|
|
$(abspath $(BUILD_IP_DIR)/fifo_short_2clk/fifo_short_2clk_sim_netlist.v)
|
|
# Xilinx IP wants lots of libraries
|
|
MODELSIM_LIBS += secureip unimacro_ver unisims_ver xilinx_vip xpm
|
|
MODELSIM_ARGS += glbl -t 1fs
|
|
|
|
DESIGN_SRCS = $(abspath \
|
|
eth_ifc_synth_test.sv \
|
|
$(FIFO_SRCS) \
|
|
$(CONTROL_LIB_SRCS) \
|
|
$(AXI_SRCS) \
|
|
$(AXI4S_SV_SRCS) \
|
|
$(XGE_INTERFACE_SRCS) \
|
|
$(PACKET_PROC_SRCS) \
|
|
$(RFNOC_UTIL_SRCS) \
|
|
$(RFNOC_XPORT_SRCS) \
|
|
$(RFNOC_XPORT_SV_SRCS) \
|
|
$(RFNOC_XBAR_SRCS) \
|
|
$(RFNOC_CORE_SRCS) \
|
|
$(IP_SRC) \
|
|
)
|
|
|
|
#-------------------------------------------------
|
|
# Testbench Specific
|
|
#-------------------------------------------------
|
|
# Define only one toplevel module
|
|
TB_TOP_MODULE ?= eth_ifc_all_tb
|
|
#TB_TOP_MODULE ?= eth_ifc_synth_test
|
|
SIM_TOP = $(TB_TOP_MODULE)
|
|
|
|
SIM_SRCS = \
|
|
$(abspath eth_ifc_tb.sv) \
|
|
$(abspath $(TB_TOP_MODULE).sv)
|
|
|
|
# supressing 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 -keep_delta
|
|
VLOG_ARGS = -keep_delta
|
|
|
|
#-------------------------------------------------
|
|
# Bottom-of-Makefile
|
|
#-------------------------------------------------
|
|
# Include all simulator specific makefiles here
|
|
# Each should define a unique target to simulate
|
|
# e.g. xsim, vsim, etc and a common "clean" target
|
|
include $(BASE_DIR)/../tools/make/viv_simulator.mak
|