FPGA的学习:阻塞赋值与非阻塞赋值

Posted 石小舟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FPGA的学习:阻塞赋值与非阻塞赋值相关的知识,希望对你有一定的参考价值。

阻塞赋值:阻塞赋值的赋值号用=表示,对应的电路结构往往与触发沿没有关系,只与输入电平的变化有关系。它的操作可以认为是只有一个步骤的操作,即计算赋值号右边的语句并更新赋值号左边的语句,此时不允许有来自任何其他Verilog语句的干扰,直到现行的赋值完成,才允许下一条的赋值语句的执行。

串行块(begin-end)中,各条阻塞赋值语句将以它们在顺序块中的排列次序依次执行。

例如:

a=1,b=2, c=3;

begin

     a=b+1;

     b=a+2;

     c=a-1;

end

其中a=3,b=5,c=2。

非阻塞赋值:非阻塞赋值的赋值号用“<=”表示,对应的电路结构往往与触发沿有关系,只有在触发沿的时刻才能进行非阻塞赋值,在这期间,允许其他Verilog语句同时进行操作。只能用于“initial”和“always”中,不能使用在“assign”中。

例如:

a=1,b=2, c=3;

begin

     a<=b+1;

     b<=a+2;

     c<=a-1;

end

其中a=3,b=3,c=0。

 

以上是关于FPGA的学习:阻塞赋值与非阻塞赋值的主要内容,如果未能解决你的问题,请参考以下文章

FPGA的阻塞赋值与非阻塞赋值

07-阻塞赋值与非阻塞赋值原理分析——小梅哥FPGA设计思想与验证方法视频教程配套文档

阻塞赋值与非阻塞赋值(转载)

阻塞赋值和非阻塞赋值有何区别

真正理解阻塞逻辑赋值与非阻塞逻辑赋值

用一个例子来学习阻塞赋值和非阻塞赋值