Wie verwende ich die Komparatorfunktionen von 74LS181?

Ich experimentiere mit der 74LS181 ALU ( siehe hier , wenn Sie möchten), und es läuft gut, aber ich kann nicht herausfinden, wie die A = B-, A> B- und A < B-Komparatorfunktionen verwendet werden.

Im Datenblatt heißt es: „Der Komparatorausgang (A=B) des Geräts geht auf HIGH, wenn alle vier Funktionsausgänge (nicht F0 bis nicht F3) auf HIGH sind, und kann verwendet werden, um die logische Äquivalenz über 4 Bits anzuzeigen, wenn sich das Gerät in der Subtraktion befindet Modus."

Das ist ziemlich verwirrend. Wenn ich A und B vergleiche, würde ich denken, dass der A = B-Ausgang jedes Mal auf HIGH gehen würde, wenn A gleich B wäre. (Das ist schließlich der Punkt.) Außerdem bin ich mir nicht sicher, was es bedeutet ". ..wenn sich das Gerät im Subtraktionsmodus befindet." Auf diesem Chip gibt es keinen solchen Modus.

Weiter im selben Absatz heißt es: "Das A=B-Signal kann auch mit dem Cn+4-Signal verwendet werden, um A>B und A<B anzuzeigen." Das klingt nett, aber es erklärt nicht, wie man das macht. Muss ich das A = B-Ausgangssignal zusammen mit dem Cn + 4-Ausgangssignal in ein anderes Logikgatter senden, um ein Ergebnis zu erhalten?

Was ich zu erreichen hoffe, ist ein einfacher Satz von Ausgangs-LEDs, die ich mit A = B, A> B und A < B beschriften werde, sodass, wenn ich eine 0 an den A-Eingängen und eine 0 an den B-Eingängen habe, dann leuchtet die A=B-LED. Und wenn ich eine 1 an den A-Eingängen und eine 0 an den B-Eingängen habe, dann leuchtet die A>B-LED. Ebenso für A<B.

Dieser Chip ist ziemlich nett ... wenn auch meiner Meinung nach manchmal etwas schrullig. Warum ist es zum Beispiel A minus B minus 1 und nicht nur A minus B? Was nützt A minus B minus 1? Aber ansonsten bietet es einige nützliche Logikfunktionen in einem einzigen Chip, also würde ich gerne diese Komparator-Sache herausfinden.

Willkommen bei EE.SE. Der LS181 ist eine ALU, kein Komparator. Dass es ein A=B-Flag ausgibt, ist nur ein Teil des Designs. Wenn Sie nur einen 4-Bit-Komparator wollen, versuchen Sie es mit einem 74LS85. Es hat die gewünschten Ausgänge.
Danke für die Antwort. Ich kenne den 74LS85, aber ich möchte nicht nur einen Komparator. Mir ist bewusst, dass der 74LS181 eine ALU ist, aber das Datenblatt listet diese Fähigkeiten als verfügbare Funktionen auf: Addieren, Subtrahieren, VERGLEICHEN, Verdoppeln und andere. Außerdem sagt das Datenblatt, dass es A> B und A <B anzeigen kann.

Antworten (2)

Ich bin mir nicht sicher, was es mit "... wenn sich das Gerät im Subtraktionsmodus befindet" bedeutet. Auf diesem Chip gibt es keinen solchen Modus.

Es gibt sicherlich:Geben Sie hier die Bildbeschreibung ein

Wenn die "Mode Select"-Eingänge auf LHHL (oder 0110) eingestellt sind, berechnet die ALU AB-1. Dies wird als "Subtraktionsmodus" bezeichnet.

"Der Komparatorausgang (A = B) des Geräts geht auf HIGH, wenn alle vier Funktionsausgänge (nicht F0 bis nicht F3) auf HIGH sind, und kann verwendet werden, um die logische Äquivalenz über 4 Bits anzuzeigen, wenn sich das Gerät im Subtraktionsmodus befindet."

Das ist ziemlich verwirrend. Wenn ich A und B vergleiche, würde ich denken, dass der A = B-Ausgang jedes Mal HIGH gehen würde, wenn A gleich B wäre.

Wenn Sie also A - B - 1 berechnen, welches Ergebnis erhalten Sie, wenn A = B ist?

Sie erhalten -1, was durch all dargestellt wird F ¯ Bits sind hoch.

Der Chip bietet also genau das Verhalten, von dem Sie sagen, dass Sie es erwarten.

Weiter unten im selben Absatz heißt es: „Das A=B-Signal kann auch mit dem Cn+4-Signal verwendet werden, um A>B und A anzuzeigen

Es wird im nächsten Absatz erklärt:

The Function Table lists the arithmetic operations that are
performed without a carry in. An incoming carry adds a one to
each operation. Thus, select code LHHL generates A minus B
minus 1 (2s complement notation) without a carry in and
generates A minus B when a carry is applied. Because
subtraction is actually performed by complementary addition
(1s complement), a carry out means borrow; thus a carry is
generated when there is no underflow and no carry is
generated when there is underflow.

Wenn A < B, dann erzeugt A – B – 1 einen Unterlauf, was dazu führt, dass das Übertragsbit nicht aktiviert wird. Wenn A > B, dann gibt es keinen Unterlauf und das Übertragsbit wird aktiviert.

