|
|
# WR Streamer statistics:
|
|
|
|
|
|
The xrtx\_streamers\_stats module included in the
|
|
|
[`xwr-streamer`](/WR-Streamers) module produces performance-related data
|
|
|
The `xrtx_streamers_stats` module included in the
|
|
|
[`xwr_streamer`](/WR-Streamers) module produces performance-related data
|
|
|
that can be used for advanced diagnostics and monitoring.
|
|
|
The module generates information on streamer module function in terms
|
|
|
of:
|
... | ... | @@ -13,14 +13,32 @@ of: |
|
|
<!-- end list -->
|
|
|
|
|
|
- **Timing Performance** This includes information such as maximum and
|
|
|
minimum latency values and the cumulated latency.
|
|
|
minimum latency values and the accumulated latency.
|
|
|
|
|
|
The streamer interface outputs can then be written to wishbone registers
|
|
|
but are also available through SNMP.
|
|
|
This information can be read using wishbone interface and it is
|
|
|
available via WR PTP Core, WR PTP Core exposes this information via
|
|
|
shell command (diag) and SNMP agent.
|
|
|
|
|
|
The `xrtx_streamers_stats` module can be reseted and snapshot via any
|
|
|
type of access (from wishbone interface and via WR PTP Core via diag
|
|
|
command or SNMP set command):
|
|
|
|
|
|
- reset - resets the **Data integrity** and **Timing Performance**
|
|
|
information and timestamps the reset time. The timestamp can be
|
|
|
useful when reading the available information to know since when
|
|
|
this information has been accumulated.
|
|
|
- snaphsot - freezes all available information to provide coherent
|
|
|
data (the acquisition of the information is not stopped, it is
|
|
|
maintained in the background). Such a freeze of registers is
|
|
|
important since most of the information is made available through a
|
|
|
number of 32-bit values (32-bit WB registers or SNMP reads of 32-bit
|
|
|
values). Moreover, to calculate the average latency, the accumulated
|
|
|
latency (`latency_acc_o `), and the count of the accumulated latency
|
|
|
values (`latency_cnt_o `) must be read coherently.
|
|
|
|
|
|
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.\\
|
|
|
the case in the xwr\_transmission module.
|
|
|
|
|
|
## Module structure
|
|
|
|
... | ... | @@ -38,7 +56,7 @@ the case in the xwr\_transmission module.\\ |
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>g_cnt_width</code></td>
|
|
|
<td>Width of frame counters (50-bit default should sufficient)</td>
|
|
|
<td>Width of frame counters (50-bit default should be sufficient, min 15, max 64 bits)</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>g_acc_width</code></td>
|
... | ... | @@ -115,11 +133,11 @@ the case in the xwr\_transmission module.\\ |
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>reset_time_tai_o </code></td>
|
|
|
<td>Time of last statistics reset in TAI</td>
|
|
|
<td>Time of last statistics reset in seconds, expressed with 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>
|
|
|
<td>Time of last statistics reset in clk_ref cycles within the second (i.e the sub-second part)</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>sent_frame_cnt_o </code></td>
|
... | ... | @@ -138,24 +156,24 @@ the case in the xwr\_transmission module.\\ |
|
|
<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>
|
|
|
<td><code>latency_acc_o </code></td>
|
|
|
<td>Accumulated latency since last reset, expressed in clk_ref cycles (sum of latencies of all received frames, the number of accumulated latency values is provided by latency_cnt_o allowing to calculate average latency)</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>latency_acc_o </code></td>
|
|
|
<td>Cumulated latency (Sum of all latencies)</td>
|
|
|
<td><code>latency_cnt_o </code></td>
|
|
|
<td>Number of latency values accumulated in latency_acc_o</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>latency_acc_overflow_o</code></td>
|
|
|
<td>Signals overflow of latency counter</td>
|
|
|
<td>Signals overflow of latency accumulator (latency_acc_o )</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td><code>latency_max_o </code></td>
|
|
|
<td>Current maximum latency</td>
|
|
|
<td>Maximum latency since last reset, expressed in clk_ref cycles</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td><code>latency_min_o </code></td>
|
|
|
<td>Current minimum latency</td>
|
|
|
<td>Minimum latency since last reset, expressed in clk_ref cycles</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
... | ... | |