本篇文章使用Verilog语言编写实现五选一多路选择器,含有设计代码和测试代码。
一、接口描述
五选一多路选择器接口描述表:
二、设计代码
`timescale 1ns / 1ps
module selecter_5_1(
input [7:0]in0,
input [7:0]in1,
input [7:0]in2,
input [7:0]in3,
input [7:0]in4,
input [2:0]sel,
output reg [7:0]out
);
always @(*)begin
if(sel==3'b000) begin
out=in0;
end
else if(sel==3'b001) begin
out=in1;
end
else if(sel==3'b010) begin
out=in2;
end
else if(sel==3'b011) begin
out=in3;
end
else if(sel==3'b100) begin
out=in4;
end
end
endmodule
三、测试代码
`timescale 1ns / 1ps
module selecter_5_1_tb();
reg [7:0]in0;
reg [7:0]in1;
reg [7:0]in2;
reg [7:0]in3;
reg [7:0]in4;
reg [2:0]sel0;
wire [7:0]out0;
selecter_5_1 selecter_5_10(.in0(in0),.in1(in1),.in2(in2),.in3(in3),.in4(in4),.sel(sel0),.out(out0));
initial begin
in0=0;
in1=0;
in2=0;
in3=0;
in4=0;
# 10
sel0=3'b000;
in0=1;
# 10
sel0=3'b001;
in0=0;
in1=1;
# 10
sel0=3'b010;
in1=0;
in2=1;
# 10
sel0=3'b011;
in2=0;
in3=1;
# 10
sel0=3'b100;
in3=0;
in4=1;
# 30
$finish;
end
endmodule
四、仿真波形图
由波形图可得,在输入信号sel为000且in0为1时(此时其余输入信号均为0),输出信号out的值等于in0的值为1、在输入信号sel为001且in1为1时(此时其余输入信号均为0),输出信号out的值等于in1的值为1,以此类推。即该五选一多路选择器可根据选择子的值选择不同的路径进行计算。
仅供学习交流,如发现错误,欢迎大家指正。