fpga入门 2选1选择器

一、 mux2_1.v

module mux2_1
(
    input   wire    in_1,
    input   wire    in_2,
    input   wire    sel,
    output  reg     out
);

//always赋值的变量必须是reg型,所以选用out为reg类型

always@(*)
    if(sel == 1'b0)
        //组合逻辑使用阻塞赋值
        out = in_1;
    else
        out = in_2;

endmodule

二、 mux2_1_test.v

`timescale 1ns/100ps

module mux2_1_test();

//==========================================
//定义reg型输入变量
reg in_1;
reg in_2;
reg sel;

wire out;


initial
    begin
        in_1    <= 1'b0;
        in_2    <= 1'b0;
        sel     <= 1'b0;
    end

//in_1,in_2,sel产生随机信号
always #10 in_1 <= {$random} % 2;
always #10 in_2 <= {$random} % 2;
always #10 sel  <= {$random} % 2;

initial
    begin
        //$timeformat设置时间格式的系统函数
        //-9表示显示时间的单位是ns
        //0表示精确到小数点后的位数
        //ns需要与-9对应
        //打印的最小数字字符是6个
        $timeformat(-9,0,"ns",6);

        $monitor("@time %t:in_1=%b in_2=%b sel=%b out=%b",$time,in_1,in_2,sel,out);
    end

mux2_1 mux2_1_inst
(
    .in_1(in_1),
    .in_2(in_2),
    .sel(sel),
    .out(out)   
);



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值