diff options
author | Lars Amsel <lars.amsel@ni.com> | 2019-04-26 15:51:42 +0200 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2019-11-26 11:49:14 -0800 |
commit | 752fdd269215a606212fb97e909b08707bf54507 (patch) | |
tree | e8fe3eb901e2740641ac34f580f456592286f148 /host/utils/rfnoc_blocktool/templates/Makefile | |
parent | 384a94d1b6e3a980c19df70f8a1a95ec9f52eb6e (diff) | |
download | uhd-752fdd269215a606212fb97e909b08707bf54507.tar.gz uhd-752fdd269215a606212fb97e909b08707bf54507.tar.bz2 uhd-752fdd269215a606212fb97e909b08707bf54507.zip |
rfnoc: add eRFNoC block builder to generate boiler plate Verilog
This is an initial generator for eRFNoC block.
The script generates the top level block, the shell module, a testbench, and a
Makefile as well as a Makefile.srcs.
To build a block from a yml file one has to invoke
python -c <config> -d <destination folder>
destination folder should be an in tree module folder located in
uhd-fpga/usrp3/lib/erfnoc/blocks
The build tool supports all interface types for control as well as data.
For each interface type there are three templates to generate the variable
block in the top level block and the shell
* declare the wires
* connect the wires
* instantiate the modules
The first two are used in the shell module as well as in the top level block.
The last is for the shell only.
Diffstat (limited to 'host/utils/rfnoc_blocktool/templates/Makefile')
-rw-r--r-- | host/utils/rfnoc_blocktool/templates/Makefile | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/host/utils/rfnoc_blocktool/templates/Makefile b/host/utils/rfnoc_blocktool/templates/Makefile new file mode 100644 index 000000000..25e61c05b --- /dev/null +++ b/host/utils/rfnoc_blocktool/templates/Makefile @@ -0,0 +1,48 @@ +# +# Copyright 2019 Ettus Research, A National Instruments Company +# +# 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_preample after defining BASE_DIR +include $(BASE_DIR)/../tools/make/viv_sim_preamble.mak + +#------------------------------------------------- +# Design Specific +#------------------------------------------------- +# Include makefiles and sources for the DUT and its dependencies +include $(BASE_DIR)/../lib/erfnoc/core/Makefile.srcs +include $(BASE_DIR)/../lib/erfnoc/utils/Makefile.srcs +include Makefile.srcs + +DESIGN_SRCS += $(abspath ${"\\"} +$(RFNOC_CORE_SRCS) ${"\\"} +$(RFNOC_UTIL_SRCS) ${"\\"} +$(RFNOC_BLOCK_${config.module_name.upper()}_SRCS) ${"\\"} +) + +#------------------------------------------------- +# Testbench Specific +#------------------------------------------------- +include $(BASE_DIR)/../sim/erfnoc/Makefile.srcs + +SIM_TOP = rfnoc_block_${config.module_name}_tb + +SIM_SRCS = ${"\\"} +$(abspath rfnoc_block_${config.module_name}_tb.sv) ${"\\"} +$(SIM_ERFNOC_SRCS) + +# MODELSIM_USER_DO = $(abspath wave.do) + +#------------------------------------------------- +# 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 |