UND-, ODER- und NICHT-Gatter
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 40 von 90.
Diese Lektion behandelt die drei grundlegendsten Logikgatter: AND, OR und NOT. Diese Gatter bilden die Grundlage des Entwurfs digitaler Logik.
AND-Gatter
Das AND-Gatter gibt nur dann 1 aus, wenn alle Eingaben 1 sind.
Wahrheitstabelle (2 Eingaben):
| a | b | out |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Verilog-Gatterprimitive:
and(out, a, b);Äquivalentzuweisung:
assign out = a & b;OR-Gatter
Das OR-Gatter gibt 1 aus, wenn mindestens ein Eingang 1 ist.
Wahrheitstabelle (2 Eingänge):
| a | b | out |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Verilog-Gatterprimitive:
or(out, a, b);Äquivalent zu einer kontinuierlichen Zuweisung:
assign out = a | b;NICHT-Gatter
Das NICHT-Gatter gibt das Gegenteil seines einzigen Eingangs aus. Es wird auch als Inverter bezeichnet.
Wahrheitstabelle:
| a | out |
|---|---|
| 0 | 1 |
| 1 | 0 |
Verilog-Gatterprimitive:
not(out, a);Äquivalent einer kontinuierlichen Zuweisung:
assign out = ~a;Mehrere Eingänge
AND- und OR-Gatter können mehr als 2 Eingänge haben:
and(out, a, b, c); // 3-Eingangs-AND (out = a & b & c)
or(out, x, y, z, w); // 4-Eingangs-ORNOT-Gatter haben immer genau 1 Eingang.
Codebeispiel
module and_or_not (
input a, b,
output and_out,
output or_out,
output not_out
);
and(and_out, a, b); // UND-Gatter
or(or_out, a, b); // ODER-Gatter
not(not_out, a); // NICHT-Gatter (Inverter)
endmoduleAufgabe
Füge die fehlenden Gatter-Grundelemente entsprechend den Aufgaben hinzu.
Was zu tun ist:
- Erstelle ein AND-Gatter mit dem Ausgang
and_resultund den Eingängenpundq - Erstelle ein OR-Gatter mit dem Ausgang
or_resultund den Eingängenpundq - Erstelle ein NOT-Gatter mit dem Ausgang
not_resultund dem Eingangp
Probier es selbst
module gates_challenge (
input p,
input q,
output and_result,
output or_result,
output not_result
);
// TODO: AND-Gatter hinzufügen (and_result = p & q)
// TODO: OR-Gatter hinzufügen (or_result = p | q)
// TODO: NOT-Gatter hinzufügen (not_result = ~p)
endmoduleDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
1Einführung
Was ist VerilogHardware vs. SoftwareIhr erstes ModulKommentareAbstraktionsebenen des Designs4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorVergleichsoperatorenWiederholung – einfache MathematikBitweise Operatoren7Zuweisungen und Gatter
Kontinuierliche ZuweisungZuweisung mit OperatorenIntegrierte Gatter-GrundelementeUND-, ODER- und NICHT-GatterXOR- und XNOR-GatterRückblick – Logikgatter-Schaltung10Entscheidungsfindung
If-AnweisungIf – ElseRückblick – Einfacher KomparatorCase-AnweisungCasex und CasezRückblick – ALU-Entwurf13Zeitsteuerung und Verzögerungen
Was sind Verzögerungen?GatterverzögerungenZuweisungsverzögerungenTimescale-DirektiveTakterzeugungZusammenfassung – Zeitsteuerung2Datentypen
Wire-TypReg-TypInteger und RealVektorenArraysParameterZusammenfassung – Signale deklarieren5Operatoren Teil 2
Logische OperatorenReduktionsoperatorenSchiebeoperatorenVerkettungsoperatorBedingter OperatorRückblick – Operatoren-Herausforderung11Schleifen
For-SchleifeWhile-SchleifeWiederholungsschleifeEndlosschleifeAnweisung deaktivierenRückblick – Schleifenmuster3Zahlensystem
Binäre DarstellungZahlen mit fester BreiteZahlen ohne feste BreiteNegative ZahlenSpezialwerte X und ZZusammenfassung – Zahlenformate6Module
ModulstrukturInput- und Output-PortsInout-PortsModulinstanziierungPortzuordnung nach NamenPortzuordnung nach ReihenfolgeRückblick – Ein Modul erstellenÜbe selbstständig: Online-Verilog-Compiler