Die Logik entwerfen
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy — Lektion 44 von 90.
Aufgabe
Das Entwerfen der Logik bedeutet, herauszufinden, welche Gleichungen die Schaltung basierend auf der Wahrheitstabelle benötigt.
Wahrheitstabelle:
| a | b | sum | carry |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Schritt 2: Muster für sum finden
- sum = 1 wenn a=0,b=1 oder a=1,b=0
- sum = 1 wenn a und b verschieden sind
- Verschieden = XOR →
sum = a ^ b
Schritt 3: Muster für carry finden
- carry = 1 nur wenn a=1 und b=1
- Beide = AND →
carry = a & b
Schritt 4: Gleichungen schreiben
sum = a ^ b
carry = a & b
Was zu tun ist:
Ihre Aufgabe ist es, die fehlenden Logikgleichungen innerhalb des Moduls hinzuzufügen.
1. Fügen Sie eine assign-Anweisung für sum (a XOR b) hinzu
2. Fügen Sie eine assign-Anweisung für carry (a AND b) hinzu
Probier es selbst
module half_adder (
input a,
input b,
output sum,
output carry
);
endmoduleAlle 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