Download presentation
Presentation is loading. Please wait.
1
논리회로 및 실험 조합논리회로 (1) - Adder
May 20, 2009 김 준 영 (juny924@gmail.com)
2
조합논리회로 조합논리회로 AND, OR, NOT의 3가지 기본 게이트의 조합으로 만들어지는 논리회로 …… 입력신호 출력신호
논리 게이트 조합 …… 입력신호 출력신호
3
Half-adder (1) Half-adder 설계하기 입력 - 두 개의 이진수 한 bit씩
출력 – S: sum, C: carry x + y ── C S + 0 ── 0 0 + 1 ── 0 1 1 + 0 ── 0 1 1 + 1 ── 1 0 Input Output x y C S 1
4
Half-adder (2) Half-adder Input Output x y C S 1 x y C S AND XOR x y F
1 x y C S AND XOR x y F 1 x y F 1
5
응용 프로그램 - 1 [실습] Half-adder 실습 적절한 gate들을 조합하여 Half-adder의 동작을 살펴본다.
void main() { …… cout << " x y S C" <<endl; for(int a = 0; a < 2; ++a) for(int b = 0; b < 2; ++b) }
6
Half-adder (3) Half-adder의 class 설계
Half-adder를 하나의 module로 만들기 위해 class 형태로 설계한다. Half-adder가 가질 수 있는 데이터(field)와 동작(method) 입력: x, y 논리 게이트: AND, XOR 조합된 논리 게이트에 의한 연산 출력: C, S Half-adder x y C S
7
응용 프로그램 - 2 [실습] Half-adder class 설계
적절한 gate들을 조합하여 half-adder를 class로 설계한다. 주어진 헤더 파일에 정의된 class의 method를 정의(구현)한다. 완성된 half-adder에 대한 truth table을 화면에 출력한다.
8
Full-adder (1) Full-adder 설계하기 입력 - 세 개의 이진수 한 bit씩
출력 – S: sum, C: carry 입 력 출 력 x y z S C 1
9
Full-adder (2) 입 력 m 출 력 x y z S C 1 2 3 4 5 6 7 S = ∑m(1, 2, 4, 7)
1 2 3 4 5 6 7 S = ∑m(1, 2, 4, 7) = x (y z) C = ∑m(3, 5, 6, 7) = yz + x(y z) + ○
10
Full-adder (3) S = x (y z) C = yz + x(y z) + ○ x y z C S yz ○ + y z
11
Full-adder (4) Full-adder의 class 설계
두 가지 방법으로 구현 가능 여러 개의 gate를 조합하여 구현 Half-adder를 이용하여 구현 Full-adder가 가질 수 있는 데이터(field)와 동작(method) 입력: x, y, z OR gate 1개, Half-adder 2개 조합된 논리 회로(half-adder 및 OR gate)에 의한 연산 출력: C, S
12
Full-adder (5) Half-adder (HA1) y z x S C1 S1 C2 C S2
13
응용 프로그램 - 3 [실습] Full-adder class 설계 2개의 half-adder를 조합하여 class로 설계한다.
주어진 헤더 파일에 정의된 class의 method를 정의(구현)한다. 완성된 full-adder에 대한 truth table을 화면에 출력한다.
14
응용 프로그램 – Adder.h
15
응용 프로그램 – defaultGate.h
16
응용 프로그램 – FullAdder.h
17
응용 프로그램 – gates.h
18
응용 프로그램 – HalfAdder.h
19
응용 프로그램 – defaultGate.cpp
20
응용 프로그램 – gates.cpp
21
응용 프로그램 – logic.cpp
Similar presentations