
No.1ベストアンサー
- 回答日時:
4入力XOR は、回路が劇的には簡単にはならないように思えます。
AND/OR/NAND/NOT回路で構成できる回路はいろいろ考えられますが一般的な2入力の論理ICを使うなら以下の構成でしょうか。
(1) 10個のAND、5個のOR、4個のNOT
(2) 8個のAND、6個のNOR、1個のNAND、4個のNOT
(3) 15個のNANDと4個のNOT
ABCDのうち0が1個か3個の場合(あるいは 1が1個か3個の場合)だけ A×B×C×D(×をXORの記号とします)が 1 になります。1のブロックが左上と右下に固まるように書いたカルノー図は下のようになります。
CD
AB|00 11 01 10
―┼――――――
01│ 1 1 0 0
10│ 1 1 0 0
00│ 0 0 1 1
11│ 0 0 1 1
否定を小文字または NOT( ) で、論理積をA・B、論理和を A+B で表わせば、左上のブロックの論理式は
a・B・c・d + a・B・C・D + A・b・c・d + A・b・C・D = a・B・( c・d + C・D ) + A・b・( c・d + C・D ) = ( a・B + A・b )・( c・d + C・D )
であり、右下のブロックの論理式は
a・b・c・D + a・b・C・d + A・B・c・D + A・B・C・d = a・b・( c・D + C・d ) + A・B・( c・D + C・d ) = ( a・b + A・B )・( c・D + C・d )
です。したがって結果が 1 となるのはそれらの論理和で
A×B×C×D = ( a・b + A・B )・( C・d + c・D ) + ( A・b + a・B )・( c・d + C・D ) --- (1)
= NOT[ NOT{ NOT( a・b + A・B ) + NOT( C・d + c・D ) } ・ NOT{ NOT{ NOT( A・b + a・B ) + NOT( c・d + C・D ) } ] --- (2)
となります。式(1)を使った場合は、10個のAND、5個のOR、4個のNOTを使えば論理回路が構成できます。式(2)の場合は8個のAND、6個のNOR、1個のNAND、4個のNOTを使えば回路が構成できます。
さらに
a・b + A・B = NOT{ NOT( a・b )・NOT( A・B ) }
C・d + c・D = NOT{ NOT( C・d ・NOT( c・D ) }
A・b + a・B = NOT{ NOT( A・b )・NOT( a・B ) }
c・d + C・D = NOT{ NOT( c・d ・NOT( C・D ) }
なので
A×B×C×D = NOT【 NOT[ NOT{ NOT( a・b )・NOT( A・B ) }・NOT{ NOT( C・d ・NOT( c・D ) } ]・NOT[ NOT{ NOT( A・b )・NOT( a・B ) }・NOT{ NOT( NOT( c・d ・NOT( C・D ) } ] 】
と、15個の2入力NANDと4個のNOTを使っても回路を構成できます。この場合論理ICが2種類で済みます。以下にその回路を示します。回路が複雑なので2つに分けて描きました。
A ┬────────────── NAND ─── NAND ─ NAND ─ NAND ─
└ NOT ───────┐┌──┘ ┌┘ ┌─┘ ┌┘
B ┬──────────)┘┌── NAND ─┘ │ │
└ NOT ──────┐└─┘ ┌┘ │ │
└────┘ │ │
C ┬────────────── NAND ── NAND ┘ │
└ NOT ─────┐ ┌──┘ ┌┘ │
D ┬────────)── )──- NAND -─┘ │
└ NOT ─────-)──┘ ┌┘ │
└────┘ │
│
A ┬────────────── NAND ─── NAND ─ NAND ┘
└ NOT ──────┐ ┌──┘ ┌┘ ┌┘
B ┬─────────)─)─── NAND ─┘ │
└ NOT ────── )─┘ ┌─┘ │
└──┘ │
C ┬────────────── NAND ─── NAND ┘
└ NOT ─────┐ ┌──┘ ┌┘
D ┬────────)──┘┌─- NAND -─┘
└ NOT ─────-)───┘ ┌┘
└────┘
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 ( A xor B ) xor B = A となることを論理演算表で完成させてください。 4 2022/10/27 02:12
- C言語・C++・C# [至急] Project Euler: #15 Lattice paths コード、入力、出力、解説 1 2022/09/24 02:34
- C言語・C++・C# [至急] Project Euler:#16 Power digit sumコード、入力、出力、解説 3 2022/09/24 02:35
- 計算機科学 進数の計算について質問です。 16進数のxorだったら0x7fffと0x8000の計算はどうなります 2 2022/05/17 10:11
- その他(ソフトウェア) 簡単な絵が描けるソフト(wordに挿入) 3 2022/05/20 22:16
- C言語・C++・C# [至急]Project Euler:#13Large sum コード、入力、出力、解説 1 2022/09/24 02:30
- Android(アンドロイド) Android携帯のキーボード入力で時間入力を簡単にしたい 1 2023/05/17 02:13
- Excel(エクセル) エクセルで、未来の月の数値を表示させないようにしたい 1 2022/05/07 18:58
- その他(IT・Webサービス) お気に入りやブックマークの整理はどうやったら上手く行きますか?目的のサイトがすぐに探せません 1 2022/10/14 11:35
- その他(ソフトウェア) シーケンスプログラムで。 1 2022/06/23 21:44
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
近接スイッチの2線式と3線式...
-
400V 3相4線式について...
-
パルスとレベルについて
-
電気設備で使われるGCの意味...
-
なぜ、RS-FF回路がチャタリング...
-
EVT(GPT)の電圧比について
-
全波整流回路では順方向電圧降...
-
ハートレーとコルピッツ発振回...
-
触れるだけタッチライトのしくみ
-
電気について ループ回路とはど...
-
オペアンプの故障
-
WORDに論理回路図を書く
-
60Hz誘導電動機を関東の50H...
-
流量計のパルス出力について
-
カルノー図の重複の意味はなん...
-
ひずみ改善のためにコイルを使...
-
リプルと静電容量
-
[LT Spice] オペアンプのシミュ...
-
電気回路
-
3dB帯域幅と6dB帯域幅について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パルスとレベルについて
-
400V 3相4線式について...
-
近接スイッチの2線式と3線式...
-
電気設備で使われるGCの意味...
-
同一電圧値、異なる電源供給源...
-
EVT(GPT)の電圧比について
-
流量計のパルス出力について
-
[LT Spice] オペアンプのシミュ...
-
8ビット電文出力とはどんな信号?
-
電流値(AC・DC)
-
バーンアウトについて
-
車の12vから5vの電源を取り出す...
-
ハード回路 ソフト回路とわ何か...
-
分岐回路と分岐幹線の違いは何...
-
3端子レギュレータ、トランジス...
-
分周
-
電気回路について
-
オペアンプの故障
-
電気について ループ回路とはど...
-
オシロの入力インピーダンスに...
おすすめ情報