мой test.sv
код содержит interface
а также module
как показано:
interface Bus;
logic [7:0] sig1;
logic [15:0] sig2;
logic sig3;
endinterface
module test();
Bus inst();
...
endmodule
Я дал vpiFullName test.inst.sig1
к vpi_handle_by_name
vpiHandle it1, it2, it3;
it1 = vpi_handle_by_name("test.inst.sig1", NULL);
func(it1, vpiBit);
it2 = vpi_handle_by_name("test.inst.sig2", NULL);
func(it2, vpiBit);
it3 = vpi_handle_by_name("test.inst.sig3", NULL);
func(it3, vpiBit);
static void
func(vpiHandle net, PLI_INT32 nettype)
{
char *name = vpi_get_str(vpiFullName, net);
auto size = vpi_get(vpiSize, net);
...
}
Но я извлекаю строки (sig1
, sig2
, …) из файла и сохранения его в массиве arr
, Я хочу передать эти строки в виде массива vpi_handle_by_name
как это:
vector <std::string> arr;
it1 = vpi_handle_by_name(arr[0], NULL);
func(it1, vpiBit);
it2 = vpi_handle_by_name(arr[1], NULL);
func(it2, vpiBit);
...
Можно ли сделать это?
Задача ещё не решена.
Других решений пока нет …