FPGA相关知识点3 您所在的位置:网站首页 16bit数据范围 FPGA相关知识点3

FPGA相关知识点3

2024-04-19 05:47| 来源: 网络整理| 查看: 265

N位二进制数所能表示的数据范围

有符号数(补码): -2^(N-1) ~ 2^(N-1)-1 

*正数范围-1,是因为0算在正数范围中

 如,N = 8,则表示范围是:-128 ~ 127.

无符号数:0~2^N-1

如,N = 8,则表示范围是:0~255.

有符号定点数:

如N = 8, 3Q5 :意思为共8位,3位整数位5位小数位。

如果有符号,那么整数位被占去一位。

所以整数部分其实只有2位,最大为4。

小数位有5位,那么最大值为:

4     +   ∑ 2^(-i) (i = 1…5)  -  2^(-5)     ;

整数  +   所有小数位为1时的值  -  精度(最小的小数值)

为什么最大值要减1个精度,同样是因为0占掉了一个范围。

             最小值则为  -4     -   ∑ 2^(-i) (i = 1…5)

 

N bit数和M bit数相加、相乘后需要多少bit?

相加相乘后需要的数据位宽,若无已知数据范围,按照基本规律:

相加位宽+1,相乘位宽为N+M(保证宽度足够)

若已知操作数范围,根据运算操作数所能表示数的绝对值最大值,求出运算结果极限值。

例如,两个8bit有符号数相乘,其结果需要的位宽是多少?

8bit有符号数补码所能表示的数据范围是:-128到127,具有最大绝对值的数是-128,所以极限情况下是-128*(-128) = 16384 = 2^14.

15bit有符号数所能表示范围是:-2^14到2^14-1,并不能表示2^14。综上,需要16bit位宽。

正好位宽扩大一倍,也就是8+8。

 

个人心得:在进行数字信号处理的过程中,数据的宽度是非常非常关键的一点。在FPGA中实现的系统,数据每多一位,都意味着消耗了更多的资源。那么,一个优秀的系统,应该尽可能的在保证正确的前提下,减少数据的宽度。如果我们在sysGen设计的过程中,使用了CMult乘法器,最后的输出选择全精度输出,那么输出的数据宽度就是输入的宽度加上乘数的数据宽度了,这个宽度的增长是非常惊人的,所以我们应该根据实际结果对宽度进行截取。

 

最后,感谢各位的观看,我是Rongye,下期再见。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有