완전 감산기 란 무엇인가 : 논리 게이트를 사용한 구성

문제를 제거하기 위해 도구를 사용해보십시오





일반적으로 전체 감산기는 가장 많이 사용되는 감산기 중 하나입니다. 필수 조합 논리 회로 . 두 개의 이진수를 빼는 데 사용되는 기본적인 전자 장치입니다. 이전 기사에서 이미 우리는 반 가산기 및 완전 가산기 계산에 이진수를 사용합니다. 마찬가지로 완전 감산기는 감산에 0,1과 같은 이진수를 사용합니다. 이 회로는 OR, Ex-OR, NAND 게이트와 같은 논리 게이트로 구축 할 수 있습니다. 이 감산기의 입력은 A, B, Bin이고 출력은 D, Bout입니다.

이 기사는 감산기, 논리 게이트가있는 디자인, 진리표 등과 같은 전제를 구성하는 완전 감산기 이론 아이디어를 제공합니다.이 기사는 HDL 실습실에서 이러한 주제를 다룰 수있는 공학 학생에게 유용합니다.




감산기 란 무엇입니까?

이진수 빼기는 감산기 회로를 사용하여 수행 할 수 있습니다. 이것은 0과 1과 같은 두 이진수를 빼는 데 사용되는 조합 논리 회로의 한 종류입니다. 0에서 0 또는 0에서 1까지의 이진수를 빼면 결과가 변경되지 않으며 1에서 1을 빼면 0이되지만 1에서 0을 빼려면 차용해야합니다.

예를 들어, 2 비트 감산기 회로는 A와 B와 같은 두 개의 입력을 포함하는 반면 출력은 차용이며 차용입니다. 이 회로는 모든 데이터 입력과 FA 초기 단계의 차용 (Bin) 입력 사이에 위치한 인버터와 함께 가산기로 구축 할 수 있습니다.



감산기는 절반 감산기와 전체 감산기의 두 가지 유형으로 분류됩니다. 여기서 우리는 전체 감산기에 대해 논의하고 있습니다.

완전 감산기 란 무엇입니까?

전자 장치이거나 논리 회로 두 이진수를 뺄셈을 수행합니다. 디지털 전자에 사용되는 조합 논리 회로입니다. 많은 조합 회로를 사용할 수 있습니다. 집적 회로 기술 즉 가산기, 인코더, 디코더 및 멀티플렉서입니다. 이 기사에서는 반 감산기를 사용한 구성과 진리표와 같은 용어에 대해 논의 할 것입니다.


전체 감산기

전체 감산기

이것의 설계는 두 개의 절반 감산기에 의해 수행 될 수 있으며, 여기에는 빼기, 감수 및 빌림과 같은 세 가지 입력이 포함됩니다. 입력 중 빌리는 비트는 두 이진수의 빼기에서 얻어지고 다음 상위 차수 쌍에서 뺍니다. 비트, 차이 및 차용으로 출력합니다.

그만큼 전체 감산기 블록 다이어그램 아래에 나와 있습니다. 반 감산기의 가장 큰 단점은이 감산기에서 Borrow 비트를 만들 수 없다는 것입니다. 반면에 설계에서는 실제로 회로에서 Borrow 비트를 만들고 나머지 두 i / ps로 뺄 수 있습니다. 여기서 A는 minuend, B는 감수, Bin은 차용입니다. 출력은 Difference (Diff) 및 Bout (Borrow out)입니다. 완전한 감산기 회로는 여분의 OR 게이트가있는 두 개의 절반 감산기를 사용하여 얻을 수 있습니다.

전체 감산기 블록 다이어그램

로직 게이트가있는 전체 감산기 회로 다이어그램

그만큼 기본 게이트를 사용하는 전체 감산기의 회로도 s는 다음 블록 다이어그램에 나와 있습니다. 이 회로는 두 개의 half-subtractor 회로로 수행 할 수 있습니다.

초기 half-Subtractor 회로에서 이진 입력은 A와 B입니다. 이전 half-Subtractor 기사에서 논의했듯이 차이 (Diff) 및 Borrow라는 두 개의 출력을 생성합니다.

