как вернуть ассоциативные массивы в систему verilog - PullRequest
0 голосов
/ 17 декабря 2018

Здравствуйте, хотите узнать, как ассоциативные массивы передаются в качестве возвращаемых значений

код:

function abc()
begin
int value[string][string];
value = def();
end

function int def()
begin
int new_value[string][string];
//logic to populate the array
return new_value;
end

Я вижу следующую ошибку: Тип цели int.В то время как тип источника - int $ [string] [string].

Как с этим справиться и без проблем передать массив ассоциаций?

1 Ответ

0 голосов
/ 17 декабря 2018

Чтобы функция возвращала агрегатный тип, сначала нужно объявить typedef, а затем использовать его в качестве возвращаемого значения.

typedef int AA_t[string][string];
function AA_t def();
  AA_t new_value; 
  //logic to populate the array
  return new_value;
endfunction

Если у вас есть typedef, вы можете использовать его везде.

...