如何使用VPI向Systemverilog关联数组添加新密钥

时间:2018-08-08 20:59:40

标签: system-verilog vpi

我正在尝试使用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)方法?

1 个答案:

答案 0 :(得分:1)

无法通过VPI修改动态数组/队列的大小。 SystemVerilog VPI缺少处理动态分配的阵列的许多功能。

VPI主要是与现有设计数据库交互的工具界面。您应该将DPI用作建模/中间语言界面。