kyughanum 发表于 2010-9-5 13:39:07

请教verilog HDL阻塞与非阻塞的理解~~

verilog HDL

input <=#5 1;
input = 1;
这样我看出区别
input <= 1跟
input = 1
我不懂有什么区别啊~~谁解释一下啊

kyughanum 发表于 2010-9-5 13:39:27

谢谢!

nobrains 发表于 2010-9-5 13:49:19

可以从两个角度来看,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结果不一致的情况

一般来说,时序电路用<=,组合电路用=

kyughanum 发表于 2010-9-5 13:57:05

多谢LS的!
看了你的例子大概明白了!主要点还是FPGA是并行处理吧?

barryyan2007 发表于 2010-9-5 14:13:18

2楼已经表达得很清楚了,非阻塞的话,第二个值的变化要到下一个时钟上升沿

tear086 发表于 2010-9-5 19:10:03

回复【楼主位】kyughanum初级玩家
-----------------------------------------------------------------------
可以读读这篇博文。
(原創) 深入探討blocking與nonblocking (SOC) (Verilog)
http://www.cnblogs.com/oomusou/archive/2010/07/30/blocking_vs_nonblocking.html
页: [1]
查看完整版本: 请教verilog HDL阻塞与非阻塞的理解~~