用verilog如何编写一个既快速又省资源的整型开方函数呢?
时间:10-02
整理:3721RD
点击:
现在遇到一个问题,要用verilog实现sqrt函数,要求可仿真,可综合;调用乘法器逐次逼近这样速度很慢,耗费资源也很大,有人提供建议说用查找表的方法,将平方或开方的数事先写到ROM里,但是这样的话如何进行仿真呢?仿真的时候哪里有ROM呀?
本人参照下面文档,编写过整数开2次方和3次方的模块,思路和除法器类似,只需要加法器和比较器且运算周期固定,便于流水线的实现。另外感谢文档的作者。
http://www.docin.com/p-414936103.html
看你的要求了,快速快到什么程度,需要合成到什么样的频率,如果要求不是特别高,可以问下度娘手算开方的方法,比较适合硬件实现,也比较容易做pipeline
感觉还是使用查表的办法来的快
一起学习!1
如果是24bit甚至32bit的数呢
贼简单 designware里面有sqrt
使用CORDIC来实现!
非常感谢
非常棒哈哈哈哈
建议参考《高速硬件开平方电路的ASIC设计》
用IP核啊
