文章目录
(1) 在编写时序逻辑的代码时采用非阻塞赋值的方式
计算赋值号右手边的信号时,所有的变量值均是触发沿到来前的值,更新的赋值号左手边的信号作为触发沿后的值,并且保持到下一个触发沿到来时候,等待更新。这样,就可以使得在同一个块中非阻塞赋值语句不必要求出现的顺序,都是在全部进行赋值号右手边的信号计算后同时更新赋值号左手边的信号的值。非阻塞赋值可以简单的认为是赋予下一状态的值。
(2) 使用 always 块来编写组合逻辑的代码时要用阻塞赋值的方式
使用 always 块建立组合逻辑电路模型时不要忘记 always 块中的敏感列表一定要使用电平触发的方式,然后在 always 块中使用阻塞赋值语句就可以实现组合逻辑,这样做既简单且方针又快又好,这样的风格是值得推荐的。
(3) 在同一个 always 块中不要既要用非阻塞赋值又用阻塞方式赋值
在同一个 always 块中对同一个变量既进行阻塞赋值又进行非阻塞赋值会产生综合不可预测的结果,不是可综合的 Verilog 风格。
( 4) 虽然锁存器电路建模是我们不推荐的, 但是如果使用到要采用非阻塞赋值的方式。
使用非阻塞赋值实现时序逻辑,实现锁存器是最为安全的。
(5) 一个 always 块只一个变量进行赋值
因为 always 块是并行的,执行的顺序是随机的, 综合时会报多驱动的错误,所以严禁在多个