数字逻辑电路的ASIC设计
第1节 逻辑门电路的最基本的知识
更新于2008-08-29 13:28:22

2.1.1AND逻辑门和OR逻辑门

所谓AND逻辑门,是指有两个输入,且只有两个输入都成立时输出才成立的电路。这里的“成立”是指能够达到电路设计者所预期的有效状态(active),从电子的角度而言,对应“H”(高电平)或者“L”(低电平)中的任一个。


图2.1正逻辑和负逻辑


将有效状态设置为“H”还是“L”,是电路设计者的自由(参见图2.1)。也可以把前者称为“H”有效型预定义模式,把后者称为“L”有效型预定义模式。在同一个系统中,并不需要特意地将其统一规定为“H”有效型预定义模式或者“L” 有效型预定义模式。对于“H”有效型预定义模式和“L”有效型预定义模式,无论哪种方式,都存在有特定意义和功能的像解码电路之类的系统。
首先,不要考虑得过于复杂,将“H”设为有效状态,预定义为逻辑代数中的“1”,“L”设为非有效状态,预定义为逻辑代数中的“0”。这样,对于AND逻辑门,考虑两个输入变量A和B的各类组合,就会得到表2.1所示的输出变量O的状态定义。
我们把这种定义逻辑的输入、输出状态的表格称为真值表或者功能表(function table)。作为电路,运用MIL符号可以如图2.2所示那样描述。
表2.1AND逻辑门的真值表
A         B         O
0         0          0
0         1          0
1         0          0
1         1          1


图2.2AND逻辑门(两个输入)


有两个输入信号,其中一个成立的话,输出信号就成立,这称为OR逻辑门。表2.2是定义OR逻辑门的真值表。作为电路,运用MIL符号可以如图2.3所示那样描述。
表2.2OR逻辑门的真值表
A         B        O
0         0         0
0         1         1
1         0         1 
1         1         1


图2.3OR逻辑门(两个输入)


2.1.2正逻辑和负逻辑

AND逻辑门中,如果输入信号是“11”,那么输出信号就是“1”。改变一下看问题方法,也可以看作若输入信号中的一个是“0”,则输出信号为“0”。在以“H”有效型预定义状态为逻辑的“1”的正逻辑系统中,对于以“L”有效型预定义状态为逻辑的“0”的负逻辑看来,AND逻辑门也可作为OR逻辑门而起作用。


图2.4正逻辑的AND逻辑门


即为负逻辑中的OR逻辑门换言之,如果用逻辑符号来表示的话,即为图2.4。虽然,在负逻辑的情况下,加上小圈号()以示与正逻辑的区别,但是两者实际上在物理属性上是完全相同的。然而,在画电路图时如果不加以清晰区别的话,就会难以理解,产生逻辑混乱,所以才区分为两种记号。
正逻辑的OR逻辑门在负逻辑中作为AND逻辑门起作用。图2.5所示即是该种情况。如果将正逻辑和负逻辑加以调换的话,AND逻辑门和OR逻辑门同时调换。这就是众所周知的德·摩根定理。即:
A·B=-(-A+-B)正逻辑的AND逻辑门即为负逻辑的OR逻辑门
A+B=-(-A·-B)正逻辑的OR逻辑门即为负逻辑的AND逻辑门


图2.5正逻辑的OR逻辑门即为负逻辑的AND逻辑门


在电路设计中,经常会出现诸如正逻辑和负逻辑、AND逻辑门和OR逻辑门等的交换(称为逻辑变换)。也有输入信号是正逻辑,而输出信号是负逻辑的情况。我们把输出信号为负逻辑的AND逻辑门的情况叫做NAND逻辑门或者称作AND反相器;把输出信号为负逻辑的OR逻辑门的情况叫做NOR逻辑门或者OR反相器。
习惯上,要考虑一个逻辑门是作为正逻辑还是作为负逻辑起作用,往往是从输入信号方面的逻辑上来定义的。也就是说,所谓正逻辑的NAND逻辑门是输入信号作为正逻辑起作用,而输出信号作为负逻辑起作用。如果把正逻辑用Positive表示,负逻辑用Negative表示的话,则如下所示:
Positive AND=Negative NOR
Positive OR=Negative NAND
Positive NAND=Negative OR
Positive NOR=Negative AND
这种关系如图2.6所示,请将逻辑变换的图像牢记心中。它是与输入信号的多少无关且单独成立的。


