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

Reply via email to