Verilog不能这样用/实现除法,这样除出来的只有整数部分。可以下载个divide.v。
如果精度要求不高的话,可以将被除数先乘以一个相对大的数譬如1024再除。除完对商适当移位即可(2^10, 移10位)。
串行输入数据,还要除以256,那么应该是存到一个多少位的寄存器吧,比如:
串行输入10位,存储寄存器为 [9:0] reg_in,它再除以256,(1_0000_0000),余数不就是剩下的低八位[7:0]位吗?
除法实现,不是可以先循环减法,然后比较,直到余数小于除数,减法的次数就是除法的商,最后的余数就是除法的余数。
仅供参考
加法、减法和乘法运算符是可以综合成逻辑电路的,对于除法运算,只有在除数为2的n次幕时才有可能进行综合,此时除法操作对应的是将被除数向右进行n次移位。