Ihr erstes Modul
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 3 von 90.
Ein Modul ist der grundlegende Baustein in Verilog. Jeder Teil des Verilog-Codes befindet sich innerhalb eines Moduls.
Stell dir ein Modul als eine Komponente vor mit:
- Eingängen (eingehende Signale)
- Ausgängen (ausgehende Signale)
- Verhalten (was es tut)
Modulsyntax
module module_name ( inputs, outputs );
// Alles hier drinnen
endmoduleJedes Modul beginnt mit module und endet mit endmodule.
Eingänge und Ausgänge
module and_gate(
input a, // a kommt IN das Modul
input b, // b kommt IN das Modul
output c // c geht AUS dem Modul
);
// Verhalten kommt hierher
endmodule- input = Signal tritt in das Modul ein
- output = Signal verlässt das Modul
Verhalten hinzufügen
Nun lassen wir das Modul etwas tun:
module and_gate(
input a,
input b,
output c
);
assign c = a & b; // c ist 1 nur wenn a AND b 1 sind
endmoduleassignverbindet die rechte Seite kontinuierlich mit der linken Seite&bedeutet AND in Verilog
Aufgabe
In dieser Herausforderung musst du ein einfaches Modul erstellen, das die ODER-Operation ausführt.
Das ist zu tun:
- Das Modul sollte
or_gateheißen - Es sollte einen Eingang namens
xhaben - Es sollte einen Eingang namens
yhaben - Es sollte einen Ausgang namens
zhaben - Verwende innerhalb des Moduls
assign, umzgleichx OR yzu setzen
Der Modul-Header und seine drei Ports befinden sich bereits im Editor. Die Zeile, die du hinzufügen musst, ist die assign-Anweisung innerhalb des Moduls.
Hinweis: In Verilog wird ODER mit dem Pipe-Symbol | geschrieben. Es gibt 1 (wahr) aus, wenn mindestens einer der Eingänge 1 (wahr) ist.
Probier es selbst
// Der Modul-Header und seine Ports sind bereits für dich geschrieben
module or_gate(
input x,
input y,
output z
);
// Du bist dran: verwende assign, um z auf x OR y zu setzen
// In Verilog wird OR als | geschrieben
endmodule
Diese 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