Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

Aldec : DPI-C


Aldecシリーズの第1弾は、私のお気に入りのDPI-Cです。

Riviera-PROは、SystemVerilog DPI-Cをサポートしています。
examples/interface/dpi/basicディレクトリが例題です。

    ・dpi_basic.sv  => SystemVerilog コード
  ・dpi_basic.cpp => C++ コード

C++コードをコンパイルするために別途C/C++コンパイラをインストール必要はありません。
(ModelSim AE/XEなどでは、別途、MSYS/MINGWにてコンパイラを用意する必要がありましたが)

  set TARGET debug/dpi_lib
  ccomp -dpi -o $TARGET -dbg src/dpi_basic.cpp
  alog -dbg src/dpi_basic.sv
C++コードは、ccompコマンドにてコンパイルします。そのとき、-dpiオプションを付けます。
SystemVerilogコードは、alogコマンドにてコンパイルします(ModelSimと互換のvlogコマンドもあります)

各コマンドの-dbgオプションは、デバッグに必要な情報を追加しています。

ModelSimでは、vsimコマンドにて-dpiexportobjオプションを指定して、export.objの生成が必要ですが、
Riviera-PROでは必要ないのが、ちょっと、うれしいですね!

検証、Verification、Aldec、SystemVerilog、DPI-C