数字电子技术

时序逻辑与状态机

10 分钟

时序逻辑:输出 = 输入 + 记忆

组合逻辑只看现在,时序逻辑还看「过去攒下的状态」。标准结构像三明治:组合逻辑 + 存状态的触发器 + 组合逻辑。所有触发器共用一个时钟齐步走——这叫同步时序,是现代设计的主流。

状态机:把「事情发展到哪一步」画成图

状态机(FSM)是时序逻辑的设计语言:圆圈表示状态,箭头表示转移条件。经典例子是交通灯:红灯 30 秒 → 绿灯 25 秒 → 黄灯 5 秒 → 回到红灯。每个状态决定输出(哪盏灯亮),计时条件决定何时跳转。电梯、售货机、洗衣机,全都画得成这样的图。

两种风格:Moore 与 Mealy

Moore 型输出只看当前状态(交通灯就是);Mealy 型还看当前输入,快半拍但易出毛刺。工程上偏爱 Moore。

一个完整的例子:自动售货机

假设饮料 3 元、只收 1 元硬币,状态就是「已投 0 / 1 / 2 / 3 元」四种:每投一枚加一,到 3 元出货并清零。再加个「退币键」,就多一条从任何状态跳回 0 的箭头。没有一句代码,机器的逻辑已设计完毕,剩下只是翻译成门电路。

常见误区:状态数不是随便定的。n 个触发器最多表示 2 的 n 次方个状态,售货机的 4 个状态用 2 个触发器正好。

练一练:为「楼道声控灯」画状态机:灭 →(有声音)亮 →(30 秒无声音)灭。

小纸条

给「投币 3 元出货」的售货机数一数需要几个触发器。

登录 后可看答案