用Verilog写了一个测试文件,在task用到非阻塞赋值,结果结果不对,但是改为阻塞赋值就对了,请教各位大牛,这是神马问题,大概就是下面的问题啊
task
begin
省略无关代码
for(i=0;i<1024;i=i+1)
begin
signal<=a;
end
改为
for(i=0;i<1024;i=i+1)
begin
signal=a;
end
endtask
其他信息都不变,改为阻塞赋值仿真结果就对了,
这是怎么回事啊?
task
begin
省略无关代码
for(i=0;i<1024;i=i+1)
begin
signal<=a;
@(posedge clk);
end
改为
for(i=0;i<1024;i=i+1)
begin
signal=a; @(posedge clk);
end
endtask
如果改为在每个循环加上时钟的话,有区别吗?我仿真的时候,带着时钟呢,但是用非阻塞赋值,结果不对