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