题解 | #四选一多路器#

四选一多路器

http://www.nowcoder.com/practice/cba4617e1ef64e9ea52cbb400a0725a3

alt

分析: 输出不能用reg型,但是可以使用中间变量呀。四选一可以优先使用解码器常用的case方式。

`timescale 1ns/1ns
module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output[1:0]mux_out
);
//*************code***********//
    reg [1:0] mux_out_tmp;
    always@(*) begin
        case(sel)
            2'b00: mux_out_tmp = d3;
            2'b01: mux_out_tmp = d2;
            2'b10: mux_out_tmp = d1;
            2'b11: mux_out_tmp = d0;
            default: mux_out_tmp = d3;
        endcase
    end
    
    assign mux_out = mux_out_tmp;

//*************code***********//
endmodule
《Verilog/VHDL必刷习题集》 文章被收录于专栏

Verilog/VHDL必刷习题集,包含基础知识、组合逻辑设计、时序逻辑设计、状态机设计、RAM及FIFO设计等等。

全部评论
第一个思路就是这样子的,是不是过期了,提示无法编译 这玩意
1 回复 分享
发布于 2022-04-23 15:52
这个写法提示时间超时,不知道为什么会超时
4 回复 分享
发布于 2022-03-23 09:41
直接reg mux_out就行了呀
1 回复 分享
发布于 2022-07-01 23:17
阻塞赋值是不对的。
点赞 回复 分享
发布于 2022-11-21 13:25 山东

相关推荐

点赞 评论 收藏
分享
评论
95
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务