关于阻塞赋值
时间:10-02
整理:3721RD
点击:
见到一个阻塞赋值的模块:
always @(posedge clk or negedge rst_n)
if(~rst_n)begin
cnt = 0 ;
done = 0 ;
end
else if(sig_a)begin
cnt =cnt +1'b1;
if(cnt!=8)
done = 0;
else begin
done = 1;
cnt = 0;
end
end
这种写法是不可综合的吧?
always @(posedge clk or negedge rst_n)
if(~rst_n)begin
cnt = 0 ;
done = 0 ;
end
else if(sig_a)begin
cnt =cnt +1'b1;
if(cnt!=8)
done = 0;
else begin
done = 1;
cnt = 0;
end
end
这种写法是不可综合的吧?
时序电路不是都推荐非阻塞吗
既然是电路,当然要写出电路的功能,你这么写是为了做什么呢?不能说不能综合,只是在综合的时候被优化掉了。
这段电路功能很明确啊,计数,计数到定值8然后给出一个done信号,逻辑上是没问题的,但是时序电路上就不好说了。
我的困惑主要在于
1、阻塞赋值写时序逻辑
2、在一个时钟沿对cnt最多进行了自加,判断,归零操作。这种电路怎么实现的,或者说能不能实现?