您的位置 首页 IOT

FPGA根据CORDIC算法的求平方完成

FPGA基于CORDIC算法的求平方实现-CORDIC是在没有专用乘法器(最小化门数量)情况下,一组完成特定功能的算法,包括平方、超越、Log、sin/cos/artan。原理为连续的旋转一个较小的角

1. CORDIC功用及原理

CORDIC是在没有专用乘法器(最小化门数量)情况下,一组完结特定功用的算法,包含平方、逾越、Log、sin/cos/artan。原理为接连的旋转一个较小的视点,以必定精度迫临想要的视点。详细原理如下图所示:

2. Xilinx完成CORDIC IP核及功能测验

例1:无符号整数的平方操作:

X_in[18:0],待平方的无符号整数,在nd(new data)为输入有用信号,输出x_out[9:0]及对应的使能信号rdy,其对应的波形图见下图。

(1)流水推迟

最下方为输入数据,最上方为输出求平方成果。从上图能够看到,从nd到rdy,间隔了5个时钟周期。

(2)时钟频率

在FX130-1芯片上归纳时钟频率成果为2.8ns,。

例2:无符号整数的平方根操作:

在定制平方根IP核时,选取Unsigned FracTIon,将X_IN与X_OUT设置为相同bit位,19bit。以某项目为例,待平方数据需求19bit来表明。在项目中,由于待敞开的数据表明图画坐标,因而为整数,数据格局为UFIX19_0,即用19bit表明数据,且小数位为零位。而CORDIX的输入要求为UFIX19_18,即19bit数据,其间18bit表明小数位,1bit整数。

在数据格局与CORDIC核的输入不一致情况下,需求对输出成果的bit位进行正确解说。

输入x_in=180: 000 0000 0000 1011 0100

输出x_dout=6869:000 0001 1010 1101 0101

解说:由于CORDIC等待的输入x_in为18bit小数,因而CORD%&&&&&%的输出x_dout应为9bit小数,即13+0.25+0.125+0.03125+0.0078125+0.001953125 = 13.416。能够看出最小的精度能够坚持到小数点第3位。在详细完成时,能够依据精度要求进行调整。

注:事实上,关于x_in代表的19个bit,18bit小数位,1bit小数位这样的数据格局下,x_dout不需求考虑移位便可得到正确解说;而其他格局下,则需求对x_dout进行相应的移位解说,比方上例,便是对x_dout进行了9bit的右移才得到了正确的估值。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/183733.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部