Verilog Language;Modules:Hierarchy
1.Modules
模块例化的基本语法:
模块名
实例名
(定义连接 port 信号);
//按端口名称申明与端口顺序无关
mod_a instance1(.out(c),.in1(wa),.in2(wb));
例1:
解:
module top_module(
input a,
input b,
output out
);
mod_a MOD_A (
.in1(a),
.in2(b),
.out(out)
);
endmodule
ex例:
解:
module half_adder(A,B,C,S);//半加器模块
input A,B;
output S,C;
assign S=A^B;
assign C=A&B;
endmodule
module full_adder(A,B,Cin,S,Co);//全加器
input A,B,Cin;
output S,Co;
wire C1,C2,S1;
half_adder u1(A,B,S1,C1);
half_adder u2(Cin,S1,S,C2);
assign Co = C1|C2;
endmodule
//按端口顺序说明
//u1 u2为实例名为对half_adder 的调用
2.Module pos
//按端口顺序申明
mod_a instance1(wa, wb, wc );
例1:
解:
//由于没有给出端口对应名称(四个输入全为in),只能按照顺序申明
//根据module mod_a中给出的顺序
module top_module(
input a,
input b,
input c,
input d,
output out1,
output out2
);
mod_a u1(out1,out2,a,b,c,d);
endmodule
3.Module name
//按端口名称申明与端口顺序无关
mod_a instance1(.out(c),.in1(wa),.in2(wb));
例1:
本题与第一题使用的申明方法相同,且表中给出了对应端口与名