... | ... | @@ -18,39 +18,234 @@ of: |
|
|
The streamer interface outputs can then be written to wishbone registers
|
|
|
but are also available through SNMP.
|
|
|
|
|
|
The statistics module can be reset remotely via the reset\_stats\_i
|
|
|
input port. This input can be written to via a wishbone register as is
|
|
|
the case in the xwr\_transmission module.\\
|
|
|
|
|
|
## Module structure
|
|
|
|
|
|
### Interface of `xrtx_streamers_stats`
|
|
|
### **Interface of `xrtx_streamers_stats`**
|
|
|
|
|
|
- `g_streamers_op_mode` - Generic to specify whether the stats module
|
|
|
needs to collect information from (set as approriate to) `TX_ONLY`,
|
|
|
`RX_ONLY`, or `TX_AND_RX`.
|
|
|
- `g_cnt_width` - Width of frame counters (50-bit default should
|
|
|
sufficient)
|
|
|
- `g_acc_width` - Width of cumulated latency counter (64-bit Default
|
|
|
is also the maximum possible value)
|
|
|
<table>
|
|
|
<tbody>
|
|
|
<tr class="odd">
|
|
|
<td><b> <strong>I/F name</strong> </b></td>
|
|
|
<td><b> <strong>Description</strong> </b></td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>g_streamers_op_mode</code></td>
|
|
|
<td>Generic to specify whether the stats module needs to collect information from (set as approriate to) <code>TX_ONLY</code>, <code>RX_ONLY</code>, or <code>TX_AND_RX</code></td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>g_cnt_width</code></td>
|
|
|
<td>Width of frame counters (50-bit default should sufficient)</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>g_acc_width</code></td>
|
|
|
<td>Width of cumulated latency counter (64-bit Default is also the maximum possible value)</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
|
|
|
### Input from Transceiver
|
|
|
### **Input from Transceiver**
|
|
|
|
|
|
- `sent_frame_i` - 1 pulse signal when frame is successfuly sent
|
|
|
(Provided by Tx streamer)
|
|
|
- `rcvd_frame_i` - 1 pulse signal when frame is successfuly received
|
|
|
(Provided by Rx streamer)
|
|
|
- `lost_block_i` - 1 pulse signal when a block is lost (Provided by
|
|
|
Rx)
|
|
|
- `lost_frame_i` - 1 pulse signal when a frame is lost (Provided by
|
|
|
Rx)
|
|
|
- `lost_frames_cnt_i` - Number of frames lost (Provided by Rx)
|
|
|
- `rcvd_latency_i` - Latency of frame received (Provided by Rx)
|
|
|
- `rcvd_latency_valid_i` - 1 pulse signal when latency value is valid
|
|
|
(Provided by Rx)
|
|
|
<table>
|
|
|
<tbody>
|
|
|
<tr class="odd">
|
|
|
<td><b> <strong>I/F name</strong> </b></td>
|
|
|
<td><b> <strong>Description</strong> </b></td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>sent_frame_i</code></td>
|
|
|
<td>1 pulse signal when frame is successfuly sent (Provided by Tx streamer)</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>rcvd_frame_i</code></td>
|
|
|
<td>1 pulse signal when frame is successfuly received (Provided by Rx streamer)</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>lost_block_i</code></td>
|
|
|
<td>1 pulse signal when a block is lost (Provided by Rx)</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>lost_frame_i</code></td>
|
|
|
<td>1 pulse signal when a frame is lost (Provided by Rx)</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>lost_frames_cnt_i</code></td>
|
|
|
<td>Number of frames lost (Provided by Rx)</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>rcvd_latency_i</code></td>
|
|
|
<td>Latency of frame received (Provided by Rx)</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>rcvd_latency_valid_i</code></td>
|
|
|
<td>1 pulse signal when latency value is valid (Provided by Rx)</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
|
|
|
### Statistics control
|
|
|
### **Statistics control**
|
|
|
|
|
|
- `reset_stats_i` -
|
|
|
- `snapshot_ena_i`
|
|
|
<table>
|
|
|
<tbody>
|
|
|
<tr class="odd">
|
|
|
<td><b> <strong>I/F name</strong> </b></td>
|
|
|
<td><b> <strong>Description</strong> </b></td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>reset_stats_i</code></td>
|
|
|
<td>Reset all statistics counters</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>snapshot_ena_i</code></td>
|
|
|
<td>Enable snapshot of the statistics values so as to have a coherent view of performance</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
|
|
|
The statistics module can be reset remotely via the reset\_stats\_i
|
|
|
input port. This input can be written to via a wishbone register as is
|
|
|
the case in the xwr\_transmission module.
|
|
|
### **Output statistics**
|
|
|
|
|
|
<table>
|
|
|
<tbody>
|
|
|
<tr class="odd">
|
|
|
<td><b> <strong>I/F name</strong> </b></td>
|
|
|
<td><b> <strong>Description</strong> </b></td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>reset_time_tai_o </code></td>
|
|
|
<td>Time of last statistics reset in TAI</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>reset_time_cycles_o </code></td>
|
|
|
<td>Time of last statistics reset in clk_ref cycles</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>sent_frame_cnt_o </code></td>
|
|
|
<td>Counter of sent frames</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>rcvd_frame_cnt_o </code></td>
|
|
|
<td>Counter of received frames</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>lost_frame_cnt_o </code></td>
|
|
|
<td>Counter of lost frames</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>lost_block_cnt_o </code></td>
|
|
|
<td>Counter of lost blocks</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>latency_cnt_o </code></td>
|
|
|
<td>Current frame latency (in clk_ref cycles)</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>latency_acc_o </code></td>
|
|
|
<td>Cumulated latency (Sum of all latencies)</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>latency_acc_overflow_o</code></td>
|
|
|
<td>Signals overflow of latency counter</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>latency_max_o </code></td>
|
|
|
<td>Current maximum latency</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>latency_min_o </code></td>
|
|
|
<td>Current minimum latency</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
|
|
|
snmp\_array\_o
|
|
|
|
|
|
- `snmp_array_i`: snmp input consists of two bits (from LSB to MSB)
|
|
|
- `rest_stats_remote`: remotely reset streamer statistics
|
|
|
- `snapshot_remote_ena`: remotely enable statistics snapshot
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
- `snmp_array_o`: snmp output consists of 18 words of 32 bits
|
|
|
|
|
|
<table>
|
|
|
<tbody>
|
|
|
<tr class="odd">
|
|
|
<td><b> Word</b></td>
|
|
|
<td><b> bit </b></td>
|
|
|
<td>Content</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>snmp_array_o(0)</code></td>
|
|
|
<td>0</td>
|
|
|
<td><code>reset_stats</code></td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>snmp_array_o(0)</code></td>
|
|
|
<td>1</td>
|
|
|
<td><code>latency_acc_overflow_out</code></td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>snmp_array_o(1)</code></td>
|
|
|
<td>32</td>
|
|
|
<td><code>reset_time_cycles</code></td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>snmp_array_o(2)</code></td>
|
|
|
<td>LS 32 bits</td>
|
|
|
<td><code>reset_time_tai</code></td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>snmp_array_o(3)</code></td>
|
|
|
<td>MS 8 bits</td>
|
|
|
<td><code>reset_time_tai</code></td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>snmp_array_o(4)</code></td>
|
|
|
<td></td>
|
|
|
<td><code>latency_max_out</code></td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>snmp_array_o(5)</code></td>
|
|
|
<td></td>
|
|
|
<td><code>latency_min_out</code></td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>snmp_array_o(6)</code></td>
|
|
|
<td></td>
|
|
|
<td><code>sent_frame_cnt_out</code></td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>snmp_array_o(8)</code></td>
|
|
|
<td></td>
|
|
|
<td><code>rcvd_frame_cnt_out</code></td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>snmp_array_o(10)</code></td>
|
|
|
<td></td>
|
|
|
<td><code>lost_frame_cnt_out</code></td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>snmp_array_o(12)</code></td>
|
|
|
<td></td>
|
|
|
<td><code>lost_block_cnt_out</code></td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>snmp_array_o(14)</code></td>
|
|
|
<td></td>
|
|
|
<td><code>latency_cnt_out</code></td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>snmp_array_o(16)</code></td>
|
|
|
<td></td>
|
|
|
<td><code>latency_acc_out</code></td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
|
|
|
-----
|
|
|
|
|
|
23 May 2017
|
|
|
|