WR streamers: Maximum number of words per frame
The tx streamer has a generic g_max_word_per_frame
that is described
as (as the name states) the maximum number of words allowed in a frame.
It also consequently means it is the maximum number of words allowed per
block, since a block cannot be split across multiple frames.
However, there is no mechanism to enforce this maximum value, and since
block splitting is not supported, the tx_streamer will allow blocks of
any length to be input for transmission until a block finishes ( by
asserting a tx_last_p1_i
pulse), at which point this maximum value is
checked. If g_max_word_per_frame
has been exceeded, the frame is sent
out.
The generic is more acting as a means of limiting the length of frames (by finishing one ethernet frame and sending it out) when:
- The user does not "manually" decide to flush the transmitter
(through
tx_flush_p1_i
) or - No timeout period has been observed or
- The user does not respect the maximum number of words per frame (but
still asserts a
tx_last_p1_i
to signal the end of one block -What happens though if words keep coming without ever signalling the end of one blocck and reaching the Ethernet frame payload limit?)
This means that the description (and name) of the generic are not appropriately describing its function. Alternatively the specification for this function needs to be clarified and a better implementation proposed in order to enforce (if need be) an upper limit on the number of words per frame.