goo blog サービス終了のお知らせ 

組み込まれたエンジニア

我輩は石である。名前はまだ無い。

NSL 論理ループの検出

2010-06-22 00:58:12 | Weblog
初心者向けのサンプル回路を書いていて、ふと、論理ループを作ってしまう初心者が多そうだなと思った。

Verilogコンパイラにかければ分かるというのは、初心者向きではないので、論理ループを検出してエラーを出すようにした。

まだ、リリースしていないけれど、コードは変更済み。

この例題の説明を書いていて思ったのだが、シミュレーションサポートのためのテストベンチ生成は、サンプルを使わせるときにも、教えるステップ数が圧倒的に少なくなるので、とても便利だった。



たとえば、初めてのNSL回路例題として、

declare tut0 simulation { }
 
module tut0 {
    _finish("Hello World");
}


のようなモジュールを書いてもらい、NSL COREでsimulationを指定してコンパイルし、できたVerilogファイルをiverilogでコンパイルすれば、vvpでシミュレーションが動作する。
$ iverilog -o tut0.vvp tut0.v
$ vvp tut0.vvp
VCD info: dumpfile tut0.vcd opened for output.
Hello World

初心者には一切 Verilogを見せる必要がないので、大幅に手間が減る。

こんな簡単な仕組みは早く作っておけばよかったか。。

最新の画像もっと見る