... | ... | @@ -75,10 +75,19 @@ Each **block** starts with an ID number |
|
|
|
|
|
## Interface of Tx and Rx Streamer modules
|
|
|
|
|
|
- **Transmission configuration:**
|
|
|
### **Transceiver configuration:**
|
|
|
|
|
|
- **Common to Tx and Rx**
|
|
|
- *g\_data\_width* - generic defines the width of input/output
|
|
|
data in (n\*16) bits, it must be identical for the Tx and Rx
|
|
|
Streamer.
|
|
|
data in multiples of 16 bits (n\*16). It must be identical for
|
|
|
the Tx and Rx Streamer.
|
|
|
- *g\_escape\_code\_disable* - generic, when it is TRUE, the
|
|
|
*escape code* is not used and only a single **block** can be
|
|
|
sent. Don't use it unless you know what you are doing.
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
- **Tx specific**
|
|
|
- *g\_tx\_threshold* - generic defines minimum number of data
|
|
|
words in the buffer of the Tx Streamer that will trigger
|
|
|
transmission of an Ethernet Frame.
|
... | ... | @@ -90,46 +99,47 @@ Each **block** starts with an ID number |
|
|
the Tx Streamer is sent regardless of the amount of data that is
|
|
|
currently stored in the buffer, so that data in the buffer does
|
|
|
not get stuck.
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
- **Rx specific**
|
|
|
- *g\_buffer\_size* - generic defines size of the buffer in the Rx
|
|
|
Streamer, in data words.
|
|
|
- *g\_filter\_remote\_mac* - generic, when it is TRUE, the Rx
|
|
|
Streamer receives only packets whose destination MAC equals
|
|
|
*cfg\_mac\_remote\_i*. When false, it accepts all incoming
|
|
|
frames.
|
|
|
- *g\_escape\_code\_disable* - generic, when it is TRUE, the
|
|
|
*escape code* is not used and only a single **block** can be
|
|
|
sent. Don't use it unless you know what you are doing.
|
|
|
- *g\_expected\_words\_number* - generic defines the number of
|
|
|
words that is expected by the receiver. Don't use it unless you
|
|
|
know what you are doing.
|
|
|
|
|
|
<!-- end list -->
|
|
|
### **Networking configuration (Tx and Rx Streamer):**
|
|
|
|
|
|
- **Networking configuration (Tx and Rx Streamer):**
|
|
|
- cfg\_mac\_local\_i - local MAC address. Leave at 0 when using
|
|
|
with the WR MAC/Core, it will insert its own source MAC.
|
|
|
- cfg\_mac\_target\_i - Destination MAC address
|
|
|
- cfg\_ethertype\_i - Ethertype of Streamer Frames. Default value
|
|
|
is accepted by standard configuration of the WR PTP Core
|
|
|
* cfg\_mac\_local\_i - local MAC address. Leave at 0 when using with
|
|
|
the WR MAC/Core, it will insert its own source MAC.
|
|
|
|
|
|
<!-- end list -->
|
|
|
* cfg\_mac\_target\_i/ cfg\_mac\_remote\_i - Destination MAC address
|
|
|
on Tx module, source MAC address for Rx module.
|
|
|
|
|
|
- **WR timing input (optional, to allow latency measurement, Tx and Rx
|
|
|
Streamer):**
|
|
|
- clk\_ref\_i - White Rabbit reference clock
|
|
|
- tm\_time\_valid\_i - Time valid flag
|
|
|
- tm\_tai\_i - TAI seconds
|
|
|
- tm\_cycles\_i - Fractional part of the second (in clk\_ref\_i
|
|
|
cycles)
|
|
|
* cfg\_ethertype\_i - Ethertype of streamer frames. Default value is
|
|
|
accepted by the standard configuration of the [WR PTP
|
|
|
Core](/Wrpc-core).
|
|
|
|
|
|
<!-- end list -->
|
|
|
### **WR timing input (optional, to allow latency measurement, Tx and Rx Streamer):**
|
|
|
|
|
|
* clk\_ref\_i - White Rabbit reference clock
|
|
|
|
|
|
* tm\_time\_valid\_i - Time valid flag
|
|
|
|
|
|
* tm\_tai\_i - TAI seconds
|
|
|
|
|
|
* tm\_cycles\_i - Fractional part of the second (in number of
|
|
|
clk\_ref\_i cycles)
|
|
|
|
|
|
### **FIFO-like interface (Tx and Rx Streamer)**:
|
|
|
|
|
|
* the figure and tables below provide information on interfaces that
|
|
|
are used to write data words to the Tx Streamer and read data words from
|
|
|
the Rx Streamer
|
|
|
|
|
|
- **FIFO-like interface (Tx and Rx Streamer)**:
|
|
|
- the figure and tables below provide information on interfaces
|
|
|
that are used to write data words to the Tx Streamer and read
|
|
|
data words from the Rx Streamer
|
|
|
- waveform with the described signals is available
|
|
|
[here](https://www.ohwr.org/project/wr-cores/uploads/45936912d749480295414451e2e399f2/streamer_timing.jpg):
|
|
|
* These signal assertions are shown in a [waveform
|
|
|
example](https://www.ohwr.org/project/wr-cores/uploads/45936912d749480295414451e2e399f2/streamer_timing.jpg).
|
|
|
|
|
|
/4216
|
|
|
|
... | ... | @@ -142,14 +152,16 @@ Tx Streamer| |
|
|
| tx\_dreq\_o | Synchronous data request: HIGH indicates that the Tx
|
|
|
Streamer can accommodate a **data word** in the following clock cycle
|
|
|
|
|
|
|
| tx\_last\_i | Last **data word** signal. When asserted, it indicates
|
|
|
the last data word in a **block** |
|
|
|
| tx\_flush\_i | Flush input. When asserted, the streamer will
|
|
|
immediately send out all the data that is stored in its TX buffer,
|
|
|
ignoring g\_tx\_timeout. |
|
|
|
| tx\_last\_p1\_i | Last **data word** signal. Asserted for 1 clock
|
|
|
cycle and indicates the last data word in a **block** |
|
|
|
| tx\_flush\_p1\_i | Flush input. When asserted for 1 clock cycle, the
|
|
|
streamer will immediately send out all the data that is stored in its TX
|
|
|
buffer, ignoring g\_tx\_timeout. |
|
|
|
| tx\_reset\_seq\_i | Reset sequence number. When asserted, the internal
|
|
|
sequence number generator used to detect loss of frames is reset to 0.
|
|
|
Advanced feature. |
|
|
|
Advanced feature. |
|
|
|
| tx\_frame\_p1\_o | Asserted for one clock cycle to signify successful
|
|
|
streamer frame transmission. |
|
|
|
|
|
|
*Rx Streamer**
|
|
|
| \* I/F name **|** Description \*|
|
... | ... | @@ -159,17 +171,19 @@ Rx Streamer | |
|
|
*data word**. |
|
|
|
| rx\_dreq\_i | Synchronous data request input: when HIGH, the streamer
|
|
|
can output another data word in the subsequent clock cycle. |
|
|
|
| rx\_first\_o | HIGH indicates the 1st **data word** of the **block**
|
|
|
on rx\_data\_o. |
|
|
|
| rx\_last\_o | HIGH indicates the last word of the data block on
|
|
|
| rx\_first\_p1\_o | HIGH indicates the 1st **data word** of the
|
|
|
*block** on rx\_data\_o. |
|
|
|
| rx\_last\_p1\_o | HIGH indicates the last word of the data block on
|
|
|
rx\_data\_o. |
|
|
|
| rx\_lost\_o | Lost output: HIGH indicates that one or more of
|
|
|
| rx\_lost\_p1\_o | Lost output: HIGH indicates that one or more of
|
|
|
*blocks** have been lost. |
|
|
|
| rx\_latency\_o | Latency measurement output: indicates the transport
|
|
|
latency (between the TX streamer in remote device and this streamer), in
|
|
|
clk\_ref\_i clock cycles. |
|
|
|
| rx\_latency\_valid\_o | HIGH when the latency on rx\_latency\_o is
|
|
|
valid. |
|
|
|
valid. |
|
|
|
| rx\_frame\_p1\_o | Asserted for one clock cycle to signify successful
|
|
|
streamer frame reception|
|
|
|
|
|
|
-----
|
|
|
|
... | ... | |