【发布时间】:2015-02-10 16:41:33
【问题描述】:
我刚开始学习 Verilog,我从不同的来源看到了这三行代码。我对这三者之间的区别感到困惑:
- c
- 赋值 c = ~a;
- c = 1'b0;
这些行似乎为 c 赋值,但有什么区别?谢谢。
【问题讨论】:
我刚开始学习 Verilog,我从不同的来源看到了这三行代码。我对这三者之间的区别感到困惑:
这些行似乎为 c 赋值,但有什么区别?谢谢。
【问题讨论】:
1) <=non-blocking 并且在时钟的每个上升沿执行。这些是并行评估的,因此不能保证顺序。一个例子就是寄存器。
2) assign =continual 赋值连接到 always 语句之外。 LHS 的值会随着 RHS 的变化而更新。
3) =blocking 赋值,always 语句内部强制执行顺序。
【讨论】:
<=) 和阻塞 (=) 必须在 initial 或 always 块内使用。