减法电路是基本集成运放电路的一种,算术运算电路主要包括数字
加法器电路、数字减法器电路、数字
乘法器电路和数字除法器电路。由于基本的算术运算加法、减法、乘法、除法最终都可归结为加法或减法运算,因此,在算术运算电路中数字加法器电路与数字减法器电路是最基础的电路。一般是由集成运放外加反馈网络所构成的运算电路来实现。
数字减法器电路的基本原理
对于两个二进制数 x 和 y,用“x-y”表示他们的
二进制差,其结果有如下四种情形:
(1)0-0=0;(2)1-0=1;(3)1-1=0;(4)10-1=1。
对于上述四种情形中的 “10-1=1”的特殊情形,也即是当 x=10(即十进制的 2),y=1 时,它们的二进制差为 1,这表明在二进制减法中,作差过程存在向前一位借位的情形。
串行进位减法器电路
一个 n 位串行进位减法器是由 n 个全减器的借位位首尾相连、依次串联在一起形成的,在串行进位减法器中,其借位从最低有效位( Least Significant Bit,LSB)传到其最高有效位(Most Significant Bit,MSB)需要很长的的时间(电路的延时)。
图1、图2分别是一个四位的串行进位减法器逻辑电路图和符号,其中 ai、bi和 Bi是输入位,Di、Bi+1是输出位,且 Bi+1作为更高位的输入位。
串行进位减法器电路的主要优点是:结构简单、便于连接和 IC 版图设计的实现;但其缺点是:执行运算速度较慢。这是因为串行进位减法器电路每一位的相减必须等到它前一位的计算结果,最高位相减必须要等到它前面的所有位都完成相减才能进行。由于全减器只有在它的输入位有效时它的输出结果才是有效的,最左端的电路是最后响应的,这样全减器的输出结果才是正确的。因此,串行进位减法器电路总的延时取决于每一个全减器电路的信号传输延时,而信号的传输延时又与逻辑门的工艺有关,所以串行进位减法器电路的时间延时和电路中逻辑门的工艺相关。
减法器的设计
半减器
半减器(Half Subtractor,HS),二输入、二输出变量函数模块。一个半减器模块有两个输入 x、y 和两个输出 D、B,其中 x 称为被减数,y称为减数; D 称为差,B 称为借位输出信号。半减器是只有两个输入变量、两个输出变量,无借位输入的一位减法器, 半减器的真值表如图3所示。
由半减器的真值表可推导出半减器的逻辑表达式为:
D=x⊕y (“⊕”表示异或运算)
B=-x·y (“-”表示非运算,“·”表示与运算)
由半减器模块的逻辑表达式我们可以得到最常用的半减器模块门级的逻辑电路图和半减器模块的符号,如图4所示。
全减器
一个全减器模块有三个输入 ai、bi和 Bi,两个输出 Di、Bi+1,其中 ai称为被减数,bi称为减数,Di称为差,Bi称为第 i 位的借位输入信号,Bi+1称为第 i 位的借位输出信号。全减器是包含低位借位的三个输入变量、两个输出变量的一位减法器,在半减器的基础上再加一个低位借位输入位,全减器的真值表如图5所示。
由全减器的真值表推导出全减器的逻辑表达式为:
Di=ai⊕bi⊕Bi
Bi+1=(ai⊕bi)·bi+(ai⊕bi)·Bi
由全减器的逻辑表达式可以得到全减器模块门级的逻辑电路图和全减器模块的符号,分别如图6、图7所示。
对于 n 位的二进制数,将两个 n 位的二进制数相减得到一个 n 位的二进制的差以及一个 1 位的借位输出信号,这个借位输出信号可以作为它下一位的借位输入信号,或者作为一个溢出标志,图8为一个 n 位减法器电路的一般表示符号(其中 a、b 和 D 是 n 位的二进制数,Bn是 1 位的二进制数)。
四位二进制减法器的设计与实现
总体方案设计
本设计使用EWB进行仿真,使用74LS48、七段译码器、LED、开关、异或门、或门、非门、与非门等。电路按功能分为三个部分:减数部分:减数变成补码(原码取反加1);被减数部分:被减数与减数的补码相加;差部分:被减数减减数的结果显示。四位二进制减法器的总体仿真图如图所示。
被减数模块的设计
本模块由开关、74LS48、VCC(+12 V)、GND、七段译码器构成,用开关控制输入信号( 被减数),5、6、7、8 从高位到低位,用74LS48和七段译码器构成显示电路。四位二进制减法器的被减数模块的仿真图如图10所示。
减数模块的设计
本模块由开关、74LS48、VCC(+12 V)、GND、七段译码器、异或门、或门、非门、与非门构成。用开关控制输入信号(减数),1、2、3、4 从高位到低位,将输入信号的原码变成补码供计算使用,用74LS48 和七段译码器构成显示电路。四位二进制减法器的减数模块的仿真图如图11所示。
差模块的设计
本模块由VCC(+12 V)、GND、七段译码器、74LS48、LED 构成。从右到左依次是从高位到低位,并用74LS48和七段译码器构成显示电路。四位二进制减法器的差模块的仿真图如图12所示。
数字减法器电路的性能指标
目前,针对数字电路研究的主要目标都是为了提高电路的运算速度、降低电路的功耗和减少电路逻辑输出的误差,因此延时、功耗和误差是数字电路三个最重要的性能指标。
运算速度指标——延时
数字电路的延时主要是指信号的传输延时,电路的延时与逻辑门的工艺设计相关,延时限制了电路的工作速度,所以对电路的延时优化一直是很多学者研究的热点。全减器模块作为最基本的电路组成部件,整个电路的延时取决于全减器模块的延时,因此,对全减器模块延时的优化工作显得尤为重要。对于全减器来说,延时优化主要方法是减小信号在关键路径上的延时;对于串行进位减法器电路来说,关键路径就是指信号进位位支路(也就是对电路中所有的输入来说,信号延时时间最大时的情形),减小进位位支路的延时时间,对于提高串行进位减法器电路运算速度具有重要意义。
近年来,随着电路低功耗设计的要求,电源电压随之降低,而电源电压的降低又会增大电路中信号的传输延时时间,从而影响电路的逻辑输出结果。尤其是在时钟周期固定的同步电路中,如何保证电路正确的逻辑输出结果,实现电路的可靠性设计和最大限度的降低功耗是当前电路设计研究的主要课题。
能量消耗指标——功耗
CMOS 电路中功耗由两部分组成:动态功耗、静态功耗。动态功耗主要是由 CMOS 电路中逻辑门工作过程中负载电容充放电时引起的功耗,主要包括翻转功耗(翻转指的是电路中信号 0→1 或 1→0 的变换)和短路功耗。翻转功耗是数字电路要完成逻辑功能计算所必须要消耗的功耗,也称有效功耗;短路功耗是由于 CMOS 在翻转过程中 PMOS 管和 NMOS 管同时导通时所消耗的功耗,也称无效功耗;静态功耗是由于漏电电流引起的功耗。通常静态功耗与电路中的器件相关,在电路设计过程中,如何降低整体的电路功耗已成为当今电路研究者与设计者十分关注的问题,特别是要考虑到如何降低电路的动态功耗。
可靠性指标——误差
在同步电路中,由于时钟周期的存在,一旦电路总的延时时间超过了时钟周期,那么在时钟周期内我们采样得到的电路输出结果与理论上电路正确的逻辑输出结果不同,此时电路实际上输出的是错误的结果。因此,如何保证电路最终的输出结果是正确的,最大限度的减小误差也是目前电路研究的一个热点方向。
两位格雷码减法器数字电路设计
两位减法器的格雷码(Gray code)真值表如图13所示,可以实现两个两位二进制数之间的减法算术运算。从真值表中可以得知,存在 16 种不同的逻辑运算。 如表 4-1 所示,X2X1 和 U2U1 分别代表减数和被减数,S2S1 代表两个两位二进制数之间的差值,B2代表来自高位的借位。在图13中,减数、被减数和差值都通过使用格雷码来表示,格雷码可以转换成二进制码(8421 码),即从左边的第二位开始,在每个位和左边的解码值之间获得异或操作的值作为该位的解码值,最左边的值保持不变。
根据两位格雷码减法器的真值表,列写其布尔逻辑表达式,依据其布尔表达式,构造相应的数字电路原理图,如图14所示,有三种基本的逻辑门,即非门、与门、或门,不同的逻辑门使用不同的颜色标记,使用紫罗兰色标记非门,红色标记与门,天蓝色标记或门,图14中共存在 4 个非门,11 个与门,4 个或门。