第5章+数字集成电路系统设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
N=M×RE
(5 - 8)
式中:M(Mantissa)——浮点数的尾数;
R(Radix)——浮点数中阶的基数;
E(Exponent)——浮点数中阶的阶码。
第五章 数字集成电路系统设计
计算机中规定, 基数R一般为2、 8或16, 在实际 应用中主要为2。 由于该R为固定值, 所以不需要在浮 点数中明确地表示出来。 因此, 要表示浮点数, 必须 满足以下条件:
结果除了本位的和(Sum)之外, 还可能向上一位产 生进位(Carry)。 这样一来, 在多位加法运算中, 高位数值相加时, 不但要考虑本位数的运算, 还必须
考虑下一位运算向本位产生的进位。 全加器就是完成
此功能的运算部件, 一位全加器真值表如表 5-2 所列。
第五章 数字集成电路系统设计
表 5 - 2 一位全加器真值表
第五章 数字集成电路系统设计
1. 行波进位加法器(Ripple Carry Adder) 将n个一位全加器以图 5 - 2所示的形式连接在一起 (最低位可使用一位半加器), 就构成了一个n位行波 进位加法器。 该加法器每一位的进位输入均由相邻的 低位送来, 在最高位(n-1)得到最后的进位输出 Carry, 输出的和(Sum)则从各个相应位取得。
第五章 数字集成电路系统设计
移码具有如下性质: ·最高位为符号位, 其取值与原码和补码相反, 即1表示正数, 0表示负数。 ·对移码一般只进行加/减运算, 运算完成后需要 对所得结果加以修正, 修正量为2n, 即要对符号位的 结果求反后才是移码形式的最终结果。
第五章 数字集成电路系统设计
(3) 浮点数的符号位Ms, 0表示正数, 1表示负数。 浮点数的格式如下:
第五章 数字集成电路系统设计
Su m0
Su m1
Su m2
Su m(N - 2 )
Su m(N - 1 )
Sum
C0
C1
C_IN Carry
Sum C2
C_IN Carry
Sum C3
C_IN Carry
B
B
B
Sum
Sum
C(N - 2 )
C(N - 1 )
CN
…
C_IN Carry
C_IN Carry
第五章 数字集成电路系统设计
第五章 数字集成电路系统设计
5.1 二进制加法器(Adder) 5.2 二进制乘法器(Multiplier) 5.3 桶型移位器(Barrel Shifter) 5.4 可编程逻辑器件 5.5 半导体存储器
第五章 数字集成电路系统设计
5.1 二进制加法器(Adder)
5.1.1 一位加法器——半加器(Half Adder)与全加器 (Full Adder)
Cou t2
0
数 据 选择 器
Cou t1 行 波 进位 加 法 器 1
Cou t2
0
数 据 选择 器
Cou t1 行 波 进位 加 法 器 1 行 波 进位 加法器 0
Cou t2
0
数 据 选择 器
S3 S2 S1 S0
C15
S15 S14 S13 S12
S11 S10 S9 S8
S7 S6 S5 S4
Ms(1 bit)
Exponent(M bit) Mantissa(N bit)
为了进一步统一浮点数的表示与运算方法, IEEE对浮点 数的表示方法规定了一个标准的格式, 如表 5 - 3 所列。
第五章 数字集成电路系统设计
表 5 - 3 IEEE标准浮点数的表示方法
第五章 数字集成电路系统设计
图 5 - 3 16位选择进位加法器
第五章 数字集成电路系统设计
根据以上电路可以看出, 选择进位加法器运算总
Ta=p*Tc+TMUX+Tsel
(5 - 3)
式中: Tc——一位全加器的进位延迟时间;
TMUX——多路数据选择器的延迟时间;
Tsel——多路数据选择器选择控制信号的生成延迟。
第五章 数字集成电路系统设计
B
B
A0
B0
A1
B1
A2
B2
A(N - 2 )
B(N-2) A(N-1)
B(N - 1 )
图 5 - 2 n位行波进位加法器
第五章 数字集成电路系统设计
2. 选择进位加法器(Carry Select Adder) 选择进位加法器将需要相加的n位二进制数分成具 有相同位数(p位)的m 组, 每组的相加电路由两个p 位的行波进位加法器和一个多路数据选择器(MUX) 构成。 电路中一组加法器的进位输入为“1”, 另一组 的进位输入为“0”, 多路数据选择器用于从两个加法 器的“和”中选择一个作为最终的输出。
Si Ai Bi Ci-1
(5 - 4a)
Ci AiBi AiCi-1 BiCi-1 AiBi (Ai Bi )Ci-1
(5 - 4b)
第五章 数字集成电路系统设计
定义两个辅助公式:
Gi=AiBi
(5 - 5a)
Pi=Ai+Bi 将以上两式代入式(5 - 4b)得
(5 - 5b)
第五章 数字集成电路系统设计
(6) 规格化处理(Normalization, 记为Norm): 尾 数移动En位, 同时将En加到阶码Ef上。
(7) 舍入操作(Round): 执行IEEE舍入操作, 即 需要时在尾数S 的最低位加1, 这可能导致溢出, 此 时须将尾数右移1位, 同时阶码Ef加1。
根据二进制的运算规则, 两个一位二进制数相加 的真值表如表 5 - 1 所列。
第五章 数字集成电路系统设计
表 5 - 1 一位半加器真值表
第五章 数字集成电路系统设计
根据该真值表, 可以得到一位半加器的逻辑运算 表达式:
Sum=A XOR B
Carry=A AND B
(5 -1)
由上可见, 对于任意两个一位二进制数相加, 其
第五章 数字集成电路系统设计
A
B
Carry
Cin
OR2
AN D2
NO R2
IN V
AN D2
OR3 AN D3
AN D2
NO R2
Su m IN V
图 5 - 1 一位全加器电路原理图
第五章 数字集成电路系统设计
5.1.2 n位并行加法器 所谓并行相加, 是指n位被加数中的每一位与n位
加数中的各个对应位同时相加。 n位并行加法器由n个 一位全加器相互连接构成, 其连接方式决定了该加法 器的电路复杂程度和运算速度。
G3 P3 C3
G2 P2 C2
G1 P1 C1
G0 P0
超 前 进位 逻 辑 C0
GG PG
图 5 - 6 16位超前进位加法器电路
第五章 数字集成电路系统设计
5.1.3 浮点数加法器(Floating Point Adder)
1. 浮点数的表示方法
在浮点数中, 小数点的位置可以左右移动, 其表 示方法为
Ci=AiBi+(Ai+Bi)Ci-1=Gi+Pi·Ci-1
(5 - 6)
第五章 数字集成电路系统设计
即:
C0=G0+P0·C-1 (C-1是加于最低位的进位输入信号)
C1 G1 P1 C0 G1 P1?G 0 P0 C-1) G1 P1G0 P1P0C-1 C2 G2 P2 C1 G2 P2?G 1 P1G0 P1P0C-1)
11 B3
12 A3
9 Cout
10 D3
15 B2
14 A2
13 D2
2 B1
3 A1
1 D1
B0 6
VCC-P in 16 GN D-P in 8
A0 5 7
Cin
4 D0
图 5 - 5 4位超前进位加法器电路
第五章 数字集成电路系统设计
超前进位形成逻辑可以递归使用, 从而构成位数 更高的加法器电路而不过多地增加电路的复杂程度。 图 5 - 6 就是用此方法构成的16位超前进位加法器。
3. 超前进位加法器(Carry Lookahead Adder) 上述两种多位并行加法电路构成的基本单元都是 行波进位加法器, 只不过依据结构的不同行波进位的 位数有所不同而已。 在进行计算时, 两种电路所产生 的最大延迟均为进位传递时间。 为了进一步提高运算 速度, 经过对多位加法运算算法的研究, 设计出了超 前进位加法电路。
(5 - 7)
第五章 数字集成电路系统设计
Cn G0 P0
G1 P1
G2 P2
G3 P3
Cn+x
Cn+y
Cn+z
G
P
图 5 - 4 4位超前进位形成逻辑电路
第五章 数字集成电路系统设计
图 5 - 5 所示就是由4位超前进位形成逻辑电路与 全加器电路连接而成的4位超前进位加法器电路。
第五章 数字集成电路系统设计
(1) 给出尾数M, 它通常使用定点小数形式表示, 其位数决定了浮点数的精度。
第五章 数字集成电路系统设计
(2) 给出阶码E, 它通常用整数形式表示, 用以指 示小数点在数据中的位置, 其位数决定了浮点数的表 示范围。 浮点数的阶码一般采用整数形式的移码来表 示, 其定义为
[X] = 2n+X (-2n≤X<2n)
G2 P2G1 P2P1G0 P2P1P0C-1 C3 G3 P3C2 G3 P3 (G2 P2G1 P2P1G0 P2P1P0C-1)
G3 P3G2 P3P2G1 P3P2P1G0 P3P2P1P0C-1
Ck Ck Gk1 Pmi 1
第五章 数字集成电路系统设计
从上述算法可知, 由于存在两个全长度的移位器 (步骤(2)、 (6))和3个需要进位的尾数加法器(步骤 (3)、 (4)、 (7)), 因而其计算周期很长。 但是通过对 算法的深入研究, 可以通过以下方式对算法进行改进:
第五章 数字集成电路系统设计
(1) 原算法中, 数据转换操作仅在尾数操作的结果 为负值(实际上是在做减法)时才需要, 而且此操作 可以通过交换尾数相减时的减数和被减数来避免。
第五章 数字集成电路系统设计
所谓超前进位, 是依据低位的加数和被加数的状态 来判断本位是否有进位, 而不必等待低位送来的实际 进位信号, 从而大大提高了多位加法的运算速度。
超前进位加法器的构成原理是: 假设有被加数
An-1An-2…A2A1A0与加数Bn-1Bn-2…B2B1B0相加, 从各位 产生的进位信号分别是Cn-1Cn-2…C3C2C1C0, 于是有:
第五章 数字集成电路系统设计
(3) 尾数相加减(SA): 依据符号位, 对两个操 作数进行加法或减法操作。
(4) 数据转换(Conv): 若尾数相加减的结果为负 数, 需将结果转换成符号数值表示方式, 结果记为Sf。 进行数据转换时需要进行二进制补码操作。
(5) 尾数首位“1”检测(LOD): 计算规格化时尾 数需要左右移动的位数, 并标记其为En。
2. 浮点数加/减法的运算规则与改进 浮点数加/减法的运算规则是在保证参与运算两数的 阶码大小一致的情况下, 进行尾数的相加或相减操作。 由上述运算规则得出浮点数的加减运算步骤如下: (1) 阶码相减(ES): 计算两个数阶码之差的绝对 值 |Ea-Eb|=d。 (2) 对阶操作(Alignment, 记为Align): 将较小操 作数的尾数右移d位, 并将较大操作数的阶码记为Ef。
第五章 数字集成电路系统设计
该电路允许各个分组的数据相加以并行的方式进 行, 而不需等待下一组送来的进位。 下一组的进位只 用于控制多路数据选择器从两个加法器的“和”中选 择一个作为最终的输出。 16位选择进位加法器的电路 构成如图 5 - 3 所示。
第五章 数字集成电路系统章 数字集成电路系统设计
A12~15
B12~15
A8~11
B8~11
A4~7 B4~7
A0~3 B0~3
4位 加 法 器
S
S GGPG C
12~ 15
4位 加 法 器
S S GG PG C 8~ 11
4位 加 法 器
S S GGPG C 4~ 7
4位 加 法 器
S S GG PG C 0~ 3
第五章 数字集成电路系统设计
一位全加器的逻辑运算表达式为:
Sum ABC in ABCin ABCin ABCin Cout AB C(A B) AB AC BC
(5-2)
第五章 数字集成电路系统设计
根据式(5 - 2)可以得到一位全加器的逻辑电路图如 图 5 - 1 所示。 注意, 该全加器电路利用进位输出信 号Cout来产生和Sum, 此时Sum信号相对于Cout会有一个 延时。 该特性对于多位并行加法器是合适的, 因为在 多位并行加法器中, Cout信号是“逐级”通过各位的, 所以进位延时应尽量小。