Verilog - 在另一个变量达到某个值后,变量增加1

时间:2018-06-15 20:40:10

标签: verilog hdl

下面的代码旨在使用verilog在nexys 4 ddr板上制作一个4位全加器。当tens整数为8或9时,ones整数似乎增加1。

dec_val = C_o*16 + S[3]*8 + S[2]*4 + S[1]*2 + S[0]*1;
ones = dec_val%10;
tens = (dec_val - ones) / 10;

但是,当我将上面的代码更改为:

dec_val = C_o*16 + S[3]*8 + S[2]*4 + S[1]*2 + S[0]*1;
ones = dec_val%10;
tens = dec_val / 10;

问题似乎已经消失,代码工作得很好,为什么会发生这种情况?我知道第一种方法不如第二种方法优化,但两种方法都不应该给出相同的值,尤其是ones的任何值都能正常工作,但如果值达到8或9 {{1将增加1。

此处是完整代码的链接:https://pastebin.com/05pY0Q3i

我突出显示了带注释的refrenced代码块。

0 个答案:

没有答案