确定何时在 verilog 中使用 FSM

Identifying when to use FSM in verilog

我了解 FSM,它们是如何在 verilog 和不同类型(Mealy vs Moore)中构建和实现的,但我在确定何时实际使用 FSM 时遇到问题解决verilog问题??有什么指导方针吗?

谢谢

复杂的时序设计非常适合 FSM。任何可以使用数据路径和控制器建模的东西也适用于 FSM。这意味着几乎所有算法的硬件实现都可以使用 FSM 完成。

通常可以使用 FSM 完成的示例包括:

  • 处理器和 DSP
  • 自动机(经典示例包括计算自动售货机的正确找零,或电梯的行为)
  • 协议控制器(例如 SPI、I2C、PS/2、串行等)
  • 视频控制器(在这种情况下,FSM 状态是两个计数器的当前值:水平计数器和垂直计数器)
  • 实际上,任何时序硬件设计都可以用 FSM 来表示。即使是一个简单的计数器也是一种 FSM