XNORゲート
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/05/10 13:27 UTC 版)
入力 | 出力 | |
A | B | A XNOR B |
L | L | H |
L | H | L |
H | L | L |
H | H | H |
否定排他的論理和は2を法とする(繰り上がりを無視した)加算と同じものである。すなわち、半加算器には加算結果とキャリーの2つの出力があるが、そのうちの加算結果はXOR(と同じ)である。XNOR(否定排他的論理和)の積和標準形は
![](https://weblio.hs.llnwd.net/e7/redirect?dictCode=WKPJA&url=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F5%2F56%2FXNOR_IEC.svg%2F100px-XNOR_IEC.svg.png)
![](https://weblio.hs.llnwd.net/e7/redirect?dictCode=WKPJA&url=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F3%2F39%2FXNOR_DIN.svg%2F100px-XNOR_DIN.svg.png)
![](https://weblio.hs.llnwd.net/e7/redirect?dictCode=WKPJA&url=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F9%2F94%2FXNOR_DIN_2.svg%2F100px-XNOR_DIN_2.svg.png)
ハードウェアの解説とピン配置
論理の方式にもよるが、XNORは単純には実装できないことが多い(たとえばCMOS論理では、2入力のNANDゲートやNORゲートは4個のトランジスタで直接単純に実装できるが、XNORを4個のトランジスタで実装するのは困難である)。しかし基本論理の組み合わせで作るのは少々煩雑であり、回路的な工夫(後述)もあることから、TTLやCMOS論理の汎用ロジックICにはXNORゲートがラインナップされている。74シリーズでは7486、4000シリーズでは4070(4030の代替)に、2入力XNORゲートが4個入っている。ピン配置はいずれも同じである。DIPパッケージ品やフラットパッケージ品がある。
実装
排他的論理和はそれぞれの入力に対して対称で、XNORを変形して双対でもある出力が反転したXORを作ることも簡単だが、以下ではそういったバリエーションについては省略する。
CMOS論理の基本的な方式に従った場合、2個の入力AとBそれぞれの反転のために2個ずつ4個のトランジスタと、次の図のような8個のトランジスタの、計12個のトランジスタによって実装できる。
CMOSでは、NORゲートとAND-OR-Invert(en:AND-OR-Invert)複合ゲートによる10トランジスタの実装もある。
通常の構成のゲートではなく、論理値が「通り抜ける」ゲート(詳細は英語版記事 en:Pass transistor logic および en:Transmission gate を参照)を使うと、より効率よく実装できるかもしれない。以下はそのような、6個のトランジスタによるCMOS ICへの実装の1例である(図中の4個と、入力の片方の反転のために2個)。
(入力が電気的に(アナログ的に)出力に直接繋がってしまうのを避けたい場合は、XORの出力をNOTで反転し8トランジスタとする)
後述するようにXNORは加算器でもあるため、コンピュータの高性能化のために他にも種々の手法が研究されている[1]。
XNORの積和標準形 電灯のオンオフを、3路スイッチと呼ばれるスイッチを利用して、2ヶ所から切り替えられるようにする配線方法があるが、これも一種のXNORの実装である。
3以上の入力への拡張
をと表現した時、のように拡張するのが自然である。これはXNORゲートのカスケード、つまり、最初に2入力のXNORゲートがあり、その出力と3番目の入力を次のXNORゲートの入力とする。さらに入力を増やす場合はこれを次々と連結した形で構成する。こうすると、HIGHとなっている入力が奇数個のときHIGHを出力し、HIGHとなっている入力が偶数個のときLOWを出力する回路となる。このような回路はパリティ生成器、あるいは2を法とする加算器として利用できる。74LVC1G386 はそのような3入力XNORゲートである[2]。ただし大きなワードのパリティ生成など規模が大きい場合は、遅延を考慮するとトーナメント式に並列進行するほうにしたほうが良い。
XNORを多入力に拡張したものとしては、0になっている入力が1個の時のみ1、あるいは1になっている入力が1個の時のみ1、といったものも考えられるが、そのような拡張は、自然な2項演算の組み合わせとしての解釈が不可能である。bit populationの一種になる。
- 1 XNORゲートとは
- 2 XNORゲートの概要
- 3 加算器での使用
- XNORゲートのページへのリンク