AUTORs哈 发表于 2013-9-4 10:35:58

verilog中向量寄存器加一操作不需要管溢出吗?求解释

刚看了段代码,截取部分如下
always @ (posedge clk or negedge rst)
   begin
   if(!rst)
      data <= 0;
   else
      data <= data + 1;
   end
其中定义reg data;
仿真时data值变为15后,再加1变为零,不需要管溢出,这点似乎是verilog独有的,在C中一个类型的变量的值是不能超过这个变量固有的范围的。

aammoo 发表于 2013-9-4 13:08:12

用软件的思维来看硬件就乱了
就像一个Q非接到D上的DFF,你可以认为它是一个一位的计数器,时钟跳一次,他就跳一次,从0计到1,又从1计到0。要有进位的话后面还要再接一个来存储进位标志,当然这样就可以看作两位的计数器了。

kebaojun305 发表于 2013-9-4 14:22:38

硬件是不会凭空产生的。

oped001 发表于 2013-9-4 16:57:47

要看你用在什么地方,有些地方确实不用管

AUTORs哈 发表于 2013-9-4 16:59:32

oped001 发表于 2013-9-4 16:57 static/image/common/back.gif
要看你用在什么地方,有些地方确实不用管

好像所有地方都不用管

fsy0215 发表于 2013-9-4 19:17:59

计数器本来就这样,如果你要考虑溢出,你自己的设计来存储

Fourier00 发表于 2013-9-4 20:09:25

高位被舍弃了
页: [1]
查看完整版本: verilog中向量寄存器加一操作不需要管溢出吗?求解释