图2.6正逻辑和负逻辑的对应


2.1.3AO逻辑门电路/OA逻辑门电路

在AND,OR复合逻辑门电路中,有AO(AND OR)逻辑门电路。如图2.7所示,在有4个输入变量A,B,C,D而输出信号O为O=A·B+C·D的情况下,也能够用两个AND逻辑门电路和一个OR逻辑门电路实现,但如果做成AND OR的复合逻辑门电路(即AO逻辑门电路)的话,那不只是电路简单,而且电路的延迟时间也相对要短。


图2.7复合逻辑门电路


将AND和OR的顺序翻转即可得到OA(OR AND)逻辑门电路。正如AND逻辑门电路和OR逻辑门电路有正逻辑和负逻辑存在一样,复合逻辑门电路中也有分别根据正逻辑和负逻辑而做的描述。如图2.8所示。


图2.8AND OR复合逻辑门电路的实例


2.1.4分配法则

大家已经知道AO逻辑门电路和OA逻辑门电路的机能可以根据正逻辑和负逻辑而互相替换。如果不替换正逻辑和负逻辑,则可以像乍一看已替换了那样来配线。其逻辑式可如图2.9那样表示。
A+B·CAO逻辑门电路=(A+B)·(A+C)OA逻辑门电路图2.9(a)


图2.9AO逻辑门电路和OA逻辑门电路互相替换


这就是大家所共知的逻辑门电路中的分配法则。分配法则中稍加变化则可起到交换AO逻辑门电路和OA逻辑门电路的作用。即
A+B·C·D=(A+B)·(A+C)·(A+D)
A·B+A·C=A·(B+C)图2.9(b)
A·D·E+B·D·E+C·D·E=(A+B+C)·D·E图2.9(c)
A·B+A·C+A·D=A·(B+C+D)
A·C+A·D+B·C+B·D=(A+B)·(C+D)
A·B+C·D=(A+C)·(A+D)·(B+C)·(B+D)
A·B+-A·CAO逻辑门电路=(A+C)·(-A+B)OA逻辑门电路
在德·摩根定理中,若将AO与OA逻辑门电路互相替换,则正逻辑、负逻辑也同时得到替换。但在分配法则中,即使AO与OA逻辑门电路互相替换,正、负逻辑也不需替换。
根据分配法则进行的AO逻辑门电路和OA逻辑门电路的替换,已成为使电路最合理化的重要技法。有关这个问题将在第3章中详细解说。


2.1.5XOR逻辑门电路

如果有两个输入变量A,B,其中任何一个单独成立,则输出信号端就成立的电路叫做XOR(Exclusive OR:排他性逻辑和,异或逻辑门电路)电路。真值表为表2.3,MIL符号如图2.10所示。
表2.3XOR逻辑门电路的真值表
A       B       O
0       0        0
0       1        1
1       0        1
1       1        0


图2.10XOR逻辑门电路


XOR逻辑门电路也应在ASIC单元、原始数据上下功夫,但由于其实质为复合电路,比一般的AND逻辑门电路和OR逻辑门电路等的响应速度要慢,所以在涉及逻辑门电路延时方面要多加注意。
图2.11所示是XOR逻辑门电路的分解白皮书。虽说有多种构成方法,但由于它同AO逻辑门电路和一般的复合逻辑门电路不同,非常复杂,所以其响应速度也慢。
XOR逻辑门电路的负逻辑表示如图2.12所示。


图2.11XOR逻辑门电路的分解白皮书

图2.12XOR逻辑门电路的负逻辑表现


2.1.6是否还有其他2位输入信号的逻辑门电路

是否还有其他的输入信号为2位,输出信号为1位的逻辑单元呢?因为其输入信号为2位,所以应有22=4,即总数为4种逻辑状态。高中时代都学过排列组合,那就用排列组合来计算一下。
首先,因为从A,B的四种状态“00”,“01”,“10”,“11”中选出一种使其有效的方法是从四种表述中选择一种的排列组合,所以用C14表示。即
C14=4/1=4种
请先不要急着说什么“四选一的方法不就是如图2.13所示的那样吗?”之类的话,试一试稍微难一点的情况吧。


