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 Folgendes ausgibt:
- sum — das Ergebnis (0 oder 1)
- carry — ob ein Übertrag vorliegt (1, wenn beide Eingänge 1 sind)
Beispiel
| a | b | sum | carry |
|---|---|---|---|
| 0 | 0 | 0 | kein Übertrag |
| 0 | 1 | 1 | kein Übertrag |
| 1 | 0 | 1 | kein Übertrag |
| 1 | 1 | 0 | Übertrag (carry = 1) |
Wenn man 1 + 1 im Binärsystem addiert, 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 Modul-Container erstellen — die leere Hülle, die unsere Halbaddierer-Schaltung enthalten wird.
Für einen Halbaddierer sind dies die Aufgaben:
- Erstellen Sie ein Modul namens
half_adder - Fügen Sie zwei Eingänge hinzu:
aundb - Fügen Sie zwei Ausgänge hinzu:
sumundcarry
Probier es selbst
// Aufgabe 1: Erstellen Sie ein Modul namens half_adder
// Aufgabe 2: Fügen Sie zwei Eingänge hinzu: a und b
// Aufgabe 3: Fügen Sie zwei Ausgänge hinzu: sum und carry
// Die Logik wird später hinzugefügt
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