ZHCU480A April 2018 – November 2024
本节深入讨论了 FRAME_STATE 生成。FRAME_STATE 负责确定在事务中的任意给定时间生成哪些时钟。
FRAME_STATE(FSM_1 s1、s0)在 4 种状态之间转换:
一种推导相应公式的方法是使用卡诺图(表 2-5 和 表 2-6)。生成的公式由 OR 运算符连接,并输入到 CLB 工具中。这些公式不需要简化为最简单的形式。
| 当前输入 (e1、e0) RESPONSE_RE、START_OPERATION 或 ENCODER_CLOCK_COMPLETE |
|||||
|---|---|---|---|---|---|
| 0.0 | 0.1 | 1.1 (1) | 1.0 | ||
| 上一状态 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 | |
| 当前输入 (e1、e0) RESPONSE_RE、START_OPERATION 或 ENCODER_CLOCK_COMPLETE |
|||||
|---|---|---|---|---|---|
| 0.0 | 0.1 | 1.1 | 1.0 | ||
| 上一状态 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) | |
来自 FSM_1 的 OUT 信号对应于空闲状态。
检测编码器的响应是该设计的另一个关键组成部分。图 2-13 中所示的 LUT_2 负责检测编码器的 ACK。如果 FRAME_STATE 为 WAIT_FOR_ACK (0,1) 并且 ENCODER_RESPONSE_RE 变为高电平,则表示检测到 ACK。这样会得到公式:i0 & (i1 & !i2):