阻塞赋值 就像这样
always@(×)
begin
b= a;
c = b;
end
always@(posedge clk or negedge rst_n)
begin
if(rst_n ==1'b0)
begin
b <= 1'b0;
c <= 1'b0;
end
else
begin
b<= a;
c<= b;
end
end
前一种阻塞赋值 ,在同一时刻,会出现 c = b =a 是组合逻辑
而 第二种情况 ,就是 a 赋值b 和 b赋值给c 有一个一个时钟周期的延迟关系,而且是时序逻辑
关于这个lz可以把上面代码仿真一下就看得比较清楚
对于阻塞和非阻塞记住 一句话就可以了,对于组合逻辑用阻塞赋值,时序逻辑用非阻塞赋值
在工程中就完全够用了
end
|