Hey Brian,
I do not know of any examples of the top of my head that use metadata for higher CHDR_W’s.
I suspect that on the Host side, 64bit is just the data type used because it is the lowest common denominator for all CHDR_W’s. In the CHDR header , the metadata is not counted in terms of bytes like the length is, but rather in words of CHDR_W. I would expect the UHD host driver to do the correct conversion if needed for your particular usrp image.
I am assuming you are asking about how to get access to the metadata inside of a custom RFNoC block.
If you have not already, maybe taking a look at the different RFNoC block data plane interface options in the RFNoC specification. Specifically 2.3.3.3 AXI-Stream Payload Context (Simple Interface) might be useful for your use case.
If you use this interface setting, you get separate data streams for payload and context, where context includes a stream of CHDR_W words of either header/timestamp information, or the metadata, with the axi user signals differentiating between the two:
If this is not suited for your usecase, and want to implement your own solution, you can take the chdr_to_axis_pyld_ctxt(or axis_pyld_ctxt_to_chdr for the opposite direction) as an example of how the noc shell separates context and payload.
Hope this helps,
Regards,
Niels
I am targeting the X440 with a design that has a CHDR_W of 512 and I'd like
to use the metadata inside my AXIS stream associated with it.
In the RFNoC specification (
https://files.ettus.com/app_notes/RFNoC_Specification.pdf), table 1 shows
the CHDR packet with the Metadata being CHDR_W wide. I see the metadata
listed in the chdr_packet here is a vector of uint64_t:
https://files.ettus.com/manual/classuhd_1_1utils_1_1chdr_1_1chdr__packet.html#aa294b5e5291ae8250dab05f2f0339d3f
Are there any examples of building a chdr packet with custom metadata that
I can reference? Especially one that might use a different CHDR_W than
64-bits and how that might affect things?
Am I venturing into untested territory which may have a lot of potential
issues?
Any insights would be appreciated.
Thanks,
Brian
Hey Brian,
I do not know of any examples of the top of my head that use metadata for higher CHDR_W’s.\
\
I suspect that on the Host side, 64bit is just the data type used because it is the lowest common denominator for all CHDR_W’s. In the CHDR header , the metadata is not counted in terms of bytes like the length is, but rather in words of CHDR_W. I would expect the UHD host driver to do the correct conversion if needed for your particular usrp image.
I am assuming you are asking about how to get access to the metadata inside of a custom RFNoC block.
If you have not already, maybe taking a look at the different RFNoC block data plane interface options in the RFNoC specification. Specifically **2.3.3.3 AXI-Stream Payload Context (Simple Interface)** might be useful for your use case.
If you use this interface setting, you get separate data streams for payload and context, where context includes a stream of CHDR_W words of either header/timestamp information, or the metadata, with the axi user signals differentiating between the two:
If this is not suited for your usecase, and want to implement your own solution, you can take the [chdr_to_axis_pyld_ctxt](https://github.com/EttusResearch/uhd/blob/master/fpga/usrp3/lib/rfnoc/core/chdr_to_axis_pyld_ctxt.v)(or [axis_pyld_ctxt_to_chdr](https://github.com/EttusResearch/uhd/blob/master/fpga/usrp3/lib/rfnoc/core/axis_pyld_ctxt_to_chdr.v) for the opposite direction) as an example of how the noc shell separates context and payload.\
\
Hope this helps,
Regards,
Niels
---
I am targeting the X440 with a design that has a CHDR_W of 512 and I'd like \
to use the metadata inside my AXIS stream associated with it.
In the RFNoC specification ( \
<https://files.ettus.com/app_notes/RFNoC_Specification.pdf>), table 1 shows \
the CHDR packet with the Metadata being CHDR_W wide. I see the metadata \
listed in the chdr_packet here is a vector of uint64_t:
<https://files.ettus.com/manual/classuhd_1_1utils_1_1chdr_1_1chdr__packet.html#aa294b5e5291ae8250dab05f2f0339d3f>
Are there any examples of building a chdr packet with custom metadata that \
I can reference? Especially one that might use a different CHDR_W than \
64-bits and how that might affect things?
Am I venturing into untested territory which may have a lot of potential \
issues?
Any insights would be appreciated.
Thanks, \
Brian