Das Modul schreiben
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 43 von 90.
Aufgabe
Ein Halbaddierer ist eine Schaltung, die zwei einzelne Bits addiert und dir Folgendes mitteilt:
- Summe: das Ergebnis (0 oder 1)
- Übertrag: ob ein Überlauf vorliegt (1, wenn beide Eingaben 1 sind)
Beispiel
| a | b | Summe | Übertrag |
|---|---|---|---|
| 0 | 0 | 0 | kein Überlauf |
| 0 | 1 | 1 | kein Überlauf |
| 1 | 0 | 1 | kein Überlauf |
| 1 | 1 | 0 | Überlauf (Übertrag = 1) |
Wenn du 1 + 1 im Binärsystem addierst, ist das Ergebnis 0 mit einem Übertrag von 1 (genau wie 5 + 5 = 0 mit einem Übertrag von 1 im Dezimalsystem).
Bevor wir die Logik hinzufügen, müssen wir den Modulcontainer erstellen: die leere Hülle, die unsere Halbaddiererschaltung aufnehmen wird.
Für einen Halbaddierer sind dies die Aufgaben:
- Erstelle ein Modul namens
half_adder - Füge zwei Eingaben hinzu:
aundb - Füge zwei Ausgaben hinzu:
sumundcarry
Probier es selbst
// Aufgabe 1: Erstelle ein Modul namens half_adder
// Aufgabe 2: Füge zwei Eingänge hinzu: a und b
// Aufgabe 3: Füge zwei Ausgänge hinzu: sum und carry
// Die Logik wird später hinzugefügt
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