如下面的代码:
always@ ( posedge clk or posedge rst) begin
if (~rst)
dff1 <= 0;
else begin
dff1 <= a+b;
dff2 <= dff1;
end
end
在这段代码中,由于dff2没有复位,所以会综合出带E(保持)端的DFF,这样的DFF工具会报错:时钟或者异步复位信号连接到了数据输入端。(smic 130 工艺)
有人遇到过吗?这是什么原因呢?应该如何修改呢?谢谢大牛指点。
可不可以把所有的DFF都复位,但是这样在DFF很多且确实不需要复位的时候有点浪费。或者将不需要复位的DFF单独写,使之与rst信号不产生关系,但是有的参考书确实写过本例中的代码类型,难道是他们没有做scan所以没有遇到这样的各位问题?