Menu
Coddy logo textTech

2 To 1 Mux 설계

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

challenge icon

챌린지

멀티플렉서 (MUX)는 여러 입력 중 하나를 선택하여 선택 신호(select signal)에 따라 단일 출력으로 전달하는 디지털 회로입니다. 데이터 선택기와 같다고 생각하면 됩니다. 여러 데이터 입력이 들어오고, 그 중 어떤 것을 출력으로 보낼지 선택합니다.

이 프로젝트에서는 if-elsecase 문을 사용하여 다양한 크기의 멀티플렉서를 구현합니다.

2-to-1 멀티플렉서

2-to-1 멀티플렉서는 가장 단순한 형태입니다. 두 개의 데이터 입력(in0in1), 하나의 선택 입력(sel), 그리고 하나의 출력(out)을 가집니다. sel이 0일 때 출력은 in0을 따릅니다. sel이 1일 때 출력은 in1을 따릅니다. always @(*) 블록 내부의 if-else 문을 사용하여 이를 구현합니다.

예시: 만약 in0 = 0, in1 = 1, 그리고 sel = 1이면, out = 1이 됩니다.

2-to-1 멀티플렉서는 선택 신호에 따라 두 입력 중 하나를 선택하여 출력으로 전달합니다.

진리표

 

selout
0out = in0
1out = in1

sel이 0일 때 출력은 in0을 따릅니다. sel이 1일 때 출력은 in1을 따릅니다.

수행 과제:

  1. mux2to1 이름의 모듈을 생성하세요.
  2. 입력 in0 (1비트)을 추가하세요.
  3. 입력 in1 (1비트)을 추가하세요.
  4. 입력 sel (1비트)을 추가하세요.
  5. 출력 out (1비트, reg 타입)을 추가하세요.
  6. always @(*) 블록을 추가하세요.
  7. 내부에 if-else 문을 추가하세요:
    • sel == 0이면 out = in0으로 설정하세요.
    • 그렇지 않으면 out = in1으로 설정하세요.
  8. endmodule로 닫으세요.

직접 해보기

// 1단계: mux2to1이라는 이름의 모듈 생성


  // 2단계: 입력 in0 추가
  
  // 3단계: 입력 in1 추가
  
  // 4단계: 입력 sel 추가
  
  // 5단계: 출력 out 추가 (reg 타입)
  

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

    // 7단계: if-else 문 추가
    // sel == 0이면, out = in0
    // 그렇지 않으면, out = in1
    

// 8단계: Endmodule

기초의 모든 레슨