Объявление портов и внутренних переменных
/* Вариант 1: объявление порта с размерностью по умолчанию = 1 */
<направление> <тип> <имя_порта>
/* Вариант 2: объявление порта с заданной размерностью */
<направление> <тип> <имя_порта>[<размерность>]
/* Вариант 3: объявление нескольких портов одинакового направления, размерности и типа */
<направление> <тип> <имя_порта>, <имя_порта>, …
/* Вариант 4: объявления внутренней переменной с размерностью по умолчанию = 1 */
<тип> <имя_переменной>;
/* Вариант 5: объявления внутренней переменной с заданной размерностью */
<тип> <имя_переменной>[<размерность>];/* Пример 1: определение модуля и его инстанцирование с именованным списком портов */
module logic_gates(input in1, in2, output out1, out2);
...
endmodule
module logic_gates_tb;
logic_gates logic_gates_inst(.in1(in1), .in2(in2), .out1(out1), .out2(out2));
...
endmodule
/* Пример 2: инстанцирование встроенных логических примитивов с заданием силы выходного сигнала */
module strength_(output out, input i1, i2);
or (supply1, strong0) o1(out, i1, i2);
and (strong1, supply0) a1(out, i1, i2);
endmodule
/* Пример 3: определение модуля, в котором инстанцируется с переопределением параметра модуля */
module counterm_tb #(parameter _N = 6);
counterm #(_N) _counterm(out, clk, reset, enable);
...
endmoduleLast updated