アフィリエイト広告

論理回路 / マルチプレクサ

今回は、マルチプレクサ (セレクタ) を勉強します。

マルチプレクサとは、複数の入力から 1個を選択して出力する論理回路。詳しくは、はい、いつものようにググってください m(_ _;)m

なお、デマルチプレクサについてはこちらをご覧ください。

実験用の入出力回路

図1. 実験用の入出力回路図

まずは、回路の実験の前に入出力の回路をつくっておきましょう。

図1、説明するまでもないですが。
左がセレクト信号のスイッチ回路です。Dipスイッチで、S0、S1 の信号をだします。その右がデータ信号用の押しボタンスイッチ。A~D の信号をだします。右端が、出力 Y 表示の LEDです。

2入力マルチプレクサ

真理値表と論理式

S0ABY
00x0
01x1
1x00
1x11
表1. 2入力マルチプレクサ 真理値表

表1 は、2入力マルチプレクサの真理値表です。

S0 が 0 のときは、入力 A が出力される。S0 が 1 ならば、入力 B が出力される。S0 の状態によって、A、B のどちらかが選択される、という論理回路です。

真理値表から論理式をつくると、

Y = S0⋅A + S0⋅B

ちなみに、verlogHDL でのセレクタの記述は、

assign Y = (1'b1 == S0) ? B : A

です。

2入力マルチプレクサ回路

図2. 2入力マルチプレクサ 回路図

論理式を組み合わせ回路にしたのが図2 です。

教科書なんかでよくみる回路ですね。AND と OR と NOT を使う贅沢な回路だなぁと、俺は思います。

むずかしい回路ではないです。S0 によって U2A か U2B のどちらかが真になるというだけです。

NAND を使った 2入力マルチプレクサ

図3. NAND を使った 2入力マルチプレクサ 回路図

図2 の AND の出力と OR の入力に ○ をつけてみましょう。接続されたラインが負理論になるだけで、動作はかわりません。
が、AND と OR が、どちらも NANDゲートに変わってしまいます。ついでに NOT も NANDゲートを使うことにして、4回路入り NAND 74HC00 1個でつくることができました。(図3)

論理回路記号のド・モルガン変換

図3-1. NANDのド・モルガン変換

図3-1 左は正理論入力、負理論出力の AND、右は負理論入力、正理論出力の OR になっていますが、どちらも NANDゲートです。論理式は、ド・モルガンの法則により、

Y = A ⋅ B = A + B

となって、同じ論理回路であることがわかります。

図3-2. NORのド・モルガン変換

図3-2 では、左は正理論入力、負理論出力の OR、右は負理論入力、正理論出力の AND で、どちらも NORゲートです。論理式は、

Y = A + B = AB

で、これも同じ論理回路です。

これらの論理回路は、真理値表ではそれぞれ同じになりますが、機能という点では AND または OR とみることができます。たとえば図3 の回路は、すべて NANDゲートで構成されていますが、機能としては AND と OR として働いています。
このように、論理回路記号をド・モルガン変換することで、信号の HIGH / LOW ではなく、AND か OR かという機能を、回路図から読み取ることができるようになります。

2入力マルチプレクサの動作確認

Dipスイッチで S0 をオフにしたとき、入力押ボタン A を押すと LED が点灯します。B を押しても反応しません。「反応しない」とは「点灯も消灯もしない、don’t care だ」ということです。

S0 をオンにすると、B を押したときに点灯し、A には反応しなくなります。

S0 によって、A、B のどちらかが選択されて Y に出力されることが、確認できました。

4入力マルチプレクサ

真理値表と論理式

S1S0ABCDY
000xxx0
001xxx1
01x0xx0
01x1xx1
10xx0x0
10xx1x1
11xxx00
11xxx11
表2. 4入力マルチプレクサ 真理値表

4入力のマルチプレクサをつくってみましょう。

表2 が、4入力マルチプレクサの真理値表です。

S0、S1 はバイナリコードとみることができます。0x0~0x3 の値に対して、入力 A、B、C、D がそれぞれ選択されて出力されます。

論理式は、

Y = S1S0⋅A + S1⋅S0⋅B + S1⋅S0⋅C + S1⋅S0⋅D

これを論理回路にすると、NOT と、3入力AND、4入力OR を使った回路になります。回路図は載せませんが、ググるとでてくる一般的な回路です。(参考リンク)
うーん、なんだか複雑。

3入力AND とか部品箱にないので、論理式をちょっと変換してみました。

Y = S1S0⋅A + S1⋅S0⋅B + S1⋅S0⋅C + S1⋅S0⋅D
  = S1(S0⋅A + S0⋅B) + S1(S0⋅C + S0⋅D)

変換した式は、「『A、B を S0 でセレクトした出力』と、『C、D を S0 でセレクトした出力』を、さらに S1 でセレクトする」という形になっていることがわかります。つまり、2入力を 3つ用意すれば、4入力マルチプレクサになる、と。

4入力マルチプレクサ回路図

ということで、つくったのが 図4 の回路です。74HC00 でつくった 2入力マルチプレクサを 3個つなげています。

図4. 4入力マルチプレクサ 回路図

入力 A、B は S0 でどちらかが選択されます。入力 C、D も S0 で選択されます。それぞれの出力は S1 でもう一度選択され、最終的にどれかひとつの入力が出力されます。

4入力マルチプレクサの動作確認

Dipスイッチで S1、S0 ともにオフ (0x0) にすると、押しボタンA を押したときに LED が点灯します。他の押しボタンは、どれを押しても反応しません。

S0 のみをオン (0x1) にすると、B を押したときに LED が点灯。S1 のみオン (0x2) では C で、両方をオン (0x3) したときは D で点灯しました。それぞれ、他の押しボタンを押しても反応しません。

真理値表どおりの出力が得られることを確認しました。

ブレッドボード

図5. 実験中のブレッドボード

4入力マルチプレクサの実験をおこなった、ブレッドボードのようすです。あ、パスコン、つけてないや (;´Д`)

左端が切れてますが、Dipスイッチで S0、S1 の信号をだしています。その右に、データ A、B、C、D の押しボタンスイッチ。IC は 74HC00 が 3個。右下に出力表示の LEDが見えています。

IC 1個が 2入力マルチプレクサ 1回路になってます。どれもみな同じ接続ですので、簡単。それぞれの入力、出力を回路図通りにつなげばおしまいです。

後記

今回は、2入力、4入力のマルチプレクサをつくってみました。

ググるとでてくる 4入力マルチプレクサをみて、3入力AND なんて部品箱にないなぁ、どーしよっかなぁ、と考えていました。でも、真理値表、論理式とつくってみたら、2入力の組み合わせで 4入力にできることに気がついた。
あらためてだけど、教科書だけみて理解しててもダメだなと、思ったです。

マルチプレクサの品番ですが、74HCシリーズでは、
  74HC151 74HC153 74HC157 74HC158
  74HC253 74HC257 74HC258
  74HC354 74HC356
といったところのようです。それぞれ入力数とか機能とか違いますので、データシートみてください。
ちなみに、秋月電子通商にはどれも、ない、です (2023.7.22現在) (;´Д`)

タイトルとURLをコピーしました