Module Instantiation 방법
- 포트 순서에 의한 포트 매핑(ordered port)
- 모듈의포트목록에나열된포트순서와1:1로대응되어연결
- 포트에연결되는신호가없는경우에는해당위치를빈칸으로남겨둔다 주로Test bench에서 사용
- 포트 이름에 의한 포트 매핑(named port)
- 포트이름과그포트에연결되는신호이름을명시적으로지정
- 포트의비트선택, 부분선택, 결합등을사용할수없음 주로DUT에서사용
예시 1
module mode(wa, wb, c, d);
input wa, wb;
output c, d;
wire c, d;
assign c = wa & wb;
assign d = wa ^ wb;
endmodule
Oredered Port
module topmod;
wire [4:0] v;
wire c, w;
mode u1(v[0], v[3], w, v[4]);
endmodule
Named Port
module topmod;
wire [4:0] v;
wire a,b,c,w;
modeu1e.wb(
.wv[3]),
.wa(v[0]),
.d(v[4]),
.c(w));
endmodule
예시 2
module bus_driver(busin, bushigh, buslow, enh, enl);
input [15:0] busin;
input enh, enl;
output [7:0] bushigh, buslow;
driver busar3(busin[15:12], bushigh[7:4], enh);
driver busar2(busin[11:8], bushigh[3:0], enh);
driver busar1(busin[7:4], buslow[7:4], enl);
driver busar0(busin[3:0], buslow[3:0], enl);
endmodule
인스턴스 배열 사용
module bus_driver(busin, bushigh, buslow, enh, enl);
input [15:0] busin;
input enh, enl;
output [7:0] bushigh, buslow;
driver busar[3:0] (.in(busin),
.out( {bushigh, buslow}),
.en( {enh, enh, enl, enl}) );
endmodule