FPGA设计过程中定点小数计算要注意些什么

在fpga设计过程中难免会碰到需要进行截位,那定点小数的计算过程中我们需要注意些什么呢?
首先,我们考虑如下计算式。
sin cos 数据形式是 fix_32_30
x y z 数据形式是 fix_32_20
φ 是角度 最后需要计算 exp(jπφ),可以看出来φ具有周期性,是可以-1~+1。要求的数据形式是 fix_32_29
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.可以通过数据计算本身的周期性质,进行截位可以保留更多的小数点位。

人脸识别门禁闸机的优势有哪些
低功耗计算机视觉的四类推理方法的介绍和优缺点
有关于MLCC(多层陶瓷电容)替代Film Cap (薄膜电容)的那些事
揭秘新老款MacBook Pro的USB Type-C有何不同
玩转行业数字化转型|全新华为云Astro低代码平台带你起飞
FPGA设计过程中定点小数计算要注意些什么
人工智能引爆高交会!炬芯芯片被众品牌青睐
Si/NMC622锂离子电池为容量衰减的全电池解释提供了新的视角
一个在GitHub上一个开源的鉴黄图像数据集
小黄人联名电竞外设强悍来袭,Q萌小可爱惹人喜欢
我国“5G+工业互联网”叠加倍增效应正在显现
全局设备感知系统的结构组成及方案实现
查看linux系统磁盘io情况的办法是什么
TPS55289:为个人电子产品有线/无线充电提供最优解决方案
聚焦信创人才培养 积蓄产业发展动力|2022年度"强国杯"智能网联技术应用赛项颁奖典礼暨信创人才发展论
Powerint LNK406EG 14W PWM-模拟调光LED驱动方案
无线通信企业七一二发布2022第一季度报告
Molex解决电动汽车充电的关键设计难题
洁净空调数据采集远程监控物联网系统
ROHM亮相“2016慕尼黑上海电子展”