論理ゲートを爆速で作成できる「Logisim」の紹介
はじめに
基本情報技術者試験や応用情報技術者試験を受けるときに必ずといっていいほど出てくる論理値の問題。
理解すると結構簡単なのですが、どうしても最初のほうや久しぶりに問題をやろうとすると、結構手こずったりするのではないでしょうか
例えば次のような問題
応用情報技術者試験 平成22年秋季 問22
まず、これら論理ゲートの形がどの論理機能であるかを覚える必要があります。
正直覚えてしまえばなんてことないのですが、覚えるだけでは物足りなさを感じますし、試験のためだけに覚えても結局忘れてしまうことが少なからずあると思います。
そんなときに直感的に論理ゲートを作成できるアプリケーションが 「Logisim」 です。
# Logisimのインストール
それでは早速ソフトをインストールしましょう。
ダウンロードサイト:https://sourceforge.net/projects/circuit/
今回検証する環境は次の通りです。
Javaアプリケーションなので、LinuxやWindowsにも対応しています。
OS: MacOS Ventura ver 13.5.2
Logisimの使い方
それでは早速ダウンロードしたアプリを開いてみましょう
非常にシンプルなアプリケーションになっています。
使うのは基本的に左上のアイコンのところと、一番大きいエリアのところです。
左上のアイコンのは左から、タッチ操作、編集、テキスト、入力、出力、否定ゲート、ANDゲート、ORゲートになっています。
このエリアのところで論理ゲートを作成できます。(以降はこのエリアを論理ゲートエリアといいます)
それではまずシンプルな入力2出力1のANDゲート回路を作成していきます。
ANDゲートの真理値表は次の通りです。
A | B | X |
---|---|---|
0 | 0 | 0 |
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
まずはANDゲートを作成します。左上のアイコンのANDゲートをクリックし、論理ゲートエリアをクリックして配置します。
次に入力を作っていきます。今回は入力が2つなので、2つの入力を設定します。
次に出力を作ります。出力は1つです。
これらのパーツを繋げていきます。左上の矢印アイコンをクリックして、回路を繋げていきます。
図のように、入力が0のときに出力が0になっていればOKです。
入力の値を変化させて、出力の変化をみてみる。
それでは、ここからがLogisimの具体的な特徴です。
左上のアイコンの指ボタンをクリックしましょう。
これで、論理ゲートエリアの入力パーツを0→1と変えることが出来ます。
入力を2つとも1にすると、出力が1になることが確認出来るかと思います。
1になっている回路は黄緑、0は緑になっているので、視覚的にもわかりやすいと思います。
論理ゲートから真理値表を作成する
Logisimの便利な点として、論理ゲートから真理値表を作成、またはその逆ができます。
実際に今回作ったANDゲートで真理値表を作成していきます。
メニューのProject→Analyze Circuitで解析画面がでてきます。
ここでTableを選択すると、回路の真理値表が見ることが出来ます。
真理値表から論理ゲートを作成する
先ほど表示した真理値表の出力を変化させて、真理値表から論理ゲートを作成することができます。
ためしにNANDゲートを作ってみたいと思います。
NANDは次のような真理値表になります。
A | B | X |
---|---|---|
0 | 0 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
出力値をクリックすると、0→1のように変更できます。
下のBuild Circuitボタンを選択します。
はい!一応作成はできました。しかし、NOTのあとにORを作るという感じで、意図したNANDゲートにはなってないですね。。。
作成アルゴリズムは最適な回路図というわけではないので、回路図の自動生成についてはそこまでだと思います。あくまで真理値表を満たすゲートを作成する感じです。
Build Circuitボタンを押した後の設定画面でUse NAND onlyにチェックすると、NANDゲートで作成してくれます。
まとめ
- 論理ゲートを触ってみたい人はLogisimがいいぞ!
- 自動的に論理ゲートから真理値表、またはその逆が簡単にできる!
- ただし生成する論理ゲートは真理値表を満たす論理ゲートであり、最適なものではないので注意!
閲覧ありがとうございました!
マイペースにつぶやいています。
Discussion
2007年頃に Logisim を見つけ、周りに勧めてきましたが、Java の導入に難儀する若者がおります。
ここ数年は、インストール不要のオンラインサービス CircuitVerse https://circuitverse.org を勧めています。
たぶん同様のメンバーが運営していると思います。