FPGA数值的表示与运算

目录

1 前言

2 整数

2.1 整数的表示方法

2.2 整数加法

2.3 整数减法

2.4 整数乘法

2.5 整数除法

3 定点数

3.1 定点数的表示方法

3.2 定点数加法

3.3 定点数减法

3.4 定点数乘法

3.5 定点数除法

4 浮点数

4.1 浮点数的表示方法

4.2 浮点数加法

4.3 浮点数减法

4.4 浮点数乘法

4.5 浮点数除法

5 总结

6 参考文献


1 前言

        FPGA设计中的数值表示均为二进制表示方法,其对数字的量化精度有限。因此,深入理解有效字长效应对数字信号的处理精度和性能的影响至关重要。且在考虑数字的表示方法时,须同时考虑数字具有足够的精度和尽可能少的消耗逻辑资源。按数值类型分类,FPGA中的数值分为整数、定点数以及浮点数,以下分别对其表示方法、运算的HDL描述进行介绍。

2 整数

2.1 整数的表示方法

        整数可分为无符号和有符号整数,有符号整数可使用原码反码补码对其表示。

2.2.1 原码

        有符号整数最高位表示符号位,当最高位为0时,表示正数;当最高位为1时,表示负数。其他位用于表示数值的大小(绝对值)。以8位有符号整数为例,表示范围为(-127~127),其中有两种结果表示0,即00000000(+0)和10000000(-0),如表2.1所示。

表2.1 无符号整数和有符号整数的原码表示
无符号整数有符号整数二进制原码
0+00000_0000
1+10000_0001
......
127+1270111_1111
128-01000_0000
129-11000_0001
......
255-1271111_1111

2.2.2 反码

        正数的反码与原码一致,负数的反码为符号位除外,其他位取反。以8位二进制为例,如表2.2所示。

表2.2 无符号整数和有符号整数的反码表示
无符号整数有符号整数二进制反码
0+00000_0000
1+10000_0001
......
125+1250111_1101
126+1260111_1110
127+1270111_1111
128-1271000_0000
129-1261000_0001
130-1251000_0010
......
254-11111_1110
255-01111_1111

2.2.3 补码

          正数的补码与原码一致,负数的补码为符号位除外,其他位取反+1。补码解决了数值0多种表示的问题以及循环进位的需要。以8位二进制为例,如表2.3所示。

表2.3 无符号整数和有符号整数的补码表示
无符号整数有符号整数二进制反码
0+00000_0000
1+10000_0001
......
125+1250111_1101
126+1260111_1110
127+1270111_1111
128-1281000_0000
129-1271000_0001
130-1261000_0010
......
254-21111_1110
255-11111_1111

2.2 整数加法

2.3 整数减法

2.4 整数乘法

2.5 整数除法

3 定点数

3.1 定点数的表示方法

3.2 定点数加法

3.3 定点数减法

3.4 定点数乘法

3.5 定点数除法

4 浮点数

4.1 浮点数的表示方法

4.2 浮点数加法

4.3 浮点数减法

4.4 浮点数乘法

4.5 浮点数除法

5 总结

6 参考文献

      何宾,张艳辉. Xilinx FPGA数字信号处理系统设计指南 ----- 从HDL、Simullink到HLS的实现[M].北京:电子工业出版社,2021:85-119.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值