二选一多路器的FPGA 实现
实现一个二选一多路器的实现。要求:通过assign语句和always 分别描述编写testbench验证。
二选一多路器的assign的硬件描述:
module mux_assign
(
input [7:0]a1,
input [7:0]a2,
input sel,
output [7:0]y1
);
assign y1 = (sel==1'b0) ? a1 : a2;
endmodule
二选一多路器的always的硬件描述:
module mux_always
(
input [7:0]a1,
input [7:0]a2,
input sel,
output reg [7:0] y2
);
always @( * )
y2=(sel==0) ? a1:a2;
endmodule
二选一多路器的测试代码:
`timescale 1ns/1ns
module tetbench;
reg [7:0]a1;
reg [7:0]a2;
reg sel;
initial begin
sel=0;
a1=5;
a2=9;
#7 sel=1;
a1=9;
a2=6;
end
wire [7:0]y1;
wire [7:0] y2;
mux_top mux_top_ins
(
.a1(a1),
.a2(a2),
.sel(sel),
.y1(y1),
.y2(y2)
);
endmodule
二选一多路器的仿真结果:
通过仿真测试结果图可以看出,当 sel 为低电平时,a1被选择输出,当sel为高电平时,a2 被选择输出,且延时 10ns,实现了二选一的功能,符合实验要求。