That sounds like it will do it. Thanks! Tim
On Wed, Aug 28, 2019 at 11:23 AM Jonathon Pendlum < jonathon.pend...@ettus.com> wrote: > Hi Tim, > > My mistake on my original reply, you should use push_pkt()/pull_pkt(). You > provide the header to that function (along with the payload), which is how > you will be able to set EOB and a packet size with an odd number of 16-bit > samples. If you really dig into sim_rfnoc_lib.svh, sim_cvita_lib.svh, and > noc_block_export_io.v, you'll see that push_pkt() interfaces with noc_shell > not axi_wrapper. Even though cvita_payload_t is a 64-bit wide queue, the > packet size in the header is what matters. You'll also need to remove or > modify line 236 in push_pkt() in sim_cvita_lib.svh, as that assertion > checks if the header's packet size is a multiple of 4 bytes. > > Jonathon > > On Wed, Aug 28, 2019 at 1:07 AM Timothy Kurp <timothy.k...@gmail.com> > wrote: > >> Hi Jon, >> >> This doesn't answer my question, perhaps I didn't convey the problem >> clearly. I am trying to test the case where TLAST occurs on an odd sample, >> at the same time as EOB. Push word provides access to tlast, but not EOB. >> To throw eob I need to use send() which takes in pkt.payload and >> pkt.header. I can manipulate eob in the metadata there. pkt.payload is of >> type cvita_payload_t, which is 64 bits wide. Send() will throw tlast at the >> end of the packet, which will always contain a multiple of 2 complex >> samples since the payload is defined at 64 bits. That is my problem. There >> is no way to throw eob and tlast on a packet that contains an odd number of >> i/q samples. >> >> Tim >> >> On Tue, Aug 27, 2019 at 12:21 AM Timothy Kurp <timothy.k...@gmail.com> >> wrote: >> >>> Thanks! I will look at that example. >>> >>> Tim >>> >>> On Tue, Aug 27, 2019 at 12:15 AM Jonathon Pendlum < >>> jonathon.pend...@ettus.com> wrote: >>> >>>> Hi Tim, >>>> >>>> Look at noc_block_fft_tb.v for an example on how to operate on a 32-bit >>>> sample by sample basis. Unfortunately, if you want to do sizes smaller than >>>> 32-bit, you'll need to write your own version of send()/recv() or >>>> push_word()/pull_word() from sim_rfnoc_lib.svh. >>>> >>>> Jonathon >>>> >>>> On Tue, Aug 27, 2019 at 1:05 PM Timothy Kurp via USRP-users < >>>> usrp-users@lists.ettus.com> wrote: >>>> >>>>> Hey Users! >>>>> >>>>> I think this may be a possible deficiency in the test bench >>>>> architecture, or perhaps I just don't know how to instrument it properly. >>>>> I >>>>> have a custom block that performs a 2:1 rate change roughly, performing >>>>> compression of the 16 bit I/Q from the radio down to a 16 bit word that is >>>>> compressed, I won't describe how. There is a corner case if EOB occurs >>>>> when >>>>> there is an odd number of samples received from the radio. I have handled >>>>> this by using simple mode = 0, manipulating cvita header manually and >>>>> throwing tlast to make packets, with success. The noc block works, but I >>>>> am >>>>> struggling with how to exercise the corner case in the testbench. >>>>> >>>>> From what I have seen, the testbench only allows for EOB to be >>>>> manipulated on sample counts that are a multiple of 2 (send() operates on >>>>> 64 bits, or 2 samples of 16 bit I/Q). We have looked at the source and >>>>> there doesn't seem to be an easy way to throw EOB/TLAST on odd samples.We >>>>> also think it is not guaranteed that this will never happen from the >>>>> radio. >>>>> Thoughts? >>>>> >>>>> Tim >>>>> _______________________________________________ >>>>> USRP-users mailing list >>>>> USRP-users@lists.ettus.com >>>>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >>>>> >>>>
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com