Negabinary'de paralel önek toplayıcı hücreler


14

Negatif tabanlı bir toplayıcı için paralel bir önek toplayıcı tasarlamaya çalışıyorum. Negatif, tanıdık temel ikili yerine taban . Her 1 bit toplayıcı bir toplam üretir ve bir sonraki toplayıcıya giden iki (ikili dosyada bir yerine) taşır.222

Toplayıcıyı daha hızlı hale getirmek için, aşağıda verilen Ladner-Fischer yapısı gibi paralel bir önek yapısı kullanmak istiyorum. İkili sistemdeki mor hücrenin işlevselliğine aşinayım, ancak negatif işlevde aynı işlevselliği nasıl alabileceğimden emin değilim.

Bunu yapmamın nedeni sadece eğlence için, henüz olumsuzluk için herhangi bir kullanım bulamadım.

Toplamı hesaplamak için formüller ve taşır:

si=aibi(ci++ci)

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

cben+1-=birbenbbencben-¯+birbencben+cben-¯+bbencben+cben-¯

Ladner-fischer ağaç yapısını taşır:

resim açıklamasını buraya girin

Net olmayan bir şey varsa, lütfen sormaktan çekinmeyin.


Bu ilginç bir soru olsa da, elektriksel bir soru gibi görünmüyor ve bunu matematik SE'ye götürmede daha iyi şansınız olabilir.
Redja

3
Buraya koydum çünkü EE insanlarının taşıma mantığı, toplayıcı tasarımı vb.
İle

Bu tamamen bir enerji verimliliği sorusu
Voltaj Başlangıcı

Taşıma başına ikiden fazla çıkışa ihtiyacınız var gibi görünüyor. Hem taşıma hem de borç alma için üretmeye ve yaymaya gerek yok mu?
stark

Ladner-fischer yapısından bahsettiğinizi varsayıyorum. Paralel bir önek ağacını göstermek için sadece bir örnekti. Her 1 bit negatif ekleyici toplam, pozitif ve negatif taşıma sağlar. Negatif ile üretme ve yayma kavramlarını kullanıp kullanamayacağımızdan emin değilim.
gilianzz

Yanıtlar:


1

Muhtemelen bu soruya benden daha fazla zaman geçirdim, ama işte bulgularım.

Negatif sayılar için "saf" paralel önek toplayıcı örneği bulamıyorum. Bunun açık bir sorun olduğunu düşünüyorum , çünkü bunun mümkün olmadığına dair bir kanıt görmedim .

Size en yakın iki aşamalı negatif negatif bir ekleme (literatürde genellikle kısaltılmış nnba) kullanmaktır. Aşağıdaki mülke dayanmaktadır:

Let ve g ( x ) = x n - 1 ¯ x n - 2 . . . x 1 ¯ x 0 . Bunlar temel olarak sırasıyla ve ile bir XOR işlemidir . Daha sonra bunu kanıtlayabilirsinizf(x)=xn-1¯xn-2...x1¯x0g(x)=xn-1xn-2¯...x1x0¯0xAA...AA0x55...55

-(bir+nbb)=g(f(bir)+f(b)+1)

+nb+

Negatif toplam daha sonra aynı özellik kullanılarak ancak sıfır işlenen kullanılarak ters çevrilebilir:

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

Paralel önek toplayıcıları kullanarak toplamı bulmak için şunları yapabilirsiniz:

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

Aslında bir "saf" paralel önek toplayıcı bulmaya çalıştım, ama üzerinde harcamak istediğim zaman için çok karmaşık olduğunu düşündüm. İşte nedeni:

{0,1}nx{0,1}n{0,1}nbirb=birb¯

(birb)c=birb¯c¯bir(bc)=birbc¯¯

cben+cben-¯cben-cben+¯


Şu anki kavrayışım aslında bu "saf" paralel ön ek toplayıcıyı inşa etmenin imkansız olduğu. Paralel bir önek toplayıcının O (log (N)) verimliliğini elde ettiği anlaşılırken, negatif bir eşdeğer her zaman O (2 * log (N)) (2x nnba) karmaşıklığına sahip gibi görünmektedir.
gilianzz

İmkansız olduğunu kanıtlayan ya da kanıtlayan bir literatür bulamadım . Yine de yanlış kanıtlanmış olmaktan mutluluk duyarım. Ancak 2 adımlı nnba, şu anda negatif bir ekleme için standart olarak göründüğüm kadarıyla görünüyor.
Sven B
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.