夏宇闻verilog第十章答案_练习五

源码:

module sel8_1(
			a0,
			a1,
			a2,
			a3,
			a4,
			a5,
			a6,
			a7,
			b,
			sel
			);
input [3:0] a0,a1,a2,a3,a4,a5,a6,a7;
input [2:0] sel;
output [3:0] b;
reg [3:0] b;
// reg [3:0] c;
// c = 4'b1100;
//在always里面的每一个信号都必须是reg
//reg信号也是不能在alway外的
always@(a0 or a1 or a2 or a3 or a4 or a5 or a6 or a7 or sel)
begin

case(sel)
3'b000: b = a0;
3'b001: b = a1;
3'b010: b = a2;
3'b011: b = a3;

3'b100: b = a4;
3'b101: b = a5;
3'b110: b = a6;
3'b111: b = a7;

default:  b = 4'bx;
endcase	

end 

endmodule

测试代码:

`timescale 1ns/1ns
module sel8_1tb;
reg [3:0] a0,a1,a2,a3,a4,a5,a6,a7;
reg [2:0] sel;
wire [3:0] b;

initial
begin
	sel	= 3'b0;
	repeat(16)
	begin
		#5
		sel = sel + 3'b1;
		a0	 = {$random}%16;
		a1	 = {$random}%16;
		a2	 = {$random}%16;
		a3	 = {$random}%16;
		a4	 = {$random}%16;
		a5	 = {$random}%16;
		a6	 = {$random}%16;
		a7	 = {$random}%16;
		
	end
end
	
sel8_1 mysel8_1(
			.a0(a0),
			.a1(a1),
			.a2(a2),
			.a3(a3),
			.a4(a4),
			.a5(a5),
			.a6(a6),
			.a7(a7),
			.b(b),
			.sel(sel)
			);//这种连接的工作,可以写一个插件,如果有机会的话
endmodule

现象;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值