Menu
CoddyTech

Modulstruktur

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

Ein Modul ist der grundlegende Baustein in Verilog. Jedes Design besteht aus Modulen, 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)

Stell dir ein Modul als Chip mit Pins und einer internen Schaltung vor.

Grundlegende Modulstruktur

Jedes Modul folgt dieser Struktur:

module module_name (
  input  signals,
  output signals
);
  
  // Interne Deklarationen (wires, regs usw.)
  // Logik (assign-Anweisungen, always-Blöcke usw.)
  
endmodule

Bestandteile eines Moduls

BestandteilZweck
module-SchlüsselwortBeginnt die Moduldefinition
module_nameName des Moduls
( )Liste der Eingangs- und Ausgangsanschlüsse
input / outputLegt die Richtung der Anschlüsse fest
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 gängige Praxis
  2. Der Modulname sollte seine Funktion beschreiben
  3. Ports werden nach dem Namen in Klammern aufgeführt
  1. Eingänge sind immer input (können nicht innerhalb geschrieben werden)
  2. Ausgänge sind output (können reg oder wire sein)
  3. endmodule 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 einen input für x hinzu
  3. Füge einen input für y hinzu
  4. Füge einen output für z hinzu
  5. Füge die interne Logik mit 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 eine 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

Übe selbstständig: Online-Verilog-Compiler