XORゲートのソースを表示
←
XORゲート
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{| class="wikitable" align=right |- bgcolor="#ccc" align="center" |colspan=2|'''入力''' || '''出力''' |- bgcolor="#ccc" align="center" | A || B || A XOR B |- align="center" | {{no2|L}} || {{no2|L}} || {{no2|L}} |- align="center" | {{no2|L}} || {{yes2|H}} || {{yes2|H}} |- align="center" | {{yes2|H}} || {{no2|L}} || {{yes2|H}} |- align="center" | {{yes2|H}} || {{yes2|H}} || {{no2|L}} |} '''XORゲート'''(エックスオアゲート)は[[排他的論理和]]の[[論理回路|論理ゲート]]である。右に[[真理値表]]を挙げる。2入力の場合、入力の片方がHighで、かつ、もう片方はLowのとき、Highを出力する。入力が両方Highまたは両方Lowのときは、Lowを出力する。メーカー等によっては'''EORゲート'''または'''ExORゲート'''とも呼んでいる。出力が、これの反転になるものをXNOR等と呼ぶ。 排他的論理和は2を法とする(繰り上がりを無視した)加算と同じものである。すなわち、[[加算器|半加算器]]には加算結果とキャリーの2つの出力があるが、そのうちの加算結果はXOR(と同じ)である。XOR(排他的論理和)の[[選言標準形|積和標準形]]は<math>A \cdot \overline{B} + \overline{A} \cdot B</math>である。 XORの通常の出力の他、入力のうちのどちらか片方をそのまま(またはその反転を)出力する2入力2出力の演算は、制御NOT(CN)と呼ばれる[[可逆計算]]になる。 == 記号 == [[ANSI]]([[MIL論理記号]])、[[国際電気標準会議|IEC]]、[[ドイツ工業規格|DIN]](2種)での記法を以下に示す。 {| align=center style="text-align:center" |[[ファイル:XOR ANSI.svg]] |[[ファイル:XOR IEC.svg]] |[[ファイル:XOR DIN.svg]] |[[ファイル:XOR DIN 2.svg]] |- |''MIL/ANSI 記号'' |''IEC 記号'' |''DIN 記号(1)'' |''DIN 記号(2)'' |} == ハードウェアの解説とピン配置 == [[ファイル:7486 Quad 2-input ExOR Gates.PNG|thumb|right|7486]] 論理の方式にもよるが、XORは単純には実装できないことが多い(たとえば[[CMOS]]論理では、2入力の[[NANDゲート]]や[[NORゲート]]は4個のトランジスタで直接単純に実装できるが、XORを4個のトランジスタで実装するのは困難である)。しかし基本論理の組み合わせで作るのは少々煩雑であり、回路的な工夫(後述)もあることから、[[Transistor-transistor logic|TTL]]やCMOS論理の[[汎用ロジックIC]]にはXORゲートがラインナップされている。74シリーズでは7486、4000シリーズでは4070(4030の代替)に、2入力XORゲートが4個入っている。ピン配置はいずれも同じである。DIPパッケージ品やフラットパッケージ品がある。 {{-}} == 実装 == 排他的論理和はそれぞれの入力に対して対称で、XORを変形して双対でもある出力が反転したXNORを作ることも簡単だが、以下ではそういったバリエーションについては省略する。 [[CMOS]]論理の基本的な方式に従った場合、2個の入力AとBそれぞれの反転のために2個ずつ4個のトランジスタと、次の図のような8個のトランジスタの、計12個のトランジスタによって実装できる。 [[ファイル:CMOS XOR Gate.svg|thumb|500px|center|CMOS XOR Gate]] CMOSでは、[[NORゲート]]とAND-OR-Invert([[:en:AND-OR-invert]])複合ゲートによる10トランジスタの実装もある。 [[ファイル:CMOS10TrXOR.svg|thumb|380px|center|XOR with NOR gate and AND-OR-Invert comp. gate]] 通常の構成のゲートではなく、論理値が「通り抜ける」ゲート(詳細は英語版記事 [[:en:Pass transistor logic]] および [[:en:Transmission gate]] を参照)を使うと、より効率よく実装できるかもしれない。以下はそのような、6個のトランジスタによるCMOS ICへの実装の1例である(図中の4個と、入力の片方の反転のために2個)。 [[ファイル:CMOS6TrXOR.svg|thumb|360px|center|Transmission Gate Logic wiring of an XOR gate]] (入力が電気的に(アナログ的に)出力に直接繋がってしまうのを避けたい場合は、XNORの出力をNOTで反転し8トランジスタとする) 後述するようにXORは加算器でもあるため、コンピュータの高性能化のために他にも種々の手法が研究されている<ref>{{doi|10.1155/2009/803974}}, {{doi|10.1155/2012/173079}} 等</ref>。 XORの[[選言標準形|積和標準形]]<math>A \cdot \overline{B} + \overline{A} \cdot B</math>を[[ANDゲート]]・[[ORゲート]]・[[NOTゲート]]で構成した場合、3種類の論理ゲートが計5個必要である。 [[NANDゲート]]のみの場合NANDゲート4個、[[NORゲート]]のみの場合は5個で構成できる。 [[ファイル:XOR from NAND.svg|thumb|center|250px|NANDゲートのみで構成したXORゲート]] [[ファイル:XOR from NOR.svg|thumb|center|250px|NORゲートのみで構成したXORゲート]] [[ファイル:XOR-switch.PNG|thumb|right|250px|3路スイッチによる配線]] 電灯のオンオフを、[[3回路スイッチ|3路スイッチ]]と呼ばれるスイッチを利用して、2ヶ所から切り替えられるようにする配線方法があるが、これも一種のXORの実装である。 {{-}} == 3以上の入力への拡張 == <math>XOR(A, B)</math>を<math>A \oplus B</math>と表現した時、<math>XOR(A, B, C) = (A \oplus B) \oplus C = A \oplus (B \oplus C)</math>のように拡張するのが自然である。これはXORゲートのカスケード、つまり、最初に2入力のXORゲートがあり、その出力と3番目の入力を次のXORゲートの入力とする。さらに入力を増やす場合はこれを次々と連結した形で構成する。こうすると、HIGHとなっている入力が奇数個のときHIGHを出力し、HIGHとなっている入力が偶数個のときLOWを出力する回路となる。このような回路は[[パリティビット|パリティ生成器]]、あるいは2を法とする[[加算器]]として利用できる。74LVC1G386 はそのような3入力XORゲートである<ref name="74LVC1G386">[http://www.nxp.com/documents/data_sheet/74LVC1G386.pdf 74LVC1G386] [[:en:data sheet|data sheet]]</ref>。ただし大きなワードのパリティ生成など規模が大きい場合は、遅延を考慮するとトーナメント式に並列進行するほうにしたほうが良い。 XORを多入力に拡張したものとしては、0になっている入力が1個の時のみ1、あるいは1になっている入力が1個の時のみ1、といったものも考えられるが、そのような拡張は、自然な2項演算の組み合わせとしての解釈が不可能である。bit populationの一種になる。 == 加算器での使用 == [[ファイル:Half Adder.svg|right|frame|半加算器の回路例]] XORゲートは1ビット[[加算器]]として機能する。すなわち、2つのビットを加算した結果の1ビット目が得られる。2ビット目の桁上がり(キャリー)は加算する2つのビットが1の時であるから[[ANDゲート]]によって得られる。したがってXORゲートとANDゲートを使って[[加算器|半加算器]]を構成できる。 == 脚注・出典 == {{Reflist}} == 関連項目 == {{commonscat|XOR gates}} {{commonscat|XNOR gates|XNORゲート}} {{論理演算}} {{論理ゲート}} {{DEFAULTSORT:えつくすおあけと}} [[Category:論理ゲート]]
このページで使用されているテンプレート:
テンプレート:-
(
ソースを閲覧
)
テンプレート:Commonscat
(
ソースを閲覧
)
テンプレート:Doi
(
ソースを閲覧
)
テンプレート:Navbox
(
ソースを閲覧
)
テンプレート:No2
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:Yes2
(
ソースを閲覧
)
テンプレート:論理ゲート
(
ソースを閲覧
)
テンプレート:論理演算
(
ソースを閲覧
)
XORゲート
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報