back
シミュレーションによる動作検証(エクセルの利用)
「New 2004年 4月」
「New 2004年 4月」
パソコンと,CAD(Computer Aided Design)ソフトを使うと,
シミュレーションによって
回路動作を検証できます。
CAD と言っても難しいソフトを使う必要はありません。
普段使っている表計算(例えばエクセル)でもシミュレーションは可能です。
指導書の第2ページの回路をシミュレーションしてみましょう。
- Q : 出力1
- Q' : 出力2
- q : 微小時間前の出力1
- q' : 微小時間前の出力2
- S1 : 入力1
- R1 : 入力2
- S = Not( S1 )
- R = Not( R1 )
- Q = Nand( S , q' )
- Q' = Nand( R , q )
ここで,下図のようにエクセルの表を考えます。
横軸は各変数を,縦軸は時間の経過を意味します。
Q と q の関係については,縦軸方向の一つ前が q,一つ後ろが Q とします。
詳細は図の後で説明します。
(xls) 同じファイルのダウンロード
この表の中身について説明します。
- A列〜F列 = シミュレーション用の計算をするセル
- H列〜M列 = 表示をきれいに見せるための演算をするセル
- グラフ = 計算結果を表示。H列〜M列の内容を折れ線グラフ化
- 第1行 = タイトル:見たまま(S1, R1 などの文字が入力されている)
- 第2行 = 最初の状態:見たまま(セルA2 には 1 が,セルB1 には 0 が保存されている)
なお,1 は真を表す。従来型の TTL ロジックで言えば 5[V] を意味する。
また,0 は偽を表す。従来型の TTL ロジックで言えば 0[V] を意味する。
- 第3行 = ある瞬間の各論理の値。
'ある瞬間'とは,第2行よりも後であり,第4行よりも前である。
実際には,この行から後ろに数えて
3行目以降に示すような数式が入力されている。
- 第4行以降 = 第3行のコピー
ただし,A列とB列は入力のセルなので,必要に応じて異なる値を入力する。
- セルA3 = 数式 "=A2" ... 直前の値を保つという意味
- セルB3 = 数式 "=B2" ... 同上
- セルC3 = 数式 "=1-A3" ... Not はこの数式で表される。
- セルD3 = 数式 "=1-B3" ... 同上
- セルE3 = 数式 "=1-Min( C3 , F2 )" ... Min は論理積(And演算)をする。
1 からの引き算と合わせる事で Nand 計算を行う。
なお,F 行(出力 Q')について第 2 行を
使っているのは,直前の値(即ち q')で演算するためである。
- セルF3 = 数式 "=1-Min( D3 , E2 )" ... 同上
- セルH3 = 数式 "=A3+10.5" ... どの論理も 0 または 1 なので,
そのまま表示すると全ての論理が重なって見えてしまう。
そこで,それぞれに異なる値を加える。
- セルI3 = 数式 "=B3+8.5" ... 同上 ただし,加える値は8.5
- セルJ3 = 数式 "=C3+6.5" ... 同上 ただし,加える値は6.5
- セルK3 = 数式 "=D3+4.5" ... 同上 ただし,加える値は4.5
- セルL3 = 数式 "=E3+2.5" ... 同上 ただし,加える値は2.5
- セルM3 = 数式 "=F3+0.5" ... 同上 ただし,加える値は0.5
それでは,実際に A 行と B 行の値を変えてみたとき,
出力がどうなるかシミュレーションしてみましょう。
もちろん,C〜M 列については一切いじる必要はありません。
なお,エクセルでは縦軸は 3万行程度まで延長可能です。
新たな行を入れる場所は,
第20行目と第21行目の間が最適です。
ここに新たな行を入れても,グラフについて全くいじる必要がありません。
もしも新たな行を入れるのが最終行の後ろだとすると,
グラフを再設定する必要があります。
特に操作方法を書きませんが,グラフが見やすくなるための操作をして次の図が得られました。