求助,verilog做简单除法的问题
时间:10-02
整理:3721RD
点击:
请问各位
我想用verilog做一个非常简单的除法,
如下:
22/9,或者24/9.
被除数一定是整数,除数一定是9,被除数不一定比除数大
希望得到的结果是每次除法后的整数部分,不要管余数啊,小数点之类的。
请问如上的要求,要怎么用verilog写出来?是不是verilog有除法符号?
最快的办法,乘1/9,但是注意精度。最省的办法,不断做减法。移位比较是个折衷的办法。不过这2种做法都有自己的限制。
只要确定结果不溢出就可以直接以用/号吧
小编可以随便写个程序,试一下。
被除数多大,100以内的话,全部case试试
case 1: out = 0;
case 2: out = 0;
....
case 18ut = 2
...
要可综合的代码的话,可以利用逐次递减比较法,来求商,至于被除数小于除数就更好办了,直接比较得到其商为0
这个是正解,用乘法和移位实现,精度可以调整,比如
1/9可以转化为 114/1024