2022年05月15日 | 更新。 |
XOR回路は2入力1出力の2値論理回路の一種で、2つの入力の真理値が異なる場合に出力が1になり、2つの入力が同じ真理値の場合に出力が0になります。XOR回路は、XORゲートあるいは排他的論理和回路(exclusive or circuit)とも呼ばれます。また、2つの入力の真理値が一致しない時に1を出力するため、不一致回路とも呼ばれる事もあります。
なお、XORという用語は、ExOR、EXOR、Ex-OR、EX-OR等と、表記揺れがあります。
XOR回路の行う論理演算はXOR演算や排他的論理和(exclusive or)と呼ばれます。
XOR回路は、基本論理ゲートの一種です。
入力信号 の真理値 |
出力信号 の真理値 |
|
---|---|---|
A | B | Y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
XOR回路といえば、1(真)を高い電圧のHに対応させ、0(偽)を低い電圧のLに対応させる、正論理のXOR回路を指す場合が多いですが、1をL、0をHに対応させる負論理のXOR回路もあります。
まず、正論理のXOR回路と負論理のXOR回路に共通な話を説明した後で、正論理のXOR回路と、負論理のXOR回路について、それぞれ説明します。
2つの信号AとBを入力し、1つの信号Yを出力するXOR回路の真理値表を表2に示します。
入力信号 の真理値 |
出力信号 の真理値 |
|
---|---|---|
A | B | Y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
表2に示す様に、XOR回路は、2つの入力の真理値が異なる場合に出力の真理値が1となり、2つの入力の真理値が同じの場合は出力の真理値が0になる回路です。
また表2のYに示す様に、2つの入力の真理値が異なる場合に結果が1となり、2つの入力の真理値が同じ場合に結果が0となる論理演算を、XOR演算や排他的論理和と呼びます。
論理和は入力A=1または入力B=1の時に結果Y=1となる演算です。
一方で、「排他的」という言葉は、「2つの入力が同じ場合は除く」という意味になりますので、排他的論理和は、A=1またはB=1の時(ただし両方が1の場合を除く)にY=1となる演算を意味します。
参考:上の排他的論理和の定義は、「AとBの真理値が異なる時にY=1になる演算」と定義するのと、同じ意味になります。
排他的論理和は2項演算子"⊕"を使って表されます。つまり、表2のA、B、およびYの関係は、式(1)の論理式で表されます。
排他的論理和の演算子(⊕)は、論理積の演算子(·)よりも優先順位が低いのですが、論理和の演算子(+)との比較では、排他的論理和の演算子の方が優先順位が高いとしている文献も、排他的論理和の演算子の方が優先順位が低いとしている文献がある様です。排他的論理和の演算子と論理和の演算子が混在する論理式では、括弧を使って演算の優先順位を明示する方がいいでしょう。
正論理の場合は、真理値0が電圧Lに、真理値1が電圧Hに対応するので、表2の真理値表の0をLに、1をHに書き換えれば、XOR回路の入力電圧と出力電圧の関係が求まります。(表3参照)
入力電圧 | 出力電圧 | |
---|---|---|
A | B | Y |
L | L | L |
L | H | H |
H | L | H |
H | H | L |
正論理のXOR回路の回路記号を図1に示します。
正論理のXOR回路の動作を論理式で表すと、式(2)の様になります。
参考:式(2)は式(1)と同じ式です。
負論理の場合は、真理値0が電圧Hに、真理値1が電圧Lに対応するので、表2の真理値表の0をHに、1をLに書き換えれば、XOR回路の入力電圧と出力電圧の関係が求まります。(表4参照)
注:表4は、単に表2を0→Hおよび1→Lと書き換えただけではなく、行の順序の入れ替えも行っています。
入力電圧 | 出力電圧 | |
---|---|---|
A | B | Y |
L | L | H |
L | H | L |
H | L | L |
H | H | H |
なお、負論理の信号には、信号名に上線を付ける習慣があるので、表4でも信号名をA、B、Yとしています。(ただし、負論理でも、信号名に上線を付けなければ間違いという訳ではありません)
負論理のXOR回路の回路記号は、図1の回路記号の各端子に、負論理である事を示す丸印を付けた、図2の様な記号になります。
負論理のXOR回路の動作を論理式で表すと、式(3)になります。
参考:式(3)は、式(1)中の信号名に、負論理を表す上線を付けたものです。論理式は、電圧の関係を表す式ではなく、真理値の関係を表す式なので、正論理の回路でも、負論理の回路でも、(信号名に上線を付けるかどうかを除いて)同じ論理式になります。
この章では、XOR回路と同じ働きをする回路(XOR回路の等価回路)をNOT回路、AND回路、OR回路等の、他の基本論理ゲートの組み合わせで作る事を考えます。
NOT回路、AND回路、およびOR回路を適切に組み合わせれば、任意の組み合わせ回路の等価回路が構成できる事が知られています。この節では、XOR回路の等価回路を、NOT回路、AND回路、OR回路の組み合わせで構成する事を考えます。
XOR演算のオペランド(XOR回路の入力)をAとBとし、演算結果(出力信号)をYとした時、Y=1となる必要十分条件は、表2の真理値表から分かる様に、(A,B)=(0,1)または(A,B)=(1,0)です。この事より、加法標準形でXOR演算を表すと、式(4)が得られます。
図1の正論理のXOR回路に等価な回路を、式(4)から作ると、図3になります。
念のために、図3の回路の電圧表記の真理値表を作成すると、表5の様になります。
入力電圧 | 中間信号の電圧 | 出力電圧 | ||||
---|---|---|---|---|---|---|
A | B | A | B | A·B | A·B | Y |
L | L | H | H | L | L | L |
L | H | H | L | H | L | H |
H | L | L | H | L | H | H |
H | H | L | L | L | L | L |
この真理値表と正論理のXOR回路の真理値表(表3)とを比較すると、入力電圧と出力電圧の関係が同じになっています。この事から、確かに図1と図3の回路が等価である事が確認できます。
参考:加法標準形の事が分からなくても、表3と表5が一致する事を確認するだけで、図1と図3の回路が等価である事を証明できます。
図3の他にも、NOT·AND·ORの回路を組み合わせて構成したXOR回路の等価回路が考えられます。
XOR演算のオペランド(あるいはXOR回路の入力信号)をAとBとし、演算結果(出力信号)をYとすると、Y=0となるための必要十分条件は、表2を見れば分かる通り、(A,B)=(0,0)または(A,B)=(1,1)です。この事より、乗法標準形でXOR演算を表すと、式(5)が得られます。
また、ド・モルガンの法則より、式(6)が成立します。
式(6)を式(5)に代入すると、最終的に式(7)が得られます。
式(7)から、図1の正論理のXOR回路の等価回路が、図4の様に得られます。
図4の等価回路は、NOT回路1個、AND回路2個、OR回路1個でできています。図3の等価回路は、NOT回路2個、AND回路2個、OR回路1個でできていますから、図4の回路の方がNOT回路1個分だけ部品が少なくて済みます。
図4の回路も、念のため電圧表記の真理値表を作成して、正論理のXOR回路と等価である事を確認してみます。真理値表は、表6の様になります。
入力電圧 | 中間信号の電圧 | 出力電圧 | |||
---|---|---|---|---|---|
A | B | A+B | A·B | A·B | Y |
L | L | L | L | H | L |
L | H | H | L | H | H |
H | L | H | L | H | H |
H | H | H | H | L | L |
表6の真理値表の入力電圧と出力電圧の関係を見れば、表3の正論理のXOR回路の真理値表と一致していますので、確かに図4の回路は正論理のXOR回路の等価回路になっています。
参考:乗法標準形やド・モルガンの法則が分からなくても、表6を作成して表3と一致する事を確認すれば、図4の回路が正論理のXOR回路と等価である事が証明できます。
前節でNOT回路、AND回路、およびOR回路を適切に組み合わせれば、任意の組み合わせ回路の等価回路が構成できる事を書きましたが、NAND回路だけでも任意の組み合わせ回路の等価回路が構成できる事が知られています。この節では、XOR回路の等価回路を、NAND回路だけで構成する方法について説明します。
結論から先に書くと、図5に示す様に、4個のNAND回路で正論理のXOR回路の等価回路ができます。
図5の回路が、本当に正論理のXOR回路と等価になっているかを、真理値表を作って確認してみます。(表7参照)
入力電圧 | 中間信号の電圧 | 出力電圧 | |||
---|---|---|---|---|---|
A | B | A·B | A·A·B | A·B·B | Y |
L | L | H | H | H | L |
L | H | H | H | L | H |
H | L | H | L | H | H |
H | H | L | H | H | L |
図7の真理値表と、表2の正論理のXOR回路を比較すると、入力電圧と出力電圧の関係が同じになっているため、確かに、図5の回路は正論理のXOR回路と等価です。
前項で紹介した図5の回路は、真理値表(表7)を作成して動作を確認すれば、確かに正論理のXOR回路として働く事が分かるものの、どうしたらこんな回路を思いつくのか不思議に思われる方も多いと思います。そこで、図3の回路を出発点にして、図5の回路に変形していく方法を説明します。
OR演算は、式(8)に示す様に、2つのオペランドの順番を入れ替えても、演算結果が変わりません。(交換法則)
OR演算の交換法則を使って、図6に示す様に、図3の回路のAND回路とNOT回路のペア2つを入れ替えます。
そうすると、図7の回路が得られます。
図7の上側のAND回路の出力の論理式はA·Bですが、この論理式は式(9)の様に変形できます。
参考1:式(9)の変形には、次の公式を使っています: A = 0+A (恒等の法則)、A·A = 0 (補元の法則)、A·B+A·C = A·(B+C) (分配の法則)、A+B = A·B (ド・モルガンの法則)
参考2:式(9)は、次に示す方法でも証明できます。A=1の場合について考えると、式(9)の左辺はA·B = 1·B = Bとなり、右辺はA·A·B = 1·1·B = 1·B = Bとなるので、式(9)の左辺と右辺は等しくなります。またA=0の場合について考えると、式(9)の左辺はA·B = 0·B = 0となり、右辺はA·A·B = 0·0·B = 0となるので、式(9)の左辺と右辺は等しくなります。以上より、Aの値に関わらず、式(9)の左辺と右辺が等しい事が分かります。
式(9)は、図8の上下の回路が等価である事を示しています。
図7の赤い点線で囲んだ2組のAND回路とNOT回路のペアを、それぞれ、図8の下側の等価回路に置き換えると、図9の様なXOR回路の等価回路が得られます。
図9に赤色で書き込んである様に、図9の左側の2つのNAND回路は、全く同じ演算(A·B)をしているので、1つにまとめる事ができます。
また、図9の右側のOR回路は、図10に示す負論理のAND回路に置き換える事ができます。
参考:正論理のOR回路と負論理のAND回路は、名称や記号は違うものの、物理的には同じものだという事については、この用語集のAND回路の項目の、負論理のAND回路の説明部分で解説しています。
図9において、2つのNAND回路の統合と、OR回路の負論理のAND回路への置き換えを行なうと、図11の回路が得られます。
図11の最終段にある負論理のAND回路の、入力側の2つの丸印(これらの丸印はNOT回路の省略表記と解釈できます)を、図中に赤色で書いてあるように、AND回路の出力側に移動すると、最終的に図5の、NAND回路4つでできたXOR回路の等価回路が得られます。