As a quick update, with my attempt "2" described in the original post, I actually get the same result as I do with method "1" (I fixed a typo), although I don't get the critical warning. So, the result of trying to build the FPGA image is still:
... [00:00:12] Starting Synthesis Command ERROR: [Synth 8-439] module 'DDS_Test_Signal' not found [/home/XXX/Projects/SCISRS/usrp/gnuradio/3.8.2.0_uhd4.0.0.0/src/RFNoC_Custom/rfnoc-peanut/rfnoc/fpga/rfnoc_block_Block/rfnoc_jjj.v:92] ERROR: [Synth 8-6156] failed synthesizing module 'jjj_const' [/home/XXX/Projects/SCISRS/usrp/gnuradio/3.8.2.0_uhd4.0.0.0/src/RFNoC_Custom/rfnoc-peanut/rfnoc/fpga/rfnoc_block_Block/rfnoc_jjj.v:11] ERROR: [Synth 8-6156] failed synthesizing module 'rfnoc_block_Block' [/home/XXX/Projects/SCISRS/usrp/gnuradio/3.8.2.0_uhd4.0.0.0/src/RFNoC_Custom/rfnoc-peanut/rfnoc/fpga/rfnoc_block_Block/rfnoc_block_Block.v:25] ERROR: [Synth 8-6156] failed synthesizing module 'rfnoc_image_core' [/home/XXX/Projects/SCISRS/usrp/gnuradio/3.8.2.0_uhd4.0.0.0/src/RFNoC_Custom/rfnoc-peanut/rfnoc/icores/e320_rfnoc_image_core.v:14] ERROR: [Synth 8-6156] failed synthesizing module 'e320_core' [/home/XXX/Projects/SCISRS/usrp/gnuradio/3.8.2.0_uhd4.0.0.0/src/uhd/fpga/usrp3/top/e320/e320_core.v:18] ERROR: [Synth 8-6156] failed synthesizing module 'e320' [/home/XXX/Projects/SCISRS/usrp/gnuradio/3.8.2.0_uhd4.0.0.0/src/uhd/fpga/usrp3/top/e320/e320.v:14] ERROR: [Common 17-69] Command failed: Synthesis failed - please see the console or run log file for details [00:04:25] Current task: Synthesis +++ Current Phase: Starting [00:04:26] Current task: Synthesis +++ Current Phase: Finished [00:04:26] Process terminated. Status: Failure Thanks, Jim ________________________________ From: USRP-users <usrp-users-boun...@lists.ettus.com> on behalf of Jim Palladino via USRP-users <usrp-users@lists.ettus.com> Sent: Thursday, October 15, 2020 1:13 PM To: usrp-users@lists.ettus.com <usrp-users@lists.ettus.com> Subject: [USRP-users] Adding Xilinx IP to custom RFNoC block Hello, I'm trying to add a Xilinx DDS to a custom RFNoC block (using UHD 4.0 and associated gr-ettus repo). To do this, I started building the FPGA image using the GUI option, stopped the build shortly after Vivado opened, and saved a Vivado Project. Then, in Vivado I configured/added a Xilinx DDS to my custom RFNoC block hdl and built the project just fine. Now, I'm trying to setup my build file structure so I can use the "make" flow to build the FPGA image. I've tried several things. 1) I copied the xci file directly to my rfnoc/fpga/rfnoc_block_Block folder. Then, I added the following to the Makefile.srcs file in the same folder: RFNOC_OOT_SRCS += $(addprefix $(dir $(abspath $(lastword $(MAKEFILE_LIST)))), rfnoc_block_Block.v noc_shell_Block.v rfnoc_jjj.v DDS_Test_Signal.xci) When I try to build the FPGA image, I get the following critical warning: CRITICAL WARNING: [Vivado 12-1504] The IP is already part of the fileset 'sources_1'. Requested source '/home/XXX/Projects/SCISRS/usrp/gnuradio/3.8.2.0_uhd4.0.0.0/src/RFNoC_Custom/rfnoc-peanut/rfnoc/fpga/rfnoc_block_Block/DDS_Test_Signal.xci' will not be added. followed by these errors: ERROR: [Synth 8-439] module 'DDS_Test_Signal' not found [/home/XXX/Projects/SCISRS/usrp/gnuradio/3.8.2.0_uhd4.0.0.0/src/RFNoC_Custom/rfnoc-peanut/XXX/fpga/rfnoc_block_Block/rfnoc_jjj.v:92] ERROR: [Synth 8-6156] failed synthesizing module 'jjj_const' [/home/XXX/Projects/SCISRS/usrp/gnuradio/3.8.2.0_uhd4.0.0.0/src/RFNoC_Custom/rfnoc-peanut/rfnoc/fpga/rfnoc_block_Block/rfnoc_jjj.v:11] ERROR: [Synth 8-6156] failed synthesizing module 'rfnoc_block_Block' [/home/XXX/Projects/SCISRS/usrp/gnuradio/3.8.2.0_uhd4.0.0.0/src/RFNoC_Custom/rfnoc-peanut/rfnoc/fpga/rfnoc_block_Block/rfnoc_block_Block.v:25] ERROR: [Synth 8-6156] failed synthesizing module 'rfnoc_image_core' [/home/XXX/Projects/SCISRS/usrp/gnuradio/3.8.2.0_uhd4.0.0.0/src/RFNoC_Custom/rfnoc-peanut/rfnoc/icores/e320_rfnoc_image_core.v:14] ERROR: [Synth 8-6156] failed synthesizing module 'e320_core' [/home/XXX/Projects/SCISRS/usrp/gnuradio/3.8.2.0_uhd4.0.0.0/src/uhd/fpga/usrp3/top/e320/e320_core.v:18] ERROR: [Synth 8-6156] failed synthesizing module 'e320' [/home/XXX/Projects/SCISRS/usrp/gnuradio/3.8.2.0_uhd4.0.0.0/src/uhd/fpga/usrp3/top/e320/e320.v:14] ERROR: [Common 17-69] Command failed: Synthesis failed - please see the console or run log file for details 2) Looking at the rfnoc-example included under uhd/host, I see that this comment is in Ettus's /rfnoc-example/fpga/Makefile.srcs file: # If there are additional modules or IP (other than what is in the RFNoC block # subdirectories) that needs to get installed in order to synthesize blocks from # this module, list them here: #RFNOC_OOT_SRCS += $(abspath $(addprefix ${RFNOC_EXAMPLE_DIR}, #my_other_module.v \ #ip/my_ip_core/my_ip_core.xci \ #)) So, I created an rfnoc/fpga/ip/DDS_Test_Signal folder and copied the xci file there. Then, I added the following line to my /rfnoc/fpga/Makefile.srcs: RFNOC_OOT_SRCS += $(abspath $(addprefix ${RFNOC_EXAMPLE_DIR}, ip/DDS_Test_Signal/DDS_Test_Signal.xci)) When I do this, I get: Environment successfully initialized. BUILDER: Checking tools... * GNU bash, version 4.4.20(1)-release (x86_64-pc-linux-gnu) * Python 2.7.17 * Vivado v2019.1 (64-bit) make[5]: *** No rule to make target '/home/XXX/Projects/SCISRS/usrp/gnuradio/3.8.2.0_uhd4.0.0.0/src/uhd/fpga/usrp3/top/e320/ip/DDS_Test_Signal/DDS_Test_Signal.xci', needed by 'bin'. Stop. Makefile:65: recipe for target 'E320_XG' failed make[4]: *** [E320_XG] Error 2 Built target Block_x310_rfnoc_image_core So, I'm obviously not adding the IP correctly. Can anyone point me in the right direction? Thanks, Jim
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com