图2.13从四种表述中选择一种的方法


首先,从A,B的四种状态“00”,“01”,“10”,“11”中选出两种,把使其具有有效性的几种方法全部一一试完之后,可以知道共有如图2.14所示的6种,即
(a)“00”与“01”(b)“00”与“10”
(c)“00”与“11”(d)“01”与“10”
(e)“01”与“11”(f)“10”与“11”
但是同样的情况假如用排列组合来计算,因为是四选二的排列组合,所以用C24来表示。即
C24=(4×3)/(1×2)= 6种


图2.14从四种表述中选择两种为有效的方法


那么从四种状态中选出三种使其具有有效性的方法有几种呢?这可以理解为相当于从四个中选出一个舍弃掉,或使其不具有有效性,所以“四选三”跟“四选一”的计算方法一样。也可以将其理解为正逻辑和负逻辑。至此可以总结为:
①“四选一”的组合为C14=4种
②“四选二”的组合为C24=6种
③“四选三”的组合为C34=4种
而这其中,③是①的逆行方法,所以可以将其忽略。①的4种加上②的6种即10种就可以了。表2.4所示即为此种情况。
表2.4输入信号为2位的组合逻辑


由上可知,不管哪种组合,都可以通过已经介绍了的AND逻辑门电路或者OR逻辑门电路、XOR逻辑门电路或者NOT逻辑门电路(反相器)实现。也就是说,不存在其他的输入信号为2位、输出信号为1位的逻辑单元。


2.1.7逻辑式和真值表的作用

如果正逻辑和负逻辑混淆的话,电路就会不容易理解。图2.15所示电路叫做施耐德(Schneider)电路,是用于UP/DOMN计数器等内部使用的部件,但由于其正逻辑和负逻辑运用混乱,所以它的逻辑运行就不那么容易理解了。所以,若从输出信号一侧逆向追溯整理清楚其正逻辑和负逻辑,则如图2.16所示。但是,只是看该图也不能完全理解,所以试着画出它的真值表


图2.15施耐德电路

图2.16将图2.15从输出信号一侧整理后的结果

图2.17与图2.15和图2.16功能相同的电路


通过该表可以看出,这是只有输入信号为“0000”和“1111”时输出信号为“1”的电路 。如果在画电路之前先给大家真值表的话,那么将其画成其他形式电路的人肯定为数不少。这也就是说,图2.17所示的电路更容易让大家理解。因为两者承担着相同的功能,所以画成更容易理解的新电路也许更好。
正如上述例子所说明的那样,如果给出一个逻辑门电路而不明白其功能的时候,用两种方法可以查到:一是可以展开它的逻辑式,二是展开真值表。展开逻辑式的方法可以使人清楚地明了电路本身的意思;展开真值表的方法可以清楚无漏地表明输入、输出信号的关系。
如果将图2.16所示的施耐德电路用逻辑式展开的话,则形式如下:
O=((-A·-C)+B)·((-B·-C)+A)·((-B·-C)
+D)((-B·-D)+C)
=-A·-C·-B·-C·-B·-C·-B·-D+B·A·D·C
=-A·-B·-C·-D+A·B·C·D
毫无疑问同用真值表展开的结果是一样的。


2.1.8游戏式逻辑电路

给大家介绍一个微不足道的电路吧。请分析图2.18所示电路的运行。将此电路按A,B,C做成真值表,则如表2.6所示。其实,仔细考虑一下的话,这并不能算是一个真正的电路。仅仅是简单地将A和O连接在一起而已。即AO


图2.18游戏式逻辑电路示例


表2.6图2.18的真值表
A         B         C       O
0         0          0        0
0         0          1        0
0         1          0        0
0         1          1        0
1         0          0        1
1         0          1        1
1         1          0        1
1         1          1        1
因为可能有人偏爱逻辑式展开方式,所以为了保险起见,再给大家演示一下逻辑式展开:
O=A·B·C+A·-B+A·-C
=A·B·C+A(-B+-C)
=A·B·C+A·-(B·C) (德·摩根定理)
=A·(B·C+-(B·C))
=A
有时,当我们专注地画着电路图时,猛然发现自己因为忘记了逻辑压缩而铸成大错。因而,最好是时不时地核对一下真值表。

 

网友留言