-
Notifications
You must be signed in to change notification settings - Fork 676
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
RFNoC4.0 endpoint buffer size #718
Comments
1 |
Hey @hakegit, I think you are misunderstanding how the buffering works in RFNoC 4. The individual RFNoC blocks have zero buffering in the NoC shell, only whatever they have internally. All buffering for streaming purposes is in the stream endpoint. See here for example. The first two stream endpoints have 64kib buffer, and zero buffer, respectively: uhd/fpga/usrp3/top/x300/x310_rfnoc_image_core.yml Lines 15 to 23 in 080b1ba
(zero buffer because EP1 is used for RX only) The blocks have no buffers: uhd/fpga/usrp3/top/x300/x310_rfnoc_image_core.yml Lines 43 to 55 in 080b1ba
(Note that the radio block, for example, has an internal buffer for collecting samples to packetize them, but the framework doesn't need to know that). |
Issue Description
Setup Details
Expected Behavior
Actual Behaviour
Steps to reproduce the problem
Additional Information
I have some issues when using RFNoC4.0. When I was using RFNoC3.0, I needed to input a series of modules make by myself when building an image using IMAGE_BUILDER.py. When I am using RFNoC4.0, I need to input the modules in the image_core.yml. The problem is that my own modules need a large amount of BRAM in FPGA. When I am using RFNoC3.0, if I use more than four my own modules, building failure will arise, which is clearly due to insufficient BRAM. But when I use RFNoC4.0, I need to determind the buffer size of ENDPOINT (ep) in image_core.yml for each module when creating an image .And the connection need to be written by myself ,too. So I don't know how the BRAM used by my module corresponds to the cache size specified by me for ep. That is, how do I set the cache size for ep so that when my own module is added between ddc and radio, and between radio and duc. Currently, I am constantly trying to set the cache size of different EPs to different sizes, which may lead to issues with OOOOO or UUUUUU. I hope developers can provide me with a detailed explanation of how to set the cache size when my own module requires a large BRAM (approximately 8000 complex floating numbers). The specific names of my two own modules are sig1 and sig2. Each module requires a cache area of 8192 complex floating-point numbers.
My module connection methods are radio-sig2-ddc-ep and ep-duc-sig2-radio, with two identical links for sending and receiving. I would greatly appreciate it if I could receive guidance.
The text was updated successfully, but these errors were encountered: