Verilog 要与VPI VPI put_value()一起使用的值p的分配结构

Verilog 要与VPI VPI put_value()一起使用的值p的分配结构,verilog,system-verilog,vpi,Verilog,System Verilog,Vpi,我正在使用VPI实现Verilog“force”和“release”,这样就可以从C例程调用它们。要将值强制到向量网,我需要为value\u p创建一个s_vpi_vecval数组。 我为数组分配了一个存储空间,并用我想要的值填充它。 然后我使用vpi_put_value()将向量值强制到网络中 IEEE1800标准明确指出,调用例程需要为这种结构分配一个空间,以实现value\p。但它没有说明何时可以安全地释放存储空间。 调用vpi_put_value()后释放存储是否安全 我假设vpi_pu

我正在使用VPI实现Verilog“force”和“release”,这样就可以从C例程调用它们。要将值强制到向量网,我需要为value\u p创建一个s_vpi_vecval数组。 我为数组分配了一个存储空间,并用我想要的值填充它。 然后我使用vpi_put_value()将向量值强制到网络中

IEEE1800标准明确指出,调用例程需要为这种结构分配一个空间,以实现value\p。但它没有说明何时可以安全地释放存储空间。 调用vpi_put_value()后释放存储是否安全

我假设vpi_put_value()将在其一侧保留一个力值的副本。
对此的任何见解都将不胜感激

我认为可以安全地假设您可以在进行VPI调用后释放内存-这就是所有其他VPI例程的工作方式

您可以通过使用同一个结构指针对
dpi\u put\u value()
进行两次调用来轻松测试这一点


我已经加入了一份声明,以澄清IEEE标准

戴夫,谢谢你的及时回答。我的代码在调用后释放了存储空间,并且工作正常。我想你是对的。希望该标准对呼叫例行端存储管理更加清晰。我知道使用vcs是安全的。我认为其他供应商也应该这样做。