我正在使用VPI实现Verilog的"force“和"release”,以便可以从C例程中调用它们。要强制将一个值转换为向量网,我需要为value_p创建一个s_vpi_vecval数组。我为该数组分配了一个存储空间,并用我想要的值填充了它。然后,我使用vpi_put_value()将向量值强制转换为净值。
IEEE1800标准明确指出,调用例程需要为value_p的这种结构分配一个空间,但并没有说明何时释放存储空间是安全的。在调用vpi_put_value()之后立即释放存储空间安全吗?
我假设vpi_put_value()会在它们的边上保存一份力值的副本。对此的任何见解都是非常感谢的。
发布于 2018-03-01 07:06:27
我认为可以放心地假设您可以在进行VPI调用后释放内存-这就是所有其他VPI例程的工作方式。
通过使用相同的结构指针对dpi_put_value()进行两次调用,可以很容易地测试这一点。
我已经添加了一个request来澄清IEEE标准。
https://stackoverflow.com/questions/49039514
复制相似问题