我正在尝试使用VPI从C访问Systemverilog关联数组。如果我提供了一个现有密钥,则可以使用以下代码 访问密钥的数组元素。
index = vpi_handle_by_index(reg_array, 200); // 200 is a valid key
vpi_value.format = vpiIntVal;
vpi_get_value(index, &vpi_value);
但是,如果密钥无效(不存在),则此代码会生成错误消息。 如何在不生成错误消息的情况下检查数组中是否存在键?
答案 0 :(得分:1)
VPI没有提供机制来查看密钥是否存在。您只能遍历所有数组元素,并在每个元素上使用vpi_handle (vpiIndex, var_select_handle)
来收集键,并在匹配时停止。