自学内容网 自学内容网

Verilog实现四选一数据选择器

目录

1. 代码实现

1.1 使用case

1.2使用if...else

1.3使用三目运算

2. 仿真程序

3. 工程获取


实现一个四选一数据选择器;

1. 代码实现

1.1 使用case

always @(*) begin
        case (sel)
            2'b00: out = data[0];
            2'b01: out = data[1];
            2'b10: out = data[2];
            2'b11: out = data[3]; 
            default: ;
        endcase
    end

1.2使用if...else

always @(*) begin
    if (sel == 2'b00) begin
        out = data[0];
    end else if (sel == 2'b01) begin
        out = data[1];
    end else if (sel == 2'b11) begin
        out = data[2];
    end else begin
        out = data[3];
    end   
end

1.3使用三目运算

assign out = (sel == 2'b00) ? data[0] : 
                 ((sel == 2'b01) ? data[1] :
                 ((sel == 2'b10) ? data[2] : data[3]))

2. 仿真程序

initial begin
    
        // 设置初始值
        data = 4'b0xz1;  // 选择一个简单的4位输入数据
        sel = 2'b00;     // 选择sel初始为00;输出为1

        // 等待10个时间单位
        #10;
        
        // 改变sel并检查对应输出
        sel = 2'b01;     // 测试sel = 01;输出为高阻态z
        #10;

        sel = 2'b10;     // 测试sel = 10;输出为不定态x
        #10;

        sel = 2'b11;     // 测试sel = 11;输出为0
        #10;

        // 结束仿真
        $finish;
    end

仿真结果图:

 

3. 工程获取

具体仿真步骤详见Vscode搭建verilog开发环境-CSDN博客的第6点。

通过百度网盘分享的文件:mux4to1.rar
链接:https://pan.baidu.com/s/1QNUtt9sy4sMexjVLQJpT-A?pwd=8zhg 
提取码:8zhg


原文地址:https://blog.csdn.net/weixin_61081689/article/details/143780561

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!