정보처리기능사 - 2. 논리회로
불대수
하나의 명제가 참 또는 거짓인지 판단하는 데 이용되는 수학적인 방법
1과 0의 두 가지 상태로만 표현하여 처리하는 2진 논리회로로 구성
기본적인 논리함수
- AND: 입력 자료가 모두 1일 때 결과는 1 (A AND B 또는 A · B 또는 AB로 표현)
- OR: 입력 자료 중 1개라도 1이면 결과는 1 (A OR B 또는 A+B로 표현)
- NOT: 입력되는 정보의 반대값 출력 (NOT A 또는 A' 또는 A로 표현)
불 대수의 기본 공식
기본 공식 | 표현식 | |
멱등법칙 | A+A = A | A⋅A = A |
보수법칙 | A+A' = 1 | A⋅A' = 0 |
항등법칙 | A+0 = A, A+1 = 1 | A⋅0 = 0, A⋅1 = A |
교환법칙 | A+B = B+A | A⋅B = B⋅A |
결합법칙 | A+(B+C) = (A+B)+C | A⋅(B⋅C) = (A⋅B)⋅C |
분배법칙 | A⋅(B+C) = A⋅B + A⋅C | A+B⋅C=(A+B)⋅(A+C) |
드모르간 법칙 | (A+B) = A⋅B | (A⋅B) = A+B |
논리 게이트
논리회로를 구성하는 기본적인 전자소자, 0 또는 1을 입력과 출력함
AND 게이트
입력이 모두 1일 때 1 출력
Y = A · B, Y = AB
OR 게이트
입력 중 1개만 1이어도 1 출력
Y = A+B
NOT 게이트
입력된 값을 반대로 변환하여 출력 (0 -> 1, 1 -> 0)
Y = A', Y = A
인버터(Inverter)라고도 불림
BUFFER 게이트
입력된 값을 그대로 출력
Y = A
NAND 게이트
NOT + AND, AND의 부정
Y = A⋅B, Y = AB
NOR 게이트
NOT + OR, OR의 부정
Y = A+B
XOR(Exclusive OR) 게이트
입력된 값이 모두 같으면 0, 한 개라도 다르면 1 출력
Y = A⊕B, Y = AB+AB
XNOR 게이트
NOT + XOR, XOR의 부정
Y = A⊙B, Y = A⊕B
조합논리회로
이전의 입력에는 관계없이 현재의 입력(0 또는 1)에 의해서만 출력이 결정되는 논리회로
기억 기능이 없고 반가산기, 전가산기, 디코더, 인코더, 멀티플래서, 디멀티플래서 등이 있습니다.
반가산기(HA: Half Adder)
1Bit짜리 2진수 2개(A, B)를 덧셈한 합(S)과 자리올림수(C)를 구하는 조합논리회로
- S(Sum) = AB+AB = A⊕B
- C(Carry) = AB
진리표 | |||
A | B | S | C |
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
전가산기(FA: Full Adder)
1Bit짜리 2진수 2개(A, B)뿐만 아니라 이전 단계에서 전달된 자리올림수(Ci)까지 3개(A, B, Ci)를 덧셈하여 합(S)과 자리올림수(Co)를 구하는 조합논리회로
- S(Sum) = (A⊕B)⊕Ci
- Co(Carry) = (A⊕B)Ci + AB
2개의 반가산기(HA)와 1개의 OR 게이트로 구성
진리표 |
||||
A | B | Ci | S | Co |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
디코더(Decoder)
n개의 입력선으로 입력된 2n개의 출력선으로 번역하는 회로, 주로 AND 게이트로 구성
2진 코드 -> 다른 코드로 변환
진리표 |
|||||
A | B | D0 | D1 | D2 | D3 |
0 | 0 | 1 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 0 | 1 |
인코더(Encoder)
디코더의 반대 기능, 2n개의 입력선으로 입력된 값을 n개의 출력선으로 코드화해서 출력
정보를 다른 곳으로 전송하기 위하여 일정한 규칙에 따라 암호로 변환하는 장치
다른 코드 -> 2진 코드로 변환
멀티플렉서(MUX: Multiplexer)
2n개의 입력선 중 1개를 선택하여 그 선으로부터 입력된 값을 1개의 출력선으로 출력
디멀티플렉서(DeMUX: DeMultiplexer)
1개의 입력선으로 들어오는 정보를 2n개의 출력선 중 1개를 선택하여 출력
💡외우기
- 디코더: 2진 코드 -> 다른 코드 변환
- 인코더: 다른 코드 -> 2진 코드 변환
- 멀티플렉서: 2n개의 입력선을 1개로 변환
- 디멀티플렉서: 1개의 입력선을 2n개로 변환
순서논리회로
외부로부터의 입력과 현재 상태에 따라 출력이 결정되는 회로
기억 기능이 있으며, 플립플롭과 논리 게이트로 구성
플립플롭(FF: Flip-Flop)
전원이 공급되는 한, 상태의 변화를 위한 신호가 발생할 때까지 현재 상태를 그대로 유지하는 논리회로
플립플롭 1개가 1Bit를 저장할 수 있으며 기본적인 플립플롭은 2개의 NAND 또는 NOR 게이터를 이용하여 구성
RS 플립플롭(Reset-Set FF)
플립플론의 기본으로, S와 R선의 입력을 조절하여 그대로 유지시키거나, 무조건 0 또는 1의 값을 기억시키기 위해 사용
특성표 ※ 순서논리회로에서는 진리표가 아닌 특성표 | |||
S | R | Q(t+1) | 상태 |
0 | 0 | Q(t) | 상태 변화 없음(무) |
0 | 1 | 0 | Reset(공) |
1 | 0 | 1 | Set(일) |
1 | 1 | 동작 안 됨 | 동작 안 됨(불) |
※ Q(t): 입력 값, Q(t+1): 출력 값
D 플립플롭
RS FF의 R선에 인버터(Inverter)를 추가하여 S선과 하나로 묶어 입력선을 하나만 구성한 플립플롭 (D FF = RS FF + NOT Gate)
입력하는 값 그대로 저장하는 기능을 수행
특성표 | ||
D | Q(t+1) | 상태 |
0 | 0 | Reset |
1 | 1 | Set |
※ Q(t): 입력 값, Q(t+1): 출력 값
JK 플립플롭
RS FF에서 S = R = 1 일때 동작되지 않는 결점을 보완한 플립플롭 (JK FF = RS FF + AND Gate 2개)
모든 플립플롭을 대용할 수 있으므로 응용 범위가 넓고, 가장 널리 사용
특성표 | |||
J | K | Q(t+1) | 상태 |
0 | 0 | Q(t) | 상태 변화 없음(무) |
0 | 1 | 0 | Reset(공) |
1 | 0 | 1 | Set(일) |
1 | 1 | Q(t)' | 반전(보수) |
※ Q(t): 입력 값, Q(t+1): 출력 값
T 플립플롭
JK FF의 두 입력선을 묶어서 1개의 입력선으로 구성한 플립플롭
원 상태와 보수 상태의 2가지 상태가 서로 전환, 토글(Toggle) 스위치에 사용
특성표 | ||
T | Q(t+1) | 상태 |
0 | Q(t) | Reset |
1 | Q(t)' | Set |
💡외우기
- RS FF: 무공일불
- D: 무
- JK FF: 무공일보
- T: 보