Frage:
Was ist die Begründung für die arithmetischen Funktionen des 74181?
Jichao
2010-01-18 10:31:53 UTC
view on stackexchange narkive permalink

Ich verstehe nicht, warum der 74181 so funktioniert, wie er funktioniert. Es bietet zwar alle logischen Funktionen (AND, NAND, OR, NOR, XOR, Shift), aber seine arithmetischen Funktionen sind nicht so klar. Beispielsweise enthält es nicht A - B und A + B im selben Modus.

Können Sie einen Hintergrund zum Verlauf angeben? entworfen?

Gute Frage, aber ich glaube, keiner von uns Chiphacker-Benutzern würde eines der TI-Motive kennen, das über das im Datenblatt oder auf Wikipedia http://en.wikipedia.org/wiki/74181 hinausgeht
-1
Sie sind sich nicht sicher ... wenden Sie sich an einen TI-Vertriebsmitarbeiter? Vielleicht könnten sie Sie mit einem der Oldtimer in Kontakt bringen, die in den 1970er Jahren an der 74181 gearbeitet haben.
Zwei antworten:
#1
+7
Ken Shirriff
2017-01-07 00:36:01 UTC
view on stackexchange narkive permalink

Ich weiß, dass dies eine alte Frage ist, aber ich habe kürzlich den 74181 rückentwickelt und kann im Detail erklären, warum er die Funktionen hat, die er hat.

Der 74181 ist ein 4-Bit-ALU-Chip, der 16 Logikfunktionen und 16 arithmetische Funktionen für seine Operanden A und B bereitstellt. Viele der Logikfunktionen entsprechen Ihren Erwartungen (AND, OR, XOR), es gibt jedoch auch solche ungewöhnliche wie A ODER NICHT B. Die arithmetischen Funktionen sind noch seltsamer. Während Sie A PLUS B und A MINUS B haben, scheinen einige wie (A ODER B) PLUS (A UND NICHT B) ziemlich zufällig zu sein.

Es gibt tatsächlich einen Grund für diese Operationen. Die Logikfunktionen stellen alle 16 Booleschen Funktionen f (A, B) bereit. Die arithmetischen Funktionen laufen alle auf A PLUS f (A, B) PLUS Carry-In hinaus.

Machen Sie einen Schritt zurück, um zu sehen, warum es 16 Funktionen gibt. Wenn Sie eine Boolesche Funktion f (A, B) für Ein-Bit-Eingänge haben, enthält die Wahrheitstabelle 4 Zeilen. Jede Zeile kann 0 oder 1 ausgeben. Es gibt also 2 ^ 4 = 16 mögliche Funktionen. Erweitern Sie diese auf 4 Bits, und dies sind genau die 16 Logikfunktionen des 74181, von trivial 0 und 1 über erwartete Logik wie A UND B bis hin zu erfundenen Operationen wie NICHT A UND B.

Die arithmetischen Funktionen sind einfach diese 16 Funktionen, die A mit dem hinzugefügten Übertrag hinzugefügt werden. Wenn beispielsweise f (A, B) = B ist, erhalten Sie A PLUS B PLUS Carry-In. Wenn f (A, B) = NICHT B ist, erhalten Sie den Übertrag A PLUS NOT B PLUS, der sich in der Zweierkomplementlogik in den Übertrag A MINUS B MINUS 1 PLUS verwandelt.

Andere arithmetische Funktionen erfordern etwas mehr Analyse. Angenommen, f (A, B) = NICHT (A ODER B). Dann ist jedes Bit von A PLUS f (A, B) immer 1, außer in dem Fall, in dem A 0 und B 1 ist. Das Ergebnis ist also A ODER NICHT B. Auch wenn Sie addieren, ist das Ergebnis a logische Funktion. Die anderen seltsamen arithmetischen Funktionen können auf ähnliche Weise erklärt werden.

Eine Sache zu beachten ist, dass A PLUS A Ihnen eine Linksverschiebung ermöglicht, aber es gibt keine Möglichkeit, eine Rechtsverschiebung auf dem 74181 durchzuführen.

In seiner Implementierung verfügt der 74181 über vier Auswahlleitungen, die auswählen, welche der 16 f (A, B) -Funktionen verwendet werden. Die erste Hälfte der Schaltung des Chips berechnet die vier 1-Bit-Summen von A mit f (A, B). (Insbesondere werden die Generate- und Propagate-Signale erstellt, die für Carry Lookahead verwendet werden. Dadurch kann der 74181 parallel arbeiten, anstatt einen Ripple-Carry zu verwenden.) Die zweite Hälfte der Schaltkreise des Chips generiert alle trägt parallel und berechnet die endgültige Summe.

Intern werden die Logikfunktionen implementiert, indem eine Addition mit den internen Übertragungen durchgeführt wird, die alle von der M-Leitung hoch erzwungen werden: A PLUS f (A, B) mit allen Übertragungen. Es ist leicht zu erkennen, dass dadurch immer noch 16 eindeutige logische Funktionen generiert werden. Die Reihenfolge wird jedoch durchlässig, weshalb beim Betrachten des Datenblattes kein offensichtlicher Zusammenhang zwischen den Logikfunktionen und den arithmetischen Funktionen besteht.

Wenn Sie die Interna des 74181 verstehen möchten, schauen Sie sich zuerst den 4-Bit-Addierer 7483 an, der zwei Jahre zuvor herauskam. Es verwendet die gleichen Übertragsberechnungstechniken, ist jedoch einfacher zu verstehen, da es eine Funktion bietet, nicht 32. Sie können sich den 74181 als Verallgemeinerung des 7483 vorstellen.

#2
+3
starblue
2010-01-19 02:12:04 UTC
view on stackexchange narkive permalink

A minus B minus 1 wird zur Subtraktion verwendet, und das Komplement des Übertragsflags kann als Leihflag angesehen werden.

Tatsächlich verwenden dies sogar AVRs - sie haben keine Anweisung zum sofortigen Hinzufügen (nur sofortiges Subtrahieren), da Sie diese problemlos in eine andere konvertieren können. Wenn beide Werte aus Registern stammen, sind sowohl sub als auch add nett und schnell, aber einer ist immer noch nicht unbedingt erforderlich.
Ja, siehe http://stackoverflow.com/questions/1337831/why-is-this-code-being-generated-by-avr-gcc-and-how-does-it-work


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 2.0-Lizenz, unter der er vertrieben wird.
Loading...