Plus 1 ist ein Sonderfall
Eine Kette von Volladdierern berechnet A+B für zwei beliebige N-Bit-Zahlen, aber Inkrementieren (genau 1 addieren) addiert immer nur eine Konstante — und wenn ein Operand fest auf 000...001 steht, vereinfacht sich der Großteil der Gatter in der Übertragslogik jedes Volladdierers weg, sodass eine billigere Kette allein aus XOR- und AND-Gattern übrig bleibt.
Der Inkrementierer mit durchlaufendem Übertrag
Bitweise betrachtet:
- Bit 0 schaltet immer um (0⊕1 oder 1⊕1), und der Übertrag aus Bit 0 ist einfach der aktuelle Wert von Bit 0 selbst.
- Jedes folgende Bit schaltet nur um, wenn alle niederwertigeren Bits bereits 1 waren — der Übertrag also von Bit 0 aus bis dorthin durchgelaufen ist —, genau das Verhalten „Übertrag in jede Spalte" beim Addieren einer einzelnen 1, und dabei pro Stufe ein Gatter billiger als ein Volladdierer.
Dekrementierer funktionieren spiegelbildlich
Ein Dekrementierer subtrahiert 1 mit derselben Abkürzung, angewandt auf die Subtraktion im Zweierkomplement: Jedes Bit schaltet nur um, wenn alle niederwertigeren Bits bereits 0 waren. Boolflow bietet beide als fertige Blöcke INC4 und DEC4 an.
Der Befehlszähler
Der Befehlszähler einer CPU ist ein gewöhnliches ladbares Register mit einem INC4, dessen Ausgang zurück in seinen eigenen Eingang verdrahtet ist: Bei jedem Takt lädt er entweder ein Sprungziel oder erhöht seinen eigenen aktuellen Wert um eins — genau so schreitet die Befehlsabholung Adresse für Adresse durch den Speicher fort. Verbinden Sie im Schaltungseditor den Ausgang eines INC4 mit dem Eingang eines REG4, um einen zu bauen.