afei6969 发表于 2021-4-27 18:01:30

Verilog HDL 的状态机

状态机不仅仅是一种时序电路设计工具,它更是一种思想方法。状态机的本质就是对具
有逻辑顺序或时序规律事件的一种描述方法。这个论断的最重要的两个词就是“逻辑顺序”
和“时序规律”,这两点就是状态机所要描述的核心和强项,换言之,所有具有逻辑顺序和
时序规律的事情都适合用状态机描述。
根据 FSM 描述使用的 always 模块数和功能可以将 FSM 的描述分为 3 中写法:
· 不推荐使用一段式描述方法。因为一段式描述方法将状态转移判断的组合逻
辑和状态寄存器转移的时序逻辑混写在同一个 always 模块中,不符合将时序
和组合逻辑分开描述的 Coding Style(代码风格),而且在描述当前状态时要考
虑下个状态的输出,整个代码不清晰,不利于维护修改,并且不利于附加约
束,不利于综合器和布局布线器对设计的优化。
· 推荐使用两段式状态机描述方法。两段式描述方法用 2 个 always 模块,其中
一个 always 模块采用同步时序描述状态转移;另一个模块采用组合逻辑判断
状态转移条件,描述状态转移规律。这种方法使 FSM 描述清晰简介,易于维
护,易于附加时序约束,使综合器和布局布线器更好的优化设计。
· 强烈推荐使用三段式描述方法。与一段式描述方法相比较,三段式 FSM 描述
方法对 FSM 寄存器输出的描述只需判断下一状态,然后直接将下一状态的输
出用寄存器输出即可,根本不用考虑状态转移条件(米勒状态机)。与两段式
描述相比,三段式虽然代码结构复杂了一些,但是换来的优势是使 FSM 做到
了同步寄存器输出,消除了组合逻辑输出的不稳定与毛刺的隐患,而且更利于
时序路径分组,一般来说在 FPGA/CPLD 等可编程逻辑器件上的综合与布局布
线效果更佳。

zhangyukun 发表于 2021-4-28 09:47:23

Verilog HDL 的状态机

zxopenluyutong 发表于 2021-4-28 11:18:27

http://www.fpgaw.com/thread-135608-1-1.html
页: [1]
查看完整版本: Verilog HDL 的状态机