标题: Verilog中阻塞赋值和非阻塞赋值的正确使用 [打印本页]

作者: liuyy    时间: 2015-1-12 02:10
标题: Verilog中阻塞赋值和非阻塞赋值的正确使用
Verilog中有两种为变量赋值的方法。一种叫做连续赋值,另一种叫做过程赋值。
    过程赋值又分为阻塞赋值和非阻塞赋值。
    阻塞性赋值使用“=”为变量赋值,在赋值结束前不可以进行其他操作,在赋值结束之后继续后面的操作。这个过程就好像阻断了程序的运行。
    非阻塞赋值使用“<=”为变量赋值,在执行赋值语句时,仅仅对“<=”右边的值进行评估,但并不马上执行赋值,然后继续执行后面的操作。这个过程就好像没有阻断程序的运行。
    多条阻塞赋值语句是顺序执行的,而多条非阻塞赋值是并行进行的,这就是两者的区别。
    坚持做到以下列出的注意事项,就可以基本上避免使用阻塞赋值和非阻塞赋值不当引起的错误。
    1.在使用always块描述组合逻辑时,使用阻塞赋值;在使用always块描述时序逻辑时,使用费阻塞赋值。
    2.不要在同一个always块内同时使用阻塞赋值和非阻塞赋值。
    3.无论是使用阻塞赋值还是使用非阻塞赋值,不要再不同的always块内为同一个变量赋值。
    4.在程序中不要使用0延时。


作者: mcza30    时间: 2016-3-7 22:44
4.在程序中不要使用0延时。
--------不解其意,请教楼主。





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1