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.)
endmoduleBestandteile eines Moduls
| Teil | Zweck |
|---|---|
module Schlüsselwort | Beginnt die Moduldefinition |
module_name | Name des Moduls |
( ) | Liste der Eingangs- und Ausgangs-Ports |
input / output | Deklariert die Port-Richtung |
| Modul-Body | Interne Logik und Verbindungen |
endmodule | Beendet die Moduldefinition |
Einfaches Modul-Beispiel
module and_gate (
input a,
input b,
output c
);
assign c = a & b;
endmoduleDieses 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
- Ein Modul pro Datei ist gängige Praxis
- Der Modulname sollte seine Funktion beschreiben
- Ports werden in Klammern nach dem Namen aufgeführt
- Eingänge sind immer
input(können nicht intern beschrieben werden) - Ausgänge sind
output(könnenregoderwiresein) <strong>endmodule</strong>muss das Modul abschließen
Aufgabe
Fülle die fehlenden Teile aus, um dieses Modul zu vervollständigen.
Was zu tun ist:
- Füge den Modulnamen
my_andhinzu - Füge
inputfürxhinzu - Füge
inputfüryhinzu - Füge
outputfürzhinzu - Füge die interne Logik mit
assignhinzu
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;
endmodulemodule/endmodule— Beginn und Ende der Definitioninput— eingehendes Signal (schreibgeschützt innerhalb des Moduls)output— ausgehendes Signal (kannregoderwiresein)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)
endmoduleDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
1Einführung
Was ist VerilogHardware vs. SoftwareAbstraktionsebenen im DesignDein erstes ModulKommentare4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorVergleichsoperatorenWiederholung – Einfache MathematikBitweise Operatoren7Zuweisung und Gatter
Kontinuierliche ZuweisungZuweisung mit OperatorenIntegrierte Gatter-PrimitiveAND OR NOT GatterXOR XNOR GatterZusammenfassung - Logikgatterschaltung10Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher KomparatorCase-AnweisungCasex und CasezWiederholung - ALU-Design5Operatoren Teil 2
Logische OperatorenReduktionsoperatorenShift-OperatorenVerkettungsoperatorBedingter OperatorZusammenfassung – Operator-Challenge11Schleifen
For-SchleifeWhile-SchleifeRepeat-SchleifeEndlosschleifeDisable-AnweisungRückblick – Schleifenmuster3Zahlensystem
Binäre DarstellungZahlen mit GrößenangabeZahlen ohne GrößenangabeNegative ZahlenSpezialwerte X und ZZusammenfassung – Zahlenformate6Module
ModulstrukturEingangs- und Ausgangs-PortsInout-PortsModul-InstanziierungPort-Mapping nach NamePort-Mapping nach ReihenfolgeZusammenfassung – Ein Modul erstellen