4 To 1 Mux Design
Coddy Verilog 여정의 기초 섹션에 포함된 레슨. 90개 중 65번째.
챌린지
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비트 선택 신호에 따라 해당 입력을 출력으로 전달합니다.
진리표
| sel1 | sel0 | out |
|---|---|---|
| 0 | 0 | out = in0 |
| 0 | 1 | out = in1 |
| 1 | 0 | out = in2 |
| 1 | 1 | out = in3 |
sel이 00이면 출력은 in0을 따릅니다. sel이 01이면 출력은 in1을 따릅니다. sel이 10이면 출력은 in2를 따릅니다. sel이 11이면 출력은 in3을 따릅니다.
할 일:
mux4to1이라는 이름의 모듈을 Create- 입력
in0추가 (1비트) - 입력
in1추가 (1비트) - 입력
in2추가 (1비트) - 입력
in3추가 (1비트) - 입력
sel추가 (2비트) - 출력
out추가 (1비트, typereg) always @(*)block 추가- 그 안에
sel을 확인하는if-elsestatement 추가:sel == 2'b00이면out = in0으로 설정sel == 2'b01이면out = in1으로 설정sel == 2'b10이면out = in2로 설정else이면out = in3으로 설정
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기초의 모든 레슨
4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine Logic직접 연습해 보세요: 온라인 Verilog 컴파일러