임베디드기사 필기 03 — 임베디드 하드웨어 ① 논리회로
1과목 임베디드 하드웨어의 핵심 파트입니다.
카르노맵, 플립플롭, 카운터는 매 회차 반드시 출제돼요.
컴퓨터시스템기사와 겹치는 영역이라 같이 공부하면 시너지가 납니다.
불 대수와 드모르간
드모르간 법칙 ⭐⭐
(A + B)' = A' · B'
(A · B)' = A' + B'
기본 법칙 요약:
A + A' = 1 A · A' = 0
A + 1 = 1 A · 0 = 0
A + AB = A (흡수법칙)
기출 문제
Q. F = A'B + AB + AB' 를 간소화하시오.
A.
= B(A' + A) + AB'
= B·1 + AB'
= B + AB'
= B + A (흡수법칙: B + AB' = B + A)
→ F = A + B
카르노맵 ⭐⭐ (실기에도 출제!)
작성 방법
변수 배치: 그레이코드 순서 (00→01→11→10)
묶음 단위: 반드시 2ⁿ 개 (1, 2, 4, 8...)
Don't Care(X): 1로 취급해 묶음 크기 최대화
양 끝, 모서리끼리도 묶을 수 있음
SOP 간소화 예시
AB\CD | 00 01 11 10
00 | 0 0 1 1
01 | 0 0 1 1
11 | 1 1 1 1
10 | 1 1 1 1
오른쪽 2열 전체 = CD 무관 → AB
아래쪽 2행 전체 = AB 중 A=1 → A
F = A + CD (SOP 간소화 결과)
기출 문제
Q. 4변수 카르노맵에서 4개의 1을 2×2로 묶으면 몇 개의 변수가 소거되는가?
A. 묶음 크기 2² = 4개이면 2개의 변수가 소거된다. (2ⁿ 묶음 → n개 변수 소거)
Q. 카르노맵에서 Don't Care 조건의 활용 목적은?
A. 입력 조건이 발생하지 않는 경우를 1로 처리하여 묶음을 크게 만들어, 간소화된 논리식의 항 수를 최소화하기 위함이다.
가산기 회로
반가산기 (Half Adder)
합(Sum): S = A XOR B
올림수(Carry): C = A AND B
게이트 구성: XOR 1개 + AND 1개
전가산기 (Full Adder)
이전 올림수(Cin) 포함
S = A XOR B XOR Cin
Co = AB + Cin(A XOR B)
게이트 구성: 반가산기 2개 + OR 1개
BCD 가산기
9 이하: 일반 2진 가산
10 이상: +6(0110) 보정 필요
→ 10~15 또는 올림수 발생 시 6 더함
기출 문제
Q. 전가산기를 반가산기로 구현할 때 필요한 반가산기와 OR 게이트 수는?
A. 반가산기 2개 + OR 게이트 1개
Q. BCD 가산기에서 합이 9를 초과할 때 어떤 보정을 하는가?
A. 6(0110₂)을 더하여 2진수를 BCD 코드로 변환한다.
멀티플렉서 (MUX) ⭐
2ⁿ개 입력 → n개 선택선 → 1개 출력
4×1 MUX 구성:
AND 게이트 4개
Inverter 2개 (선택선 반전용)
OR 게이트 1개
기출 문제
Q. 8×1 멀티플렉서의 선택선 개수와 구현에 필요한 AND 게이트 수는?
A. 선택선: 3개 (2³=8), AND 게이트: 8개
플립플롭 ⭐⭐⭐
RS 플립플롭
| S | R | Q(n+1) | 설명 |
| 0 | 0 | Q(n) | 유지 |
| 0 | 1 | 0 | Reset |
| 1 | 0 | 1 | Set |
| 1 | 1 | 불능 | 금지! |
JK 플립플롭 ⭐⭐ (최빈출!)
| J | K | Q(n+1) | 설명 |
| 0 | 0 | Q(n) | 유지 |
| 0 | 1 | 0 | Reset |
| 1 | 0 | 1 | Set |
| 1 | 1 | Q'(n) | 토글 ← 핵심! |
RS의 단점(불능 상태)을 해결한 것이 JK 플립플롭
D 플립플롭
Q(n+1) = D
클록 엣지에서 D 입력값을 그대로 저장
레지스터, 시프트 레지스터에 주로 사용
금지 상태 없음
T 플립플롭
T=0: Q(n+1) = Q(n) 유지
T=1: Q(n+1) = Q'(n) 토글
기출 문제
Q. JK 플립플롭과 RS 플립플롭의 차이점은?
A. RS 플립플롭은 S=R=1 입력 시 불능(금지) 상태가 발생하지만, JK 플립플롭은 J=K=1 입력 시 토글 동작으로 정의되어 불능 상태가 없다.
Q. T 플립플롭에서 T=1일 때의 동작은?
A. 현재 출력의 보수값(토글)이 출력된다. T=0이면 현재 상태를 유지한다.
카운터 ⭐⭐
존슨 카운터 (스위치-테일 링 카운터)
플립플롭 n개 → 2n가지 상태
마지막 FF의 Q' 출력을 첫 번째 FF의 입력으로 연결
예: FF 4개 → 8가지 순환 상태
링 카운터
플립플롭 n개 → n가지 상태
마지막 FF의 Q 출력을 첫 번째 FF의 입력으로 연결
예: FF 4개 → 4가지 순환 상태
MOD-N 카운터
N가지 상태를 순환하는 카운터
필요한 FF 개수: 2ⁿ ≥ N 을 만족하는 최소 n
예:
MOD-6: 2³=8≥6 → FF 3개 필요
MOD-10: 2⁴=16≥10 → FF 4개 필요
MOD-16: 2⁴=16≥16 → FF 4개 필요
기출 문제
Q. 존슨 카운터와 링 카운터에서 플립플롭 4개를 사용할 때 각각의 상태 수는?
A. 존슨 카운터: 8가지 (2×4), 링 카운터: 4가지 (n)
Q. MOD-12 카운터 구현에 필요한 최소 플립플롭 수는?
A. 2⁴=16≥12이므로 4개
그레이 코드 ↔ 2진수 변환
2진수 → 그레이코드
MSB 그대로
나머지: 인접한 2진수 비트 XOR
그레이코드 → 2진수
MSB 그대로
나머지: 이전 2진수 비트 XOR 현재 그레이코드 비트
예시: 2진수 1011 → 그레이코드
1 (MSB 그대로)
1 XOR 0 = 1
0 XOR 1 = 1
1 XOR 1 = 0
→ 그레이코드: 1110
💡 실무에서는?
임베디드 시스템 설계 검토 업무에서 FPGA 기반 장비 도입 시, 내부 논리회로 설계 문서를 검토할 때 카르노맵으로 간소화된 수식을 읽을 수 있어야 해요. 특히 산업용 제어 시스템의 PLC 로직이 래더 다이어그램 형태로 표현되는데, 이게 결국 논리회로의 다른 표현 방식이에요. 20년 인프라 경력 중 IDC 전원 이중화 설계에서 전원 절체 로직을 검토할 때도 이 논리 회로 기초가 배경 지식으로 작동했어요.
핵심 정리
✅ 드모르간: (A+B)'=A'B', (AB)'=A'+B'
✅ 카르노맵: 2ⁿ단위 묶기, Don't Care=1 활용
✅ 반가산기: S=XOR, C=AND
✅ 전가산기: 반가산기2개 + OR1개
✅ JK J=K=1 → 토글 (불능 없음)
✅ RS S=R=1 → 불능! (금지)
✅ 존슨카운터: FF n개 → 2n 상태
✅ 링카운터: FF n개 → n 상태
✅ MOD-N: 2ⁿ≥N 최소 n개
다음 편에서는 컴퓨터구조 — 파이프라인·ARM·캐시·버스대역폭으로 이어갑니다!
궁금한 점은 댓글로 남겨주세요!
'자격증 정복 > 임베디드기사(기능사)' 카테고리의 다른 글
| 임베디드기사 필기 02 — 4과목 핵심 키워드 총정리 (0) | 2026.08.06 |
|---|---|
| 임베디드기사 완벽 소개 — 2013년 창설, 아직도 생소한 그 자격증 (3) | 2026.08.04 |