实例化电路模块并互联
Verilog代码的重要功能之一是实例化电路模块,并且对这些模块进行布线连接
每个被实例化的Verilog module 就如同某个型号的芯片, 每对该module的一次实例化,就如同使用了一次该芯片。
同样,把各个实例化的module的信号连接起来,就如同在电路元件之间用导线进行互联一样。
以下代码演示了在顶层模块中,把一个加法器实例化了2次。
2个加法器实例对象的输入输出分别与顶层模块的输入输出相连
——————————————————————————————
// 顶层模块
module top(
IN ,
OUT0 ,
OUT1 );
input [4-1:0] IN ;
output[4-1:0] OUT0;
output[4-1:0] OUT1;
wire [4-1:0] W_add0_out;
wire [4-1:0] W_add1_out;
// 第1次实例化, 加法器子模块
add U0_add(
.IN0 (IN ),
.IN1 (4’h1 ),
.OUT (W_add0_out));
// 第2次实例化, 加法器子模块
add U1_add(
.IN0 (IN ),
.IN1 (4’h2 ),
.OUT (W_add1_out));
// 端口接线互联
assign OUT0 = W_add0_out;
assign OUT1 = W_add1_out;
endmodule
// 加法器子模块
module add(
IN0 ,
IN1 ,
OUT );
input [4-1:0] IN0;
input