« Prev | Next » 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に示すように両方のタイプのファイルのコンパイルコマンドに明示的なスイッチを追加する必要があります。 WSystemVerilogファイルをコンパイルするときは、-dpilibスイッチをalogコマンドに含める必要があります。 Cファイルをコンパイルするときは、-dpiスイッチを含める必要があります。 Windowsオペレーティングシステムを使用している場合は、-sv_link <library_name>も含める必要があります。 最後にasimコマンドで、インポートされたCファンクションをシミュレーターエンジンで検出するために-sv_libを使用する必要があります。 図 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)を参照してください。 Previous article Next article