我正在尝试使用VPI从C访问Systemverilog关联数组。如果键已经存在,我可以使用以下代码将值写入到键的数组元素中。
index = vpi_handle_by_index(reg_array, 200); // 200 is an existing key
vpi_value.format = vpiIntVal;
vpi_value.value.integer = (PLI_INT32)array_var_val;
vpi_put_value(index, &vpi_value, NULL, vpiNoDelay);如果键不存在,vpi_handle_by_index()将返回NULL。我的问题是如何向关联数组添加新的键?
类似地,我还希望使用VPI将一个值推送到Systemverilog队列。如何使用VPI实现push_back(val)方法?
发布于 2018-08-09 05:31:27
无法通过VPI修改动态数组/队列的大小。SystemVerilog VPI缺少许多处理动态分配数组的功能。
VPI主要是一个与现有设计数据库交互的工具接口。您应该将DPI用作建模/跨语言接口。
https://stackoverflow.com/questions/51755579
复制相似问题