電子ブロック工房:2009年 02月の記事

Verilogライクなシミュレータ [シミュレーション]

2009年2月24日

C++で次のように書ける、ロジック回路のシミュレータを作ってみた。

bool input1,input2;
logic* na1=nandGate();
logic* na2=nandGate();
na1->connect(&input1,&na2->output);
na2->connect(&na1->output,&input2);

これは、NANDを二つつなげただけの、もっともシンプルなフリップフロップ。前にPHPで書いたものと違って、今回のは回路の内の遅延などもシミュレーションできるようにしてある。なので、ラッチやフリップフロップを組み合わせた複雑な回路のシミュレーションにも使えるはず。

使ったことないし良く分からないが、Verilogというものに構文が良く似ているようだ。既存のソフトの使い方を覚えるより、使いにくくても自作して細かな調整を自身で行うほうが、私には向いている。今回のシミュレータは、遅延時間を素子ごとにランダムに設定することもできるので、多分、回路を設計するさいの動作確認にも使える。

多分必要なもの [一般的なこと]

2009年2月21日

更新は、一年ぶり(正確には、1年3ヶ月)。

制作にあたって、たぶん次のようなツールが必要になる。USBインターフェースのI/Oポートをピックアッピしてみた。

NI USB 6501
USBee AX

NIの方は、24ポートあるのが魅力。少し値ははるが96ポートの製品もあるらしい。
USBeeの方は、8ポートだが、多分(よく調べていない)、スピードはこちらの方が速い。

どちらも、$100ちょっとの価格。とりあえず購入するのは、NIの方かな。実績もあるし。