У меня есть несколько «уникальных» модулей, которые имеют общие поля.Я хотел бы создать модуль, который может ссылаться на это, скажем, путем восходящей ссылки на имя.Можно ли передать тип модуля в качестве параметра, который можно использовать внутри?Я попробовал это:
3 module A;
4 int flag = 0;
5 endmodule
6
7 module B;
8 int flag = 1;
9 endmodule
10
11 module C;
12 int flag = 2;
13 endmodule
14
15 module Bind #(parameter type T=A);
16 initial begin
17 $display("flat = %0d",t.flag);
18 end
19 endmodule
20
21 module tb;
22 bind A Bind#(A) u_bound;
23 endmodule
Но я получил следующие ошибки компиляции:
-- Compiling module B
-- Compiling module C
-- Compiling module Bind
** Error: test.sv(15): (qverilog-2730) Undefined variable: 'A'.
** Error (suppressible): test.sv(15): (qverilog-2987) Illegal expression as initializer for type parameter 'T'.
-- Compiling module tb
** Error: (qverilog-13069) test.sv(22): near ";": syntax error, unexpected ';', expecting '('.