Menu
Coddy logo textTech

4 To 1 Mux Design

Coddy Verilog 여정의 기초 섹션에 포함된 레슨. 90개 중 65번째.

challenge icon

챌린지

4대1 멀티플렉서

4대1 멀티플렉서에는 네 개의 데이터 입력(in0, in1, in2, in3), 두 개의 선택 비트(sel[1:0]), 그리고 하나의 출력(out)이 있습니다. 두 선택 비트가 어떤 입력을 출력으로 전달할지 선택합니다:

  • sel = 2'b00일 때 출력은 in0입니다
  • sel = 2'b01일 때 출력은 in1입니다
  • sel = 2'b10일 때 출력은 in2입니다
  • sel = 2'b11일 때 출력은 in3입니다

이 멀티플렉서를 두 가지 방법으로 구현합니다. 먼저 if-else 문을 사용하고, 다음 레슨에서는 case 문을 사용합니다. 두 방법 모두 작동하지만, 선택지가 많을 때는 case가 더 깔끔한 경우가 많습니다.

4대1 멀티플렉서는 네 개의 입력 중 하나를 선택하고 2비트 선택 신호에 따라 해당 입력을 출력으로 전달합니다.

진리표

sel1sel0out
00out = in0
01out = in1
10out = in2
11out = in3

sel00이면 출력은 in0을 따릅니다. sel01이면 출력은 in1을 따릅니다. sel10이면 출력은 in2를 따릅니다. sel11이면 출력은 in3을 따릅니다.

할 일:

  1. mux4to1이라는 이름의 모듈을 Create
  2. 입력 in0 추가 (1비트)
  3. 입력 in1 추가 (1비트)
  4. 입력 in2 추가 (1비트)
  5. 입력 in3 추가 (1비트)
  6. 입력 sel 추가 (2비트)
  7. 출력 out 추가 (1비트, type reg)
  8. always @(*) block 추가
  9. 그 안에 sel을 확인하는 if-else statement 추가:
    • sel == 2'b00이면 out = in0으로 설정
    • sel == 2'b01이면 out = in1으로 설정
    • sel == 2'b10이면 out = in2로 설정
    • else이면 out = in3으로 설정
  10. endmodule로 종료

직접 해보기

// 단계 1: mux4to1이라는 모듈 생성


  // 단계 2: 입력 in0 추가
  
  // 단계 3: 입력 in1 추가
  
  // 단계 4: 입력 in2 추가
  
  // 단계 5: 입력 in3 추가
  
  // 단계 6: 입력 sel 추가 (2비트)
  
  // 단계 7: 출력 out 추가 (reg 타입)
  

  // 단계 8: always @(*) 블록 추가
  

    // 단계 9: if-else 문 추가
    // if sel == 2'b00이면, out = in0
    // else if sel == 2'b01이면, out = in1
    // else if sel == 2'b10이면, out = in2
    // else, out = in3
    

// Step 10: Endmodule

기초의 모든 레슨

직접 연습해 보세요: 온라인 Verilog 컴파일러