0
信号と変数の値をVerilog Programming Interface(VPI)で変更することが可能です。名前付きイベントを起動するには、vpi_put_value(...)
を実行することもできます。VPIを使用してタスクまたは機能を呼び出す
関数を呼び出すか、タスクを開始することはどういうわけかできますか?
信号と変数の値をVerilog Programming Interface(VPI)で変更することが可能です。名前付きイベントを起動するには、vpi_put_value(...)
を実行することもできます。VPIを使用してタスクまたは機能を呼び出す
関数を呼び出すか、タスクを開始することはどういうわけかできますか?
VPIでは、タスクや関数をCから呼び出すことはできませんが、DPIはこれを行いません。技術的には、DPIはSystemVerilogから呼び出されたCルーチンからSystemVerilogルーチンを呼び出すことしかできません。 DPIにはインポート/エクスポートメカニズムがあり、SystemVerilogコードで作成されたすべてのスレッドのプロセスIDを維持する必要があります。
これは私が探しているものではありません。 DPIを実行すると、その関数をエクスポートする必要があります。私がやりたかったのは、クラスオブジェクトのハンドルを取得し、VPIを使用して関数(つまりリフレクション)を呼び出すことでした。 –
言語の境界を越えてクラスハンドルを渡すことはできません。あなたが行う必要があるのは、エクスポートできるラッパー関数を作成することであり、その関数はクラスメソッドを呼び出すことができます。 –