일반적으로 전체 감산기는 가장 많이 사용되는 감산기 중 하나입니다. 필수 조합 논리 회로 . 두 개의 이진수를 빼는 데 사용되는 기본적인 전자 장치입니다. 이전 기사에서 이미 우리는 반 가산기 및 완전 가산기 계산에 이진수를 사용합니다. 마찬가지로 완전 감산기는 감산에 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 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
K- 맵
단순화 전체 감산기 K- 맵 위의 차이와 차입은 아래에 나와 있습니다.
차이와 Bin에 대한 방정식은 아래에 언급되어 있습니다.
차이의 표현은,
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 멀티플렉서
- 1 단계에는 Sub 및 Borrow와 같은 두 가지 출력이 있습니다. 그래서 우리는 2 개의 멀티플렉서를 선택해야합니다.
- 2 단계에서는 K-map과 함께 진리표를 구현할 수 있습니다.
- 3 단계에서 두 개의 변수를 선택 라인으로 선택할 수 있습니다. 예를 들어, B & C는이 경우입니다.
진실 테이블
그만큼 완전 감산기의 진리표 4X1 멀티플렉서를 사용하는 회로에는 다음이 포함됩니다.
에 | 비 | 씨 | 보결 | 빌다 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 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 디코더
감산기의 입력이 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 게이트가 모두 범용 게이트로 취급되기 때문입니다. 여기에 질문이 있습니다. 반감 산기와 전체 감산기의 차이점은 무엇입니까?