本文详细说明了verilog实现除法器的运算过程,可以流水线地处理任意输入位宽的除法运算。
其详细运算过程如下:
(1)将被除数和除数用0扩位,被除数左扩位,除数右扩位;
(2)将被除数高位数据与除数作比较,如果前者小于后者,则将被除数左移一位,末位补0,代表该位商取0;反之,则用此时被除数减去除数,结果再加1,然后再将被除数左移一位,代表该位商取1;
(3)重复(2)的步骤,直至被除数第一位数也参与了比较计算,最后一次得到的被除数不再移位,此时被除数前几位(和除数位宽一致)即为余数,后几位(和被除数位宽一致)即为商数。
已附上代码源码,密码私聊。