Negabinary의 병렬 접두사 가산기 셀


14

음수 기반 가산기에 대한 병렬 접두사 가산기를 설계하려고합니다. Negabinary는 친숙한 base 2 바이너리 대신 base 입니다. 각각의 1 비트 가산기는 합을 생성하고 다음 가산기로 이동하는 2 진 (1 진 대신 1)을 전달합니다.22

가산기를 더 빨리 만들기 위해 아래 주어진 Ladner-Fischer 구조와 같은 병렬 접두사 구조를 사용하고 싶습니다. 이진 시스템에서 자주색 셀의 기능에 익숙하지만 네 가진 시스템에서 어떻게 동일한 기능을 얻을 수 있는지 잘 모르겠습니다.

내가 이것을하는 이유는 단지 재미를 위해서이며, 아직 부정적 용도를 찾지 못했습니다.

합계 및 캐리를 계산하는 공식 :

si=aibi(ci++ci)

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

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

래드 너 피셔 캐리 트리 구조 :

여기에 이미지 설명을 입력하십시오

확실치 않은 사항이 있으면 언제든지 문의하십시오.


이것은 흥미로운 질문이지만 전기적인 질문은 아닌 것 같으며 수학 SE로 가져가는 것이 더 좋습니다.
Redja

3
나는 EE 사람들이 캐리 로직, 가산기 설계 등에 대해 더 많은 경험을 가지고 있다고 생각하기 때문에 여기에 넣었다.
gilianzz

이것은 전적으로 EE 질문입니다
Voltage Spike

캐리 당 두 개 이상의 출력이 필요한 것 같습니다. 캐리 및 빌리기 모두 생성 및 전파가 필요하지 않습니까?
스탁

래드 너 피셔 구조에 대해 이야기하고 있다고 가정합니다. 병렬 프리픽스 트리를 보여주는 예제 일뿐입니다. 각 1 비트 음의 가산기는 합, 양수 및 음수 캐리를 출력합니다. 우리가 negabinary와 함께 generate와 propagate의 개념을 사용할 수 있는지 확실하지 않습니다.
gilianzz

답변:


1

아마 내가 생각했던 것보다이 질문에 더 많은 시간을 보냈지 만 여기에 나의 발견이 있습니다.

음수에 대한 "순수한"병렬 접두사 가산기의 예를 찾을 수 없습니다. 또한 그것이 불가능 하다는 증거를 보지 못했기 때문에 그것이 열린 문제라고 생각 합니다.

내가 얻을 수있는 가장 가까운 것은 2 단계 음의 음수 추가 (일반적으로 문헌에서 nnba로 약칭 됨)를 사용하는 것입니다. 다음 특성을 기반으로합니다.

f(x)=xn1¯xn2...x1¯x0g(x)=xn1xn2¯...x1x0¯0xAA...AA0x55...55

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

+nb+

그런 다음 음수 합계는 동일한 속성을 사용하지만 피연산자는 0으로 간단히 반전시킬 수 있습니다.

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

따라서 병렬 접두사 가산기를 사용하여 합계를 찾으려면 다음을 수행 할 수 있습니다.

  1. f(a)f(b)
  2. LSB의 캐리 비트를 설정하는 동안 일반 이진 합계를 계산합니다 ( +1s1
  3. s1f(g(s1))
  4. 결과를 0xAA...AB(=에프(0)+1) 병렬 접두사 가산기를 사용하여 두 번째 중간 합계 에스2
  5. 계산 (에스2) (마이너스 비트를 반전) 최종 음수 합계를 찾습니다.

나는 실제로 "순수한"병렬 프리픽스 가산기를 찾으려고 노력했지만, 그것을 기꺼이 소비 할 시간에는 너무 복잡하다고 생각했다. 이유는 다음과 같습니다.

병렬 접두사 가산기의 요점은 {0,1}×{0,1}{0,1}이 비트에서 (이 경우 2) 캐리를 쉽게 계산할 수 있습니다. 추가 제약 조건으로 작업 을 병렬로 계산 하려면 작업을 연관 시켜야합니다 . 예를 들어, 이것은 기본적으로 NOT 연산자 (이중 부정의 일부가 아님)를 제외합니다. 예를 들면 다음과 같습니다.=¯ is not an associative operator, because

(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+¯,있는 그대로 사용할 수 없습니다. 일반 이진 덧셈의 단일 캐리의 경우 생성전파 측면에서이 연산자를 생각할 때이 연산자를 구성하는 방법이 상당히 분명해 졌지만, 부정적 캐리에서는 그렇게 명확하지 않은 것 같습니다.


나의 현재 이해는 실제로이 "순수한"병렬 접두사 가산기를 구성하는 것이 불가능하다는 것입니다. 병렬 접두사 가산기는 O (log (N))의 효율성을 얻을 수있는 반면, 동등한 음수는 항상 복잡도 O (2 * log (N)) (2x nnba)를 갖는 것으로 보입니다.
gilianzz

나는 그것이 불가능하다는 것을 증명하거나 진술하는 문헌을 찾지 못했다 . 그래도 어느 쪽이든 잘못 입증되어 기쁩니다. 그러나 2 단계 nnba는 내가 말할 수있는 한 현재 부정 추가에 대한 표준으로 보입니다.
Sven B
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.