・SystemVerilog対応なシミュレータということで、Quartus上ではQuestaがご推奨のようなのだけど、なぜか起動してくれない。
・もうちょっとなにか無いのかなと思って探していたらDSimというのがあった。
・
VSCodeのプラグインとして実装されているもの。
・丸文さんが作成した
GOWIN用のチュートリアルでも使われているので、まぁさほど怪しいことはないのだろう。
・検索してみると単独で起動して使うこともできそうだけど、とりあえずプラグインとして使ってみることにしよう。
・で、VSCodeのプラグインなので、いつものとおりやれば良いのだろう。FPGAの開発環境のところにはインストールしていなかったけど、Ubuntu Softwareにあったので、簡単インストール。ExtensionsでDSimを探してインストール。とりあえずエディタのキーバインドもVimにしたいので、Vimもついでに。(個人的にはEmacs風というのか、xyzzyが気に入っていたのだけど、Linux版のxyzzyはリリースされないのだな)
・このあと、ライセンス取得のために
ご本家でユーザ登録をして、VSCode上でポチッとクリックすればライセンス認証完了。このあたりまでは丸文さんのドキュメントでOK。
・さて、とりあえずチュートリアルを・・と思ったらこれがすでに半分出来上がった環境で動かすだけなので1から作るのにはあまり参考にならない。まぁそれでも一応シミュレーションで波形までVSCodeの画面上に出るところは確認できた。
・このあとが結構いろいろあったけど、なんとかIcarusでシミュレーションしたり、Quartusで合成して動作確認していたロジックをDSimでシミュレーションするのはできた。
・ソースコードファイルを登録するのにGUIでクリックでポチポチとはできなくて、../xxx.svなんて具合に書いてやらないといけないのがちょっと面倒う臭かった。
・SIMULATION CONFIGURATIONで右クリックで「Configure Simulation」を選択して、Optionsを
-top work.Tbench -L BlinkCol +acc+b -waves waves.vcd
なんて具合にして(Tbenchがテストベンチのモジュール名、BlinkColがテストベンチがターゲットにしているトップモジュールなのだそうで。+acc+bが波形データを取得するという謎オプション。-wavesで波形ファイル名を指定すると拡張子を見て勝手にフォーマットを決めてくれる。この例なら.vcdで出してくれるので、gtkwaveで見ることができる。
・ちなみに、テストベンチの前についてる”work.”というのはお約束のおまじないみたいだな・・・と思ったら、LibraryConfigurationでソースファイルを追加するとき、LibraryNameのデフォルトがworkだったから、たぶんこれを引きずっているんだな。
・ちょいと引っかかったのがinterfaceの記述で、モジュールポートにinterfaceを使ったような場合に、
interface spi_if.maaster MasterPort;
なんてやるとエラーで、
spi_if.maaster MasterPort;
という具合にしないといけないところ。
・このあたり、もう少し使い込んだから一回まとめておくか。