我一直在这里阅读各种问题,因为我正在学习 VHDL 并一直在寻求改进。然而,这条评论让我很好奇:
在大学的简短 VHDL 课程中,有人告诉我,分离进程是最好的形式,以分离同步方面。
显然这是个人喜好,但我希望一些更有经验的用户能够根据自己的喜好阐明利弊?一种比另一种更常见吗?
谢谢!
好吧,因为是我说了你所链接的内容......我最好发表评论:)
如果您将事情放在单独的进程中,那么不好的事情(恕我直言):
好东西:
我的观点是,像你听到的法令(“保持独立”)源于合成器不太擅长区分逻辑和触发器的日子,因此将触发器放在时钟进程中是有意义的。
此外,这种方法与那个时代的人们在拥有 HDL 之前绘制示意图的方式相匹配。
如今,合成器可以处理时钟过程中任意复杂的逻辑。而且我可以用有意义的方式编写它,而不必明确说明每一点逻辑的位置。只有当时间真的很紧时,我才必须认真考虑将翻牌和逻辑放在正确的位置。
我的“规则”是:
很像编写软件:)
我在保持它单独的阵营。在我的代码中,我有一个执行重置和计时行为的同步进程。其他一切都是异步的。注册过程如下所示:
Wait for Clock;
If Reset then
Value <= '0';
else
Value <= nextValue;
endif
我喜欢的事:
负面:
从马丁的回答中我不太明白的事情:
- 逻辑是分开的,所以如果你向状态机添加一个状态,你必须把新状态放在两个进程中
我更改状态变量的类型(即添加一个枚举)并继续。与统一风格完全相同。
- 如果您希望一个信号同时用于注册和未注册,您最终会复制它。使用单个进程,您可以使用变量来实现此目的。
在拆分样式中,您已经拥有注册和未注册的版本。它们是寄存器进程的输入和输出。完全没有额外的工作。