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的右移才得到了正确的估值。