논리 게이트를 사용하는 전체 감산기

논리 게이트를 사용하는 전체 감산기

왼쪽 감산기의 차이 o / p는 왼쪽 절반 감산기 회로에 주어집니다. Diff 출력은 오른쪽 절반 감산기 회로의 입력에 추가로 제공됩니다. 우리는 다음의 다른 i / p에 대해 약간의 Borrow를 제안했습니다. 반 감산기 회로 . 다시 한 번 Diff를 제공하고 비트를 빌리십시오. 이 감산기의 최종 출력은 Diff 출력입니다.

다른 한편으로, 절반 감산기 회로의 Borrow는 OR 로직 게이트에 연결됩니다. 감산기의 두 출력 비트에 대해 OR 논리를 제공하는 것보다 나중에 감산기에서 최종 Borrow를 얻습니다. MSB (가장 중요한 비트)를 나타내는 마지막 차입입니다.

이 내부 회로를 관찰하면 NAND 게이트가있는 두 개의 Half Subtractor와 추가 OR 게이트가있는 XOR 게이트를 볼 수 있습니다.

전체 감산기 진실 표

감산기 회로 3 개의 입력 (A, B 및 Bin)과 2 개의 출력 (D 및 Bout)이있는 두 비트 사이에서 빼기를 실행합니다. 여기서 입력은 minuend, subtrahend 및 이전 차입을 나타내는 반면 두 출력은 차입 o / p 및 차이로 표시됩니다. 다음 이미지는 완전 감산기의 진리표를 보여줍니다.

입력

출력

미뉴 엔드 (A)

서브 트라 헨드 (B) 차용 (Bin) 차이 (D)

Borrow (Bout)

0

000

0

0

0111
0101

1

0110

1

1

0010
1010

0

1

1000

1

111

1

K- 맵

단순화 전체 감산기 K- 맵 위의 차이와 차입은 아래에 나와 있습니다.

차이를위한 K-지도

차이와 Bin에 대한 방정식은 아래에 언급되어 있습니다.

한판 승부를위한 K-지도

차이의 표현은,

D = A’B’Bin + AB’Bin’+ A’BBin’+ ABBin

Borrow의 표현은 다음과 같습니다.

Bout = A’Bin + A’B + BBin

전체 감산기 회로의 계단식

이전에는 로직 게이트가있는 회로도의 구성과 같은 개요에 대해 논의했습니다. 그러나 2 개 이상의 1 비트 숫자를 빼고 싶다면이 감산기 회로는 단일 비트 숫자를 캐스케이드하고 2 개 이상의 이진수를 빼는 데 매우 유용합니다. 이러한 경우 NOT 로직 게이트의 도움으로 전체 가산기 캐스케이드 회로가 사용됩니다. 완전 가산기에서 완전 감산기로의 회로 변환은 2의 보수 기법을 사용하여 수행 할 수 있습니다.

일반적으로 NOT 게이트를 사용하여 완전 가산기에 대한 감수 입력을 반전합니다. 그렇지 않으면 인버터입니다. 이 Minuend (비 반전 입력)와 Subtrahend (반전 입력)를 더하면 FA 회로의 LSB (반전 입력)가 1이됩니다. 즉, Logic High를 의미합니다. 그렇지 않으면 2의 보수 기법을 사용하여 두 이진수를 뺍니다. FA의 출력은 Diff 비트이며 수행을 반전하면 MSB를 얻을 수 있고 그렇지 않으면 Borrow 비트를 얻을 수 있습니다. 실제로 출력을 관찰 할 수 있도록 회로를 설계 할 수 있습니다.

Verilog 코드

코딩 부분은 먼저 논리 회로도 모델링의 구조적 방식을 확인해야한다. 이것의 논리 다이어그램은 AND 게이트, 반 감산기 회로 및 AND, OR, NOT, XOR 게이트와 같은 논리 게이트의 조합을 사용하여 만들 수 있습니다. 구조 모델링과 마찬가지로 모든 기본 요소 배열에 대한 다양한 모듈을 설명합니다. 다음 코드에서는 모든 게이트에 대해 서로 다른 모듈을 정의 할 수 있습니다.

