verilog 求余计算,综合时出错

2019-07-16 02:25发布

用四个数码管显示一个X千X百X十X的一个数字,
千位码是用这个数字除以1000,剩下的位原理类似,用除或者取余的语法来达成。
问题出现:编译时发生错误,除数只能用2的整次幂。divisor must be a positive constant power of 2
如:     num1    <= counter1%10;
            num2    <= counter1/10%10;
            num3    <= counter1/100%10;
            num4    <= counter1/1000;



但是我在看网上的有些网友的代码时,他们的程序里是可以直接这样实现的。这是不是跟芯片有关?
如果我想实现以上的功能,有什么其他的方法吗?谢谢指教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
jiuri1989
2019-07-16 12:22
取余只可以用做不可综合用,可以试试这样
假设一个2进制数为 (d7d6d5d4d3d2d1d0)2
然后 除以10 对应的余数 为 d0 + 2 d1 + 4d2 + 8d3 +6d4 + 2d5 + 4d6 + 8d7
假设这个数等于  d4d3d2d1d0 = d0 + 2 d1 + 4d2 + 8d3 +6d4 + 2d5 + 4d6 + 8d7
然后再次迭代,应该就可以求出模10,其他的应该可以用同样的方法得到

一周热门 更多>