verilog模块的基本概念 例1.二选一多路选择器的verilog程序如下: module muxtwo(out, a, b, sl); input a, b, sl;//定义输入信号,sl为选择信号 output out;//定义输出信号 reg out;//定义输出信号类型 alwasys @(sl or a or b)//敏感信号为sl.a.b,当三者有一个为1时,触发模块内部语句执行 if(!sl) out = a;//当sl=0时,输出a else out = b;//当sl=1时,输出b endmodule 例2.比较器的verilog程序如下: module compare(equal, a, b); output equal; input [1:0] a,b; assign equal =b (a==b)? 1:0; /*equal =b (a==b)? 1:0;表示: 如果a==b为真,即两个输入信号值相等,equal输出1, 否则equal输出0 */ endmodule 例3.采用二个模块三态门选择器的verilog程序如下: module trist1(sout, sin, ena); output sout; input sin, ena; /* 引用mytri模块定义的实例元件tri_inst,其中.out,.in,.enable中的“.”表示被引用模块的端口,名称必须与被引用模块mytri的端口定义一致,()中表示本模块中与之连接的线路名,可以用别的名,但必须在本模块中定义,说明其类型。 */ mytri tri_inst(.out(sout),.in(sin),.enable(ena)); endmodule module mytri(out, in, enable); output out; input in, enable; assign out = enable? in: 'bz;//enable为1,则out=in;否则out= 'bz(高组态) endmodule