Hi Jeff,

The m_axis_data_tdata and s_axis_data_tdata signals carry the CHDR packet's
data (usually SC16 samples) only. The tuser signals are for the CHDR
header. For instance, the incoming CHDR packet's header is output on
m_axis_data_tuser (regardless of the state of SIMPLE_MODE). When
SIMPLE_MODE=0, the header on s_axis_data_tuser will be used for the
outgoing CHDR packet's header. When SIMPLE_MODE=1, the header is handled
automatically by reusing the incoming packet's header. Technically,
SIMPLE_MODE works by storing the incoming packet's header in a FIFO. That
is why when using SIMPLE_MODE you must produce a packet for every packet
consumed, otherwise the FIFO will either overflow or underflow.

Jonathon

On Wed, Dec 16, 2020 at 6:50 PM Hodges, Jeff <jeff.hod...@gtri.gatech.edu>
wrote:

> When  SIMPLE_MODE=0 for AXI_WRAPPER, is the header provided as the first
> data  word (or two data words if the timestamp is used) on
> m_axis_data_tdata?  It seemed redundant since it’s provided on
> m_axis_data_tuser, but the  Header is shown in the waveform on Slide 22 of
> the RFNOC Workshop (Part  2), so I wanted to clarify exactly what the data
> on m_axis_data_tdata  will be. Also, I assume that this same behavior
> should be mimicked on  s_axis_data_tdata when sending a packet out, but
> again, I wanted to  clarify.
>
>
> Thanks,
>
>
> Jeff
> ------------------------------
> *From:* Jonathon Pendlum <jonathon.pend...@ettus.com>
> *Sent:* Wednesday, December 16, 2020 12:05:58 AM
> *To:* Hodges, Jeff
> *Cc:* usrp-users@lists.ettus.com
> *Subject:* Re: [USRP-users] RFNoC passing metadata on the dataplane
>
> Hi Jeff,
>
>  Is  there a document describing the CHDR header for 3.15? Looking at the
>> code, there are significant differences between the header format in  3.15
>> and what’s in the 4.0 spec. I think I understand it from the code, but if
>> there’s a doc with more detail or explanation, that would be useful.
>
>
> The RFNoC3 CHDR header is described in the UHD 3.15 manual:
> https://files.ettus.com/manual_archive/v3.15.0.0/html/page_rtp.html.
> There is a bit more detail in these slides:
> https://kb.ettus.com/images/f/f6/rfnoc3_workshop_slides_202008_part_2.pdf
>
>  Is there a maximum payload size for a CHDR data packet
>
>
> Technically it is 64k bytes, but due to FIFO sizing in our devices, you
> should not exceed 7992 bytes / 1998 SC16 samples.
>
> Jonathon
>
> On Tue, Dec 15, 2020 at 11:18 PM Hodges, Jeff <jeff.hod...@gtri.gatech.edu>
> wrote:
>
>> Thanks, Jonathan, that is very helpful. Two questions using SIMPLE_MODE=0
>> and AXI wrapper:
>>
>> 1.       Is  there a document describing the CHDR header for 3.15?
>> Looking at the  code, there are significant differences between the header
>> format in  3.15 and what’s in the 4.0 spec. I think I understand it from
>> the code, but if there’s a doc with more detail or explanation, that would
>> be useful.
>> 2.       Is there a maximum payload size for a CHDR data packet
>>
>> Jeff
>>
>> ------------------------------
>> *From:* Jonathon Pendlum <jonathon.pend...@ettus.com>
>> *Sent:* Friday, December 11, 2020 4:47:57 PM
>> *To:* Hodges, Jeff
>> *Cc:* usrp-users@lists.ettus.com
>> *Subject:* Re: [USRP-users] RFNoC passing metadata on the dataplane
>>
>> Hi Jeff,
>>
>> RFNoC3 / UHD 3.15 does not support metadata. That is a new feature in
>> RFNoC4 / UHD 4.0, so option 2 is not possible.
>>
>> If you want to send out metadata in RFNoC3, I would suggest prepending it
>> to packets you send to AXI wrapper. You can still use SIMPLE_MODE as long
>> as you are producing a packet for every packet consumed. The different
>> input/output packet lengths do not matter as AXI wrapper internally
>> calculates the output packet length and updates the header automatically.
>>
>> Jonathon
>>
>> On Fri, Dec 11, 2020 at 3:48 PM Hodges, Jeff via USRP-users <
>> usrp-users@lists.ettus.com> wrote:
>>
>>> I meant rfnoc_create_verilog.py
>>>
>>>
>>>
>>> https://github.com/EttusResearch/uhd/blob/master/host/utils/rfnoc_blocktool/rfnoc_create_verilog.py
>>>
>>>
>>> jeff
>>> ------------------------------
>>> *From:* Hodges, Jeff
>>> *Sent:* Friday, December 11, 2020 3:44:41 PM
>>> *To:* usrp-users@lists.ettus.com
>>> *Subject:* RFNoC passing metadata on the dataplane
>>>
>>>
>>> I'd like to pass metadata over the dataplane using the available space
>>> in the CHDR header.  However, I cannot find an easy way to do this using
>>> UHD3.15.
>>>
>>>
>>> I've identified two possible approaches but I'm not sure either will
>>> work:
>>> (1) Set AXI_Wrapper (Simple_Mode =0) to require user provided CHDR
>>> header. It's unclear how to provide the header, and if this can be modified
>>> quickly.
>>>
>>> (2) Expose the AXI-Stream CHDR interface the way UHD4.0 does it:
>>>
>>> In UHD4.0 the verilog_image_builder.py includes the options to expose
>>> HDL interface:
>>>
>>> o Definition: Which HDL interface to expose
>>> o Options: “AXI-Stream CHDR” (axis_chdr), “AXI-Stream Payload Context”
>>> (axis_pyld_ctxt), or “AXI-Stream Data” (axis_data)
>>>
>>> If Option (2) is the recommended, can I just copy the code from
>>> verilog_image_builder.py TEMPLATE such as below, or were other changes made
>>> to make it incompatible with 3.15?
>>>
>>>  %if config['data']['fpga_iface'] ==
>>> "axis_pyld_ctxt":
>>> assign axis_data_clk =
>>> ${config['data']['clk_domain']}_clk;
>>> assign axis_data_rst =
>>> ${config['data']['clk_domain']}_rst;
>>>  <%include
>>> file="/modules/axis_pyld_ctxt_modules_template.mako"/>
>>>
>>>
>>>
>>> Thanks,
>>>
>>> Jeff
>>>
>>>
>>>
>>> _______________________________________________
>>> 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