4.FPGA中数的表示

数字运算主要是加减乘除,FPGA只能对二进制数进行计算,并且由于FPGA基于实际电路,所以FPGA不擅长做乘法、除法和减法。

定点数的定义

几乎所有的计算机,以及包括FPGA在内的数字信号处理器件,数字和信号变量都是通过二进制数表示的,数字使用符号0和1来表示,称为比特(Binary Digit,bit)。其中,二进制数的小数点将数字的整数部分和小数部分分开。对于任意一个二进制数来讲,均可由B个整数位和b个小数位组成,即:
a B − 1 a B − 2 … a 1 a 0 Δ a − 1 a − 2 … a − b a_{B-1} a_{B-2} \ldots a_1 a_0 \Delta a_{-1} a_{-2} \ldots a_{-b} aB1aB2a1a0Δa1a2ab
其对应的十进制数大小(假设该二进制数为正数)D由
D = ∑ i = − b B − 1 a i 2 i D=\sum_{i=-b}^{B-1} a_i 2^i D=i=bB1ai2i
给出。每一个Ai 的值取1或0。最左端的位AB-1 称为最高位(Most Significant Bit , MSB ) , 最 右 端 的 位 A-b 称 为 最 低 位 ( Least Significant Bit,LSB)。
表示一个数的一组数字称为字,而一个字包含的位数称为字长。字长的典型值是2的幂次方,如8、16、32等。字的大小通常用字节(Byte)来表示,1个字节有8个比特

定点数的表示

定点数表示是指小数点在数中的位置是固定不变的二进制数。如果用N bit表示正小数η,则小数η的范围为:
0 ⩽ η ⩽ ( 2 N − 1 ) / 2 N 0 \leqslant \eta \leqslant\left(2^N-1\right) / 2^N 0η(2N1)/2N
在数字处理中,定点数通常把数限制在-1~1之间,把小数点规定在符号位和数据位之间,而把整数位作为符号位,分别用0、1来表示正、负,数的本身只有小数部分,即尾数。这是由于经过定点数的乘法后,所得结果的小数点位置是不确定的,除非两个乘数都是小数或整数。对于加法运算来说,小数点的位置是固定的。这样,数x的定点数可表示为:
X = a B − 1 Δ a B − 2 … a 1 a 0 X=a_{B-1} \Delta a_{B-2} \ldots a_1 a_0 X=aB1ΔaB2a1a0
式中,AB-1为符号位,B为数据的位宽,表示寄存器的长度为B位。定点数在整个运算过程中,所有运算结果的绝对值不超过1,否则会出现溢出。但在实际问题中,运算的中间变量或结果有可能超过1,为使运算正确,通常对运算过程中的各数乘一个比例因子,以避免溢出现象的发生。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值