이 모듈은 OR 게이트 용입니다.

입력 : a0, b0

출력 : c0

마지막으로 이러한 게이트 정밀 모듈을 유일한 모듈로 통합합니다. 이를 위해 여기에서 모듈의 인스턴스화를 활용합니다. 이제이 인스턴스화는 다양한 입력 세트에 대해 정확한 모듈 또는 함수를 복제하려는 경우 사용할 수 있습니다. 먼저 반 감산기를 설계 한 다음이 모듈을 사용하여 전체 감산기를 구현합니다. 이를 구현하기 위해 OR 게이트를 사용하여 Bout의 변수에 대한 o / ps를 결합합니다. 그만큼 전체 감산기에 대한 verilog 코드 아래에 표시됩니다.

모듈 or_gate (a0, b0, c0)

입력 a0, b0

출력 c0

할당 c0 = a0 | b0

endmodule

모듈 xor_gate (a1, b1, c1)

입력 a1, b1

출력 c1

할당 c1 = a1 ^ b1

endmodule

모듈 and_gate (a2, b2, c2)

입력 a2, b2

출력 c2

c2 = a2 & b2 할당

endmodule

모듈 not_gate (a3, b3)

입력 a3

출력 b3

할당 b3 = ~ a3

endmodule

모듈 half_subtractor (a4, b4, c4, d4)

입력 a4, b4

출력 c4, d4

와이어 x

xor_gate u1 (a4, b4, c4)

and_gate u2 (x, b4, d4)

not_gate u3 (a4, x)

endmodule

모듈 full_subtractor (A, B, Bin, D, Bout)

입력 A, B, Bin

출력 D, Bout

와이어 p, q, r

반감 산기 u4 (A, B, p, q)

반감 산기 u5 (p, Bin, D, r)

or_gate u6 (q, r, Bout)

endmodule

4X1 멀티플렉서를 사용하는 전체 감산기

빼기 실행은 2의 보수 방법을 통해 수행 할 수 있습니다. 따라서 우리는 1 비트를 반전하고 하나를 캐리 비트에 포함시키는 데 사용되는 1-XOR 게이트를 사용해야합니다. DIFFERENCE의 출력은 전체 가산기 회로의 출력 SUM과 유사하지만 BARROW o / p는 전체 가산기의 캐리 출력과 유사하지 않지만 A – B = A + (-B)와 같이 반전되고 보완됩니다. = A + B의 2의 보수.

4X1 멀티플렉서를 사용한이 설계는 다음 로직 다이어그램에 나와 있습니다. 이 디자인은 다음 단계를 사용하여 수행 할 수 있습니다.

4X1 멀티플렉서

4X1 멀티플렉서

  • 1 단계에는 Sub 및 Borrow와 같은 두 가지 출력이 있습니다. 그래서 우리는 2 개의 멀티플렉서를 선택해야합니다.
  • 2 단계에서는 K-map과 함께 진리표를 구현할 수 있습니다.
  • 3 단계에서 두 개의 변수를 선택 라인으로 선택할 수 있습니다. 예를 들어, B & C는이 경우입니다.

진실 테이블

그만큼 완전 감산기의 진리표 4X1 멀티플렉서를 사용하는 회로에는 다음이 포함됩니다.

보결

빌다

0

0000
0011

1

0101

1

0

1101
1001

0

1

0100
1100

0

1

111

1

디코더를 사용하는 전체 감산기

3-8 개의 디코더를 사용하는 전체 감산기 설계는 액티브 로우 출력을 사용하여 수행 할 수 있습니다. 다음 논리 다이어그램을 사용하여 디코더가 작동한다고 가정 해 보겠습니다. 디코더는 3-8 디코더에 3 개의 입력을 포함합니다. 진리표를 기반으로 차이 및 차입의 출력에 대한 최소항을 작성할 수 있습니다.

위의 진리표에서

진리표의 다른 기능에 대해 minterms는 1,2,4,7로 작성 될 수 있으며 유사하게, 차용의 경우 minterms는 1,2,3,7로 작성 될 수 있습니다. 3-8 디코더에는 3 개의 입력과 8 개의 출력 lik0 ~ 7 개의 숫자가 포함됩니다.

