阻塞赋值和非阻塞赋值,综合出来硬件上的区别??
据我的总结如下:begin-end语句的各句话是顺序执行的;
fork-join语句各句话是并行执行的;
阻塞赋值“=”计算表达式和赋值一起进行;
非阻塞赋值“<=”先计算表达式,再在语句块中统一赋值;
但是,唉,说实话还是搞得不明不白的!!比如begin-end语句里面的阻塞赋值 和 非阻塞赋值“大概”能搞懂了,但是什么时候用fork-join的阻塞 非阻塞呢?
有没有大虾能从综合出来的硬件的角度来讲下,这些个的电路结构到底是咋样的?~~~这样应该更容易理解点~~~ 阻塞赋值“=” 综合之后相当于一根线
非阻塞赋值“<=”综合之后是一个D触发器 我的理解是阻塞和非阻塞的区别就是有没有一个专门的寄存器保存好算好的值,然后在遇到END语句时才进行相应的赋值。 阻塞和非阻塞的区别确实不好弄啊 你就从下面这个程序来看电路吧
initial begin
q= date;
m=q;
end
initial begin
q<=data;
m<=q;
end
第一个就是一个触发器,把data的值赋给了他们两个,而第二个的话就是两个触发器,m得到的是q的旧值,即他得不到data的值,图片我这没有,你可以上机看看就知道。希望对你有所帮助 学习了,又知道一点 4楼说的是啊 非阻塞就出现D触发器了
页:
[1]