大体思路是:有两路输入信号,一个选通信号,当选通信号高电平时,按输入1的波形,当选通信号为低电平时,按输入2的波形。
大致波形图如下图:

rtl代码如下:
module mux2_1
(
input wire [0:0] in_1,
input wire in_2,
input wire sel,
output reg out
);
always@(*)
if(sel==1'b1)
out =in_1;
else
out =in_2;
endmodule
modelsim代码如下:
`timescale 1ns/1ns
module tb_mux2_1();
reg in_1;
reg in_2;
reg sel;
wire out;
initial
begin
in_1 <= 1'b0;
in_2 <= 1'b0;
sel <= 1'b0;
end
always #10 in_1 <= {$random} %2;
always #10 in_2 <= {$random} %2;
always #10 sel <= {$random} %2;
initial
begin
$timeformat(-9,0,"ns",6);
$monitor("@time %t:in_1=%b in_2=%b sel=%b out=%b",$time,in_1,in_2,sel

本文介绍了一种简单的2选1多路复用器的RTL级设计及ModelSim仿真验证过程。该设计包含两个输入信号in_1和in_2以及一个选通信号sel,通过sel来选择输出in_1或in_2的信号。
最低0.47元/天 解锁文章
2352

被折叠的 条评论
为什么被折叠?



