EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于MATLAB在FPGA 算法上浮点定点转换的实现浮点定点转换是在 FPGA 上实现算法时最困难的地方(图 1)。 虽然 MATLAB 是一种强大的运算开发工具,但其许多优点却在浮点定点转换过程中被降低了。例如,由于定点算术中精度较低,新的数学误差被引入算法。您必须重写代码,使用能够反映实际硬件宏架构的低级模型来替换高级函数和运算符。而仿真运行时间将可能长达 50 倍之久。基于这些原因,MATLAB,这一算法开发的优势选择,却经常遭到遗弃,转而使用 C/C++ 进行定点建模。 3 X& E' Z6 l7 k
7 T8 _8 r/ H h5 Z: R; x5 H7 ?
生成定点模型( e* O9 W2 M+ I; l) O1 `. A
1 _1 [6 g. w4 n% X如果未将高级函数和运算符替换为硬件精确的宏架构,浮点 MATLAB 算法的定点表示将不会真正反映最终硬件的响应(图 2)。
& I0 V6 X% q& ]7 t/ H8 |7 L; G- Q: _+ E+ c; v+ x. ^- |
图 3 对此进行了突出显示,该图使用一组量化为 8 位有符号二进制补码的随机输入矢量,对 MATLAB 除法运算符与工具硬件 CORDIC 除法算法的定点响应进行了比较。
+ d6 a( k2 [$ R7 { U+ ^1 ]7 \" _
9 A9 v/ }5 Y' U' C. p& P: H根据数据数值,计算输出之间将存在巨大分歧。 ! _0 \$ \/ x& G; I, ^2 K) d5 w
d8 ^0 p5 P3 S* {- Q( X& l4 _
|