【第6回】デジタル回路をシミュレートしてみよう!

次回の記事

terapotan.hatenablog.jp

前回の記事

terapotan.hatenablog.jp

連載記事一覧

  terapotan.hatenablog.jp

今回は、デジタル回路のシミュレーションを行っていきます。

デジタル回路で使う部品

CircuitSimulatorAppletでは、前回作成したトランジスタオペアンプなどのアナログ回路の他に、デジタル回路を作ることが出来ます。

デジタル回路リスト
フリップフロップ回路リスト

カウンタなど、順序回路を作るときに使うフリップフロップも各種用意されます。

入力端子の数

AND・OR・XORの入力端子の数は、自由に設定することができます。
入力端子の数を変更するには、変更したい部品を右クリックし、Editをクリックして編集画面を開き、# of Inputsに入力端子の数を入力します。
デフォルトの端子数は2であるため、図には# of Inputsに2が入力されています。

入力数を入力

NOT・AND・XOR・ORは、Logic Gates,Input and Outputから、フリップ・フロップは、Digital Chipsから追加出来ます。
0や1の入力・表示は、Logic Gates,Input and Output - Add Logic InputとLogic Gates,Input and Output - Add Logic Outputから追加することが出来ます。

多数決回路

下の図の回路を作成します。図を見ながら回路を自分で作成してもいいですし、下のリンクから、多数決回路.txtをダウンロードして、読み込んでも構いません。(読み込み方は、第2回をご覧ください。)
回路データへのリンク

多数決回路の図

左側の入力の値は、クリックすることで変更できます。

入力値変更アニメーション

回路を動かしてみる

この回路は、入力のHの数がLの数よりも大きいとH、Lの数がHの数よりも大きいとLを出力する回路です。
いろんな入力を試してその通りになっているか、確かめてみましょう。

出力がHになるとき
出力がLになるとき

カウンタ回路

下の図の回路を作成します。図を見ながら回路を自分で作成してもいいですし、下のリンクから、4進アップカウンタ.txtをダウンロードして、読み込んでも構いません。(読み込み方は、第2回をご覧ください。)
回路データへのリンク

カウンタ回路の図

出力の表示をH・Lから、1・0表示に変更するには、出力の編集画面でNumericにチェックを入れます。

Numericにチェックを入れる

デジタル回路でよく用いる、クロック発生源は、Inputs and Sources-Add Clockから追加できます。

回路を動かしてみる

上の図の回路は、クロックが立ち上がるたびに、出力が00→01→10→11→00……と変化していく4進アップカウンタです。

シミュレーションを実行すると、00→01→10→11→00……と変化しているのがわかります。

Column:ポジティブエッジ・ネガティブエッジ

フリップ・フロップには、クロックが立ち上がったときに動作するものと、逆に下がったときに動作するものが存在します。
前者をポジティブエッジ型、後者をネガティブエッジ型と言いますが、CircuitSimulatorAppletでは、フリップ・フロップのEdit画面のPositive Edge Triggeredで、ネガティブエッジ型にするか、ポジティブエッジ型にするか選ぶことが出来ます。
Positive Edge Triggeredにチェックをつけると、ポジティブエッジ型に、チェックを付けないとネガティブエッジ型になります。

タイムチャートを作る

クロックと二つの出力を縦に積んで表示した、いわゆるタイムチャートを表示させます。CircuitSimulatorAppletでは、表示した波形を縦に積む機能があるため、それを使ってタイムチャートを作成します。

波形を表示する

タイムチャートにする波形を全て表示させます。この時、タイムチャートで上の方に表示させたい波形から、表示させる必要があります。
タイムチャートで、波形1,波形2,クロックと上から表示させたい場合、波形も波形1,波形2,クロックの順で表示させる必要があります。

今回は、2ケタ目,1ケタ目,クロックの順でタイムチャートを表示させたいため、2ケタ目,1ケタ目,クロックの順で波形を表示させます。

各波形の場所

波形を表示させる方法は、第2回を見てください。

クロックは、初めの状態では、電圧と一緒に電流も表示されています。電流の上でRemove plotを押して、電流の値を表示させないようにしてください。(詳しくは、第4回をご覧ください。)

全ての波形を説明通り表示させると、下のような表示となるはずです。

全ての波形

波形を積み重ねる

一番右の波形で右クリックし、stackをクリックします。

stackの場所

すると、下の図のように、1ケタ目とクロックの波形が積み重なって表示されます。
波形が積み重なった

同様に、一番左の波形で右クリックし、stackをクリックすると、下の図のようなタイムチャートが表示されます。

タイムチャートの完成

次回予告

CircuitSimulatorAppletには、基本的なデジタル回路の部品は存在します。ですが、カウンタや多数決回路といった回路を作るには、たくさんの部品を組み合わせる必要があります。回路の仕組みを知りたい場合はそれでもいいかもしれませんが、手っ取り早く回路を作りたい場合は不便です。

そこで、CircuitSimulatorAppletにはcustom logicという部品があるのですが……詳しくは次回。

う-ん、よく分からん!

この記事を読んで、疑問に思うことがあったときは、気軽にコメント欄や私のTwitterから質問してください。

参考文献

CircuitSimulatorApplet 全電子部品対訳表

CircuitSimulatorApplet上に表示される電子部品の名前は、全て英語です。
英語で書かれた電子部品の名前を見て、すぐに実際の電子部品が思い浮かぶ人はいいかもしれませんが、そうでない人が大半でしょう。

下の記事では、CircuitSimulatorAppletにある全ての部品の日本語訳を載せてあります。
「日本語では○○っていう部品なんだけど、英語では何ていうんだろう?」「この部品、CircuitSimulatorAppletのどこにあるんだ?」という時にお使いください。

terapotan.hatenablog.jp

多数決回路

本文中の多数決回路は、以下のサイトの回路を使用しました。 nw.tsuda.ac.jp

4進アップカウンタ

本文中の4進アップカウンタは、以下のサイトの回路を使用しました。 home.a00.itscom.net

次回の記事

terapotan.hatenablog.jp

前回の記事

terapotan.hatenablog.jp

連載記事一覧

  terapotan.hatenablog.jp