The input DATA channel and output DATA channels
optionally support a tuser
field. For each, the tuser
field can be used to convey a User Field and/or a
Channel ID field. When both are selected, they are concatenated, with Channel ID in the
least significant bit positions. When User Field is selected on the input channel it is
automatically selected for the output channel, as this User Field, like ‘packet-based’
tlast
is a facility whereby the User Field is passed
through the core, but subject to the same latency delay as the tdata
path from input to output. This is intended to ease system design.
The User Field has user-selected width.
The Channel ID field has the minimum width required to describe the number of channels in a time-division multiplex cycle (log2roundup(number_of_channels)), for example, with 13 channels, channel ID is 4 bits wide.
The output DATA channel also includes a Data Valid
field when aresetn
has been selected without Data vector
reset being selected. This field can be used for additional validation of the m_axis_data_tdata
bus. See Resets for more details. The Data Valid field occupies the LSB
of m_axis_data_tuser
with the other tuser
fields, when selected, being shifted up the bus.
When the core has been configured to implement a
rate change the following rules are applied to tuser
and
tlast
.
- When the core is configured with no rate change
tuser
andtlast
propagate through the core unmodified. - When the core is configured to up convert by X
the input
tuser
andtlast
are duplicated on the last sample of the corresponding block of X output samples.tuser
is undefined for the other X-1 output samples. - When the core is configured to down convert by X
the
tuser
value for a given output sample is taken from thetuser
value of the first input sample of the corresponding X input samples.tlast
is OR’d over X input samples with the result being used for thetlast
of the corresponding output sample.