2016-10-02 2 views
1

4 bit 이진수 (A_3, A_2, A_1, A_0B_3, B_2, B_1, B_0)를 비교하는 비교기가 있습니다. 결과는 출력 신호 C_i이고 인 경우 값은 1입니다.캐리가있는 디지털 비교기 - 테이블을 올바르게 채우는 방법?

산술 회로는 4 동일한 1 bit arithmetic-modules를 연결하여 구성되어 있다고 가정합니다. 이 1 bit 모듈의 각각은 A_i, B_i, C_i-1이고 출력은 C_i이고 i=0,1,2,3입니다. 따라서 carry 출력은 덜 중요한 숫자 i-1으로 취해집니다.

주어진 경우는 A=0100B=0010입니다. 합리적인 방법으로 C_i-1 비트를 선택해야하는 표를 채우십시오. A > B 일 때 정확히 C_i1입니다.

나는 내가 할 수있는만큼 좋은 테이블을 작성하지만 어떻게 C_i-1 그것을 수행하는 아무 생각이 ...

나는 우리의 수치에 읽었으며 그것에 대해 C_i-1 무엇을 말하는 : compare-의 경우를 작업 <, ≤, ≥, > 빼기가 실행되고 결과가 캐리 아웃에서 읽습니다. C_i-1

그래서 테이블을 올바르게 채웠습니까? 이것은 오래된 시험의 과제이기 때문에 많은 다른 하위 작업이 있습니다. 내가 처음 (이 표)을 잘못하면, 그 밖의 모든 것도 잘못 될 것입니다! 내가 첫 번째 행의 A = 0, B = 0를 보이기 때문에

:(

enter image description here

나는 C_I-1 = 0. 두 번째 행 우리가이 왜 그렇게 0-0 = 0 '그, 그렇게 C_I-1 선택 = 1, B = 0, 1-0 = 1 그래서 C_i-1 = 1이면 A = 0, B = 1, 0-1 = -1이됩니다. 저를 도와주세요 몰라 ..

답변

3

일반적인 산술 <, ≤, ≥이,>, = 일반적으로 빼기로 구현되는 술어

을 빼기 수행하는 두 가지 방법이 있습니다. A)는 빼기 모듈 사용 또는 B) 가산기 사용.

당신은 당신이 사용하는 1 비트 모듈의 종류를 지정하지 않았지만 텍스트

우리가 A> B

이있을 때 C_I 정확히 1 캐리에서 우리가 그들이 가산기 (전체 가산기는 nitpic 할 수 있어야한다는 추론 할 수 ≥ B

해야합니다 왕). 빼기 모듈 인 경우 A≥B 일 때 A≥B 일 때 MSb에 대한 차용이 없으므로 carry-out은 0이었습니다.

감산 A - B -B가 B 2의 보수이다 A + -B으로 수행된다. 턴 -B에서
는 B의 NOT ~ B + 1 여기서 ~ B 같다 행한다.
따라서 A - B = A + ~ B + 1.

이 쉽게 B에서 ~ B를 얻기는 NOT 게이트의 무리를 (진리가 XOR 게이트입니다) 사용의 문제입니다. 그러나 가산기 두 숫자 (B)가 아니라 세 (, B 1) 사이에 추가를 수행.
우리는 우리가 -1
C 를 설정 한 경우 (일반적으로 추가 0 인 경우) 는 1에 대한 첫 번째 전 가산기의에서 캐리, 우리는 결과에 1을 추가 할 수 있음을 지적하여이 문제를 극복 할 수있다 . 여기

 3 2 1 0 
---------------------- 
Ai  0 0 1 0  
Bi  0 1 0 0 

Ci-1 0 1 1 1 
~Bi  1 0 1 1 

Ri  1 1 1 0 
Ci  0 0 1 1 

C :

따라서 테이블이 1 실제로 4 ≥ 2

우리는 또한 2와 4를 비교하는 시도 할 수있다

 3 2 1 0 
---------------------- 
Ai  0 1 0 0  
Bi  0 0 1 0 

Ci-1 1 0 1 1 
~Bi  1 1 0 1 

Ri  0 0 1 0 
Ci  1 1 0 1 

C이다은 2 < 4 (및 그 결과 -2) 이후 0입니다.
마지막 경우 A = B가 우리 C N = 1 보낸 ~ A + A + 1 = 2 N -1 는 N의 개수 + 1 = 2 N 비교기의 비트. 2 N은 최상위 비트가 설정된 N + 1 비트 수이고, 최상위 비트가 C N이다.

+0

오 세상에, 마침내 며칠 후 나는 그것을 이해하고 나는 단지 당신 때문에 그것을 이해한다! 나는이 포럼에 많은 질문을 던졌고 아무것도 도움이되지 못했습니다. 나는 곧 시험에 응시할 것이고, 시험에 합격하면이 답에 약간의 보상을주고 싶습니다. 현재로서는, 나는 당신에게 뚱뚱한 사랑스러운 +과 수용 마크 만 줄 수 있습니다! :-) 정말이 답변으로 이미 나를 구해 주셨습니다. 큰 감사드립니다. – rpbudd

+0

마지막 질문은 작은 글자로 썼습니다. "A ≥ B 여야합니다." 작업에 ">"이라고 분명하게 표시된 경우에도 마찬가지입니다. – rpbudd

+1

일반적으로 A> = B 일 때 * Cn *을 설정해야합니다. 왜냐하면 우리가 비교기에 대해 가산기를 사용할 때 자연 스럽기 때문입니다. A> B 일 때만 * Cn *을 설정할 수 있지만 이상하지 않은 경우 메모를 확인하거나 교수에게 질문해야합니다. 나는 여기서 약간의 문맥을 벗어났다. –

관련 문제