基于FPGA的数字计算
时间:10-02
整理:3721RD
点击:
各位高手,用xilinx FPGA 如何实现直角三角形计算:已知两条直角边a=1.5mm, b= 2.5mm, 求斜边。不明白小数怎么在FPGA表示,怎么进行平方、平方根等计算?请各位高手指教,小弟在此谢过了!
FPGA在数学运算方面的功能还是没那么强大的,尤其是浮点数方面;
如果进行精确计算还是挺复杂的。
恩恩,多谢!那在一定误差内,请问有哪些方法或近似可以完成计算?
可以先扩大,比如:a1=a*1000,b1=b*1000,再求c1=(a1^2+b1^2)^0.5;平方运算?FPGA支持乘法;
开方运算?用IP Core或者泰勒展开近似计算。
c1计算出来了,c也就是得到了。
比如c1=1700,那么c就是1.7.
可以先放大,最好是2的N次方,可以直接移位实现,平方和开方调用IP core ,计算结果再缩小就可以,反向移位就可以了.
开方用CORDIC IP核,如果用HLS工具,可以直接综合类似C的浮点运算,但是代价很大
最好是2的N次方,可以直接移位实现,平方和开方调用IP core ,计算结果再缩小就可以,反向移位就可以了
恩恩,感谢大家的指教,上述方式我自己尝试一下!
浮点转定点
