TA的每日心情 | 开心 2022-1-21 15:21 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
fpga中你可以通过移位<<、>> 操作实现对浮点数的处理
8 B* ?5 F) b! ~3 V0 F+ O1 O* @比如2.3可以这样表示:
( m: o) Z* @# v1 x- j2+(1>>2)+((1>>4)/5)*4
4 M. S) G2 r7 A4 P其中1>>2表示1/4=0.25;. j/ D3 q, }# y( E
(1>>4)=1/16=0.0625;% c5 U2 t% i) _: P2 c
0.0625/5*4=0.05;5 h, j! N7 S: N [( D, [* }
那么,按你的意思四舍五入,只需将输入的数据左移一位(*2),判断生成的新数据的最低位是否为1,是1则取(原始数据+1);是0则取(原始数据)即可
/ X$ J1 t Z- C6 }" y希望对你有帮助,这个我也没有试过,你可以编程实验一下!!
# B; N2 I4 S8 b; `2. 如果你的问题是一个大项目的一部分,且有大量的浮点数运算的话,我建议你使用fpga中的sopc(NIOS内核),通过在sopc builder中搭建系统,可以使用c语言编写嵌入式算法实现,至于c语言的取整运算等对浮点数的处理,我想我也没必要再细说了吧,呵呵…… |
|