2014-12-26 1 views
2

나는 루프에서 C 비트 연산자 (< <, &, ^, |, ~)를 사용하여 2 개의 64 비트 부호없는 정수를 나눗셈하는 알고리즘을 가지고있다.합성 NAND 게이트를 사용하여 왼쪽으로 1 시프트 하시겠습니까?

이제 왼쪽으로 시프트 < <을 제거하여 NAND 게이트를 사용하지 않고 OR, XOR을 합성 할 수있는 방법을 완전히 이해하고 싶습니다.

JUST NAND 게이트를 사용하여 왼쪽 쉬프트를 1만큼 수행 할 수 있습니까? 전자 제품에서 플립 플롭에 대해 조금 읽었지 만이를 이해하기 위해 이것을 순수한 소프트웨어로 구현하고 있습니다.

< < 또는 >> 연산자를 완전히 사용하지 않고 어셈블리를 포함한 모든 컴퓨터 언어에서 기존 산술 연산자를 사용하고 싶지 않습니다.

저는 대학에 다니지도 않고 숙제도하고 있지 않습니다. 어떻게 작동하는지 궁금하고 올바른 방향으로 도움을 청합니다.

+1

내가 말할 수있는 한, 전선만으로 왼쪽으로 이동할 수 있습니다. – Jasen

답변

6

하드웨어에서는 논리 게이트가없는 상태에서 왼쪽 시프트를 1로 구현할 수 있습니다. 그냥과 같이 데이터 라인 배선 :

Left shift by one

당신이 뭔가 더 일반적인, 당신이 barrel shifter을 구현할 수 있습니다합니다. 이것은 멀티플렉서들로부터 합성 될 수있다 : 결과적으로 NAND 게이트에서

Barrel shifter http://images.books24x7.com/bookimages/id_7951/fig9-1.jpg

을 합성 할 수있다.

주제에 대한 종합 석사 학위 논문은 Barrel Shifter Design, Optimization, and Analysis입니다.

관련 문제