Menu
Coddy logo textTech

Modulstruktur

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

Ein Modul ist der grundlegende Baustein in Verilog. Jedes Design ist aus Modulen aufgebaut, die miteinander verbunden werden, um größere Systeme zu bilden.

Ein Modul ist eine Hardwarekomponente mit:

  • Einem Namen
  • Eingängen (eingehende Signale)
  • Ausgängen (ausgehende Signale)
  • Interner Logik (was das Modul tut)

Stellen Sie sich ein Modul wie einen Chip mit Pins und internen Schaltkreisen vor.

Grundlegende Module-Struktur

Jedes `module` folgt dieser Struktur:

module module_name (
  input  signals,
  output signals
);
  
  // Interne Deklarationen (wires, regs, etc.)
  // Logik (assign statements, always blocks, etc.)
  
endmodule

Teile eines Moduls

TeilZweck
module-SchlüsselwortStartet die Moduldefinition
module_nameName des Moduls
( )Liste der Eingangs- und Ausgangsports
input / outputPortrichtung deklarieren
ModulkörperInterne Logik und Verbindungen
endmoduleBeendet die Moduldefinition

Einfaches Modulbeispiel

module and_gate (
  input a,
  input b,
  output c
);
  assign c = a & b;
endmodule

Dieses Modul:

  • Heißt and_gate
  • Hat zwei Eingänge (a, b)
  • Hat einen Ausgang (c)
  • Enthält eine assign-Anweisung, die die Logik definiert

Regeln für die Modulstruktur

  1. Ein Modul pro Datei ist die gängige Praxis
  2. Der module_name sollte seine Funktion beschreiben
  3. Ports werden in Klammern nach dem Namen aufgeführt
  1. Eingänge sind immer input (kann nicht innen beschrieben werden)
  2. Ausgänge sind output (kann reg oder wire sein)
  3. <strong>endmodule</strong> muss das Modul schließen
challenge icon

Aufgabe

Fülle die fehlenden Teile aus, um dieses Modul zu vervollständigen.

Was zu tun ist:

  1. Füge den Modulnamen my_and hinzu
  2. Füge input für x hinzu
  3. Füge input für y hinzu
  4. Füge output für z hinzu
  5. Füge die interne Logik unter Verwendung von assign hinzu

Probier es selbst

module ______ (   // Modulnamen hinzufügen
  input x,       // Eingang hinzufügen
  input y,       // Eingang hinzufügen
  output z       // Ausgang hinzufügen
);
  // Hier assign-Anweisung hinzufügen (z = x & y)
  
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