我被告知使用'when'语句来制作多路复用器但不使用'if'语句,因为它会导致时序错误......我不明白这一点......所以'if'和'when之间有什么区别'?他们在硬件中映射到同一个东西吗?
好的,我们首先讨论一下 if 和when 语句之间的区别:
而且你知道多路复用器是一个不需要进程块的组件,因为它的行为不会随着输入的改变而改变,所以它将在进程之外,所以你必须使用when语句来编写它,因为它是并发语句。如果用if语句来写,可能会出现计时错误。此外,所有参考资料以及 Xilinx 帮助(如果您使用的是 Xilinx)都使用 when 语句而不是 if 语句编写多路复用器块
参考:《数字设计原理与实践》,John F. Wakerly,第 3 版