AND OR NOT 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 das Fundament des digitalen Logikdesigns.
AND-Gatter
Das AND-Gatter gibt nur dann 1 aus, wenn alle Eingänge 1 sind.
Wahrheitstabelle (2 Eingänge):
| a | b | out |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Verilog-Gatterprimitiv:
and(out, a, b);Äquivalente kontinuierliche Zuweisung:
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-Gatter-Primitiv:
or(out, a, b);Äquivalent mit kontinuierlicher Zuweisung:
assign out = a | b;NOT-Gatter
Das NOT-Gatter gibt das Gegenteil seines einzelnen Eingangs aus. Es wird auch als inverter bezeichnet.
Wahrheitstabelle:
| a | out |
|---|---|
| 0 | 1 |
| 1 | 0 |
Verilog gate primitive:
not(out, a);Äquivalent als kontinuierliche 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-Primitiven basierend auf den Aufgaben hinzu.
Was zu tun ist:
- Erstelle ein AND-Gatter mit Ausgang
and_resultund den Eingängenpundq - Erstelle ein OR-Gatter mit Ausgang
or_resultund den Eingängenpundq - Erstelle ein NOT-Gatter mit Ausgang
not_resultund 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. SoftwareAbstraktionsebenen im DesignDein erstes ModulKommentare4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorVergleichsoperatorenWiederholung – Einfache MathematikBitweise Operatoren7Zuweisung und Gatter
Kontinuierliche ZuweisungZuweisung mit OperatorenIntegrierte Gatter-PrimitiveAND OR NOT GatterXOR XNOR GatterZusammenfassung - Logikgatterschaltung10Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher KomparatorCase-AnweisungCasex und CasezWiederholung - ALU-Design5Operatoren Teil 2
Logische OperatorenReduktionsoperatorenShift-OperatorenVerkettungsoperatorBedingter OperatorZusammenfassung – Operator-Challenge11Schleifen
For-SchleifeWhile-SchleifeRepeat-SchleifeEndlosschleifeDisable-AnweisungRückblick – Schleifenmuster3Zahlensystem
Binäre DarstellungZahlen mit GrößenangabeZahlen ohne GrößenangabeNegative ZahlenSpezialwerte X und ZZusammenfassung – Zahlenformate6Module
ModulstrukturEingangs- und Ausgangs-PortsInout-PortsModul-InstanziierungPort-Mapping nach NamePort-Mapping nach ReihenfolgeZusammenfassung – Ein Modul erstellen