《专用集成电路教学课件第五章》由会员分享,可在线阅读,更多相关《专用集成电路教学课件第五章(58页珍藏版)》请在金锄头文库上搜索。
1、第五章:数字电路系统设计5.1 二进制加法器(Adder)加法器是数字运算系统中最基本的单元电路,任何复杂的二进 制算术运算一般都是按照一定的规则通过基本的加法操作来实现的。 5.1.1 1位加法器半加器与全加器半加器(Half Adder)ABSumCarry0000011010101101一位半加器逻辑表达式图:一位半加器真值表5.1 二进制加法器(Adder)5.1.1 1位加法器半加器与全加器全加器(Full Adder)全加器真值表和逻辑表达式ABCinSumCout 00000 01010 10010 11001 00110 01101 10101 111115.1 二进制加法器(
2、Adder)5.1.1 1位加法器半加器与全加器全加器(Full Adder)一位全加器逻辑电路图5.1 二进制加法器(Adder)5.1.1 1位加法器半加器与全加器全加器(Full Adder)一位全加器MOS管电路图5.1 二进制加法器(Adder)5.1.1 1位加法器半加器与全加器全加器(Full Adder)一位全加器集成电路版图5.1 二进制加法器(Adder)5.1.2 n位并行加法器并行相加是指n位被加数中的每一位与n位加数中的各个 对应位同时相加。n位并行加法器由n个一位全加器相互连 接构成,其连接方式决定了该加法器的电路复杂程度和运 算速度。行波进位加法器(Ripple
3、Carry Adder )5.1 二进制加法器(Adder)5.1.2 n位并行加法器 行波进位加法器(Ripple Carry Adder )结构特点该加法器每一位的进位输入均由相邻的低位送来,在最高位(n-1 )得到最后的进位输出Carry,输出的“和”SUM则从各个相应位取得。性能特点:延迟计算 Ta=nTc电路简单、规则,易于IC版图的设计与实现; 主要缺点:进位信号是从最低位向最高位逐级 传递的(就是所谓的行波),只有这样才能获得 正确的结果;5.1 二进制加法器(Adder)5.1.2 n位并行加法器选择进位加法器(Carry Select Adder )结构特点将n位操作数分成相
4、同位数(p位)的m组; 每一组由两个p位的行波进位加法器和一个多路数据选择器( MUX)构成; 两个加法器的进位输入分别是“1”和“0”; MUX用于从两个加法器的“和”中选择一个作为最终的结果;5.1 二进制加法器(Adder)5.1.2 n位并行加法器选择进位加法器(Carry Select Adder ) 性能特点延迟计算Tc: 一位全加器的进位延迟;Tmux: MUX的延迟时间;Tsel: MUX数据选择信号的生成延迟;m个分组的数据以完全并行的方式相加; 分组内的p位数据则按行波进位的方式相加;5.1 二进制加法器(Adder)5.1.2 n位并行加法器超前进位加法器(Carry L
5、ookaheadAdder )设计高速并行加法器的关键在于如何设计出延迟时间最小的进位信 号处理电路。超前进位是在对多位加法运算算法进行深入研究的基础上 ,依据低位的加数和被加数的状态来判断本位是否有进位,而不必等待 低位送来的实际进位信号,从而大大提高多位加法的运算速度。超前进位算法的研究N位加法运算中,某一位数的相加是否产生进位的条件是:N位加法运算中,其进位输入直接传递到该位进位输出的条件是:5.1 二进制加法器(Adder)5.1.2 n位并行加法器超前进位加法器(Carry Lookahead Adder )进行第i位加法运算方法:首先进行进位产生和进位传递函数的计算:然后根据Gi与
6、Pi的结果计算该位的和与进位:将Ci+1的计算公式向下递归使用,可得:5.1 二进制加法器(Adder)5.1.2 n位并行加法器超前进位加法器(Carry LookaheadAdder )四位超前进位加法运算算法:根据上页介绍的方法可以推导出四位超前进位算法如下:上面公式可以看出,每一特定位的进位信号可以直接从本位以及比它 低的各位加数、被加数和C0的状态来作出判断,而不需要等待低位实 际送来的进位信号。这样一来,任意一位所需的进位信号只要各个相 关信号输入后经过两级门延迟即可获得,加法的运算速度与参与运算 操作数的位数无关。5.1 二进制加法器(Adder)5.1.2 n位并行加法器超前进
7、位加法器(Carry Lookahead Adder )根据上页公式,可以获得四位超前进位加法器的电路结 构5.1 二进制加法器(Adder)5.1.2 n位并行加法器超前进位加法器(Carry Lookahead Adder )超前进位产生电路模块的逻辑电路如下:由上图可以看出,每一位的进位信号都要包含所有比它低各位的P和 G两个函数,当参与运算的位数较多时,低位所产生的P和G函数所要 驱动的负载会过重,而且整个超前进位形成逻辑电路会非常复杂难 以实现,因此一般超前进位形成逻辑电路均以四位为基础构成。5.1 二进制加法器(Adder)5.1.2 n位并行加法器超前进位加法器(Carry Lo
8、okahead Adder )四位超前进位加法器电路(74283)5.1 二进制加法器(Adder)5.1.2 n位并行加法器超前进位加法器(Carry Lookahead Adder )超前进位形成逻辑的递归使用图:16位超前进位加法器电路5.1 二进制加法器(Adder)5.1.3 浮点数加法器(Floating Point Adder )浮点数的表示方法在浮点数中小数点的位置可以左右移动,其表示方法为 :式中:M(Mantissa): 浮点数的尾数;R(Radix): 浮点数中阶的基数;E(Exponent): 浮点数中阶的阶码;5.1 二进制加法器(Adder)5.1.3 浮点数加法器
9、(Floating Point Adder)浮点数的格浮点数的表示方法计算机中浮点数的表示方法计算机中规定浮点数的基数R为一般2、8或16,在实际 应用中主要为2,由于该R为固定值,所以不需要在浮点数中明 确地表示出来。因此要表示浮点数,必须:给出尾数M:通常使用定点小数形式表示(用纯小数原码), 其位数决定了浮点数的精度。给出阶码E:通常用整数形式表示(整数形式移码),用其指 示小数点在数据中的位置,其位数决定了浮点数的表示范围。浮点数的符号位Ms:0正数,1负数。浮点数的格式5.1 二进制加法器(Adder)5.1.3 浮点数加法器(Floating Point Adder )浮点数的表示
10、方法为了进一步统一浮点数的表示与运算方法,IEEE对浮点 数的表示方法规定了一个标准的格式。IEEE标准浮点数的 表示方法如下:5.1 二进制加法器(Adder)5.1.3 浮点数加法器(Floating Point Adder )浮点数加/减法的运算规则浮点数加、减法的运算规则是在保证参与 运算两数的阶码大小一致的情况下,进行尾 数的相加或相减操作。5.1 二进制加法器(Adder)5.1.3 浮点数加法器(Floating Point Adder)浮点数加/减法的运算步骤阶码相减(ES):计算2个数阶码之差的绝对值|Ea Eb|=d。 对阶(Alignment)操作(Align):将较小操
11、作数的尾数右移d位,并将较大操 作数的阶码记为Ef。 尾数相加/减(SA):依据符号位,对两个操作数进行加法或减法操作。 数据转换(Conv):若尾数相加/减的结果为负数,需将结果转换成符号数 值表示方式,结果记为Sf。 尾数首位“1”检测(LOD):计算规格化时尾数需要左/右移动的位数,并标记 其为En。若En为正,则为右移(仅右移1位,对应于尾数结果溢出的情况) ,否则为左移。 规格化(Normalization)处理(Norm):尾数移位En位,同时将En加到阶码 Ef上。 舍入操作(Roud):执行IEEE舍入操作,即在需要时在尾数S 的最低位加1,这 可能导致溢出,此时须将尾数右移1
12、位,同时阶码Ef加1。5.1 二进制加法器(Adder)5.1.3 浮点数加法器(Floating Point Adder )浮点数加/减法的运算步骤5.1 二进制加法器(Adder)5.1.3 浮点数加法器(Floating Point Adder )浮点数加/减法的运算电路结构的改进原有算法的缺点对阶操作和计算结果规格化处理时需要两个全长 度的移位器;尾数运算、数据转换和舍入操作时需要三个尾数 加法器;5.1 二进制加法器(Adder)5.1.3 浮点数加法器(Floating Point Adder)浮点数加/减法的运算电路结构的改进算法的改进数据转换操作仅在尾数操作的结果为负值(实际上
13、是在做减法)时 才需要,而且此操作可以通过交换尾数相减时的减数和被减数来得以 避免(但在阶码相等时例外,但此时不需要进行舍入操作)有尾 数交换的算法中,舍入和数据转换操作是相互排斥的;在仅有加法的情况下,尾数操作结束后只可能使结果增加,于是只 有全长度的对阶移位器是必须的。对于减法操作,分成两种情况:一 种情况是阶码的差值d 1(记为FAR),此时需要一个全长度的对阶 移位器,但所得结果规格化时,最多只需要进行1位左移操作。另一 种情况是d1(记为CLOSE),这时不需要全长度的对阶移位器,但 是必须要有全长度的规格化移位器。由此可见,全长度的对阶移位器 和规格化移位器是互斥的;通过对尾数操作
14、结果中高位打头“0”的个数的预测,在操作数输入后 就进行LOD操作,此时的操作称为LOP(Leading-One-Prediction)。浮点数加/减法的运算电路结构的改进双路径浮点数加/减法电路阶码差值:d1阶码差值:d1d=1d15.2 二进制乘法器(Multiplier)5.2.1 二进制乘法运算的步骤第一步:从输入数据中依照乘数的状态产生部分积(如 何产生部分积使乘法运算速度加快是设计乘法器电路的 主要问题之一);第二步:将各个部分积沿垂直方向加起来产生最终的结 果(要采用某种运算策略,将所有的部分积最终合并( 化简)成部分积和(Sum)与部分积进位(Carry)两部 分。由于该运算策
15、略与电路的实现结构关系紧密,所以 它也是乘法器电路研究的一个重要问题);第三步:将上一步骤获得的部分积和(Sum)与部分积 进位(Carry)相加获得最终的乘积;5.2 二进制乘法器(Multiplier)5.2.1 二进制乘法运算的步骤用“点图(Dot Diagram)”来表示二进制乘法运算的步骤5.2 二进制乘法器(Multiplier)5.2.2 数字乘法器的电路结构数字乘法器有多种电路实现方式,其结构有的简单有 的复杂。简单的电路结构运算速度慢,复杂的电路结构则 可以获得很高的运算速度。移位式数字乘法器电路构成部分积产生电路 加法器电路 乘积移位电路(右移 ) 5.2 二进制乘法器(M
16、ultiplier)5.2.2 数字乘法器的电路结构线性阵列(Linear Array)数字乘法器5.2 二进制乘法器(Multiplier)5.2.2 数字乘法器的电路结构并行数字乘法器并行数字乘法器完全采用组合逻辑电路,其工作过 程与上面所述的乘法运算步骤相类似,即:通过部分积产生 电路同时产生所有的部分积,运用某种运算策略,将所有的 部分积最终合并(化减)成部分积和(Sum)与部分积进位 (Carry)两部分,然后将这两部分通过多位并行加法器相 加得到最终的结果。根据部分积化简策略的不同,并行数字 乘法器具有不同的电路结构形式。5.2 二进制乘法器(Multiplier)5.2. 2 数字乘法器的电路结构部分积的产生 产生部分积的简单方法乘法运 算中的第一 步就是以一 定的算法产 生部分积。 最为简单产 生部分积的 方