您的位置 首页 数字

FPGA规划过程中定点小数核算要注意些什么

FPGA设计过程中定点小数计算要注意些什么-两个FIX_32_30相乘得到的数据是 FIX_64_60,我们发现这个结果最大值为-1~+1,所以只需要保留两位整数位即可(其中一位为符号位)即通过截位使其变成FIX_32_30,所以 temp 为 sin*cos [61:20]。

在FPGA规划过程中难免会碰到需求进行截位,那定点小数的核算过程中咱们需求留意些什么呢?

FPGA规划过程中定点小数核算要留意些什么

首要,咱们考虑如下核算式。

sin cos 数据方式是 FIX_32_30

X Y Z 数据方式是 FIX_32_20

φ 是视点 最终需求核算 exp(jπφ),能够看出来φ具有周期性,是能够-1~+1。要求的数据方式是 FIX_32_29

FPGA规划过程中定点小数核算要留意些什么

1、首要 剖析 temp = sin*cos 成果

两个FIX_32_30相乘得到的数据是 FIX_64_60,咱们发现这个成果最大值为-1~+1,所以只需求保存两位整数位即可(其间一位为符号位)即经过截位使其变成FIX_32_30,所以 temp 为 sin*cos [61:20]。

2、接着剖析 X*temp y*temp的成果

一个FIX_32_20乘以FIX_32_30成果为FIX_64_50。

在一般情况下sin*cos成果为-1~+1之间,也就是说相乘之后X Y数只会变小,最大为其自身。所以一般情况下经过截位使得成果为FIX_32_20,即保存12位整数位,20位小数位即可。

但咱们观察到核算exp(jπφ)中,是存在周期性的φ的循环周期为-1~1,所以咱们只需求截取成 FIX_32_31就能够(做了一个近似,相似exp(jπφ) = exp(-j0.9999999πφ)),以截取的部分为[50 : 19] ,成果为FIX_32_31

3、再剖析Z*COS的成果

一个FIX_32_20乘以FIX_32_30成果为FIX_64_50,相同的将其截取成FIX_32_31即可。

4、其次三个之和的核算过程中,由于周期性,不需求扩展高位,核算成果为FIX_32_31。

5、最终FIX_32_31算术左移两位即可得到FIX_32_29。

总结:

1.定点小数核算过程中,需求留意小数点的方位。

2.不同小数点方位的数据是不能相加的。

3.能够经过数据核算自身的周期性质,进行截位能够保存更多的小数点位。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/339348.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部