微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 基于FPGA的数字计算

基于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 ,计算结果再缩小就可以,反向移位就可以了

恩恩,感谢大家的指教,上述方式我自己尝试一下!

浮点转定点

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top