Menu
Coddy logo textTech

Built In Gate Primitives

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

Verilog verfügt über integrierte gate primitives, mit denen du Logikschaltungen mithilfe tatsächlicher gate-Symbole beschreiben kannst. Dies wird als structural-Modellierung bezeichnet. Du erstellst Schaltungen, indem du gates verbindest, genau wie beim Zeichnen eines Schaltplans.

Gate primitive sind vordefinierte Schlüsselwörter, die grundlegende Logik-gates modellieren. Anstatt einen Ausdruck wie assign out = a & b zu schreiben, instanziierst du ein Gate:

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 der output
  • Die folgenden Argumente sind inputs (1 oder mehr, abhängig vom gate)

Verfügbare Gate-Primitiven

Gate-TypSchlüsselwortAnzahl der Eingänge
ANDand2 oder mehr
ORor2 oder mehr
NOTnot1
NANDnand2 oder mehr
NORnor2 oder mehr
XORxor2 oder mehr
XNORxnor2 oder mehr

So funktionieren Gate-Primitiven

Wenn du and(out, a, b) schreibst, erstellt Verilog ein AND-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.

Gate-Primitives vs. kontinuierliche Zuweisung

Beide Methoden erzeugen dieselbe Hardware:

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

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

Gate primitive sind nützlich, wenn du eine Schaltung als eine Sammlung von gates (structural style) beschreiben möchtest. Continuous assignment eignet sich besser für behavioral style (Ausdrücke).

challenge icon

Aufgabe

Was zu tun ist:

  1. Füge das richtige Gate-Primitive hinzu, damit diese Schaltung funktioniert. Das module sollte das AND der inputs a und b ausgeben. Der output-Port 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