Main Content

このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。

SystemVerilog で生成された DPI 関数を使用する

生成された DPI コンポーネントを SystemVerilog 環境で使用するには、まず SystemVerilog モジュール内に「DPI」宣言を含む生成された関数をインポートします。次に、生成された関数を呼び出してスケジュールします。インポートされた生成関数を含む SystemVerilog コードをコンパイルするときは、DPI 対応の SystemVerilog コンパイラを使用し、コンポーネント ファイル名を指定します。

次の例は、DPI_blk ブロック用に生成された DPI コンポーネントを SystemVerilog モジュールに追加する方法を示しています。

  1. 生成された関数をインポートします。

    import "DPI" function void DPI_blk1_initialize();
    import "DPI" function void DPI_blk1_ouptut(output real blk1_Y_Out1);
    import "DPI" function void DPI_blk1_update(input real blk1_U_On1);
  2. 関数 Initialize を呼び出します。

    DPI_blk1_initialize();
  3. output および update 関数呼び出しをスケジュールします。

    DPI_blk1_output( blk1_Y_Out1);
    DPI_blk1_update( blk1_U_In1);

import "DPI" function void DPI_blk1_initialize();
import "DPI" function void DPI_blk1_ouptut(output real blk1_Y_Out1);
import "DPI" function void DPI_blk1_update(input real blk1_U_On1);

module test_twoblock_tb;

		initial begin
			DPI_blk1_initialization();
		end

		always@(posedge clk) begin
			#1
			DPI_blk1_output(blk1_Y_Out1);
			DPI_blk1_update(blk1_U_In1);
		end

		always@(posedge clk)
			begin
				blk1_U_In1 = blk1_U_In1 + 1.0;
			end