LogisimのPlexersの使い方とInclude Enables?属性

Logisimではあらかじめ用意されている回路の属性に[Include Enables?]という項目があり、これをYesにすると、その回路を有効または無効化できる1bitの入力ピンが用意されます。デフォルトでは[Include Enables?]はYesになっているのでこの入力ピンが表示されています。Plexersの中では、Multiplexer、Demultiplexer、Decoderが[Include Enables?]を持ちます。

設定方法

設定方法は、Logisimで回路を選択すると属性情報で表示できます。[Include Enable?]が見えるので、この値をNoにすると、ピンがなくなり、回路は常に有効になります。

何故このような仕組みがあるのか?

デジタル回路の勉強をはじめたときは、AND回路やOR回路を繋げてLEDを光らせたりするだけなので、1bitを流して有効化無効化する意味があまり分かりませんでした。ですが、CPUなどのように回路が大きくなってくると、加算処理の時はこの回路は動作させなくない、またはRAMからデータを取得するときはこの回路は動作させたいなど、操作によって使う回路が異なってくるのが分かりました。この時切り替えるスイッチが欲しいのですが、それを行うのがこの[Include Enables?]の入力ピンでした。

Plexers回路のおさらい

Logisimに標準であるPlexers回路を使って簡単な回路図を作成しておさらいします。

Bit Selector

その名の通り、複数ビットから1bit選択するときに使います。属性を変更すれば、n-bitの選択も可能です。

4bitの入力信号から、選択して1bit出力

Multiplexer

2つの入力ピンから選択信号で、どちらかを選んで出力します。また[Include Enables]属性がYesの場合は、この回路の有効無効を切り替えられます。以下の画像では、右下の「0で回路停止」の入力ピンを1にしているので、この回路が有効化され動作しています。

マルチプレクサーは、2つの入力のいずれかを選択

Demultiplexer

デマルチプレクサーは、マルチプレクサーの反対で、選択信号で、2つの出力ピンのどちらかを選んで出力します。

デマルチプレクサーは、2つの出力のいずれかを選択

Decoder

デコーダーは、n-bitの入力をそれぞれ異なる出力に流すことができます。

まとめ

回路の[Include Enables]属性の使い方とLogisimのPlexers回路をおさらいしました。マルチプレクサーやデコーダーなどで入力と出力をまとめたり分けたりできます。

これの応用としては、以下のように、1つの信号で、様々な回路を有効化無効化する制御装置(Control Unit)があります。

  • 0001信号の場合は、加算処理時の複数回路を有効にして、他の回路をすべて無効。
  • 0002信号の場合は、レジスターの値を確認して、0なら、プログラムカウンターを動かす。そのための回路のみを有効化し、他の回路は無効化。

論理回路シミュレータlogisimで簡単なデコーダ作成

フリップフロップ回路を繋げることで2進数をカウントできるようになったので、7セグメントディスプレイに表示しようと考えたのですが、2進4bitは、0-15までカウントできます。なので、7セグメントディスプレイ1つでは表示できません。

いろいろ調べていくとカウンターを10進カウンターやBCDという仕組みがあることが分かってきました。いきなりそれでカウンターを作り7セグメントディスプレイで表示するのはまだ難しいので、まずは単純なデコーダやBCDなどの回路をつくっていきます。

2-4デコーダ

何に使うのか分かりませんが、2桁の2進数を4桁に変換するデコーダです。NOT回路とAND回路だけで処理も少ないので仕組みがすぐ理解できます。

2-4デコーダ

この回路図を見たときは、なんでこんなもの必要なんだろうと思っていたのですが、実際に作っていてすぐメリットに気付けました。各出力にLEDを繋げてみると単純なデコーダで、視覚的に表示できることが分かりました。

LEDを付けると2進数の表示に使えるのが分かる!

3-8デコーダ

私ぐらいの入門レベルで組み合わせ回路のデコーダを検索すると3入力のデコーダの情報が出てきていまいちその理由が分かりませんでしたが、2-4デコーダを踏まえるとすごく理解しやすいです。2進数3桁を8本で出力するという意味ですね。

2進数N桁の入力を2^Nで出力するデコーダのようです。

http://www.lab3.kuis.kyoto-u.ac.jp/~ktakagi/le3a/primitive_circuits/index.html

http://www.am.ics.keio.ac.jp/parthenon/tips/3-8%E3%83%87%E3%82%B3%E3%83%BC%E3%83%80.pdf

真理値表

 

まとめ

2-4デコーダ、3-8デコーダを回路シミュレーターで実際に作成してみました。小さな回路を実際に作ってみると、自分が何が分かっていないのかが明確になり、この応用として7セグメントディスプレイ用のデコーダも作成できそうです。