FPGA设计基础FPGA设计中的基本问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
优 点 可表示正负数,与十进 制计数方式很相似 常用于A/D和D/A变换 器,易于执行算术运算
缺点 难以执行算术运算
二进制反码
-2N-1-1~ 2N-1-1
易于进行逻辑“非”运 算
具有很大的动态范围
难以执行算术运算
浮点数
---
执行算术运算时需要 大量的硬件资源
块浮点数
---
具有很大的动态范围, 在给定时间内所有数 所需的硬件资源最少 都具有相同的指数
00011101 +29 +00100110 = +38 01000011 67
11100011 -29 +00011101 = +29 100000000 0
舍去
11100011 -29 +11111111 = - 1 111100010 -30
舍去来自百度文库
图6.2 二进制补码的加减运算
6.1.3 无符号小数
表6.1 二进制计数方式(续)
例:3位二进制数在不同计数方式下所代表的十进制数值。
二进制 数 000 无符号 整数 0 二进制 补码 0 格雷码 0 带符号 整数 0 偏移二进 制补码 -4 二进制反 码 0
001
010 011 100 101
1
2 3 4 5
1
2 3 -4 -3
1
3 2 7 6
1
特点:
代码序号 权值
将一个数分为整数和 小数部分,记为“N.M”。
小数点左侧第一位二 进制代码是整数部分的 最低有效位,小数点右 侧第一位二进制代码是 分数部分的最高有效位。 加减运算时,小数点 位置对齐,位数不够时 补“0”。
小数 点左 侧数 值
整数 N-1(MSB) 部分 …
2 1 0(LSB) 小数点位置
无法表示负 数
需要一个额 外比特来作 为符号位 无法表示负 数
无符号小数
0~ 2N-2M
带符号小数的 二进制补码 格雷码
-2N-1~ 2N-1-2-M (以2-M为步长) 0~ 2N-1
不便于算术 运算
表6.1 二进制计数方式
计数方式 带符号整数 偏移二进制补码
数值范围 -2N-1-1~ 2N-1-1 -2N-1~ 2N-1-1
1100.011000 + 0010.110011
___________________
1111.001011
=
12.375000 + 02.796875
________________
15.171875
图6.3 无符号小数的加法
6.1.4 带符号小数的二进制补码
N-1
2N-1
表6.3 无符号整数的权值
表6.4 无符号整数与十进制数的转换实例
无符号整数
101 1010 1110 11011 1111111 5 10 14 27 127
十进制数
1*22+0*21+1*20=5
转换关系
1*23+0*22+1*21+0*20=10 1*23+1*22+1*21+0*20=14 1*24+1*23+0*22+1*21+1*20=27 1*26+1*25+ 1*24+ 1*23+1*22+1*21+1*20=127
2N-1
… 22 21 20 2-1 2-2 2-3 … 2-M
小数 点右 侧数 值
小数 1(MSB) 部分 2 3 … M(LSB)
表6.7 无符号小数的权值
表6.8 无符号小数与十进制数的转换实例(N.M=4.3)
无符号小数 0011.101 1100.011 0000.110 1100.000 十进制数 3.625 12.375 0.75 12 转换关系 0*23+0*22+1*21 +1*20 +1*2-1+0*2-2+1*2-3=3.625 1*23+1*22+0*21 +0*20 +0*2-1+1*2-2+1*2-3=12.375 0*23+0*22+0*21 +0*20 +1*2-1+1*2-2+0*2-3=0.75 1*23+1*22+0*21 +0*20 +0*2-1+0*2-2+0*2-3=12
3
4
23
24
…
N-2 N-1(MSB)
…
2N-2 -2N-1
表6.5 二进制补码的权值
表6.6 二进制补码与十进制数的转换实例(N=8)
二进制补码 00011101 十进制数 29 转换关系 0*(-27)+ 0*26+0*25+ 1*24+ 1*23+1*22+0*21+1*20=29
11100011
2 3 -0 -1
-3
-2 -1 0 1
1
2 3 -3 -2
110
111
6
7
-2
-1
4
5
-2
-3
2
3
-1
0
6.1.1 无符号整数
将一个整数用一个二进制代码序列表示,每个二进制代码的 权值是2P,P为该代码在序列中的序号。 缺点:无法表示负数。
代码序号 0 1 2 3 4 … 权 值 20 21 22 23 24 …
00100110 10100110 01111111 11111111
-29
38 -90 127 -1
1*(-27)+ 1*26+1*25+ 0*24+ 0*23+0*22+1*21+1*20= - 29
0*(-27)+ 0*26+1*25+ 0*24+ 0*23+1*22+1*21+0*20=38 1*(-27)+ 0*26+1*25+ 0*24+ 0*23+1*22+1*21+0*20= - 90 0*(-27)+ 1*26+1*25+ 1*24+ 1*23+1*22+1*21+1*20=127 1*(-27)+ 1*26+1*25+ 1*24+ 1*23+1*22+1*21+1*20= - 1
1001 +11101 100110
=
9 +29 38
图6.1 无符号整数的加法
6.1.2 二进制补码
特点:
代码序号 0 1 2 权 值 20 21 22
与无符号整数的计 数方法类似,唯一不 同之处在于最高有效 位的权值是-2N-1。
将整数进行正负变 换时,只需将原数中 “1”和“0”反相, 然后再加上“1”即可。 加减运算时,最高 有效位进位须舍去。
第6章 FPGA设计中的基本问题
6.1 数的表示方法
计数方式 数值范围 优 点 缺点
无符号整数
二进制补码
0~ 2N-1
-2N-1~ 2N-1-1
最常用的计数方式,易于执行 算术运算
可表示正负数,易于执行算术 运算 可表示大于1或小于1的正数, 易于执行算术运算 可表示大于1或小于1的正负数, 易于执行算术运算 相邻数字之间仅有1位不同,适 用于物理系统的接口