Channel bonding: Elasticity buffer behavior in channel bonded mode | Cypress Semiconductor
Support & Community
Channel bonding: Elasticity buffer behavior in channel bonded mode
Channel bonding is used to transport parallel data streams of more than 8 bits across a serial interface, recovering the original data on each side. In channel bonding, all bonded channels must be clocked using the same clock. Channel bonding may occur across a single device or across multiple devices. Channel bonding is a function of the receiver, which must account for different delays of the bonded channels when sent over the serial link. The alignment and rate matching functions take place in the elasticity buffer. Please see the article "Elasticity buffer insertion and deletion of framing characters" for more details of how this alignment occurs.
A bonded channel must initialize its link with multiple SYNC (K28.5) characters. When channels are received, the Elasticity Buffers of the bonded channels contain multiple SYNC characters in the memory locations preceding the first non-SYNC character. When the read pointers are updated, some of these paths may read out the same SYNC character more than once, and others may skip over some of these SYNC characters. This is how different delays across different channels are accounted for. This alignment event should only occur when the link is initialized as the relative delay of the channels should be constant over time.
Rate matching is used when the data is being clocked out of the elasticity buffer with a clock that is not identical to REFCLK. To account for the clocking mismatch, the elasticity buffer will insert or delete SYNC characters to prevent overflow or underflow conditions.
In single-device channel bonding, the clock for bonded channels at the receive end can be either REFCLK or a recovered clock from any of the bonded channels (any channel will do as all bonded channels must be clocked with a common source clock, so the recovered clocks will be identical). If multi-chip bonding is used, then the clock must be REFCLK.
When operated with a recovered clock, there is no insert/delete for rate matching because the recovered clock is used to clock data into and out of the elasticity buffer, so there is no clocking domain difference.
However, when REFCLK is used to clock data out of the device, REFCLK may not be identical to the recovered clock which clocks data into the device (they must just be within 1500ppm of each other). Hence a rate mismatch will occur and the elasticity buffer will insert and delete framing characters to compensate for this. In channel bonded mode, a SYNC character will be inserted or deleted across all bonded channels at the same time.
For more information on channel bonding, please refer to the channel bonding application note "Channel Bonding with HOTLink II Transceiver - AN014".
Keywords: HOTLink II, CYP15G0401DX, CYP15G0401DXA, CYP15G0401DXB, CYV15G0401DXB, CYP15G0201DX, CYP15G0201DXA, CYP15G0201DXB, CYV15G0201DXB, CYP15G0101DX, CYP15G0101DXA, CYP15G0101DXB, CYV15G0101DXB, channel bonding, elasticity buffer, SYNC, framing, rate matching, insert, delete, K28.5, synchronization, clock, word sync sequence