The Integrated Interlaken IP core rate limiter can be used to reduce the overall Data Word transmission rate. This is achieved by transmitting Idle Control Words in between packet bursts to limit the effective data transfer rate. The purpose of transmitter rate limiting is to reduce buffering requirements by the receiving device and reduce the amount of flow-control stalling that can otherwise be required.
Rate limiting is not a substitute for flow control but something that should be used with flow control when a receiver cannot continuously accept Data Words at the full rate.
The rate limiter uses a token bucket scheme. A token represents a single byte. When the token bucket contains at least BurstMax number of tokens, up to BurstMax bytes are sent. When that has completed, the transmitter waits until there are at least BurstMax number of tokens in the bucket again before sending more data. The token count goes negative if it is necessary to send a burst of data that cannot be interrupted.
The token bucket is refilled at a specified interval with some number of tokens. This
interval is specified in terms of Local bus clock LBUS_CLK
cycles.
During each LBUS_CLK
cycle, eight tokens are drained for each Interlaken
Data Word that is forwarded. This is true even for EOP Data Words that contain less than
eight valid bytes.
A description of the signals that set the characteristics of the rate limiter follows.
All signals are synchronous with the rising-edge of LBUS_CLK
.