本文主要是介绍【数字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设计】Verilog计算x/255的商和余数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!