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 wird aus Modulen aufgebaut, die miteinander verbunden werden, um größere Systeme zu bilden.

Ein Modul ist eine Hardware-Komponente mit:

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

Stellen Sie sich ein Modul als einen Chip mit Pins und interner Schaltung vor.

Grundlegende Modulstruktur

Jedes Modul folgt dieser Struktur:

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

Bestandteile eines Moduls

TeilZweck
module SchlüsselwortBeginnt die Moduldefinition
module_nameName des Moduls
( )Liste der Eingangs- und Ausgangs-Ports
input / outputDeklariert die Port-Richtung
Modul-BodyInterne Logik und Verbindungen
endmoduleBeendet die Moduldefinition

Einfaches Modul-Beispiel

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, welche 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 in Klammern nach dem Namen aufgeführt
  1. Eingänge sind immer input (können nicht intern beschrieben werden)
  2. Ausgänge sind output (können reg oder wire sein)
  3. <strong>endmodule</strong> muss das Modul abschließ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 mit assign hinzu

Spickzettel

Ein Modul ist der grundlegende Baustein in Verilog — eine Hardwarekomponente mit Eingängen, Ausgängen und interner Logik.

module module_name (
  input  a,
  input  b,
  output c
);
  // Interne Logik
  assign c = a & b;

endmodule
  • module / endmodule — Beginn und Ende der Definition
  • input — eingehendes Signal (schreibgeschützt innerhalb des Moduls)
  • output — ausgehendes Signal (kann reg oder wire sein)
  • assign — definiert kombinatorische Logik

Probier es selbst

module ______ (   // Modulnamen hinzufügen
  ______ x,       // Eingang hinzufügen
  ______ y,       // Eingang hinzufügen
  ______ z        // Ausgang hinzufügen
);
  // Zuweisungsanweisung hier 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