请问always语句里是顺序执行的吗
时间:10-02
整理:3721RD
点击:
请问一个always语句里是顺序执行的吗
"always *" is the combination circuit
"always (posedge clk or negedge RESET)" is the sequence circuit
You can refer to the IEEE standard 1364
这个的看你always里面是怎么写的
用begin end可以认为是顺序的。
但是用fork join是并行的。
还有=和<=也是不一样的哦!
有多种可能
可以贴个具体代码出来大家分析一下
在 begin 和 end 之間的 statement,若是
blocking assignment (=) 是顺序执行的
nonblocking assignment (<=) 是 concurrent 执行的
是顺序的。
到底是什么的呀,beginend 之间用<=是并行还是顺序执行
beginend 之间的代码是串行执行的,begin end间的<=也是串行执行的,比如:
begin
a <= b;
a <= c;
d <= a;
end
最后a<=c起作用,a<=b相当于没起作用,是串行。a最后的值是c,而不是x(如果是并行,因为多驱动,值会是x)。
只不过赋给d的是a的老值,而不是c,这(非阻塞赋值)是用串行模拟并行的一种方法。但这并不是说begin end间的<=是并行,begin end间的代码是串行的,fork join间的是并行。多个always和initial间是并行。
你确定?能不能把仿真的结果发出来?