状态机设计与综合:从理论到实践
1. 基于状态图的状态机设计
在状态机设计中,以T - bird尾灯状态机为例,我们可以根据状态图来合成电路。不过,在进行电路合成之前,若要改变机器的行为,此时是最佳时机。原状态图中,一旦左转弯或右转弯循环开始,即使危险警示(HAZ)信号被激活,循环仍会完成。但从安全角度考虑,应让机器尽快进入危险模式,改进后的状态图如图7 - 64所示。
由于该状态图有八个状态,至少需要三个触发器来对状态进行编码。这里选择表7 - 16中的状态分配,原因如下:
1. 初始(空闲)状态为000,这与大多数触发器和寄存器容易初始化为0状态相兼容。
2. 两个状态变量Q1和Q0在左转弯循环(IDLE→L1→L2→L3→IDLE)中采用格雷码序列进行“计数”,这样可以减少每次状态转换时状态变量的变化数量,从而简化激励逻辑。
3. 由于状态图具有对称性,在右转弯循环中,Q1和Q0采用相同的序列进行“计数”,而Q2用于区分左转弯和右转弯。
4. 剩余的状态变量组合用于LR3状态。
接下来需要编写一种转换表,由于状态图中的转换是由表达式指定的,而非对下一状态的详尽列表,所以采用一种新的格式——转换列表。表7 - 17是图7 - 64状态图和表7 - 16状态分配对应的转换列表,每一行包含状态图中一条弧的当前状态、下一状态和转换表达式,同时显示了当前状态和下一状态的命名版本和编码版本,命名状态用于参考,编码状态用于推导转换方程。
| 状态 | Q2 | Q1 | Q0 |
|---|
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



