微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 请问always语句里是顺序执行的吗

请问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间是并行。

你确定?能不能把仿真的结果发出来?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top