2014-02-25 1 views
0

이것은 숙제 임으로 답을 구하지는 않지만 지침이됩니다. "ALU에서 1 비트 slt 연산을 어떻게 구현합니까? AND, OR 및 NOT 만 사용하여 솔루션을 설명하십시오. 논리 게이트를 다이어그램 할 필요가 없으며 예상 가능한 모든 입력과 함께 프로세스를 명확하게 설명해야합니다. 출력 및 SLT를 나타내는 논리 표현을 포함 할 수 있습니다. " ALU에서 1 비트 slt 연산을 어떻게 구현합니까? (MIPS)

지금까지

... 나는 ALU에 32 비트 입력으로 A와 B를 가지고 생각하고

. 나는 또한 B의 2의 보충을 생각하고 있었다. 그리고 나는 A와 B를 더할 것이다. 출력이 음수가 아닌 경우 0을 반환합니다. 제 생각에는 1 비트 slt 연산을 구현 한 것처럼 들립니다. 하지만 AND, OR 및 NOT을 사용하여 "결과가 음수이면 1"을 표시하는 방법은 무엇입니까?

+1

답변으로 게시하려면. –

답변

1

상위 비트가 부호 비트라고 가정합니다. 1 < < 31과 AND 연산하여 부호 비트를 검사하여 결과를 마스크하십시오. 1 또는 0을 반환하려면 마스킹 결과에 다른 NOT 연산을 사용하고 1과 AND를 수행하고이를 반환 할 수 있습니다.

예 : 결과가 부정적

경우 (비트) 얻을 1....... 당신에게 0111111.....을주고 마침내 마지막으로 당신이 원하는 결과 인 당신에게 000....1을 줄 것이다 것 다음 NOT이의.

0

지침 : slt 명령에 대한 진리표를 그립니다.


응답 : 1 비트 slt ALU 명령에 대한 진리표.

A B Q 
0 0 0 //A=B no! 
0 1 1 //A<B yes! 
1 0 0 //A>B no! 
1 1 0 //A=B no! 

Q (출력)하는 경우에만 < B. 따라서

, Q = A'B 높게 설정된다. (또는 Verilog에서 Q = ~ A & B)