VHDL流程风格

Mar*_*ark 3 vhdl

我一直在阅读这里的各种问题,因为我正在学习VHDL并且总是希望改进.但是,这条评论让我很好奇:

简单的状态机问题

有人告诉我,在我在大学的简短VHDL课程中,单独的过程是最好的形式,以分离同步方面.

显然这是个人偏好,但我希望一些更有经验的用户可以根据自己的喜好对利弊进行一些说明?比另一个更常见吗?

谢谢!

Mar*_*son 5

好吧,因为是我说你已经联系到了......我最好评论:)

糟糕的事情(恕我直言)如果你把东西放在不同的过程中:

  • 你必须保持敏感列表的宗教信息是最新的
  • 您必须为每个输出提供默认值,除非您需要异步锁存器(通常不需要)
  • 逻辑被拆分,因此如果向状态机添加状态,则必须在两个进程中放置新状态
  • 如果您想要使用已注册和未注册的信号,您最终会复制它.使用单个进程,您可以使用变量来实现此目的.
  • 有些人认为阅读起来比较困难.

好东西:

  • 您可以将状态的"输出"取消注册.这可以有利于减少延迟,但是对于几乎所有目的,您希望在每个块的输出上进行寄存器以使会议时间更容易.
  • 有些人认为它更容易阅读

我的观点是,你所听到的("保持独立")的法令源于合成器不善于区分逻辑与失败的时代,所以把时钟脉冲放在时钟过程中是有意义的.

此外,这种方法与那个时代的人们在拥有HDL之前绘制原理图的方式相匹配.

如今,合成器可以处理时钟进程中任意复杂的逻辑.而且我可以用有意义的方式编写它,而不必明确每一个逻辑位置.只有当时机非常紧张时,我才能认真考虑将触发器和逻辑放在恰当的位置.

我的"规则"是:

  • 保持可读性
  • 如果它符合要求(例如电源,时间和功能正常),那么你就完成了.
  • 如果没有,那么只有玩不可思议的技巧

很像编写软件:)