The same
El mié, 7 sept 2022 a las 18:19, Rob Kossler (<rkoss...@nd.edu>) escribió: > You mentioned that your error happens when running from gnuradio. What > happens if you remove gnuradio from the equation and run "uhd_usrp_probe"? > Do you still get the error? > Rob > > On Wed, Sep 7, 2022 at 10:31 AM Piotr Krysik <per...@o2.pl> wrote: > >> Hi Adrián, >> >> This error mean that the block didn't respond to a control message >> during initialization. >> >> I've seen such errors when element of RFNoC graphs wasn't working >> correctly. >> Those situations were when: >> 1. replay block wasn't working correctly due to wrong clock for DDR >> SDRAM controller module, >> 2. I removed implementation of one of Ethernet ports (in order to get >> quicker builds in Vivado) but its end-point was left in the RFNoC graph. >> So it was probed during initialization but there was nothing that could >> respond. >> >> Best Regards, >> Piotr Krysik >> >> W dniu 06.09.2022 o 14:59, Adrián Campos Ramos pisze: >> > HI everyone >> > >> > Thank you very much. I made a controller and, according to the >> > simulation, it's working fine, at least as I wanted. However, I am >> > facing problems to implementate in the fpga. There is not problem when >> > i generate the .bit buf when i call in gnuradio, this error appears: >> > >> > WARNING] [UDP] The current send_buff_size of 212992 is less than the >> > minimum recommended size of 307200 and may result in dropped packets >> > on some NICs >> > [ERROR] [RFNOC::GRAPH] Error during initialization of block 0/DmaFIFO#0! >> > [ERROR] [RFNOC::GRAPH] Caught exception while initializing graph: >> > RfnocError: OpTimeout: Control operation timed out waiting for ACK >> > Traceback (most recent call last): >> > File >> > "/home/integrasys/rfnoc/src/uhd/fpga/usrp3/top/e320/build/untitled.py", >> > line 181, in <module> >> > main() >> > File >> > "/home/integrasys/rfnoc/src/uhd/fpga/usrp3/top/e320/build/untitled.py", >> > line 157, in main >> > tb = top_block_cls() >> > File >> > "/home/integrasys/rfnoc/src/uhd/fpga/usrp3/top/e320/build/untitled.py", >> > line 76, in __init__ >> > self.rfnoc_graph = ettus_rfnoc_graph_0 = >> > ettus.rfnoc_graph(uhd.device_addr(",".join(("addr=192.168.1.23", '')))) >> > File "/usr/local/lib/python3/dist-packages/ettus/ettus_swig.py", >> > line 1153, in make >> > return _ettus_swig.rfnoc_graph_make(dev_addr) >> > RuntimeError: RuntimeError: Failure to create rfnoc_grap >> > >> > I attached my image.yml: >> > >> > >> > Thanks in advance. >> > >> > El jue, 1 sept 2022 a las 22:24, Wade Fife (<wade.f...@ettus.com>) >> > escribió: >> > >> > The DRAM on USRPs is half duplex, but the AXI bus is full duplex, >> > which makes the real world behavior more complicated. If you want >> > to simulate accurately for a specific USRP, you could pull in its >> > AXI interconnect, the Xilinx memory interface IP, and a DRAM >> > simulation model, then connect it together and match the USRP >> > design exactly, but this is a lot of work. There are examples that >> > are similar to this in fpga/usrp3/top/x300/sim/dram_fifo and >> > fpga/usrp3/top/n3xx/sim/dram_fifo. There's no example for E320, >> > but the idea is similar. >> > >> > Wade >> > >> > On Thu, Sep 1, 2022 at 5:38 AM Adrián Campos Ramos >> > <adrian.cam...@integrasys-sa.com> wrote: >> > >> > Thank you very much! I was testing the code and I got >> > something similar to what I wanted. However, in the simulation >> > the sim_ram is half duplex and my question is if the >> > implementation in the FPGA is also half or full duplex. And if >> > it is full, is there any way to simulate? >> > >> > Thanks in advance. >> > >> > Adrián >> > >> > El mié, 31 ago 2022 a las 16:22, Wade Fife >> > (<wade.f...@ettus.com>) escribió: >> > >> > OUT_FIFO_SIZE sets the size of the FIFO used to buffer >> > data read from the external DRAM. But the unit for this >> > parameter is log base 2 of the size. So, setting it to 20 >> > means the output FIFO will be 2^20 words or 8 MiB >> > implemented in BRAM, which is too big for the FPGA to >> > support. You should probably leave it at the default >> > value. The amount of DRAM to use for the FIFO can be set >> > by the FIFO_ADDR_MASK parameter. >> > >> > It should behave like a true FIFO. So anything you write >> > to the input will come out on the output, but you can >> > buffer up to the size of the memory you have configured. >> > I'm not sure I understand your application exactly, but if >> > you only want to capture at a specific time, then you >> > should add logic to only write the data to the input of >> > the FIFO during those times and take care to handle >> > overflow when the FIFO fills. And add logic on the output >> > to only read when you want, taking care to handle >> > underflow when the FIFO empties. >> > >> > Wade >> > >> > On Wed, Aug 31, 2022 at 4:42 AM Adrián Campos Ramos >> > <adrian.cam...@integrasys-sa.com> wrote: >> > >> > Hi, >> > >> > Thank you very much, now I understand how it works and >> > it runs perfectly. However, it's not what I expected >> > since it does not FIFO behaviour, or I'm >> > doing something wrong. What I need is a FIFO that >> > stores the data of a signal when I activate a flag and >> > reads when I activate another flag continuously and >> > constantly. Currently, I have the FIFO implemented in >> > the FPGA but it takes too much resources so I want to >> > take advantage of the E320 RAM. I think the >> > axi_ram_fifo would be perfect for my project but as >> > far i can see, when space = 0 and occupied is full, it >> > starts to lose the continuity. On the other hand, I >> > don't know why but I can't increase the >> > FIFO_OUT_SIZE. With 10 there are outputs but if i >> > increase, for example, to 20 it doesn't. >> > >> > I attached a photo of the behavior of the >> > input_fifo/fifo_ram/ram. >> > p1.png >> > >> > El mar, 30 ago 2022 a las 19:54, Wade Fife >> > (<wade.f...@ettus.com>) escribió: >> > >> > Hello Adrián, >> > >> > REG_FIFO_FULLNESS is the number of bytes currently >> > stored in the RAM of the FIFO. >> > >> > FIFO_ADDR_W is a testbench parameter that defines >> > the amount of memory address space to use for the >> > simulated FIFOs. The unmodified testbench uses a >> > single memory to test two FIFOs. So the sum of the >> > memory used by both FIFOs must be less than the >> > size of the memory being simulated in order for >> > the testbench to work (i.e., 2 * 2**FIFO_ADDR_W >> > must not exceed 2**MEM_ADDR_W). >> > >> > IN_FIFO_SIZE and OUT_FIFO_SIZE control the size of >> > the input/output buffers used by the block. They >> > can affect the performance of the FIFO, but must >> > be large enough to hold two of the expected burst >> > memory transfer size, which I think is 512 words. >> > >> > The testbench is failing because it expects the >> > FIFO to be empty when the simulation begins. >> > Perhaps you have started inputting values before >> > it was expecting you to? >> > >> > Wade >> > >> > On Tue, Aug 30, 2022 at 3:13 AM Adrián Campos >> > Ramos <adrian.cam...@integrasys-sa.com> wrote: >> > >> > Hi everyone, >> > >> > First of all, thank you very much Rob Kossler >> > for the explanation. I made a "controller" >> > that sends and receives information at certain >> > points in time. However, I am facing problems >> > in relation to REG_FIFO_FULLNESS. I've been >> > changing the values of FIFO_ADDR_W, >> > IN_FIFO_SIZE and OUT_FIFO_SIZE but it didn't >> > work. Furthermore, I don't understand the >> > problem at all, is the input fifo or the >> > output fifo? or the ram?. The controller >> > mentioned before has only two counters, one to >> > activate the valid flag to send information >> > and another to activate the ready flag to >> > receive the information and, as far i could >> > see, it was working until the assert. >> > >> > This is the error that returns me the >> > simulation (the number that appears in the >> > image is for: `ASSERT_ERROR(val64 == 0, >> > $sformatf("Incorrect REG_FIFO_FULLNESS value! >> > %d",val64)); >> > >> > Screenshot from 2022-08-30 10-10-52.png >> > On the other hand, the data that I send to RAM >> > is the value of a counter. >> > >> > I hope you can help me. Thanks in advance. >> > >> > Adrián Campos >> > >> > El jue, 18 ago 2022 a las 22:49, Rob Kossler >> > (<rkoss...@nd.edu>) escribió: >> > >> > Replace "upstream" with "downstream" below. >> > >> > On Thu, Aug 18, 2022 at 1:28 PM Rob >> > Kossler <rkoss...@nd.edu> wrote: >> > >> > Hi Adrian, >> > As you indicated, the RFNoC blocks >> > axi_ram_fifo and Relay both use the >> > FPGA RAM. axi_ram_fifo doesn't need >> > any registers for control because it >> > just accepts an AXI stream on the >> > input and forwards that exact stream >> > on the output. The "control" is in the >> > AXI tvalid/tready handshaking. Thus, >> > if the upstream block is not ready, >> > the FIFO starts filling up but does >> > not empty until the upstream block is >> > ready. But, for the Replay block, >> > this block stores the incoming stream >> > to RAM until you later decide to play >> > it out. It can be used in the >> > transmit path to load a waveform into >> > RAM such that it can be played out to >> > the Tx Radio without any help from the >> > host PC. Or, it can be used in the >> > receive path to store receive samples >> > as they arrive (up to the given RAM >> > memory depth) and then later >> > downloaded (played out) to the host PC >> > in non-realtime. >> > >> > While I don't know your specific >> > application, I wondered if the Replay >> > block (or the axi_ram_fifo) can >> > already implement your desired >> > functionality such that a custom block >> > is not needed. >> > Rob >> > >> > On Thu, Aug 18, 2022 at 8:25 AM >> > <adrian.cam...@integrasys-sa.com> >> wrote: >> > >> > I am making a custom block which >> > has to start storing data to be >> > read later, in other words store >> > the data in a FIFO. I am >> > interested in using the RAM >> > provided by the E320 so I want to >> > take advantage of the axi_ram_fifo >> > code. However, I don't really >> > understand the control of that >> > block, how can I control when to >> > start writing data to memory and >> > when to start reading it? I have >> > checked the registers in case it >> > could be controlled from there >> > like the replay block that has two >> > registers to start reading and >> > another one to do a restart but I >> > haven't seen anything like that. >> > >> > I hope you can help me. Thank you >> > very much in advance >> > >> > >> > >> _______________________________________________ >> > USRP-users mailing list -- >> > usrp-users@lists.ettus.com >> > To unsubscribe send an email to >> > usrp-users-le...@lists.ettus.com >> > >> > _______________________________________________ >> > USRP-users mailing list -- >> > usrp-users@lists.ettus.com >> > To unsubscribe send an email to >> > usrp-users-le...@lists.ettus.com >> > >> > >> > _______________________________________________ >> > USRP-users mailing list -- usrp-users@lists.ettus.com >> > To unsubscribe send an email to usrp-users-le...@lists.ettus.com >> >> _______________________________________________ >> USRP-users mailing list -- usrp-users@lists.ettus.com >> To unsubscribe send an email to usrp-users-le...@lists.ettus.com >> > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-le...@lists.ettus.com >
_______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com