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.)
endmoduleTeile eines Moduls
| Teil | Zweck |
|---|---|
module-Schlüsselwort | Startet die Moduldefinition |
module_name | Name des Moduls |
( ) | Liste der Eingangs- und Ausgangsports |
input / output | Portrichtung deklarieren |
| Modulkörper | Interne Logik und Verbindungen |
endmodule | Beendet die Moduldefinition |
Einfaches Modulbeispiel
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, die die Logik definiert
Regeln für die Modulstruktur
- Ein Modul pro Datei ist die gängige Praxis
- Der
module_namesollte seine Funktion beschreiben - Ports werden in Klammern nach dem Namen aufgeführt
- Eingänge sind immer
input(kann nicht innen beschrieben werden) - Ausgänge sind
output(kannregoderwiresein) <strong>endmodule</strong>muss das Modul schließ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 unter Verwendung von
assignhinzu
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)
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