Open zacaric opened 6 days ago
@zacaric Thanks for this super helpful report. FYI, we generate the OOT sources from rfnoc-gain
, so that explains some of the issues, but not all of them. We're investigating and will provide a fix soon.
Another modification I had to make afterwards was to add a comma on line 182 of rfnoc-core/fpga/core/rfnoc_block_square/rfnoc_block_square.sv
. Same thing with rfnoc-core/fpga/core/rfnoc_block_square/noc_shell_square.sv
on line 116.
I will add this to the description as well to keep these needed modifications in one place
@zacaric do you have f0066cf16d3050c904edef8b5b70a7e2a34cd2ec? That should take care of the noc_shell fixes.
It seems like I do have those changes. I have my docker image setup to grab the latest code on the master
branch every time it gets built and I rebuilt the image yesterday. So it should be running to most up to date version on master
(UHD 4.7.0.0-149-g635ad362
).
I also found some errors with double quotes ("
) not being around HDL_IP
in a couple of the files. I added that to the issue description too.
ip_option
I think should also be changed to IP_OPTION
in those files since that is what it is in the Gain example, but it doesn't really break anything so I am not adding it in the description.
I also added that rfnoc-core/lib/square_block_control.cpp
needs to be changed from "Gain"
to "Square"
on line 30
Issue Description
I am using
rfnoc_modtool
to create an oot module calledcore
and a block calledsquare
(squares the IQ data).When doing this, there are a few issues that causes things to not work right away and requires changes right out of the box (See Actual Behavior to see what changes are required to get working). Some of the items in the list I can understand needing to do, but other items I feel should have been handled by
rfnoc_modtool
when generating the files.Setup Details
UHD 4.7.0.0-149-g635ad362
,Ubuntu 22.04
,Vivado 2021.2 AR76780
Expected Behavior
Expected for files generated from
rfnoc_modtool
to work out of the box with little modification. Also expected adding an icore file would also work out of the box. Little modification is understandable, but some documentation on that would be helpful.Actual Behavior
The following files require modification:
rfnoc-core/CMakeLists.txt
needsfind_package (Python3 COMPONENTS Interpreter Development)
added (I added it after line 43 and it worked)rfnoc-core/lib/square_block_control.cpp
change"Gain"
to"Square"
on line 30rfnoc-core/python/square_block_control_python.hpp
needs to have line 12 changed fromusing namespace rfnoc::gain;
tousing namespace rfnoc::core;
rfnoc-core/fpga/core/CMakeLists.txt
needsadd_subdirectory(rfnoc_block_square)
addedCreate the file
rfnoc-core/fpga/core/rfnoc_block_square/CMakeLists.txt
and add the following:rfnoc-core/fpga/core/rfnoc_block_square/Makefile.srcs
needs the file extenstions to be change from*.v
to*.sv
rfnoc-core/fpga/core/rfnoc_block_square/rfnoc_block_square.sv
needs a comma at the end of line 182rfnoc-core/fpga/core/rfnoc_block_square/rfnoc_block_square.sv
needs quotes aroundHDL_IP
on line 26rfnoc-core/fpga/core/rfnoc_block_square/noc_shell_square.sv
needs a comma at the end of line 116rfnoc-core/fpga/core/rfnoc_block_square/noc_shell_square.sv
needs quotes aroundHDL_IP
on line 36rfnoc-core/icores/CMakeLists.txt
requiresRFNOC_REGISTER_BLOCK
to be changed toRFNOC_REGISTER_IMAGE_CORE
Even after doing this, I am still getting the following error:UPDATE: Found out the following error had to do with an incorrect path in mysquare.yml
file and not therfnoc_modtool
Steps to reproduce the problem
Additional Information
I am running all of this in a docker image (using Ubuntu 22.04 as the base). I was able to get the rfnoc_gain example working in this docker image.