Warum ist es zum Beispiel A minus B minus 1 und nicht nur A minus B? Was nützt A minus B minus 1?

Denn das ist mit der absolut minimalen Anzahl an Transistoren einfacher zu berechnen.

Im Zweierkomplement ist A - B dasselbe wie A + B ¯ + 1 . AB-1 invertiert also einfach B und addiert zu A.

Und wie das obige Zitat sagt, können Sie nur AB erhalten, indem Sie das Carry-In-Bit aktivieren, während Sie die AB-1-Operation ausführen.

Warum AB-1 ... Ein weiterer Grund ist, dass Sie, wenn Sie die Chips kaskadieren, um an mehr als 4 Bits zu arbeiten, wissen müssen, ob Sie an den niederwertigsten Bits arbeiten (in diesem Fall müssen Sie beim Negieren 1 hinzufügen B) oder nicht (in diesem Fall nicht), um AB zu implementieren.
... Wenn die "Mode Select"-Eingänge auf LHHL (oder 0110) eingestellt sind, berechnet die ALU AB-1. Dies wird als "Subtraktionsmodus" bezeichnet.... OK, ich kann dies nicht im Datenblatt finden, daher bin ich mir nicht sicher, woher Sie das wussten, aber danke. Gilt es nur für diese eine Subtraktion oder gilt es für A minus 1, AB minus 1 und so weiter? Wo hast du das gefunden?
@blixel Ich habe in meiner Antwort den entsprechenden Absatz aus dem Datenblatt zitiert.
Ich mag es einfach, wenn es klar und eindeutig ist. Und im Datenblatt steht nichts, was besagt: "Der Subtraktionsmodus ist dasselbe wie A minus B minus 1." Wie auch immer, danke für die Antworten und ich werde auf die eigentliche Hardware zurückkommen, um das so schnell wie möglich auszuprobieren.
@blixel, für das, was es wert ist, stimme ich zu, dass dies nicht das transparenteste Datenblatt der Welt ist. Damals, als dies geschrieben wurde, erwarteten sie, dass Sie es einfach aus dem Logikdiagramm herausarbeiten sollten, wenn Sie Fragen hatten.
Es muss also so sein, dass der "Subtract Mode" nur für Active Low Inputs und Outputs verfügbar ist (wenn der Cn-Pin auf Low gesetzt ist)? Ich hatte die Gelegenheit, wieder einige Dinge auf meinem Board auszuprobieren, und ja ... ich gebe das Komparator-Zeug auf. Der Ausgang A = B geht nicht auf HIGH, egal was ich tue. Wenn es funktioniert hat, vermute ich, dass der A = B-Ausgang in Kombination mit dem Cn + 4-Ausgang verwendet werden kann, um festzustellen, ob A gleich B oder A größer als B ist , oder wenn A kleiner als B ist. Aber wenn der Ausgang A = B immer ausgeschaltet ist, kann ich keine Logik für den Ausgang sehen, den ich bekomme.

Obwohl die Frage schon etwas älter ist, hatte ich gerade die gleiche, las die Antworten hier und fand es dann auf meinem heraus:

Sie haben folgende Sätze aus dem Datenblatt zitiert:

Der Komparatorausgang (A=B) des Geräts geht auf HIGH, wenn alle vier Funktionsausgänge (nicht F0 bis nicht F3) auf HIGH sind, und kann verwendet werden, um die logische Äquivalenz über 4 Bits anzuzeigen, wenn sich das Gerät im Subtraktionsmodus befindet.

Aber der Schlüssel zu Ihrer (unserer) Frage liegt in der nächsten:

Der A = B-Ausgang ist ein offener Kollektor und kann mit anderen A = B-Ausgängen UND-verdrahtet werden, um einen Vergleich für mehr als vier Bits zu ermöglichen.

Hier finden Sie die Erklärung, was ein Open Collector ist: https://en.wikipedia.org/wiki/Open_collector

Das heißt, wenn alle Ausgänge F1-4 hoch sind, ist die Basis dieses Ausgangstransistors hoch und der Pin A=B geht in einen HIGH-Z-Zustand, dh er verhält sich wie ein offener Schalter. Immer wenn nicht alle F-Pins hoch sind, ist die Basis des Transistors niedrig und daher leitet der Transistor und zieht den A = B-Pin auf Masse.

Sie können dieses Verhalten leicht demonstrieren, indem Sie eine LED-Anode über einen Widerstand mit 5 V und die Kathode mit dem A=B-Bin verbinden. Die LED leuchtet, außer wenn alle F-Pins hoch sind, dann erlischt sie. Ich konnte das gerade selbst demonstrieren.

Das "funktioniert" übrigens in allen Modi, obwohl es dort nicht wirklich Sinn macht. Beispielsweise bewirkt, dass alle Steuerleitungen niedrig (für aktiv hohe Eingänge) oder alle Steuerleitungen hoch (für aktiv niedrige Eingänge) sind, dass das Ergebnis der ALU der A-Eingang ist. Wenn Sie alle A-Pins hoch setzen, ist der Ausgang ebenfalls hoch. Dann geht auch der A = B-Pin auf HIGH-Z. Daher macht es nur wirklich Sinn, auf diesen Pin zu schauen, wenn man A von B subtrahiert.