Riviera-PROでSystemVerilog DPI-Cの基本的な使用法

このアプリケーションノートでは、Riviera-PROでSystemVerilog DPI-Cを使用したC言語インタフェースの基本について説明します。

SystemVerilog DPI-Cとは何ですか?

SystemVerilog DPI-Cにより、Cプログラミング言語とのインタフェースが可能になります。このインタフェース機能により、既存のCライブラリを含むC言語ファンクションをSystemVerilogテストベンチで使用できるようになります。

Cファンクションのインポートと使用

SystemVerilogファイルでCファンクションを使用するには、下記の様にインポートする必要があります:

import “DPI-C” function <function_type> function_name(arguments); 

インポートされるとこのファンクションへのコールは、SystemVerilog ファンクションコールと同じ構文と使用法になります。

SystemVerilogファンクションのエクスポート

CコードでSystemVerilogファンクション/タスクを使用するには、下記の様にエクスポートする必要があります:

export “DPI-C” function function_name;

//function declaration
function void  function_name(arguments);
    //function body
endtask

必要なインクルードファイル

"svdpi.h"ファイル(各Riviera-PROインストールで提供:/interfaces/include/svdpi.h)には、SystemVerilog DPIで使用される定数定義、構造体定義、およびルーチン宣言が含まれており、Cファイルにインクルードする必要があります。

メインフロー

必要なすべてのCまたはSystemVerilogファンクションが適切にインポートまたはエクスポートされたら、ファイルをコンパイルする必要があります。
Riviera-PROでは、図 1に示すように両方のタイプのファイルのコンパイルコマンドに明示的なスイッチを追加する必要があります。

図 1: Riviera-PROの厳密なDPIフロー

注意:GUIを使用している場合、これらのスイッチはデザインオプションウィンドウで設定できます。

図 2: デザインオプション/プロパティを開く

図 3: DPI strict modeをイネーブル

図 4: ccompの-dpiスイッチの設定

図 5: Windowsオペレーティングシステムを使用している場合のシミュレーションライブラリのリンク

図 6: -sv_libスイッチを設定し、asimコマンドのDPIライブラリを示す

Riviera-PROのインストールディレクトリ(<installation_path>/examples/interfaces/dpi)には、参考用の基本的なDPIサンプルデザインが含まれています。SystemVerilog DPI-CとRiviera-PROの使用の詳細については、Riviera-PROユーザーガイド(Help -> Product Help -> Riviera-PRO Interfaces -> SystemVerilog DPI)を参照してください。



Printed version of site: www.aldec.com/jp/support/resources/documentation/articles/1900