1. 实验题目
四选一多路选择器的设计与仿真
2. 实验目的
设计一个四选一多路选择器,并进行仿真测试。
3. 实验要求
当 s1、s0 均为低电平时,输出 i0;当 s1 为低电平,s0 为高电平时,输出 i1;当 s1 为高电平,s0 为低电平时,输出 i2;当 s1,s0 均为高电平时,输出 i3。
4. 程序代码
VerilogHDL代码:
module choose4(out,i0,i1,i2,i3,s1,s0);
output out;
input i0,i1,i2,i3;
input s1,s0;
reg out;
always @(s1 or s0 or i0 or i1 or i2 or i3)
begin
case({s1,s0})
2'b00: out = i0;
2'b01: out = i1;
2'b10: out = i2;
2'b11: out = i3;
default:out=1'bx;
endcase
end
endmodule
Test bench仿真代码:
module choose4_t;
reg i0,i1,i2,i3;
reg s1,s0;
wire out;
choose4 unit(
.i0(i0),
.i1(i1),
.i2(i2),
.i3(i3),
.s1(s1),
.s0(s0),
.out(out)
);
initial
begin
i0=2'b00;
i1=2'b01;
i2=2'b10;
i3=2'b11;
s1=1'b0;s0=1'b0;
#20
s1=1'b0;s0=1'b1;
#20
s1=1'b1;s0=1'b0;
#20
s1=1'b1;s0=1'b1;
#20;
end
endmodule
5. 实验结果
根据代码2’b00 : out = i0 ; 2’b01 : out = i1 ; 2’b10 : out =i2 ; 2’b11 : out = i3设定i0、i1、i2、i3的值分别为 00、01、10、11。
第一段中s0、s1均为低电平,则输出i0即out 00
第二段中s1为低电平,s0为高电平,输出i1即out 01
第三段中s1为高电平,s0为低电平,输出i2,即out 10
第四段中s0、s1均为高电平,输出i3,即out 11