System Verilog DPI - 未知的阵列大小

时间:2013-08-25 11:02:11

标签: system-verilog system-verilog-dpi

我有以下代码:

file.sv

module svtest();

    import "DPI-C" function void my_func(output bit [31:0] id, input bit [31:0] size);

    bit [31:0] my_id;
    bit [31:0] my_size;

    initial
    begin
        my_size = 1 << 30;
        my_func(my_id, my_size);
        $finish();
    end

endmodule

filc.c

void my_func(svBitVecVal* id, svBitVecVal* size)
{
 . . . . .
}

我有的问题: 我想将“大小”的矢量位不是常量长度(32位),我希望将未定义的位向量传递给c文件。 我看到类型“svOpenArrayHandle” - 看起来不错,但我无法弄清楚如何在DPI导入上声明它:

import "DPI-C" function void my_func(output bit [31:0] id, input bit size[]) - &gt;提出错误: - (

有什么建议吗?

感谢。

1 个答案:

答案 0 :(得分:0)

无法将大小不一的数组传递给带有指针的C函数。你将要合成硬件,它不能变化。它不能根据您的要求增长或缩小。