図2-7は、4ビットのマルチプレクサです。この回路はI0からI3までのデータの中の一つ(1ビット)をQに出力する回路です。 どの入力を出力するかを決める入力が、S0とS1になります。S0,S1が0,0のときI0が、1,0のときI1が、0,1のときI2が、1,1のときI3の入力がQに出力されます。 (以下、S0,S1のように出力を選択するための入力を、選択入力と呼ぶことにします。) 4ビットのマルチプレクサがシミュレータにも用意されていたので、右側につけてみました。 プログラムの命令によって回路を切り替える場合などに有用です
図2-7. 4ビットマルチプレクサ
図2-8は2つのデータに絞った回路です。SがLのときはI0がQに反映されますが、HのときはI1がQに反映されます。
図2-8. 2ビットマルチプレクサ
図2-9はデータのコピーをシミュレートした回路になります。2つのDフリップフロップがありますが、 下のフリップフロップの出力を上のフリップフロップの出力にコピーする回路です。 2つのフリップフロップには約5秒に1回頻度のクロックを付けてみました。
下のフリップフロップはD入力がクロックの立ち上がりにQ出力に反映されるようになっています。 Q出力は、図2-8の2ビットのマルチプレクサの下側(I1)の入力にも繋がっています。 マルチプレクサの出力は上のフリップフロップのD入力に繋がっていて、 通常は(入力MがLのときは)、上のフリップフロップのQ出力が、そのまま入力に入るので出力が保持されます。 入力MがHになったとき、マルチプレクサの出力が切り替わり、下のフリップフロップの出力が上のQに反映される ようになります。MをLに戻せば、下のコピーした出力が上のフリップフロップに保持されることになります。
図2-9 1ビットレジスタコピー シミュレーション
上記は1ビットの2つの保持回路でのコピーでしたが、これを4つ並列にすれば4ビットのデータのコピーができますし、N個繋げればNビットのコピーができることになります。 マルチプレクサも2選択のものですが、こちらもビット数を増やせば別のレジスタのコピー機能や、ALUの出力をつないで結果を取り込むなど、 より多くの機能を(選択入力ごとに)割り振れることが分かるでしょう。