Celle adder con prefisso parallelo in Negabinary


14

Sto cercando di progettare un sommatore sommatore parallelo per un sommatore basato negabinary. Negabinary è base invece del familiare binario base . Ogni sommatore a 1 bit genera una somma e due (anziché uno in binario) portano al sommatore successivo.22

Per rendere più veloce l'adder, voglio usare una struttura di prefisso parallela, come la struttura Ladner-Fischer fornita di seguito. Ho familiarità con la funzionalità della cella viola nel sistema binario, ma non sono sicuro di come ottenere la stessa funzionalità nel sistema negabinario.

Il motivo per cui lo sto facendo è solo per divertimento, non ho ancora trovato alcun uso per il negabinary.

Formule per il calcolo della somma e porta:

si=aibi(ci++ci)

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

ci+1=aibici¯+aici+ci¯+bici+ci¯

Ladner-fischer trasporta la struttura ad albero:

inserisci qui la descrizione dell'immagine

Se qualcosa non è chiaro, non esitare a chiedere.


Mentre questa può essere una domanda interessante, non sembra essere una domanda elettrica e potresti avere più fortuna a portarla alla matematica SE.
Redja,

3
L'ho messo qui perché penso che le persone EE abbiano più esperienza con la logica di carry, la progettazione di
additivi

Questa è totalmente una domanda EE
Voltage Spike

Sembra che tu abbia bisogno di più di due uscite per carry. Non hai bisogno di generare e propagare sia per il carry che per il prestito?
rigido

Presumo che tu stia parlando della struttura Ladner-fischer. Era solo un esempio per mostrare un albero di prefisso parallelo. Ogni sommatore negabinary a 1 bit genera una somma, un carry positivo e uno negativo. Non sono sicuro che possiamo usare i concetti di generare e propagare con il negabinary.
gilianzz,

Risposte:


1

Probabilmente ho dedicato più tempo a questa domanda di quanto avrei dovuto, ma ecco i miei risultati.

Non riesco a trovare alcun esempio di sommatore di prefisso parallelo "puro" per numeri negabinari. Penso anche che sia un problema aperto, poiché non ho visto alcuna prova che non sia possibile.

Il più vicino che posso ottenerti è usando un'aggiunta negabinary negativa in due fasi (comunemente abbreviata in letteratura in nnba). Si basa sulla seguente proprietà:

Sia e g ( x ) = x n - 1 ¯ x n - 2 . . . x 1 ¯ x 0 . Si tratta sostanzialmente di un'operazione XOR con e rispettivamente. Puoi quindi dimostrarlof(x)=xn1¯xn2...x1¯x0g(x)=xn1xn2¯...x1x0¯0xAA...AA0x55...55

(a+nbb)=g(f(a)+f(b)+1)

Dove il lato sinistro è la somma negabinary , mentre il + sul lato destro è una somma binaria normale.+nb+

La somma negativa può quindi essere semplicemente invertita usando la stessa proprietà ma con un operando zero:

x=g(f(x)+f(0)+1)

Quindi, al fine di trovare la somma utilizzando i prefissi paralleli, è possibile:

  1. f(a)f(b)
  2. +1s1
  3. s1f(g(s1))
  4. 0xAA...AB=f(0)+1s2
  5. g(s2)

In realtà ho cercato di trovare un sommatore di prefisso parallelo "puro", ma l'ho considerato troppo complesso per il tempo che ero disposto a spendere. Ecco perché:

{0,1}n×{0,1}n{0,1}nab=ab¯

(ab)c=ab¯c¯a(bc)=abc¯¯

ci+ci¯cici+¯


La mia attuale comprensione è che in effetti è impossibile costruire questo sommatore di prefisso parallelo "puro". Sembrerebbe che un sommatore a prefisso parallelo possa ottenere un'efficienza di O (log (N)), mentre un equivalente negabinario sembra avere sempre complessità O (2 * log (N)) (2x nnba).
gilianzz,

Non ho trovato alcuna letteratura che provasse o affermasse che era impossibile . Sarei felice di essere smentito comunque. Ma la nnba in 2 fasi sembra essere lo standard attualmente per l'aggiunta negabinaria, per quanto posso dire.
Sven B,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.