
【案例分析题】某产品有A、B、C、D四项指标。其中规定主要指标A、B必须满足要求,其余指标C、D只要有一个达标即可判定产品Y为合格。试设计一个逻辑电路实现此产品合格判定功能,要求:画出用与非门实现该电路的逻辑图。
用户需要设计一个逻辑电路,用与非门实现产品合格判定功能。首先,我需要明确问题中的逻辑条件。题目说主要指标A、B必须满足要求,所以A和B都要是真(即A=1且B=1)。其余指标C、D只要有一个达标即可,也就是C或D为真(C=1或D=1)。产品合格的条件就是这两个部分的组合:(A与B)与(C或D)。
接下来,我需要把这个逻辑表达式转换为只用与非门实现。首先写出原始逻辑表达式:Y = (A ∧ B) ∧ (C ∨ D)。然后,利用逻辑代数的基本定律进行转换,尤其是摩根定律,因为与非门可以通过摩根定律转换各种逻辑运算。
首先处理C ∨ D。根据摩根定律,C ∨ D = ¬(¬C ∧ ¬D),也就是C或D等于非(非C与非D)。所以C∨D可以用两个非门和一个与非门实现?不过我们要全用与非门,非门其实可以用与非门实现,将与非门的两个输入接在一起,就构成了非门(因为A NAND A = ¬A)。
然后,整个表达式Y = (A ∧ B) ∧ (C ∨ D)。我们可以把(A ∧ B)看作一个部分,设为X,(C ∨ D)设为Z,那么Y = X ∧ Z。而X ∧ Z用与非门实现的话,就是¬(¬(X ∧ Z)) = (X NAND Z) NAND (X NAND Z)?不对,其实与运算可以用与非门后接非门实现,因为X ∧ Z = ¬(¬(X ∧ Z)) = ¬(X NAND Z)。而¬(X NAND Z)可以通过将(X NAND Z)输入到一个非门,也就是一个输入接在一起的与非门。
现在一步步分解:
计算A ∧ B:这是与运算,用与非门实现的话,A NAND B得到¬(A ∧ B),然后再对这个结果取反,就得到A ∧ B。取反可以用一个与非门,输入接在一起,即( (A NAND B) NAND (A NAND B) ) = A ∧ B。不过其实,是否有更简单的方式?或者直接用一个与非门实现与运算?不,与非门本身是与的非,所以与运算需要两级与非门:先与非,再非(用与非门实现非)。
计算C ∨ D:前面提到,C ∨ D = ¬(¬C ∧ ¬D),而¬C可以用C NAND C实现,¬D用D NAND D实现。然后¬C ∧ ¬D就是(¬C) NAND (¬D)的非?不对,(¬C) ∧ (¬D) = ¬(¬(¬C ∧ ¬D)) = ¬( (¬C) NAND (¬D) )。所以C ∨ D = ¬(¬C ∧ ¬D) = (¬C) NAND (¬D)。所以步骤是:先将C通过与非门(输入接一起)得到¬C,D同样得到¬D,然后将¬C和¬D输入到与非门,输出就是C ∨ D。即:C ∨ D = ( (C NAND C) NAND (D NAND D) )
现在我们有了X = A ∧ B和Z = C ∨ D,接下来Y = X ∧ Z。同样,X ∧ Z = ¬(X NAND Z),所以用一个与非门将X和Z输入,得到X NAND Z,然后再通过一个非门(与非门输入接一起)得到¬(X NAND Z) = X ∧ Z,即Y。
现在把这些步骤组合起来,看看需要多少个与非门:
计算A ∧ B需要2个与非门:第一个与非门输入A、B,输出¬(A∧B);第二个与非门输入这个结果(两个输入接一起),输出A∧B(即X)。
计算C ∨ D需要3个与非门:首先两个与非门分别对C和D取非(每个与非门输入接一起),得到¬C和¬D;然后第三个与非门输入¬C和¬D,输出¬(¬C ∧ ¬D) = C ∨ D(即Z)。
计算X ∧ Z需要2个与非门:第一个与非门输入X和Z,输出X NAND Z;第二个与非门输入这个结果(两个输入接一起),输出¬(X NAND Z) = X ∧ Z = Y。
不过这样总共是2+3+2=7个与非门,是不是可以简化?
或者,有没有更直接的转换方式?我们可以从原始表达式开始,直接转换为与非-与非形式。Y = (A ∧ B) ∧ (C ∨ D),先展开这个表达式:Y = A ∧ B ∧ C ∨ A ∧ B ∧ D?不对,不对,(A ∧ B) ∧ (C ∨ D) = A ∧ B ∧ C ∨ A ∧ B ∧ D,这是分配律。不过这样是或的形式,可能更难转换为与非门。还是回到原来的思路。
或者,我们可以将Y = (A ∧ B) ∧ (C ∨ D)两边取两次非,Y = ¬¬[ (A ∧ B) ∧ (C ∨ D) ] = ¬[ ¬(A ∧ B) ∨ ¬(C ∨ D) ](摩根定律:¬(X ∧ Z) = ¬X ∨ ¬Z,所以¬[X ∧ Z] = ¬X ∨ ¬Z,因此¬¬[X ∧ Z] = ¬[¬X ∨ ¬Z])。所以Y = ¬[ ¬(A ∧ B) ∨ ¬(C ∨ D) ]。然后,¬X ∨ ¬Z可以用摩根定律转换为¬(X ∧ Z),但这里是或运算,所以¬(A ∧ B) ∨ ¬(C ∨ D) = ¬[ (A ∧ B) ∧ (C ∨ D) ],不过这又绕回去了。
另一种方式,直接用与非门实现各个部分:
A ∧ B可以用一个与非门接一个非门(即与非门输入短接),所以2个与非门。
C ∨ D:根据摩根定律,C ∨ D = ¬(¬C ∧ ¬D),所以先用两个非门(与非门输入短接)得到¬C和¬D,然后将¬C和¬D输入到与非门,得到¬(¬C ∧ ¬D) = C ∨ D,所以这里需要3个与非门(两个非门,一个与非门)。
然后将(A ∧ B)和(C ∨ D)进行与运算,同样需要一个与非门接一个非门,2个与非门。
总共7个,可能这是必须的。
现在需要画出逻辑图,用与非门符号,每个与非门用矩形符号,输入在左,输出在右,或者用三角形加圆圈的符号?通常逻辑图中与非门用矩形,左边输入,右边输出,中间有个&符号加个小圆圈表示非。不过用户可能希望用标准的逻辑符号,这里文字描述时需要说明每个门的连接。
总结步骤:
对A和B进行与运算:A和B输入到第一个与非门G1,输出G1=¬(A∧B);G1的输出连接到G2的两个输入(G2作为非门),输出G2=¬G1=A∧B=X。
对C进行非运算:C输入到G3的两个输入(G3作为非门),输出G3=¬C;对D进行非运算:D输入到G4的两个输入(G4作为非门),输出G4=¬D;G3和G4的输出输入到G5(与非门),输出G5=¬(¬C∧¬D)=C∨D=Z。
X(G2输出)和Z(G5输出)输入到G6(与非门),输出G6=¬(X∧Z);G6的输出连接到G7的两个输入(G7作为非门),输出G7=¬G6=X∧Z=Y。
这样就得到了Y,即产品合格信号。
现在需要确认这个逻辑是否正确,通过真值表验证。