자격증 정복/임베디드기사(기능사)

임베디드기사 필기 03 — 임베디드 하드웨어 ① 논리회로

올드 IT직장인 2026. 8. 7. 23:00

임베디드기사 필기 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·캐시·버스대역폭으로 이어갑니다!

 

궁금한 점은 댓글로 남겨주세요!

반응형