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.
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.
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 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 . 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.
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.
Benutzer105652
blixel