在verilog中计数器不用考虑计满复位吗

来源:百度知道 编辑:UC知道 时间:2024/06/30 21:49:28
我在书上看到这一个程序
always @( posedge CP)
begin
case(cont)
2'b00:begin {SG1,SG2,SG3,SG4}=4'b1000;
Seg_in<=BCD1;
cont<=cont+1;
end
2'b01:begin {SG1,SG2,SG3,SG4}=4'b0100;
Seg_in<=BCD1;
cont<=cont+1;
end
2'b10:begin {SG1,SG2,SG3,SG4}=4'b0010;
Seg_in<=BCD1;
cont<=cont+1;
end
2'b11:begin {SG1,SG2,SG3,SG4}=4'b0001;
Seg_in<=BCD1;
cont<=cont+1;
end
endcase
end
我不明白了 2位的计数器不考虑满了溢出的情况吗?还有如果考虑的话是应该怎么写 是if(cont==2'11) cont<=2b'0;吗?

实际上应该是2'b11 + 2'b01 = 3'b100 但是你的cont声明为2位的,所以系统自动把结果的[1:0]即低两位赋值给cont,所以不用考虑溢出,你考虑也没问题
通常只在做加法器时要增加进位位来解决溢出问题