本发明涉及一种比较电路,尤其是涉及一种数字比较电路。 数字比较电路把用数字表示的二个数的数值(magnitude)进行比较。为了更方便地进行解释,将描述一个二进制的四位数的比较电路。这里,二个四位数A和B分别被表示为(A0,A1,A2,A3)和(B0,B1,B2,B3),其最有效位是A0(或B0),而最低有效位是A3(或B3)。
首先,下面将描述组成通常的数字比较电路的基本输入/输出关系。(贯穿本说明,我们假定:逻辑运算符“∨”表示逻辑OR操作,并用OR门实现。“∧”表示逻辑AND操作,并由AND门实现,“⊙”表示符合,并且由符合门(coincidence gate)实现。)如果四位数A和B是相同的(符合),那末,语句(A0⊙B0)∧(A1⊙B1)∧(A3⊙B3)是真,这就是说:
(A=B)=(A0⊙B0)∧(A1⊙B1)∧(A2⊙B2)∧(A3⊙B3)……(1)
其次,如果四位数A大于四位数B,那末,下面的语句是真的:
(A0>B0)∨
{(A0⊙B0)∧(A1>B1)}∨
{(A0⊙B0)∧(A1⊙B1)∧(A2>B2)}∨
{(A0⊙B0)∧(A1⊙B1)∧(A2>B2)∧(A3>B3)}
同时,在比较一位数A0和B0时,如果A0大于B0,那末A0就等于1,而B0等于0。也就是说,关系式A0>B0能够被表示为A0∧B0′。另外,关系式(A0⊙B0)能够被表示为(A0B0)或者(A0∧B0)∨(A0′∧B0′),而关系式(A0B0)能够被表示为(A0∧B0′)∨(A0′∧B0)。这里,逻辑运算符“′”表示逻辑非(inversion)。
因此,我们可以说:
(A>B)=(A0∧B0′)∨
{(A0⊙B0)∧(A1∧B1′)}∨
{(A0⊙B0)∧(A1⊙B1)∧(A2∧B2′)}∨
{(A0⊙B0)∧(A1⊙B1)∧(A2⊙B2)∧(A3∧B3′)}…(2)
相应地,如果四位数A小于四位数B,那末,下面保持真值:
(A0<B0)∨
{(A0⊙B0)∧(A1<B1)}∨
{(A0⊙B0)∧(A1⊙B1)∧(A2<B2)}∨
{(A0⊙B0)∧(A1⊙B1)∧(A2⊙B2)∧(A3<B3)}
因此,我们可以说:
(A<B)=(A0′∧B0)∨
{(A0⊙B0)∧(A1′∧B1)}∨
{(A0⊙B0)∧(A1⊙B1)∧(A2′∧B2)}∨
{(A0⊙B0)∧(A1⊙B1)∧(A2⊙B2)∧(A3′∧B3)}…(3)
上面的表达式(1)、(2)和(3)被转换成能够用电路实现的等价的门功能。
附图1说明常规的检测A>B情况地数字比较电路,用表达式(2)实现该比较电路。
在上面的等式(2)中,假定:
(A0∧B0′)=L1′,
(A0⊙B0)∧(A1∧B1′)=L2′,
(A0⊙B0)∧(A1⊙B1)∧(A2∧B2′)=L3′,以及
(A0⊙B0)∧(A1⊙B1)∧(A2⊙B2)∧(A3∧B3′)=L4′,
那末:
(A>B)=L1′∨L2′∨L3′∨L4′
=(L1′∨L2′∨L3′∨L4′)″
=(L1∧L2∧L3∧L4)′
因此(A>B)是NAND门G14的输出,它的输入是L1、L2、L3和L4。这就能够被简化成这样:
A>B=NAND(L1,L2,L3,L4)
这里,左边表示门输出,而右边表示NAND门,NAND门具有如在括号中表达的这样的输入。(在下文中,全都采用这种表达方式,NAND()表示NAND门,NOR()表示NOR门,INV()表示非门(inverter),而XOR()表示异-OR门。)现在,求得到NANDG14的四个输入:L1=(A0∧B0′)′
=A0′∨B0=(A0⊙B0)∨A0′
={(A0⊙B0)∨A0′}″
={(A0⊙B0)′∧A0}′
={(A0B0)∧A0}′
相应地,如果A0B0被表示为L5,那末下面的表达式为真:
L1=(L5∧A0)′
=NAND(L5,A0)
在附图1,L1是NAND门G9的输出,而L5是XOR门G1的输出。
L2={(A0⊙B0)∧(A1∧B1′)}′
=(A0⊙B0)′∨(A1∧B1′)′
=(A0B0)∨{(A1B1)∧A1}′
={(A0B0)∨{(A1B1)∧A1}′}″
={(A0B0)′∧(A1B1)∧A1}′
={L5′∧(A1B1)∧A1}′
因此,如果L5′被表示为L6,A1B1被表示为L7,那末,下面的表达式为真:
L2=(L6∧L7∧A1)′
=NAND(L6,L7,A1)
在附图1中,L2是NAND门G11的输出,L6是非门G5的输出,而L7是XOR门G2的输出。
在表过式L3={(A0⊙B0)∧(A1⊙B1)∧(A2∧B2′)}′中,如果(A0⊙B0)∧(A1⊙B1)=L8,那末:
L3={L8∧(A2∧B2′)}′
=L8′∨(A2∧B2′)′
=L8′∨{(A2B2)∧A2}′
这里,如果(A2B2)被表示为L9,那末:
L3=L8′∨(L9∧A2)′
={(L8′∨(L9∧A2)′}″
={L8∧(L9∧A2)}′
=(L8∧L9∧A2)′
=NAND(L8,L9,A2)
同时,L8能够被进一步求解:
L8=(A0⊙B0)∧(A1⊙B1)
=L5′∧L7′
=(L5∨L7)′
=NOR(L5,L7)
在附图1中,L3是NAND门G12的输出,L8是NOR门G6的输出,而L9是XOR门G3的输出。
其次,在表达式:
L4={(A0⊙B0)∧(A1⊙B1)∧(A2⊙B2)∧(A3⊙B3′)}′中,如果(A0⊙B0)∧(A1⊙B1)∧(A2⊙B2)被表示为L12,那末我们可以说:
L4=L12′(A3∧B3′)}′
=L12′∨(A3∧B3′)′
=L12′∨{(A3B3)∧A3}′
这里如果,(A3B3)被表示为L11,那末:
L4=L12′∨(L11∧A3)′
={L12′∨(L11∧A3)′}″
={L12∧(L11∧A3)}′
=(L12∧L11∧A3)′
=NAND(L12,L11,A3)
在附图1中,L4是NAND门G13的输出,而L11是XOR门G4的输出。
同时,L12能够被进一步求解为:
L12=(A0⊙B0)∧(A1⊙B1)∧(A2⊙B2)
=L8∧L9′
=(L8′∨L9)′
这里,L8′假定被表示为L10,那末下面的式子是真的:
L12=(L10∨L9)′
=NOR(L10,L9)
在附图1中,L12是NOR门G8的输出,L10是非门G7的输出。
如上面所述,在附图1中表示的常规的数字比较电路包括:三个非门,一个2-输入的NAND门,二个2-输入的NOR门,四个XOR门,三个3-输入的NAND门,以及一个4-输入的NAND门。此外,通常情况下,一个非门由二个晶体管(一个PMOS晶体管和一个NMOS晶体管)组成,一个2-输入NAND(或NOR)门由四个晶体管组成,一个XOR门由十六个晶体管组成,一个3-输入的NAND门需要六个晶体管,而一个4-输入的NAND门需要八个晶体管,这样一个比较电路需要一百多个晶体管。
附图2是另一常规的数字比较电路的电路图,它由基于表达式(1)、(2)和(3)的电路组成。
在附图2中,NOR门G18,G25,G32和G39的输出分别是(A3⊙B3)、(A2⊙B2)、(A1⊙B1)和(A0⊙B0)。非门G60的输出,这是(A=B)的情况,被表示为(A3⊙B3)∧(A2⊙B2)∧(A1⊙B1)∧(A0⊙B0)。
非门G17、G44、G48和G52的输出分别是(A0∧B0′)、(A0⊙B0)∧(A1∧B1′)、(A0⊙B0)∧(A1⊙B1)∧(A2∧B2′)和(A0⊙B0)∧(A1⊙B1)∧(A2⊙B2)∧(A3⊙B3′)。
因为以串联方式连接的NOR门G55和非门G56执行逻辑OR操作,所以,非门G56的输出是(A>B)。
相应地,非门G21、G46、G50和G54的输出分别是:(A0′∧B0)、(A0⊙B0)∧(A1′∧B1)、(A0⊙B0)∧(A1⊙B1)∧(A2′∧B2)和(A0⊙B0)∧(A1⊙B1)∧(A2⊙B2)∧(A3′∧B3)。
因为,以串联方式连接的NOR门G57以及非门G58执行逻辑OR操作,所以,非门G58的输出是(A>B)。
在附图2中表明的数字比较电路包含25个非门:G15、G19、G22、G26、G29、G33、G36、G40、G17、G21、G24、G28、G31、G35、G38、G42、G44、G46、G48、G50、G52、G54、G56、G58和G60,10个2-输入的NAND门:G16、G20、G23、G27、G30、G34、G37、G41、G43和G45,二个3-输入的NAND门G47和G49,三个4-输入的NAND门G51、G53和G59,四个2-输入的NOR门G18、G25、G32和G39,以及二个4-输入的NOR门G55和G57。
这里,除了上述的组成各种类型的门电路的晶体管以外,一个4-输入的NOR门通常由8个晶体管组成。因此,附图2中说明的数字比较电路大约需要150个晶体管。
如前面所述,通常的数字比较电路需要大量的晶体管;因此,使得结构复杂。
因此,本发明的一个目的是要提供一个具有简单结构的数字比较电路。
为了实现这一目的,用来检测第一个数大于第二个数这种情况的,按照本发明的实施例的数字比较电路包括:
一个把所述的第二个数的各个位求反的补码电路,产生所述的第二个数的补码。
对所述的第一个数的最低有效位和所述的第二个数的补码的最低有效位执行逻辑AND操作的第一进位(carry)逻辑电路,产生最低有效位的进位信号;以及:
以串联方式耦合的多个第二进位逻辑电路,每一进位逻辑电路用于接收在所述的第一个数的第二个低有效位到最高有效位中的相对应的位,在所述的第二个数的补码的第二个低有效位到最高有效位中的相对应的位,以及各自邻接的较低位的进位信号,由此产生相对应位的进位信号。
在数字比较电路的实施例中,补码电路包括许多非门。
第一个进位逻辑电路包括用于接收第一个数的最低有效位和第二个数的补码的最低有效位的NAND门,以及用于求NAND门输出的反的第一个非门。
每一个第二进位逻辑电路包含有一个复合门,该复合门用于产生一个反相的进位信号(CG),这样,CG等于{(11∧12)∨(12∧13)∨(13∧11)}′,这里,符号“∧”表示逻辑AND操作,符号“∨”表示逻辑OR操作,而符号“′”表示逻辑非,假定它们的三个输入是11、12和13,以及为复合门的输出求反的第二个非门。
每一个复合门包含一个上拉驱动器和一个下拉驱动器。在电源和输出节点之间,上拉驱动器包含三对以串联方式耦合的PMOS晶体管,这里,每一对PMOS晶体管由二个以并联方式耦合的PMOS晶体管组成。在输出节点和地之间,下拉驱动器包含三对以并联方式耦合的NMOS晶体管,这里,每一对NMOS晶体管由二个以串联方式耦合的NMOS晶体管组成。
为实现上述目的,按照本发明的另一个实施例的数字比较电路包括:
第一补码电路,用于为第一个数的各个位求反,以产生第一个数的补码;
第二补码电路,用于为第二个数的各个位求反,以产生第二个数的补码;
对所述的第一个数的最低有效位和所述的第二个数的补码的最低有效位执行逻辑AND操作的第一进位逻辑电路,产生最低有效位的第一个进位信号;
以串联方式耦合的多个第二进位逻辑电路,每一个进位逻辑电路接收在所述的第一个数的第二个低有效位到最高有效位中的相对应的位,在所述的第二个数的补码的第二个低有效位到最高有效位中的相对应的位,以及各自邻接的较低位的第一个进位信号,由此产生对应位的第一个进位信号;
对所述的第二个数的最低有效位和所述的第一个数的补码的最低有效位执行逻辑AND操作的第三进位逻辑电路,产生最低有效位的第二个进位信号;
以串联方式耦合的多个第四进位逻辑电路,每一个进位逻辑电路接收在所述的第一个数的补码的第二个低有效位到最高有效位中的相对应的位,在所述的第二个数的第二个低有效位到最高有效位中的相对应的位,以及各自相邻接的较低的第二个进位信号,由此,产生相对应位的第二个进位信号;以及:
对最高有效位的第一个进位信号和最高有效位的第二个进位信号执行逻辑NOR操作的NOR门。
参考附图,通过详细描述最好的实施例,上述的本发明的目的以及其他的优点将会变得更加清楚:
附图1是说明一个通常的数字比较电路的实施例的方块图;
附图2是说明通常的数字比较电路的另一个实施例的方块图;
附图3是说明本发明的数字比较电路的实施例的方块图。
附图4是在附图3中表示的复合门的详细的电路图;
附图5是本发明的数字比较电路的另一个实施例的方块图。
附图3是按照本发明的一个实施例的数字比较电路的方块图,尤其是四位数字的比较电路的方块图。该数字比较电路产生一个信号,该信号是在四位数A大于四位数B的情况时产生。这里,四位数A和B分别被表示为(A0、A1、A2、A3)和(B0。B1、B2、B3),每一个数的最高有效位是A0(或B0),则每一个数的最低有效位是A3(或B3)。
在附图3中,数字比较电路包括一个补码电路301和一个进位发生器。进位发生器包含多个进位逻辑电路302、303、304和305,它们以串联形式耦合的。进位逻辑电路302包括NAND门G65以及非门G66,进位逻辑电路303、304、和305,每一个都包括一个复合门和一个非门。
根据本发明用数字比较电路所采用的比较原理将被详细叙述。首先,如果A>B,那末,我们可以表示成这样:
A+M>B+M,A+M-B>M,和A+(M-B)>M …(4)
这里引用的字母M表示组成四位的最大的数:(1 1 1 1)。同样,如果A<B,那末:
M<B+(M-A) ……(5)
在上面的表达式(4)和(5)中,(M-B)等价于数B的补码,(M-A)等价于数A的补码。在表达式(4)和(5)中,如果加的结果大于M,那末,最高效位的进位被触发。否则,最高有效位的进位不被触发。
这里,最高有效位的进位(CO),即:Cout,由下面的逻辑函数获得:
C3=A3∧B3′
C2=(A2∧B2′)∨(B2′∧C3)∨(C3∧A2)
C1=(A1∧B1′)∨(B1′∧C2)∨(C2∧A1)
C0=(A0∧B0′)∨(B0′∧C1)∨(C1∧A0) (……6)
参考附图3,补码电路301包括四个非门G61、G62、G63和G64,通过对组成第二个数的各个位求反,产生第二个数B的补码,即:(B0′、B1′、B2′、B3′)。第二个数B的补码和第一个数A,按照相对应的位,作用于各自的进位逻辑电路302、303、304和305。
在进位逻辑电路302中,NAND门G65和非门G66对A3和B3′执行逻辑AND操作,而其结果C3被用于进位逻辑电路303。被包含在进位逻辑电路303、304和305中的复合门G67、G69和G71分别接收(A2、B2′、C3)、(A1、B1′、C2)和(A0、B0′、C1)。假定每一个复合门的三个输入是11、12和13,那末,复合门的输出CG可以被表示如下:
CG={(I1∧I2)∨(I2∧I3)∨(I3∧I1))}′ (…7)
因此,相对应位的进位C3、C2、C1和Cout,能够分别通过非门G66、G68、G70和G72,对复合门的输出求反来获得。
附图4是在附图3中表示的复合门的详细的电路图,该电路由上拉驱动器和下拉驱动器构成,上拉驱动器由6个PMOS晶体管Q1-Q6组成,下拉驱动器由6个NMOS晶体管Q7-Q12组成。
参考附图4,在上拉驱动器中,PMOS晶体管Q1和Q2,以并联方式,被耦合在电源VDD和节点N1之间,因此,输入11和12分别被作用于这些门,另外,PMOS晶体管Q3和Q4,以并联形式,被耦合在节点N1和N2之间,输入12和13分别被作用于这些门,而PMOS晶体管Q5和Q6,以并联形式,被耦合在节点N2和N3之间,输入13和11分别被作用于这些门。因此,如果在作用的输入11、12和13中的二个或多个输入是“高的”(逻辑数据1),那末,在每一对PMOS晶体管中,至少有一个晶体管翻转,使得输出节点N3变成“高的”。
在下拉驱动器中,三对NMOS晶体管以并联形式被耦合在输出节点N3和地(GND)之间,以串联形式耦合每一对NMOS晶体管。也就是说,NMOS晶体管Q7和Q8被串接在输出节点N3和地之间,NMOS晶体管Q9和Q10被串接在输出节点N3和地之间,而NMOS晶体管Q11和Q12被串接在输出节点N3和地线之间。因此,如果在11、12和13中的二个或多个输入是“高的”(逻辑数据1),那末,所有的三条路径是在高阻抗状态,使得输出节点N3的电平变成“高的”。
附图5是本发明的另一个实施例的数字比较电路的方块图。该数字比较电路包含二个补码电路501和502,二个进位发生器503和504,以及一个NOR门G97。
在附图5中,补码电路501包括四个非门G73、G74、G75和G76,并且产生第一个数A的补码。补码电路502包括四个非门G77、G78、G79和G80,并产生第一个数B的补码。进位发生器503包括一个NAND门G81,三个复合门G83、G85和G87,以及四个非门G82、G84、G86和G88,并产生与A和B′的和相关的进位。换言之,在A>B的情况时,进位发生器503的输出被触发。
进位发生器504包括一个NAND门G89,三个复合门G91、G93和G95,和四个非门G90、G92、G94、G96,并且产生与A′和B的和相关的进位。因此,在A<B的情况时,触发进位发生器504的输出。
通过对进位发生器503和504的输出执行一个逻辑NOR操作,在(A=B)情况时,NOR门G97产生触发信号。
如上所述,实现按照本发明的数字比较电路仅需要少25%的晶体管。因此,数字比较电路被简化,并且生产量因此而增加。
通过参考本发明的特定的实施例而对本发明进行详细的说明以后,熟悉本领域技术的人员将会明白:在形式和详细说明方面的各种变化可能会发生,但是,不会脱离由权利要求书定义的本发明的精神和范围。