VSCode HDL Runner v0.2.2

VSCode HDL Runner

はじめに

VSCode HDL RunnerはベンダーフリーのHDL開発向けのVSCodeの拡張機能です。
コンパイルやテスト実行などのシミュレーションやLintやCDCなどのポイントツールまで、よく使うコマンドスクリプトを登録して、VSCode上で実行を支援します。

主な機能

  • ツリービュー管理:コンパイル、テスト実行、Lintなどのコマンド/スクリプトを登録してボタンクリックで実行します。
  • リグレッションパネル:テストの結果や進捗を可視化するビューワーを持ちます。
  • パラレル実行:テストを複数のプロセスで同時に実行可能です。
  • ファイルウォッチャー:結果の再現性のためにHDLの変更を監視します。

Get Started

シミュレータにiverilogを使用するときの設定方法についてご説明します。

最小設定

カレントディレクトリの.vscode/settings.jsonに下記を追加します。

{
  "hdlRunner.items": {
    "sim": {
      "type": "group",
      "items": {
        "compile": {
          "type": "stage",
          "command": "iverilog -g2012 -o sim.out -f filelist.f"
        },
        "runTest": {
          "type": "stage",
          "dependsOn": ["sim.compile"], 
          "command": "vvp sim.out"
        }
      }
    }
  },
  "hdlRunner.tests": {
    "sample_test": { "plusargs": [] }
  }
}

“hdlRunner.items”に実行するコマンド/スクリプトを定義します。

各項目の説明は以下をご確認ください。

{
  "hdlRunner.items": {
    "sim": {  // アイテム名
      "type": "group", // typeはgroup or stageから選択。groupは子itemを持ち、
                       // stageはcommandを持つ。
      "items": {  // simの子アイテム
        "compile": {  // simの子アイテムにcompileを作成
          "type": "stage", // typeがstageなのでcommandを設定可能
          "command": "iverilog -g2012 -o sim.out -f filelist.f" // iverilogのコンパイルコマンドを登録
        },
        "runTest": {  // runTestはリザーブドワードでテストを実行するときに使用する
          "type": "stage",
          "dependsOn": ["sim.compile"], // dependsOnを設定することで、runTest前にcompileが実行されるようになる。
          "command": "vvp sim.out" // iverilogのシミュレーション実行コマンドを登録
        }
      }
    }
  },
  "hdlRunner.tests": { // テストを登録
    "sample_test": { "plusargs": [] } // テストごとに引数を設定可能
  }
}

ファイルリストの作成

DUT/TB/Testを含んだファイルリストを作成してfilelist.fの名前で保存します。

VSCode HDL Runnerを有効化

Ctrl+Shift+PでHDL Runner: Enable Extensionを実行して有効化します。

有効化前

有効化後

有効化すると、ツリービューにsettings.jsonで設定したアイテムが表示されます。

コマンド実行

runTestをクリックします。Quick Pickが起動するので実行したいテストを選択します。

dependsOnでsim.compileを指定しているので、compileは自動で実行されます。

実行が完了するとGUIが起動します。

結果の確認

前項ですでにGUIが起動していますが、HDL Runner: Open Regression PanelからもGUIを起動可能です。

Open logをクリックすると、それぞれのテストのログを確認できます。

テスト実行の補足

テスト実行用のアイテム

テストを実行するためのアイテムとして、runTest/runSelectedTest/runAllTestがリザーブドワードとして設定されています。

  • runTest:Quick Pickでテストを1本指定して実行
  • runSelectedTest:Quick Pickでテストを複数本指定して実行
  • runAllTest:settings.jsonに記載のテストすべてを実行

テスト実行時の引数

run*Testでテストを実行するときには下記5つの変数を使用することが可能です。

  • ${logs}: ログ格納用
  • ${works}: 実行ディレクトリ。中間ファイルなどを置く
  • ${waves}: 波形格納用
  • ${covs}: カバレッジ格納用
  • ${results}: テスト結果をGUIで表示する用のメタデータを格納

また、plusargsで記述した引数がコマンドの後ろに追加されていきます。

実行結果の格納場所

上記のディレクトリはout/run_YYYYMMDD_…というディレクトリが自動生成されて、その下に生成されます。

まとめ

VSCode HDL Runnerについて説明しました。

コメント

タイトルとURLをコピーしました