Menu
Coddy logo textTech

Integrierte Gatter-Primitive

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

Verilog verfügt über integrierte gate-Primitives, mit denen Sie Logikschaltungen mithilfe tatsächlicher Gate-Symbole beschreiben können. Dies wird als strukturelle Modellierung (structural modeling) bezeichnet — Sie bauen Schaltungen auf, indem Sie Gates verbinden, genau wie beim Zeichnen eines Schaltplans.

Gate-Primitives sind vordefinierte Schlüsselwörter, die grundlegende Logikgatter modellieren. Anstatt einen Ausdruck wie assign out = a & b zu schreiben, instanziieren Sie 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 Primitives

Gate-TypSchlüsselwortAnzahl der Inputs
ANDand2 oder mehr
ORor2 oder mehr
NOTnot1
NANDnand2 oder mehr
NORnor2 oder mehr
XORxor2 oder mehr
XNORxnor2 oder mehr

Wie Gate Primitives funktionieren

Wenn Sie and(out, a, b) schreiben, erstellt Verilog ein AND-Gate, das out kontinuierlich mit dem Ergebnis von a & b ansteuert. Wann immer sich a oder b ändert, wird out sofort aktualisiert — genau wie ein echtes Gate.

Gate Primitives vs Continuous Assignment

Beide Methoden erzeugen dieselbe Hardware:

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

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

Gate primitives sind nützlich, wenn Sie eine Schaltung als eine Sammlung von gates (structural Stil) beschreiben möchten. Continuous assignment ist besser für den behavioral Stil (Ausdrücke).

challenge icon

Aufgabe

Was zu tun ist:

  1. Fügen Sie das `correct` `gate` `primitive` hinzu, damit diese Schaltung funktioniert. Das `module` `should` das AND der `inputs` a und b ausgeben. Der `output`-Port ist bereits c genannt.

Probier es selbst

module gate_challenge (
  input a,
  input b,
  output c
);
  
  // TODO: Füge das korrekte Gate-Primitive 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