1

我有以下代码:

文件.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

文件

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

我遇到的问题:我希望“大小”的位向量不是 const 长度(32 位),我希望将未定义的位向量传递给 c 文件。我看到了“svOpenArrayHandle”类型——看起来不错,但我不知道如何在 DPI 导入中声明它:

import "DPI-C" function void my_func(output bit [31:0] id, input bit size[])-> 引发错误:-(

有什么建议吗?

谢谢。

4

1 回答 1

-1

无法将未调整大小的数组传递给带有指针的 C 函数。您将合成硬件,它不能是可变的。它不能根据您的要求增大或缩小。

于 2015-02-16T13:02:24.190 回答