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小数,因此cordic的输出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的右移才得到了正确的估值。
AMD携手Redmi以RedmiBook14锐龙版带来极致性价比
高精度温度传感器
华为Mate X全面评测 折叠设计缔造未来
5G无线网络对电子竞技市场发展的影响
揭秘高效电源如何选择合适的MOS管
FPGA基于CORDIC算法的求平方实现
避免人工智能项目失败的三大措施
八佰智能锁业WATCHDOG D1816F密码门锁简介
Oculus Medium2.0更新,作品可直接输出至Oculus Home
7月业内标杆企业将共赴苏州之约,碰撞“芯”火花
详细介绍塑料粘接UV胶的特点及使用注意事项
华为宣布已在全球获50多个5G商用合同,发货20多万5G基站
SF6负荷开关的控制电路图
三星打破了FireFox自2018年未被攻破的记录
星闪技术芯片怎么样 如何支持星闪技术
赛灵思正式发货全球首款异构3D FPGA
2011年电源管理厂商榜:德州仪器位居头号
浪潮16控存储产品性能创造纪录
相机和激光雷达之间的时间戳同步解析
人工智能空战是怎么一回事