【数字IC设计】Verilog计算x/255的商和余数

问题描述

已知x是16位无符号整数,求x除以255的余数和商。尽量降低实现方式的硬件开销(包括面积和时序)

思路

由于除数255是一个常数,因此,直观上给人的感觉就是应该有相应的优化方法,即相对于除数可变的实现方式,在面积、时序方面应该有所改善。
对于该问题,本文给出了如下所示的解决方式:

hi = x[15:8]
lo = x[7:0]
则有:
x = hi * 256 + lo
对上式稍做变换,有
x = 255 * hi + (hi + lo)
我们假设x除以255的商和余数分别为q和r,则
当hi + lo < 255时

q=hi
r=hi+lo

当hi+lo>=255时

q=hi+1
r=hi+lo

你可能感兴趣的:(数字IC进阶,数字IC,数字IC设计)