请教verilog HDL阻塞与非阻塞的理解~~
verilog HDLinput <=#5 1;
input = 1;
这样我看出区别
input <= 1跟
input = 1
我不懂有什么区别啊~~谁解释一下啊 谢谢! 可以从两个角度来看,Verilog仿真时有一个所谓的delta的概念,input<=1并不会立刻改变input的值,而是delta之后改变,但是这个delta仅对仿真器而言的,仿真波形是看不出来的,所以一般举类似下面的例子(假设a为0,b为1):
a<=b;
input<=a;
则最终结果是input=0,a=1
如果
a=b;
input=a;
最终结果是input=1,a=1
从另外一个角度来说,综合器对两种情况的综合结果是不同的,但是对于比较简单的代码,大多数时候综合结果看不出不同,代码较复杂时很容易出现Simulation结果和Synthesis结果不一致的情况
一般来说,时序电路用<=,组合电路用= 多谢LS的!
看了你的例子大概明白了!主要点还是FPGA是并行处理吧? 2楼已经表达得很清楚了,非阻塞的话,第二个值的变化要到下一个时钟上升沿 回复【楼主位】kyughanum初级玩家
-----------------------------------------------------------------------
可以读读这篇博文。
(原創) 深入探討blocking與nonblocking (SOC) (Verilog)
http://www.cnblogs.com/oomusou/archive/2010/07/30/blocking_vs_nonblocking.html
页:
[1]