|
|
## Streamers principles of data transfer
|
|
|
|
|
|
- **Tx Streamer** transfers **data words** that are of width (n \* 16)
|
|
|
bits. The width is defined by generic `data_width` (in
|
|
|
`g_tx_streamer_params` and `g_rx_streamer_params`) that must be
|
|
|
identical for the Tx and Rx Streamer.
|
|
|
bits where the upper limit of the word size is the size of Ethernet
|
|
|
frame payload (minus overhead for WR Streamers header/CRC) . The
|
|
|
width is defined by generic `data_width` (in `g_tx_streamer_params`
|
|
|
and `g_rx_streamer_params`) that must be identical for the Tx
|
|
|
Streamer of the sending node and Rx Streamer of the receiving node
|
|
|
(i.e. the the parameters can be different on the same node). For
|
|
|
example, the **data word** width in the
|
|
|
[BTrain-over-WhiteRabbit](https://gitlab.cern.ch/BTrain-TEAM/Btrain-over-WhiteRabbit/wikis/home)
|
|
|
project is **208 bits** while the data width in the
|
|
|
[streamers-on-spec\_trigger-distribution](https://www.ohwr.org/project/wr-cores/wikis/wr-streamers-simulation)
|
|
|
example is **80 buts**.
|
|
|
- **Data words** can be grouped in **blocks** of any size with upper
|
|
|
limit defined by `max_words_per_frame` (in `g_tx_streamer_params`) ,
|
|
|
each **block** has independent sequence number and CRC.
|
... | ... | |