본문 바로가기

Verilog/HDLbits

[HDLBits] Always case

1. 문제 및 설명

  • 6 to 1 MUX를 만드시오.
    1. sel 값이 0~5때는 해당 data 입력을 선택한다.
    2. sel 값이 범위를 벗어나면 출력은 0이다.
    3. 모든 data입력 및 출력은 4비트이다.
     

 

 

2. 모듈 정의

module top_module ( 
    input [2:0] sel, 
    input [3:0] data0,
    input [3:0] data1,
    input [3:0] data2,
    input [3:0] data3,
    input [3:0] data4,
    input [3:0] data5,
    output reg [3:0] out   );

 

 

 

3. 답

module top_module ( 
    input [2:0] sel, 
    input [3:0] data0,
    input [3:0] data1,
    input [3:0] data2,
    input [3:0] data3,
    input [3:0] data4,
    input [3:0] data5,
    output reg [3:0] out   );//

    always@(*) begin  // This is a combinational circuit
        case(sel)
            3'd0: out = data0;
            3'd1: out = data1;
            3'd2: out = data2;
            3'd3: out = data3;
            3'd4: out = data4;
            3'd5: out = data5;
            default out = 0;
        endcase
    end

endmodule
 

'Verilog > HDLbits' 카테고리의 다른 글

[HDLBits] Always casez  (0) 2025.12.07
[HDLBits] Always case2  (0) 2025.11.24
[HDLBits] Always if2  (0) 2025.11.23
[HDLBits] Always if  (0) 2025.11.23
[HDLBits] Alwaysblock2  (0) 2025.11.18