FPGA: - Split up MB registers that control daughterboard specific settings so that daughterboards 0 and 1 could have different setings, in preparation for future devices that require different settings. This requires a compat number bump to 8.0. - Add registers for additional RFDC information, including the block/tile mapping of the individual channels, and information about resampling capabilities - Identify sections of code that would be specific to X410/ZBX and move them to their own headers, so it's trivial to add device-specific sections of code instead for other devices in the future. - This includes constraints for clocks and I/O pins. - Remove ability to do timed ctrlport transactions to the MB CPLD, this was unused and possibly broken. - Move daughterboard-specific code into its own code location (dboards/zbx) - Move X410-specific register documentation to its own location (doc/X410) - Refactor Makefiles to split out X410/ZBX specific components and allow switching between device types - Add 512-bit AXI interconnects - Make number of timekeepers configurable (X410 keeps the single timekeeper) MPM: - Required compat is bumped to 8.0 - Now supports new registers for detecting DSP capabilities and multi-rate settings for the daughterboards - Adds MMCM controls (currently unused) Co-authored-by: Wade Fife <wade.fife@ni.com> Co-authored-by: Ryan Marlow <ryan@lmarlow.com> Co-authored-by: Martin Braun <martin.braun@ettus.com> Co-authored-by: Humberto Jimenez <humberto.jimenez@ni.com> Original-commit: c1d268917ea65dd9c5a42366014cb96d3c025223
92 lines
2.7 KiB
Makefile
92 lines
2.7 KiB
Makefile
#
|
|
# Copyright 2021 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 = ../../..
|
|
# Include viv_sim_preample after defining BASE_DIR
|
|
include $(BASE_DIR)/../tools/make/viv_sim_preamble.mak
|
|
|
|
#-------------------------------------------------
|
|
# Design Specific
|
|
#-------------------------------------------------
|
|
# Define part using PART_ID (<device>/<package>/<speedgrade>)
|
|
ARCH = zynquplusRFSOC
|
|
PART_ID = xczu28dr/ffvg1517/-1/e
|
|
|
|
# Include makefiles and sources for the DUT and its dependencies
|
|
include $(BASE_DIR)/../lib/fifo/Makefile.srcs
|
|
include $(BASE_DIR)/../lib/axi/Makefile.srcs
|
|
include $(BASE_DIR)/../lib/control/Makefile.srcs
|
|
|
|
DESIGN_SRCS += $(abspath \
|
|
$(FIFO_SRCS) \
|
|
$(AXI_SRCS) \
|
|
$(CONTROL_LIB_SRCS) \
|
|
)
|
|
|
|
include ../common/Makefile.srcs
|
|
include ../100m/Makefile.srcs
|
|
include ../200m/Makefile.srcs
|
|
include ../400m/Makefile.srcs
|
|
|
|
DESIGN_SRCS += $(abspath \
|
|
../../regmap/x410/PkgRFDC_REGS_REGMAP.vhd \
|
|
$(RF_COMMON_SRCS) \
|
|
$(RF_X410_SRCS) \
|
|
$(RF_100M_SRCS) \
|
|
$(RF_200M_SRCS) \
|
|
$(RF_400M_SRCS) \
|
|
)
|
|
|
|
#-------------------------------------------------
|
|
# IP Specific
|
|
#-------------------------------------------------
|
|
# If simulation contains IP, define the IP_DIR and point
|
|
# it to the base level IP directory
|
|
IP_DIR = $(BASE_DIR)/x400/ip
|
|
LIB_IP_DIR = $(BASE_DIR)/../lib/ip
|
|
|
|
# Include makefiles and sources for all IP components
|
|
# *after* defining the IP_DIR
|
|
#
|
|
# These TBs don't use any IP yet :)
|
|
|
|
#-------------------------------------------------
|
|
# Testbench Specific
|
|
#-------------------------------------------------
|
|
include $(BASE_DIR)/../sim/general/Makefile.srcs
|
|
|
|
# Define only one top-level module
|
|
SIM_TOP = rf_all_tb
|
|
|
|
# Simulation runtime in microseconds
|
|
SIM_RUNTIME_US = 1000
|
|
|
|
SIM_SRCS = \
|
|
$(abspath tb_adc_gearbox_2x1.vhd ) \
|
|
$(abspath tb_adc_gearbox_2x4.vhd ) \
|
|
$(abspath tb_adc_gearbox_8x4.vhd ) \
|
|
$(abspath tb_capture_sysref.vhd ) \
|
|
$(abspath tb_dac_gearbox_12x8.vhd ) \
|
|
$(abspath tb_dac_gearbox_4x2.vhd ) \
|
|
$(abspath tb_dac_gearbox_6x12.vhd ) \
|
|
$(abspath tb_ddc_400m_saturate.vhd ) \
|
|
$(abspath tb_duc_400m_saturate.vhd ) \
|
|
$(abspath tb_rf_nco_reset.vhd ) \
|
|
$(abspath tb_x410_rf_reset_controller.vhd ) \
|
|
$(abspath rf_all_tb.sv ) \
|
|
|
|
#-------------------------------------------------
|
|
# 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
|