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 Hardwarekomponente mit:
- Einem Namen
- Eingängen (eingehende Signale)
- Ausgängen (ausgehende Signale)
- Interner Logik (was das Modul tut)
Stell dir 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 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 | Gibt die Port-Richtung an |
| 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:
- Ist
and_gategenannt - 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 gängige Praxis
- Der Modulname sollte seine Funktion beschreiben
- Ports werden nach dem Namen in Klammern aufgeführt
- Eingänge sind immer
input(können nicht beschrieben werden) - Ausgänge sind
output(könnenregoderwiresein) <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 mit
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. SoftwareIhr erstes ModulKommentareAbstraktionsebenen des Designs4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorVergleichsoperatorenWiederholung – einfache MathematikBitweise Operatoren7Zuweisungen und Gatter
Kontinuierliche ZuweisungZuweisung mit OperatorenIntegrierte Gatter-GrundelementeUND-, ODER- und NICHT-GatterXOR- und XNOR-GatterRückblick – Logikgatter-Schaltung10Entscheidungsfindung
If-AnweisungIf – ElseRückblick – Einfacher KomparatorCase-AnweisungCasex und CasezRückblick – ALU-Entwurf13Zeitsteuerung und Verzögerungen
Was sind Verzögerungen?GatterverzögerungenZuweisungsverzögerungenTimescale-DirektiveTakterzeugungZusammenfassung – Zeitsteuerung2Datentypen
Wire-TypReg-TypInteger und RealVektorenArraysParameterZusammenfassung – Signale deklarieren5Operatoren Teil 2
Logische OperatorenReduktionsoperatorenSchiebeoperatorenVerkettungsoperatorBedingter OperatorRückblick – Operatoren-Herausforderung11Schleifen
For-SchleifeWhile-SchleifeWiederholungsschleifeEndlosschleifeAnweisung deaktivierenRückblick – Schleifenmuster3Zahlensystem
Binäre DarstellungZahlen mit fester BreiteZahlen ohne feste BreiteNegative ZahlenSpezialwerte X und ZZusammenfassung – Zahlenformate6Module
ModulstrukturInput- und Output-PortsInout-PortsModulinstanziierungPortzuordnung nach NamenPortzuordnung nach ReihenfolgeRückblick – Ein Modul erstellenÜbe selbstständig: Online-Verilog-Compiler