反及邏輯

布林函数反及()是自足算子。这意味着任何布林表达式都可以仅使用反及閘()运算重新表示为等效表达式。例如，函数NOT(x)可以等效表示为NAND(x,x)。在数位电子电路领域，这意味着仅使用反及閘就可以实现任何布林函数。

於1913年在 （Sheffer 1913）上发表了其数学证明。 反或函数也存在类似的情况，因此被称为反或邏輯。

 反及閘 
反及閘是反相的及閘。它具有以下真值表：
File:NAND_ANSI_Labelled.svgQ = A与非B
+真值表输入 A输入 B输出Q 0 0 1 0 1 1 1 0 1 1 1 0
在CMOS逻辑中，如果A和B输入均为高电平，则两个NMOS晶体管（图下半部分）均会导通，两个PMOS晶体管（图上半部分）均不会导通，输出端与Vss（地）之间会建立导电路径，使输出端为低電位。如果A和B输入均为低電位，则两个NMOS晶体管均不会导通，而两个PMOS晶体管均会导通，从而在输出端与Vdd（电压源）之间通路，使输出端为高電位。如果A或B输入中有一个为低电平，则其中一个NMOS晶体管不会导通，其中一个PMOS晶体管会导通，从而在输出端与Vdd（电压源）之间島通，使输出端为高電位。由于只有在两个输入都为高電位时，两个输入的配置才会导致输出端为低電位，因此该电路实现了一个反及閘。

 使用反及閘製作其他邏輯閘 
反及閘是一种通用邏輯閘，这意味着任何其他邏輯閘都可以表示为反及閘的组合。

 反閘 
反閘()由一個反及閘的兩個輸入口一起接入一個输入源而成。由于反及閘等效于一个及閘加一个反閘，因此将反及閘的的兩個输入口共接一個輸入源起来就只剩下反閘的功能。
所需反閘利用反及閘組成的构造File:NOT_ANSI_Labelled.svgFile:NOT_from_NAND.svg Q = NOT( A ) =A NAND A+真值表输入 A输出Q 0 1 1 0

 及閘 
及閘()是通过反转反及閘的输出而制成的，如下所示。
所需及閘利用反及閘組成的构造File:AND_ANSI_Labelled.svgFile:AND_from_NAND.svg Q = A AND B = ( A NAND B ) NAND ( A NAND B )+真值表输入 A输入 B输出Q 0 0 0 0 1 0 1 0 0 1 1 1

 或閘 
如果检查反及閘的真值表或应用德摩根定律，可以看出，如果任何输入为 0，则输出将为 1。但是，要成为或閘()，只要任何输入为 1，则输出必须为 1。因此，如果如果將兩個输入反相，任何高输入都会導致高输出。
所需或閘利用反及閘組成的构造File:OR_ANSI_Labelled.svgFile:OR_from_NAND.svg Q = A OR B = （ A NAND A ）NAND（ B NAND B ）+真值表输入 A输入 B输出Q 0 0 0 0 1 1 1 0 1 1 1 1

 反或閘 
反或閘()是输出反相後的或閘。当输入 A 和输入 B 都为高电平时，输出为高电平。
所需反或閘利用反及閘組成的构造File:NOR_ANSI_Labelled.svgFile:NOR_from_NAND.svg Q = A NOR B = [ ( A NAND A ) NAND ( B NAND B ) ] NAND 
[ ( A NAND A ) NAND ( B NAND B ) ]+真值表输入 A输入 B输出Q 0 0 1 0 1 0 1 0 0 1 1 0

 互斥或閘 
互斥或閘()由四个反及閘连接而成，如下所示。这种结构的传输延迟是单个反及閘的三倍。
所需的互斥或閘利用反及閘組成的构造File:XOR_ANSI_Labelled.svgFile:XOR_from_NAND.svg Q = A XOR B= [ A NAND  ( A NAND B ) ] NAND
[ B NAND ( A NAND B ) ]+真值表输入 A输入 B输出Q 0 0 0 0 1 1 1 0 1 1 1 0
或者，根据德·摩根定律，反及閘是输出反向的或閘，透过析取范式来制作互斥或閘。这种结构使用了五个而非四個反及閘。
所需互斥或閘利用反及閘組成的构造File:XOR_ANSI_Labelled.svgFile:XOR_from_NAND_2.svg Q = A XOR B= [ B NAND  ( A NAND A ) ] NAND
[ A NAND ( B NAND B ) ]

 反互斥或閘 
根据德·摩根定律，反及閘是输出反向的或閘，透过析取范式来制作同或閘。这种反互斥或閘()结构使用了五个反及閘，且这种结构的传输延迟是单个反及閘的三倍。
所需的反互斥或閘利用反及閘組成的构造File:XNOR_ANSI_Labelled.svgFile:XNOR_from_NAND_2.svg Q = A XNOR B= [ ( A NAND A ) NAND ( B NAND B ) ] NAND
( A NAND B )输入 A输入 B输出Q 0 0 1 0 1 0 1 0 0 1 1 1
或者，也可以使用四個反及閘的版本的互斥或閘加上反相器也可得到反互斥或閘。这种结构的传播延迟是单个反及閘的四倍（而不是三倍）。
所需的反互斥或閘利用反及閘組成的构造File:XNOR_ANSI_Labelled.svgFile:XNOR_from_NAND.svg Q = A XNOR B= { [ A NAND ( A NAND B ) ] NAND 
[ B NAND ( A NAND B ) ] } NAND 
{ [ A NAND ( A NAND B ) ] 

NAND [ B NAND ( A NAND B ) ] }

 多路复用器 
多路复用器()是一个三输入邏輯閘，它使用其中一个输入（称为选择位）来选择另外两个输入（称为数据位）之一，并且仅输出选定的数据位。 
所需多路复用器利用反及閘組成的构造Q = [ A AND NOT( S ) ]
OR ( B AND S )= [ A NAND ( S NAND S ) ]
NAND ( B NAND S )thumb|使用 反及閘的 多路復用器電路图+真值表输入 A输入 B选择输出Q 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1

 解复用器 
解复用器执行与复用器相反的功能：它接受单个输入，并根据指定要选择哪个输出的选择器位，将其引导至两个可能的输出之一。 
所需的 解复用器利用反及閘組成的构造DEMUX Gate+真值表输入选择输出 A输出B 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 1

 参考資料 


Category:逻辑门