TIDUE74F April 2018 – March 2026
As explained in Section 2.3.5.1, CLB type 2 or later has the capability of calculating the response-data CRC as the response is being received, or on-the-fly. In this case, required signals are connected to a second tile to perform the CRC calculation. The connections between tiles are documented in Section 2.3.5.2.
To generate a CRC, a counter is configured as a Linear Feedback Shift Register (LFSR). Data received is fed to the event input of the LFSR. When data is valid, a shift is applied through the LFSR's event input. This design requires knowing when the data is valid so the shift can be properly applied. Recalling the protocol overview in Section 2.3.1, the criteria for valid data is:
The specific requirements map to CLB functionality as shown in Table 2-15.
| CRC Functionality | CLB Mapping |
|---|---|
| Include only 8-bits of data (skip start and delimiter) | COUNTER module to count the bits within a T-Format field. The match values indicate the first valid bit, and the last valid bit as shown in Figure 2-21. An FSM then determines if the shift is applied to the LFSR based on the counter match outputs. |
| Include only valid fields (skip the CRC). | COUNTER module that increments at the start of each field during the RECEIVE_DATA state. When the CRCField is reached, the match output is asserted. |
| Control the shift (mode0) of the LFSR | Use a LUT to determine if the data is valid based on the bit count, and field count. If valid, the LUT applies a shift pulse to the LFSR. |
Figure 2-22 shows an example waveform for Data ID3 CRC generation. Figure 2-23 shows the CRC tile implementation. The equations for the submodules can be viewed using the CLB Tool.