Parallele Präfixaddiererzellen in Negabinary


14

Ich versuche, einen parallelen Präfixaddierer für einen auf Negabinary basierenden Addierer zu entwerfen. Negabinary ist Base 2 anstelle der bekannten Base Binary. Jeder 1-Bit-Addierer erzeugt eine Summe und zwei (anstelle von einem in binären) Überträge, die zum nächsten Addierer gehen.2

Um den Addierer schneller zu machen, möchte ich eine parallele Präfixstruktur verwenden, wie die unten angegebene Ladner-Fischer-Struktur. Ich bin mit der Funktionalität der violetten Zelle im Binärsystem vertraut, bin mir aber nicht sicher, wie ich die gleiche Funktionalität im Negabinary-System erreichen kann.

Der Grund, warum ich das mache, ist nur zum Spaß, ich habe noch keine Verwendung für Negabinary gefunden.

Formeln zur Berechnung der Summe und Überträge:

si=aibi(ci++ci)

ci+1+=ai¯bi¯ci+¯ci

cich+1-=einichbichcich-¯+einichcich+cich-¯+bichcich+cich-¯

Ladner-fischer tragen Baumstruktur:

Bildbeschreibung hier eingeben

Wenn etwas unklar ist, zögern Sie bitte nicht zu fragen.


Auch wenn dies eine interessante Frage ist, scheint es keine elektrische Frage zu sein, und Sie haben möglicherweise mehr Glück, wenn Sie sie an die Mathematik-SE weiterleiten.
Redja

3
Ich schreibe es hier, weil ich denke, dass EE-Leute mehr Erfahrung mit Carry-Logik, dem Entwerfen von Addierern usw. haben
gilianzz

Dies ist eine EE-Frage
Voltage Spike

Scheint, als bräuchten Sie mehr als zwei Ausgänge pro Übertrag. Müssen Sie nicht sowohl für das Tragen als auch für das Ausleihen generieren und verbreiten?
Stark

Ich nehme an, Sie sprechen von der Ladner-Fischer-Struktur. Es war nur ein Beispiel für die Darstellung eines parallelen Präfixbaums. Jeder negabinäre 1-Bit-Addierer gibt eine Summe, einen positiven und einen negativen Übertrag aus. Ich bin mir nicht sicher, ob wir die Konzepte des Generierens und Propagierens mit Negabinary anwenden können.
Gilianzz

Antworten:


1

Ich habe wahrscheinlich mehr Zeit mit dieser Frage verbracht, als ich sollte, aber hier sind meine Ergebnisse.

Ich kann kein Beispiel eines "reinen" parallelen Präfixaddierers für negabinäre Zahlen finden. Ich denke auch, dass es ein offenes Problem ist, da ich keinen Beweis dafür gesehen habe, dass es nicht möglich ist.

Ich kann Sie am ehesten durch eine zweistufige negative Negabinäraddition (in der Literatur häufig mit nnba abgekürzt) erreichen. Es basiert auf der folgenden Eigenschaft:

Sei und g ( x ) = x n - 1 ¯ x n - 2 . . . x 1 ¯ x 0 . Dies sind im Grunde eine XOR-Operation mit und jeweils. Das können Sie dann beweisenf(x)=xn-1¯xn-2...x1¯x0G(x)=xn-1xn-2¯...x1x0¯0xAA...AA0x55...55

-(ein+nbb)=G(f(ein)+f(b)+1)

+nb+

Die negative Summe kann dann einfach mit derselben Eigenschaft, jedoch mit einem Nulloperanden, invertiert werden:

-x=G(f(x)+f(0)+1)

Um die Summe mit parallelen Präfixaddierern zu ermitteln, können Sie:

  1. f(ein)f(b)
  2. Berechnen Sie die reguläre Binärsumme, während Sie das Übertragsbit für das LSB (das +1), was zu einem ersten Zwischenbetrag führt s1.
  3. Invertiere alle Bits von s1 (das ist f(G(s1))). Dies ist das Ende der ersten Summe und gleichzeitig der Beginn der Inversion.
  4. Erhöhe das Ergebnis um 0xAA...AB(=f(0)+1) unter Verwendung eines parallelen Präfixaddierers, wobei sich die zweite Zwischensumme ergibt s2
  5. Berechnen G(s2) (Invertieren jedes geraden Bits), um die endgültige Negabinsumme zu finden.

Ich habe tatsächlich versucht, einen "reinen" Parallel-Präfix-Addierer zu finden, aber ich fand ihn zu komplex für die Zeit, die ich bereit war, dafür aufzuwenden. Hier ist der Grund:

Der springende Punkt bei parallelen Präfixaddierern ist, eine Operation von zu finden {0,1}n×{0,1}n{0,1}nAuf diese Weise können Sie die Überträge (in diesem Fall 2) aus diesen Bits leicht berechnen. Als zusätzliche Einschränkung muss die Operation assoziativ sein , um parallel berechnet zu werden. Dies schließt beispielsweise grundsätzlich jeden NOT-Operator aus (der nicht Teil einer doppelten Verneinung ist). Beispielsweise:einb=einb¯ ist kein assoziativer Operator, weil

(einb)c=einb¯c¯ein(bc)=einbc¯¯

Beachten Sie, dass der Boolesche Operator für die Überträge in Ihrer Frage die gemischten Begriffe enthält cich+cich-¯ und cich-cich+¯, was es unmöglich macht, es so zu benutzen, wie es ist. Für einen einzelnen Übertrag in einer normalen binären Addition wurde es ziemlich offensichtlich, wie dieser Operator zu konstruieren ist, wenn man über seine Erzeugung und Ausbreitung nachdenkt , aber für negative Übertragungen scheint es nicht so offensichtlich zu sein.


My current understanding is that it is in fact impossible to construct this "pure" parallel prefix adder. It would seem that a parallel prefix adder can get an efficiency of O(log(N)), whereas a negabinary equivalent seems to always have complexity O(2*log(N)) (2x n.n.b.a).
gilianzz

Ich habe keine Literatur gefunden, die beweist oder angibt, dass dies unmöglich ist . Ich würde mich freuen, wenn ich mich so oder so als falsch erweisen würde. Aber der 2-Stufen-nnba scheint derzeit der Standard für negabinäre Additionen zu sein, soweit ich das beurteilen kann.
Sven B
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.