Saya mencoba merancang adder paralel awalan untuk adder berbasis negabinary. Negabinary adalah basis bukan biner basis akrab . Setiap 1 bit penambah menghasilkan jumlah dan dua (bukan satu dalam biner) membawa yang pergi ke penambah berikutnya.
Untuk membuat adder lebih cepat, saya ingin menggunakan struktur awalan paralel, seperti struktur Ladner-Fischer yang diberikan di bawah ini. Saya akrab dengan fungsi sel ungu di sistem biner, tapi saya tidak yakin bagaimana saya bisa mendapatkan fungsionalitas yang sama di sistem negabinary.
Alasan saya melakukan ini hanya untuk bersenang-senang, saya belum menemukan kegunaan untuk negabinary.
Rumus untuk menghitung jumlah dan membawa:
Tangga-fischer membawa struktur pohon:
Jika ada yang tidak jelas, jangan ragu untuk bertanya.
sumber
Jawaban:
Saya mungkin menghabiskan lebih banyak waktu untuk pertanyaan ini daripada yang seharusnya, tetapi inilah temuan saya.
Saya tidak dapat menemukan contoh penambah awalan paralel "murni" untuk angka negatif. Saya juga berpikir ini adalah masalah terbuka, karena saya belum melihat bukti bahwa itu tidak mungkin.
Yang paling dekat yang bisa saya dapatkan adalah dengan menggunakan tambahan negatif dua langkah negatif (biasanya disingkat nnba dalam literatur). Itu didasarkan pada properti berikut:
Biarkan dan g ( x ) = x n - 1 ¯ x n - 2 . . . x 1 ¯ x 0 . Ini pada dasarnya adalah operasi XOR dengan dan masing - masing. Anda kemudian dapat membuktikannyaf(x)=xn−1¯¯¯¯¯¯¯¯¯¯xn−2...x1¯¯¯¯¯x0 g(x)=xn−1xn−2¯¯¯¯¯¯¯¯¯¯...x1x0¯¯¯¯¯
0xAA...AA
0x55...55
Di mana sisi kiri adalah jumlah negabinary , sedangkan + di sisi kanan adalah jumlah biner normal.+nb +
Jumlah negatif kemudian dapat dengan mudah dibalik menggunakan properti yang sama tetapi dengan nol operan:
Jadi untuk menemukan jumlah menggunakan pengaya awalan paralel, Anda dapat:
0xAA...AB
Saya sebenarnya telah mencoba untuk menemukan adder paralel awalan "murni", tetapi saya menganggapnya terlalu rumit untuk waktu yang ingin saya habiskan untuk itu. Inilah alasannya:
sumber