У меня такой код:
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[])
-> поднять ошибку :-(
Любой совет ?
Спасибо.
svOpenArrayHandle
иsvHigh()
,svLow()
для получения диапазона массива тоже нормально. - person jclin   schedule 26.08.2013