SBASAO8 June 2025 DAC39RF20
ADVANCE INFORMATION
In subclass 1 operation, the RBD register must be programmed properly to prevent overflow of the elastic buffer
The range of valid values for RBD depends on the phase delta between the RX and TX LMFC/LEMC, as well as link latencies in the SerDes transmitter, channel, and SerDes receiver. Therefore a pre-determined RBD value that is valid for all systems cannot be provided. The LANE_ARR registers are provided to help the user measure lane arrival times and select an appropriate RBD value for the system. To makes sure deterministic latency, the RBD value can be selected during system prototyping and stored in system firmware. Calculating RBD each time the system is turned on can result in non-deterministic latency.
The arrival times are reported in units of octa-bytes (8 bytes) and are measured with respect to a reference counter that increments for each octo-byte received (per lane). The reference counter is aligned (reset) by SYSREF and operates with a modulus of 32 octa-bytes (256 bytes) regardless of the value of K for 8b/10b modes. The modulus is 32*E octa-bytes (256*E bytes) for 64b/66b modes. The depth of the elastic buffer is denoted as EBD, and depends on the length of the multiframe/EMB.
| Link Encoding | AM (Modulus for Reference Counter and LANE_ARR) [octa-bytes] |
|---|---|
| 8b/10b (JENC = 0) | 32 |
| 64b/66b (JENC = 1) | 32*E |
Since the lane arrival times are modulo-values, using arithmetic that accounts for the modulus (the latest arriving lane can actually have a smaller LANE_ARR value than the earliest arriving lane) is important. Figure 7-55 and Figure 7-56 depict the RBD calculation graphically to emphasize this. The lane arrival times are mapped onto a circle with a circumference of 64 quad-bytes which corresponds to the modulo-64 counter used to measure lane arrival times.
The earliest usable RBD value is equal to the latest LANE_ARR value plus 1 (modulo AM). The latest usable RBD value is equal to the earliest LANE_ARR value plus the buffer depth (modulo AM) (the buffer depth is denoted by EBD). Note that the latest, usable RBD value causes the earliest arriving lane to overwrite buffer data on the same clock cycle that the data is being read out (this is acceptable and does not cause overflow).
Choosing an RBD value in the middle of the usable range maximizes the skew tolerance, however the user can choose a value closer to the latest arriving lane if lower latency is desired.
Figure 7-55 RBD Example (lane arrivals do
not straddle zero)
Figure 7-56 RBD Example (lane arrivals
straddle zero)
Figure 7-57 RBD Example (valid RBD range
straddle zero)