マルチプレクサ(データ・セレクタ)

logic

マルチプレクサは、複数の入力信号からある1つの信号を選択して出力する回路です。

図1は、2つの1ビット入力信号のうち、どちらか一方を選択して出力する一番簡単なマルチプレクサのシンボル図です。Sの値に応じて、入力AとBのどちらか一方を選択してZから出力します。表1は、図1のマルチプレクサの真理値表です。S=0のとき、AをZから出力し、S=1のとき、BをZから出力します。

2to1のマルチプレクサ
図1: 2to1のマルチプレクサ
表1: マルチプレクサの真理値表(2to1)
入力出力
SABZ
0000
0010
0101
0111
1000
1011
1100
1111

Sで選択されていない側の入力の組み合わせに対してドントケアを使うと、表1は表2のように簡単になります。

表2: マルチプレクサの真理値表(2to1)
入力出力
SABZ
00x0
01x1
1x00
1x11

マルチプレクサの論理式

出力Zについて表2から主加法標準形で論理式を作成します。Z=1となっているS, A, Bの組み合わせは2ヵ所あるので、Zの論理式は式(1)のようになります。

 $$Z = \overline{S} \cdot A + S \cdot B\ \ \ \ \ \text{(1)}$$

式(1)の各項にドントケアとなっている入力は必要ありません。

HDL記述

1ビット2入力のマルチプレクサをVerilogで記述したのがリスト1です。コメント部分のように(1)の論理式ををそのまま記述しても動作しますが、リスト1のように3項演算子で記述するのが一般的です。論理合成ツールでリスト1を論理合成すると、結果的に(1)と等価になります。

32ビット3入力のマルチプレクサをVerilogで記述したのがリスト2です。3入力のマルチプレクサは、2ビットの選択信号Sで3入力のどれか1つを選択してZから出力します。

リスト1
リスト2
タイトルとURLをコピーしました