
初心者向けのサンプル回路を書いていて、ふと、論理ループを作ってしまう初心者が多そうだなと思った。
Verilogコンパイラにかければ分かるというのは、初心者向きではないので、論理ループを検出してエラーを出すようにした。
まだ、リリースしていないけれど、コードは変更済み。
この例題の説明を書いていて思ったのだが、シミュレーションサポートのためのテストベンチ生成は、サンプルを使わせるときにも、教えるステップ数が圧倒的に少なくなるので、とても便利だった。
たとえば、初めてのNSL回路例題として、
のようなモジュールを書いてもらい、NSL COREでsimulationを指定してコンパイルし、できたVerilogファイルをiverilogでコンパイルすれば、vvpでシミュレーションが動作する。
初心者には一切 Verilogを見せる必要がないので、大幅に手間が減る。
こんな簡単な仕組みは早く作っておけばよかったか。。
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を見せる必要がないので、大幅に手間が減る。
こんな簡単な仕組みは早く作っておけばよかったか。。