Menu
Coddy logo textTech

2 To 1 Mux 설계

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

challenge icon

챌린지

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

이 프로젝트에서는 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

기초의 모든 레슨