verilog模块的基本概念-模块示例

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值