Was ein Komparator ausgibt
Ein Komparator nimmt zwei Binärzahlen, A und B, und erzeugt drei sich gegenseitig ausschließende Ausgänge: A>B, A=B und A<B — von denen für jedes Eingangspaar genau einer aktiv ist.
Ein 1-Bit-Komparator aus Gattern
Für einzelne Bits A und B reduzieren sich alle drei Ausgänge auf einfache Boolesche Ausdrücke:
- A=B → ¬(A ⊕ B) (XNOR — gleich, wenn beide Bits übereinstimmen)
- A>B → A · ¬B (nur 1, wenn A=1 und B=0)
- A<B → ¬A · B (nur 1, wenn A=0 und B=1)
Verkettung zu einem 4-Bit-Komparator
Der Vergleich mehrbitiger Zahlen erfolgt vom höchstwertigen Bit abwärts: Unterscheiden sich die obersten Bits bereits, entscheidet das allein das Ergebnis, unabhängig von allen niedrigeren Bits. Nur wenn die obersten Bits gleich sind, muss der Vergleich das nächste Bit betrachten. Ein 4-Bit-Komparator verkettet vier 1-Bit-Komparatorstufen mit dieser Prioritätslogik — dasselbe Verkettungsprinzip, das Prioritäts-Encoder verwenden.
Komparator vs. Subtrahierer
Ein Subtrahierer (aufgebaut aus Voll-Addierern, wie im Artikel „Halb-Addierer und Voll-Addierer") kann auch sagen, welche Zahl größer ist — wenn A−B unterläuft (Borgen), war A kleiner — aber ein dedizierter Komparator ist einfacher und schneller, wenn nur das relationale Ergebnis benötigt wird und nicht der numerische Unterschied selbst.
Wo sie verwendet werden
Komparatoren steuern bedingte Sprünge in einer CPU (Vergleich eines Registers mit Null oder mit einem anderen Register), Grenzwertprüfungen in Speichercontrollern und Schwellenwerterkennung in Steuerungssystemen. Die integrierten Blöcke Comparator (1-Bit) und CMP4 (4-Bit) von Boolflow implementieren genau das — laden Sie ein Komparator-Beispiel und schalten Sie die Eingänge um, um GT/EQ/LT live umschalten zu sehen, und überprüfen Sie das Verhalten dann gegen eine Wahrheitstabelle.