-
Notifications
You must be signed in to change notification settings - Fork 672
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OOT RFNoC Block not automatically recognized (and then don't propagate actions and properties) #406
Comments
Rob from usrp-user mailing list has probably found the issue:
So I cannot test it, could someone test it? |
I am unable to reproduce this issue in a GNU Radio OOT module made with rfnocmodtool. I verified both that the gain block's block controller is being loaded (i.e. you don't have to use the generic "Block#0" block ID) and that the flowgraph @f380cedric Do you want to try making a gain block using rfnocmodtool? The RFNoC4 Workshop has instructions on how to do this: https://www.youtube.com/watch?v=M9ntwQie9vs (starts at around 29:14) |
Thanks for the reply. If my previous comment was not clear: I do not use UHD4 anymore, so I cannot verify it. |
It looks like the problem is that UHD doesn't load the custom DLLs automatically, and the default block controller DROPs actions and property propagation. I think these are both issues we can (and should) address. I'm guessing an easier fix than providing custom linker flags would be to LD_PRELOAD the DLL. |
We've added support for more easily auto-loading OOT DLLs, so I'll be closing this. |
Issue Description
Due to a bug in UHD4, OOT blocks (as described in 1) are not recognized by UHD.
One of the drawbacks is that the custom controller is not used, falling back to the
noc_block_base
controller with unknown registration.This controller does not seem to forward action such as
issue_stream_cmd
.It does mean that in graph such as
radio → ddc → gain_block → rx_streamer
,issuing
issue_stream_cmd
onrx_streamer
does not reach the radio, being dropped by thegain_block
.One workaround is to issue the stream command on the ddc/radio block.
Another is to build part of the block OOT (the verilog part), while building the custom controller part (hpp/cpp) in-tree.
However, I think it should work without a custom controller (and relying only on
noc_block_base
).Setup Details
Expected Behavior
OOT without custom block should forward command by default, in particular the
issue_stream_cmd
.Actual Behaviour
The action seems to be blocked/dropped by the custom block.
Steps to reproduce the problem
cp -r "$UHD_DIR"/host/examples/rfnoc-example /tmp/
cd /tmp/rfnoc-example/
cmake -S . -B build -DUHD_FPGA_DIR="$UHD_DIR"/fpga
cd build && make
sudo make install
make x310_rfnoc_image_core
viv_jtag_program $FILEPATH_TO_DOT_BIT # Or using uhd_image_loader
cd "$UHD_DIR"/host/examples
patch < attachment.txt
g++ -g -o test rfnoc_rx_to_file.cpp -lboost_program_options -luhd
./test --rate 20e6 --block-id '0/Block#0' --spp 256 --progress # it times out, the RX LED stays off.
Additional Information
Mailing list discussion: http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2021-January/063522.html
The text was updated successfully, but these errors were encountered: