2 To 1 Mux 설계
Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 64번째.
챌린지
멀티플렉서(MUX)는 선택 신호에 따라 여러 입력 중 하나를 선택하여 단일 출력으로 전달하는 디지털 회로입니다. 데이터 선택기라고 생각하면 됩니다. 여러 개의 입력이 들어오고, 그중 어떤 것이 출력으로 나갈지 선택하는 것입니다.
이 프로젝트에서는 if-else 및 case 문을 사용하여 다양한 크기의 멀티플렉서를 제작해 보겠습니다.
2-to-1 멀티플렉서
2-to-1 멀티플렉서는 가장 단순한 형태입니다. 두 개의 데이터 입력(in0 및 in1), 하나의 선택 입력(sel), 그리고 하나의 출력(out)을 가집니다. sel이 0이면 출력은 in0을 따릅니다. sel이 1이면 출력은 in1을 따릅니다. 여러분은 always @(*) 블록 내부에서 if-else 문을 사용하여 이를 구현하게 됩니다.
예시: 만약 in0 = 0, in1 = 1, 그리고 sel = 1이면, out = 1이 됩니다.
2-to-1 멀티플렉서는 선택 신호에 따라 두 입력 중 하나를 선택하여 출력으로 전달합니다.
진리표
| sel | out |
|---|---|
| 0 | out = in0 |
| 1 | out = in1 |
sel이 0일 때 출력은 in0을 따릅니다. sel이 1일 때 출력은 in1을 따릅니다.
수행할 작업:
mux2to1이라는 이름의 모듈을 생성합니다.- 입력
in0(1비트)를 추가합니다. - 입력
in1(1비트)를 추가합니다. - 입력
sel(1비트)를 추가합니다. - 출력
out(1비트,reg타입)을 추가합니다. always @(*)블록을 추가합니다.- 내부에
if-else문을 추가합니다:- 만약
sel == 0이면,out = in0으로 설정합니다. - 그렇지 않으면,
out = in1으로 설정합니다.
- 만약
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