Menu
Coddy logo textTech

Integrierte Gatter-Grundelemente

Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 39 von 90.

Verilog verfügt über integrierte Gatterprimitive, mit denen du Logikschaltungen mithilfe tatsächlicher Gattersymbole beschreiben kannst. Dies wird als strukturelle Modellierung bezeichnet. Du baust Schaltungen auf, indem du Gatter verbindest, genau wie beim Zeichnen eines Schaltplans.

Gatterprimitive sind vordefinierte Schlüsselwörter, die grundlegende Logikgatter modellieren. Anstatt einen Ausdruck wie assign out = a & b zu schreiben, instanziierst du ein Gatter:

and(out, a, b);   // AND-Gatter mit Ausgang out, Eingängen a und b

Allgemeine Syntax

gate_type (output, input1, input2, ...);
  • Das erste Argument ist immer die Ausgabe
  • Die folgenden Argumente sind Eingaben (1 oder mehr, abhängig vom Gatter)

Verfügbare Gatter-Grundelemente

GattertypSchlüsselwortAnzahl der Eingänge
ANDand2 oder mehr
ORor2 oder mehr
NOTnot1
NANDnand2 oder mehr
NORnor2 oder mehr
XORxor2 oder mehr
XNORxnor2 oder mehr

Wie Gatter-Grundelemente funktionieren

Wenn du and(out, a, b) schreibst, erstellt Verilog ein UND-Gatter, das out kontinuierlich mit dem Ergebnis von a & b treibt. Wann immer sich a oder b ändert, wird out sofort aktualisiert, genau wie bei einem echten Gatter.

Gatterprimitive vs. kontinuierliche Zuweisung

Beide Methoden erzeugen dieselbe Hardware:

// Gatter-Primitive
and(out, a, b);

// Kontinuierliche Zuweisung (gleiches Ergebnis)
assign out = a & b;

Gatterprimitive sind nützlich, wenn du eine Schaltung als Sammlung von Gattern (struktureller Stil) beschreiben möchtest. Eine kontinuierliche Zuweisung eignet sich besser für den verhaltensorientierten Stil (Ausdrücke).

challenge icon

Aufgabe

Was zu tun ist:

  1. Füge das richtige Gatterelement hinzu, damit diese Schaltung funktioniert. Das Modul sollte das AND der Eingänge a und b ausgeben. Der Ausgangsport heißt bereits c.

Probier es selbst

module gate_challenge (
  input a,
  input b,
  output c
);
  
  // TODO: Füge das korrekte Gate-Primitiv hinzu
  // Die Ausgabe c sollte a AND b sein

endmodule
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Online-Verilog-Compiler