3-to-8 디코더

3-to-8 디코더

감산기의 입력이 000이면 출력 '0'이 활성화되고 입력이 001이면 출력 '1'이 활성화됩니다.

이제 감산기의 출력을 1, 2, 4 & 7에서 가져와 NAND 게이트에 연결하면 출력이 차이가됩니다. 이러한 출력은 출력이 차용으로 변경되는 다른 NAND 논리 게이트에 연결할 수 있습니다.

예를 들어 입력이 001이면 출력이 1이되어 활성 상태임을 의미합니다. 따라서 출력은 액티브 로우이고 출력은 하이와 같은 차이 기능이라고 불리는 NAND 게이트에서 얻을 수 있으며 빌리 기능도 하이로 변경됩니다. 따라서 우리는 선호하는 출력을 얻습니다. 마지막으로 디코더는 완전 감산기처럼 작동합니다.

장점과 단점

그만큼 감산기의 장점 다음을 포함하십시오.

  • 감산기의 설계는 구현할뿐만 아니라 매우 간단합니다.
  • DSP 내 전력 공제 (디지털 신호 처리)
  • 계산 작업을 고속으로 수행 할 수 있습니다.

그만큼 감산기의 단점 다음을 포함하십시오.

  • 반 감산기에서는 이전 단계에서 Borrow와 같은 입력을 받아들이는 조건이 없습니다.
  • 감산기 속도는 회로의 지연을 통해 부분적으로 나타날 수 있습니다.

응용

일부 완전 감산기의 응용 다음을 포함

  • 이들은 일반적으로 컴퓨터의 ALU (산술 논리 장치)에 사용되어 그래픽 응용 프로그램에서 회로 난이도를 줄이기 위해 CPU 및 GPU로 뺍니다.
  • 감산기는 디지털 장치뿐만 아니라 전자 계산기에서 빼기와 같은 산술 기능을 수행하는 데 주로 사용됩니다.
  • 이들은 또한 적용 가능합니다 다른 마이크로 컨트롤러 산술 빼기, 타이머 및 프로그램 카운터 (PC)
  • 감산기는 프로세서에서 테이블, 주소 등을 계산하는 데 사용됩니다.
  • DSP 및 네트워킹 기반 시스템에도 유용합니다.
  • 이들은 회로의 복잡성을 줄이기 위해 그래픽 응용 프로그램의 CPU 및 GPU와 같은 빼기 위해 주로 컴퓨터 내의 ALU에 사용됩니다.
  • 이들은 주로 디지털 장치, 계산기 등에서 빼기와 같은 산술 기능을 수행하는 데 사용됩니다.
  • 이 감산기는 타이머, PC (프로그램 카운터) 및 산술 감산을위한 다양한 마이크로 컨트롤러에도 적합합니다.
  • 이는 프로세서가 주소, 테이블 등을 계산하는 데 사용됩니다.
  • NAND 및 NAND 게이트가 모두 범용 게이트라고 불리기 때문에 NAND 및 NOR과 같은 논리 게이트를 사용하여이를 구현할 수 있습니다.

위의 정보에서 가산기, 두 개의 절반 감산기 회로를 사용하는 전체 감산기 및 표 형식을 평가하여 전체 감산기의 Dout이 완전 가산기의 Sout과 정확히 유사 함을 알 수 있습니다. 유일한 변형은 A (입력 변수)가 완전 감산기에서 보완된다는 것입니다. 따라서 i / p A가 주어지기 전에 보완함으로써 전 가산기 회로를 완전 감산기로 변경할 수 있습니다. 논리 게이트 마지막 차용 비트 출력 (Bout)을 생성합니다.

전체 감산기 논리 회로를 사용하면 NAND 게이트를 사용하는 전체 감산기와 nor 게이트를 사용하는 전체 감산기가 구현 될 수 있습니다. NAND 및 NOR 게이트가 모두 범용 게이트로 취급되기 때문입니다. 여기에 질문이 있습니다. 반감 산기와 전체 감산기의 차이점은 무엇입니까?