2 To 1 Mux Design
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 64 von 90.
Aufgabe
Ein Multiplexer (MUX) ist eine digitale Schaltung, die anhand eines Auswahlsignals einen von mehreren Eingängen auswählt und an einen einzigen Ausgang weiterleitet. Stell ihn dir wie einen Datenauswahlschalter vor. Mehrere Eingänge kommen an, und du wählst aus, welcher davon zum Ausgang gelangt.
In diesem Projekt wirst du Multiplexer verschiedener Größen mithilfe von if-else- und case-Anweisungen erstellen.
2-zu-1-Multiplexer
Der 2-zu-1-Multiplexer ist die einfachste Form. Er besitzt zwei Dateneingänge (in0 und in1), einen Auswahleingang (sel) und einen Ausgang (out). Wenn sel 0 ist, folgt der Ausgang in0. Wenn sel 1 ist, folgt der Ausgang in1. Du wirst dies mithilfe einer if-else-Anweisung innerhalb eines always @(*)-Blocks implementieren.
Beispiel: Wenn in0 = 0, in1 = 1 und sel = 1 sind, dann ist out = 1.
Ein 2-zu-1-Multiplexer wählt anhand eines Auswahlsignals einen von zwei Eingängen aus und leitet ihn an den Ausgang weiter.
Wahrheitstabelle
| sel | out |
|---|---|
| 0 | out = in0 |
| 1 | out = in1 |
Wenn sel 0 ist, folgt der Ausgang in0. Wenn sel 1 ist, folgt der Ausgang in1.
Was zu tun ist:
- Create ein module named
mux2to1 - Add input
in0(1 Bit) hinzu - Add input
in1(1 Bit) hinzu - Add input
sel(1 Bit) hinzu - Add output
out(1 Bit, typereg) hinzu - Add einen
always @(*)-Block hinzu - Füge darin eine
if-else-Anweisung hinzu:- Wenn
sel == 0, setzeout = in0 - Else setze
out = in1
- Wenn
- Schließe mit
endmoduleab
Probier es selbst
// Schritt 1: Erstelle Modul namens mux2to1
// Schritt 2: Füge Eingang in0 hinzu
// Schritt 3: Füge Eingang in1 hinzu
// Schritt 4: Füge Eingang sel hinzu
// Schritt 5: Füge Ausgang out hinzu (reg-Typ)
// Schritt 6: Füge always @(*)-Block hinzu
// Schritt 7: Füge if-else-Anweisung hinzu
// Wenn sel == 0, out = in0
// Sonst, out = in1
// Schritt 8: EndmoduleAlle Lektionen in Grundlagen
1Einführung
Was ist VerilogHardware vs. SoftwareIhr erstes ModulKommentareAbstraktionsebenen des Designs4Operators 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Übe selbstständig: Online-Verilog-Compiler