2016-05-22 9 views
0

信号と変数の値をVerilog Programming Interface(VPI)で変更することが可能です。名前付きイベントを起動するには、vpi_put_value(...)を実行することもできます。VPIを使用してタスクまたは機能を呼び出す

関数を呼び出すか、タスクを開始することはどういうわけかできますか?

答えて

0

VPIでは、タスクや関数をCから呼び出すことはできませんが、DPIはこれを行いません。技術的には、DPIはSystemVerilogから呼び出されたCルーチンからSystemVerilogルーチンを呼び出すことしかできません。 DPIにはインポート/エクスポートメカニズムがあり、SystemVerilogコードで作成されたすべてのスレッドのプロセスIDを維持する必要があります。

+0

これは私が探しているものではありません。 DPIを実行すると、その関数をエクスポートする必要があります。私がやりたかったのは、クラスオブジェクトのハンドルを取得し、VPIを使用して関数(つまりリフレクション)を呼び出すことでした。 –

+0

言語の境界を越えてクラスハンドルを渡すことはできません。あなたが行う必要があるのは、エクスポートできるラッパー関数を作成することであり、その関数はクラスメソッドを呼び出すことができます。 –

関連する問題