JavaScript のみによる回路 simulation
この page では、JavaScript で実装した小規模回路 simulation 用の
script code とその使用例を紹介しています。
主な特徴
- JavaScript のみを使用しています。Java Applet を含めて、他の機能は一切使用していません。そのため、重くて不安定な plug-in や外部 application 等は必要ありません。もちろん、server 側でも単なる httpd 以外何も要りません。
- Flush 等を使用していないので、simulation を行なう信号の組み合わせに制限がありません(論理演算はすべて realtime で行なわれます)。
- Simulation を実行するための基本的な機能が 1 つの script にまとまっているので、作成した page の中でこの script を include し、script 中の部品を呼び出すことによって、任意の回路を構成・simulate することが可能です。
- 回路図中の配線の色が論理によって変化するので、構成した回路の中がどのような状態になっているかが一目で判ります。
- 入力は、論理値によるほか、値(10 進・16 進)によって与えることができ、その中の任意の bit を取り出して論理演算で使用することができます。また、任意の信号を合成して値として表示することも可能です。
- 回路図は任意の倍率で表示することができます。倍率は描画前に指定することができるほか、表示後に変更することも可能です。また、変倍表示時の基準座標を設定することもできます。
- Random logic については、入力端子の本数を任意に設定できます。また、論理演算の内容も任意に定義できるので、比較的大きな規模の回路を記述する場合は black box 的な素子を定義して使用することもできます。
- 回路素子で発生する delay も simulation・表現できるため、master-slave flip-flop や同期回路など、clock や delay に依存して動作する回路の理解が容易です。
- 単純な script で実現されているため、code size があまり大きくありません(script file そのものは 14KB 弱)。また、simulation に必要な機能は script に含まれているので、user が作成する HTML file も小さくなります(回路規模にもよるが、単純な回路であれば数百 byte 程度)。
- File が小さいので、AirH”や ISDN 環境などの細い回線でも stress なく download 出来ます。出先や移動中など、移動体環境での実行にも向いています。
- 現在のところ、Gecko engine を使用している Netscape 7.1/Mozilla 1.5〜/Opera 等と、IE 6.0 SP1 での動作を確認しています。JavaScript の互換性や機能の問題で、Netscape 4.x 等の旧い browser では実行できません。
まだ解説を書いていません‥‥。とりあえず、file はこちら。
この script を使用して構成した回路の例です(今後も順次増やしていきます)。
現時点での既知の問題は以下の通りです。
- IE 6.0SP1 で画像や配線などの一部が欠けたりする → IE が PNG の透過色をうまく処理できない問題のため。対応予定なし。
今後の課題・改良予定は以下の通りです。
- 回路図内に機能 button を置けるようにする
- 回路図内に任意の文字列を置けるようにする
- 回路図内に(説明用に)任意の色の矩形を置けるようにする
- Document を書く
お問い合わせは Akihiko GOTANDA (a-gota_AT_agt.ne.jp) まで。