TIDUE73A April 2018 – November 2024
This section discusses in depth the FRAME_STATE generation. The FRAME_STATE is responsible for determining which of clocks are generated at any given time within the transaction.
The FRAME_STATE (FSM_1 s1, s0) transitions through 4 states:
One method to derive the corresponding equations is to use a Karnaugh map (Table 2-5, and Table 2-6). The resulting equations are combined by an OR operator and entered into the CLB tool. The equations do not need to be reduced to the simplest form.
Current Input (e1, e0) RESPONSE_RE, START_OPERATION or ENCODER_CLOCK_COMPLETE |
|||||
---|---|---|---|---|---|
0,0 | 0,1 | 1,1 (1) | 1,0 | ||
Previous
State s1, s0 |
0,0 IDLE |
0 | 1 (2) | 1 (2) | 0 |
0,1 TRANSMIT_MA |
1 (3) | 1 (3) | 0 | 0 | |
1,1 RECEIVE_SL |
1 (4) | 1 (4) | 1 (4) | 1 (4) | |
1,0 TRANSMIT_MA RECEIVE_SL |
0 | 1 (5) | 1 (5) | 0 |
Current Input (e1, e0) RESPONSE_RE, START_OPERATION or ENCODER_CLOCK_COMPLETE |
|||||
---|---|---|---|---|---|
0,0 | 0,1 | 1,1 | 1,0 | ||
Previous
State s1, s0 |
0,0 IDLE |
0 | 0 | 0 | 0 |
0,1 TRANSMIT_MA |
0 | 0 | 1 (1) | 1 (1) | |
1,1 RECEIVE_SL |
1 (2) | 1 (2) | 1 (2) | 1 (2) | |
1,0 TRANSMIT_MA RECEIVE_SL |
1 (3) | 1 (3) | 1 (3) | 1 (3) |
The OUT signal from FSM_1 corresponds to the IDLE state.
Detection of the encoder's response is another key component of the design. LUT_2, shown in Figure 2-13, is responsible for detecting the encoder's ACK. If the FRAME_STATE is WAIT_FOR_ACK (0,1) and ENCODER_RESPONSE_RE goes high, then ACK has been detected. This results in the equation: i0 & (i1 & !i2):