新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 利用矢量旋转求解平方根的算法及其FPGA实现*

利用矢量旋转求解平方根的算法及其FPGA实现*

——
作者:钟花 孙松林 景晓军 北京邮电大学信息与通信工程学院 时间:2009-08-07来源:电子产品世界收藏

  实验结果

本文引用地址:http://www.eepw.com.cn/article/96987.htm

  在Quartus Ⅱ6.0环境下使用语言完成了上述算法,并在Stratix系列EP2S60开发板上实现。时钟频率为100MHz,综合和布局布线后,需要不到1%的ALUT和56个寄存器,因此实现该算法只需要占用很少的资源。仿真波形如图3所示。

  波形图中的被开方数范围在[0,1]之间,由于以16位二进制数表示,需要对其进行归一化。如图中输入数值65000,归一化后为0.9918,实验中输出值65345,归一化后为0.9971,通过计算,0.9918的理论值约为0.9959,实验值和理论值之间的误差约为0.1195%。

  由于迭代计算中没有复杂的乘法运算,每次迭代都只需要一次加法运算和一次移位操作。因此本文提出的算法只需要一个时钟周期就可以计算出结果,在理论上没有时延。图3所示的仿真图中有时延是因为为了仿真时间考虑,将循环过程以牺牲时间来实现的,因此该算法具有处理速度快的特点。

  试验分析

  在输入数据为16位宽,的条件下进行仿真,得到实验数据。

  图4是实验值与理论值的比较,由此可见,笔者提出的算法可以很好地逼近理论值,计算误差非常小。

  在相同器件和相同精度的条件下,对不同的算法的性能进行比较。在输入均为16位的被开方数时,对本算法、参考文献[8]采用的牛顿迭代算法和文献[9]采用的不恢复余数的开平方算法进行比较,结果见表1。

矢量控制相关文章:矢量控制原理


评论


相关推荐

技术专区

关闭