Các tế bào cộng tiền tố song song trong Negabinary


14

Tôi đang cố gắng thiết kế một bộ cộng tiền tố song song cho một bộ cộng dựa trên phủ định. Negabinary là cơ sở thay vì nhị phân cơ sở 2 quen thuộc . Mỗi bộ cộng 1 bit tạo ra một tổng và hai (thay vì một trong nhị phân) mang đến bộ cộng tiếp theo.22

Để làm cho trình cộng nhanh hơn, tôi muốn sử dụng cấu trúc tiền tố song song, như cấu trúc Ladner-Fischer được đưa ra dưới đây. Tôi quen thuộc với chức năng của ô màu tím trong hệ thống nhị phân, nhưng tôi không chắc làm thế nào tôi có thể có được chức năng tương tự trong hệ thống negabinary.

Lý do tôi làm việc này chỉ để cho vui, tôi chưa tìm thấy cách sử dụng nào cho negabinary.

Công thức tính tổng và mang:

si=aibi(ci++ci)

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

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

Ladner-fischer mang cấu trúc cây:

nhập mô tả hình ảnh ở đây

Nếu bất cứ điều gì không rõ ràng, xin vui lòng hỏi.


Mặc dù đây có thể là một câu hỏi thú vị, nhưng nó dường như không phải là một câu hỏi điện, và bạn có thể may mắn hơn khi đưa nó vào toán học SE.
Redja

3
Tôi đặt nó ở đây bởi vì tôi nghĩ rằng người EE có nhiều kinh nghiệm hơn với logic mang, thiết kế các bộ bổ sung, v.v.
gilianzz

Đây hoàn toàn là một câu hỏi EE
Điện áp tăng vọt

Có vẻ như bạn cần nhiều hơn hai đầu ra cho mỗi lần mang. Bạn không cần tạo và tuyên truyền cho cả mang và mượn?
stark

Tôi giả sử bạn đang nói về cấu trúc Ladner-fischer. Nó chỉ là một ví dụ để thể hiện một cây tiền tố song song. Mỗi bộ cộng âm 1 bit tạo ra một tổng, giá trị dương và giá trị âm. Tôi không chắc chắn nếu chúng ta có thể sử dụng các khái niệm tạo và tuyên truyền với negabinary.
gilianzz

Câu trả lời:


1

Tôi có lẽ đã dành nhiều thời gian cho câu hỏi này hơn tôi nên, nhưng đây là những phát hiện của tôi.

Tôi không thể tìm thấy bất kỳ ví dụ nào về bộ cộng tiền tố song song "thuần túy" cho các số âm. Tôi cũng nghĩ đó là một vấn đề mở, vì tôi chưa thấy bằng chứng nào cho thấy nó là không thể.

Gần nhất tôi có thể có được bạn là bằng cách sử dụng một bổ sung phủ định âm hai bước (thường được viết tắt là nnba trong văn học). Nó dựa trên tài sản sau:

Đặt g ( x ) = x n - 1 ¯ x n - 2 . . . x 1 ¯ x 0 . Về cơ bản, đây là một hoạt động XOR với và tương ứng. Sau đó bạn có thể chứng minh rằngf(x)=xn1¯xn2...x1¯x0g(x)=xn1xn2¯...x1x0¯0xAA...AA0x55...55

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

+nb+

Tổng âm sau đó có thể được đảo ngược bằng cách sử dụng cùng một thuộc tính nhưng với toán hạng bằng 0:

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

Vì vậy, để tìm tổng bằng cách sử dụng các bộ cộng tiền tố song song, bạn có thể:

  1. Tính toán f(một)f(b), I E. bằng cách đảo ngược từng bit lẻ của các số âm
  2. Tính tổng nhị phân thông thường trong khi thiết lập bit mang cho LSB ( +1), dẫn đến một khoản tiền trung gian đầu tiên S1.
  3. Đảo ngược tất cả các bit của S1 (đây là f(g(S1))). Đây là kết thúc của tổng đầu tiên, trong khi cũng bắt đầu đảo ngược.
  4. Tăng kết quả bằng 0xAA...AB(= =f(0)+1) bằng cách sử dụng bộ cộng tiền tố song song, thu được tổng trung gian thứ hai S2
  5. Tính toán g(S2) (đảo ngược từng bit chẵn) để tìm tổng âm cuối cùng.

Tôi thực sự đã cố gắng tìm một trình cộng tiền tố song song "thuần túy", nhưng tôi cho rằng nó quá phức tạp đối với thời gian tôi sẵn sàng chi cho nó. Đây là lý do tại sao:

Toàn bộ điểm của các bộ cộng tiền tố song song là tìm một số hoạt động của {0,1}n×{0,1}n{0,1}ncho phép bạn dễ dàng tính toán (trong trường hợp này 2) mang từ các bit này. Là một ràng buộc bổ sung, hoạt động cần phải được kết hợp để được tính toán song song. Ví dụ, điều này về cơ bản loại trừ bất kỳ toán tử NOT nào (đó không phải là một phần của phủ định kép). Ví dụ:mộtb= =mộtb¯ không phải là một nhà điều hành liên kết, bởi vì

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

Note that the boolean operator for the carries in your question includes the mixed terms ci+ci¯ and cici+¯, making it impossible to use it as-is. For a single carry in normal binary addition, it became quite obvious how to construct this operator when thinking about it in terms of generation and propagation, but it seems to be not so obvious for negabinary carries.


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

I didn't find any literature proving or stating that it was impossible. I'd be happy to be proven wrong either way though. But the 2-step n.n.b.a. does seem to be the standard currently for negabinary addition as far as I can tell.
Sven B
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.