verilog initial中for循环赋值几个变量,这几个变量时同时赋值还是顺序赋值?

2024-11-28 11:58:05
推荐回答(2个)
回答1:

理论上讲for语句应该不能在除了always块之外的地方使用,所以你这个问题根本就不成立
就算是能在initial中使用的话,也应该是同时赋值的。initial块中的所有变量,只要没有加延时都应该是同时赋值的,initial语句块中的所有数据都会在仿真开始的一瞬间同时赋值

回答2:

顺序赋值
假设你要在for语句中实现 a<=b;c<=d
你不能写成 for(i=0;i<4;i=i+1)
a<=b;
c<=d;

而必须写成 for(i=0;i<4;i=i+1)
begin
a<=b;
c<=d;
end
使用begin-end包起来的语句块属于顺序语句块,故答案是顺序赋值。
另外提醒一下你的是:initial过程块是面向仿真的,不可综合出实际的电路,always过程块则可以仿真和综合。

希望我能帮助到你。
——Medied.Lee