디지털 논리: 게이트, 카르노 맵, 플립플롭: 단계별 풀이가 있는 연습 문제

그림, 힌트, 자세한 풀이가 있는 무료 디지털 논리: 게이트, 카르노 맵, 플립플롭 연습 문제. 매번 새로운 값으로, 세 가지 난이도: 게이트, 진리표, 지연, 불 대수, 카르노 맵, 멀티플렉서, 무정의항, 플립플롭, 카운터.

무료 연습 문제쉬움
AF

NAND와 NOR는 범용 게이트입니다. 둘 중 하나만으로 모든 논리 함수를 만들 수 있습니다. 그림의 NOT 함수를 만드는 데 필요한 2입력 NAND 게이트의 최소 개수 N은(는) 얼마인가?

F = A′

정확한 답: 정수, 반올림하지 않음.

다음 문제 →

연습 내용

  1. 쉬움게이트, 진리표, 지연
  2. 보통불 대수, 카르노 맵, 멀티플렉서
  3. 어려움무정의항, 플립플롭, 카운터

디지털 논리: 게이트, 카르노 맵, 플립플롭 문제 푸는 방법

  1. 회로는 입력에서 출력까지 게이트를 하나씩 따라가며 모든 선에 값을 적거나, 식을 쓰고 진리표를 채우세요.
  2. 간소화할 때는 1(그리고 무정의항은 X)을 그레이 코드 행과 열(00, 01, 11, 10)을 가진 카르노 맵에 넣으세요.
  3. 1들을 1, 2, 4, 8, 16칸의 가능한 한 적고 큰 그룹으로 덮되 가장자리를 넘어 이어 보세요. 각 그룹은 일정하게 유지되는 변수로 이루어진 곱항 하나입니다. POS 형태는 0들을 묶으세요.
  4. 플립플롭과 카운터는 활성 클록 에지마다 입력을 읽고, 에지마다 상태를 적고, n비트 카운터는 2ⁿ개 상태 뒤에 되돌아간다는 것을 기억하세요.

흔한 실수

  • K-맵을 그레이 코드 00, 01, 11, 10 대신 00, 01, 10, 11로 배열하는 것.
  • 그룹이 가장자리를 넘어 이어질 수 있다는 것을 잊거나 3칸이나 6칸 그룹을 그리는 것.
  • 그룹을 키우지 못하는 무정의항을 덮는 것.
  • 카운터가 되돌아간다는 것을 잊거나 Q₃Q₂Q₁Q₀를 잘못된 순서로 읽는 것.

핵심 공식

기본 게이트
A·B, A + B, A′, (A·B)′, (A + B)′, A ⊕ B
불 규칙
X + X′ = 1, X·X′ = 0, X + XY = X, XY + XY′ = X
드모르간 법칙
(X·Y)′ = X′ + Y′, (X + Y)′ = X′·Y′
카르노 맵의 순서
00, 01, 11, 10 (Gray code)
2ᵏ칸의 그룹
변수 k개를 잃음
4-대-1 멀티플렉서
F = A′B′I0 + A′BI1 + AB′I2 + ABI3
플립플롭
D: Q⁺ = D, T: Q⁺ = T ⊕ Q, JK: Q⁺ = JQ′ + K′Q
카운터
n비트: 2ⁿ개 상태; mod-N: 2ⁿ ≥ N인 가장 작은 n; fout = fclk/N
리플 카운터
fmax = 1/(n·tpd)
링 카운터와 존슨 카운터
상태 n개와 2n개

디지털 논리: 게이트, 카르노 맵, 플립플롭 처음부터 배우기

먼저 알아 둘 것: 진법

11, 0, 그리고 게이트

디지털 회로는 0(낮은 전압, 거짓)과 1(높은 전압, 참)의 두 값으로 동작합니다. 논리 게이트는 입력을 하나 이상 받아 출력을 하나 냅니다.

ABA·BANDABA + BORAA′NOT
  • AND는 모든 입력이 1일 때만 1을 냅니다. A·B 또는 AB로 씁니다.
  • OR은 입력이 적어도 하나 1이면 1을 냅니다. A + B로 씁니다.
  • NOT은 반전합니다. 0은 1이 되고 1은 0이 됩니다. A′(또는 A 위에 막대)로 씁니다.
  • NAND와 NOR는 AND와 OR 뒤에 NOT을 붙인 것입니다. 기호의 작은 원은 “반전”을 뜻합니다.
  • XOR(A ⊕ B)은 입력이 서로 다를 때 1을 냅니다.

진리표는 입력의 모든 조합에 대한 출력을 나열합니다. 입력이 n개이면 2ⁿ개의 행입니다. ABC = 101인 행은 5번 행이며 최소항 m₅라고 합니다.

자가 점검 A = 1이고 B = 0이다. NAND 게이트의 출력은 무엇인가?
  1. 0
  2. 1
  3. 없음: NAND는 두 입력이 모두 1이어야 한다
  4. 이전 출력에 따라 달라진다

답: 1. 1과 0의 AND는 0이고, NAND는 이를 반전해 1로 만듭니다. NAND는 모든 입력이 1일 때만 0입니다.

2불 대수

논리식은 일반 대수와 비슷한 규칙을 따르며, 몇 가지 고유한 규칙이 더 있습니다. 가장 유용한 규칙은 다음과 같습니다.

X + X′ = 1 X·X′ = 0 X + X = X X + X·Y = X
X·Y + X·Y′ = X 드모르간: (X·Y)′ = X′ + Y′, (X + Y)′ = X′·Y′

결합 규칙 X·Y + X·Y′ = X는 간소화의 핵심입니다. 한 변수만 다른 두 항이 합쳐지고, 그 변수는 사라집니다.

곱의 합(SOP)은 AND 항들을 OR로 묶은 것으로, 예를 들어 F = AB′ + C입니다. 합의 곱(POS)은 OR 항들을 AND로 묶은 것으로, 예를 들어 F = (A + B)(B′ + C)입니다. 각 곱항은 프라임이 있거나 없는 변수인 리터럴로 만들어집니다.

3카르노 맵

카르노 맵은 이웃한 칸이 정확히 한 변수만 다르도록 격자로 그린 진리표입니다. 그래서 행과 열이 이진수 순서가 아니라 00, 01, 11, 10(그레이 코드) 순서로 나열됩니다.

ABC00011110000103121140507161F = B
  1. 모든 최소항의 칸에 1을 쓰세요. 각 칸의 작은 숫자는 최소항 번호입니다.
  2. 1들을 둘러싸는 1, 2, 4, 8, 16칸의 직사각형을 그리세요. 그룹은 가장자리를 넘어 이어질 수 있습니다. 왼쪽 열과 오른쪽 열은 이웃이고, 맨 위 행과 맨 아래 행도 이웃입니다.
  3. 모든 그룹을 가능한 한 크게 만들고, 모든 1이 덮일 때까지 그룹 수를 가능한 한 적게 하세요.
  4. 각 그룹을 곱항으로 읽으세요. 그룹 안에서 변하지 않는 변수만 남깁니다. 2ᵏ칸의 그룹은 변수 k개를 잃습니다.

위 맵에서 네 개의 1이 하나의 그룹을 이룹니다. 그 안에서 A와 C는 변하고 B = 1만 그대로이므로 F = B입니다.

X로 표시한 칸은 무정의항(don’t-care)으로, 절대 나타나지 않는 입력 조합입니다. 그룹이 커지면 X를 1로 쓰고, 그렇지 않으면 무시하세요. 0들을 묶으면 최소 POS 형태가 나옵니다.

자가 점검 변수가 4개인 맵에서 4칸 그룹은 리터럴을 몇 개 만드는가?
  1. 1
  2. 2
  3. 3
  4. 4

답: 2. 네 칸은 2²이므로 그룹 안에서 변수 두 개가 변하여 사라집니다. 변수 네 개 중 두 개가 남습니다.

4풀이 예제

모든 단계를 따라가 보세요. 다음 단계를 열기 전에 미리 예측해 보세요.

풀이 예제

F(A, B, C) = Σm(0, 2, 4, 5, 6)의 최소 SOP 형태를 구하고 리터럴 수를 세시오.

1

맵 채우기

행은 A = 0, 1이고 열은 BC = 00, 01, 11, 10입니다. 1은 m0, m2(0행, 00열과 10열)와 m4, m5, m6(1행, 00열, 01열, 10열)에 들어갑니다.

2

가장 큰 그룹

BC = 00 열과 BC = 10 열은 가장자리를 넘어 이웃입니다. 둘을 합치면 m0, m2, m4, m6이 들어 있는 4칸 그룹이 됩니다. C = 0만 일정하므로 이 그룹은 C′입니다.

3

남은 1 덮기

m5(A = 1, BC = 01)가 아직 덮이지 않았습니다. 이웃인 m4와 짝을 지으세요. 이 쌍에서는 A = 1과 B = 0이 일정하므로 항은 AB′입니다.

4

답 읽기

F = C′ + AB′

두 항에 리터럴이 세 개입니다. m5만 묶으면 AB′C라는 더 긴 항이 나옵니다. 겹치더라도 그룹은 항상 가능한 한 크게 만드세요.

답

F = C′ + AB′, 리터럴 3개.

5플립플롭과 카운터

게이트는 입력에 즉시 반응합니다. 플립플롭은 한 비트를 저장하며 클록의 활성 에지(보통 상승 에지)에서만 바뀝니다.

  • D 플립플롭: 클록 에지마다 Q가 D가 됩니다(Q⁺ = D).
  • T 플립플롭: T = 1이면 토글하고, T = 0이면 유지합니다.
  • JK 플립플롭: JK = 00은 유지, 01은 0으로 리셋, 10은 1로 셋, 11은 토글합니다.
CLKQ

토글하는 플립플롭은 상승 에지마다 바뀌므로 출력의 주파수가 클록의 절반입니다. n개를 연결하면 2ⁿ개의 상태를 가진 n비트 이진 카운터가 됩니다. mod-N 카운터는 0, 1, …, N − 1을 거쳐 다시 0으로 돌아가며, 2ⁿ ≥ N인 가장 작은 n이 필요하고 마지막 출력은 fclk/N으로 동작합니다.

리플 카운터에서는 각 단이 앞 단의 클록을 받으므로 지연이 누적됩니다. 클록 주기는 적어도 n·tpd여야 합니다. 시프트 레지스터 카운터는 상태 수가 더 적습니다. 플립플롭 n개의 링 카운터는 상태가 n개, 존슨 카운터는 2n개입니다.

자가 점검 4비트 이진 업 카운터가 13을 나타낸다. 클록 펄스가 5번 더 들어온 뒤에는 어떤 값을 나타내는가?
  1. 18
  2. 2
  3. 3
  4. 8

답: 2. 4비트 카운터는 상태가 16개이고 15에서 0으로 되돌아갑니다. 13 + 5 = 18이고 18 mod 16 = 2입니다. 18이라고 쓰면 되돌아감을 잊은 것입니다.

6흔한 실수

  • K-맵의 열을 00, 01, 10, 11로 쓰는 것. 순서는 그레이 코드인 00, 01, 11, 10입니다.
  • 그룹이 맵의 가장자리를 넘어 이어진다는 것을 잊는 것.
  • 3칸이나 6칸 그룹을 만드는 것. 그룹은 1, 2, 4, 8, 16칸입니다.
  • 도움이 되지 않는 무정의항을 덮는 것: X는 반드시 덮을 필요가 없습니다.
  • 변하는 변수를 남겨서 그룹을 읽는 것. 일정하게 유지되는 변수만 남기세요.
  • 카운터가 되돌아간다는 것을 잊는 것: n비트 카운터는 2ⁿ을 법으로 셉니다.

7시험 문제의 유형

  • 쉬움: 주어진 입력에 대해 게이트 회로 계산하기, 진리표의 1의 개수 세기, 카르노 맵에 최소항 놓기, 함수에 필요한 NAND 게이트 수, 또는 최악의 전파 지연.
  • 보통: 식 간소화, 카르노 맵으로 최소 SOP 또는 POS 형태 구하기, 멀티플렉서로 만든 함수, 또는 맵의 고립된 1.
  • 어려움: 무정의항이 있는 맵, 필수 소 임플리컨트, 플립플롭 타이밍 다이어그램, 많은 펄스 뒤의 카운터, 플립플롭 수나 출력 주파수, 시프트 레지스터.

진리표의 한두 행을 대입해 간소화한 식을 검산하세요. 원래 식과 간소화한 식의 출력이 같아야 합니다.

앱에서 단계별로 배우기앱에서 단계별로 배우기

예제 풀이

예제 1쉬움
BAF

NAND와 NOR는 범용 게이트입니다. 둘 중 하나만으로 모든 논리 함수를 만들 수 있습니다. 그림의 AND 함수를 만드는 데 필요한 2입력 NAND 게이트의 최소 개수 N은(는) 얼마인가?

F = A·B

구하는 값: N

힌트 보기
  1. 두 입력을 이은 NAND 게이트는 인버터입니다.
  2. AND = NAND 뒤에 인버터. OR = 반전된 입력들의 NAND(드모르간).
  3. 인버터로 쓰인 게이트를 포함해 모든 게이트를 세세요.
정답과 단계별 풀이 보기

논리 게이트: 모든 입력과 출력은 0 또는 1입니다. AND는 모든 입력이 1일 때만 1을 내고, OR은 입력이 적어도 하나 1이면 1을 내며, NOT은 반전합니다. NAND와 NOR는 AND와 OR 뒤에 NOT을 붙인 것이고, XOR은 입력이 다를 때 1을 냅니다. 회로는 입력에서 출력까지 게이트를 하나씩 차례로 따라가며 구하세요. 진리표는 2ⁿ개의 모든 입력 조합에 대한 출력을 나열합니다. 행 번호는 입력의 이진값이므로 행 ABC = 101은 최소항 m₅입니다.

NAND 게이트로 만들기

드모르간: A + B = (A′·B′)′이므로 OR는 반전된 입력들의 NAND입니다.

F = A·B = NOT(NAND(A, B))

게이트 세기

N = 2

답

N = 2
예제 2보통
ABCD00011110000111101111111

이 카르노 맵에서는 이웃한 1이 없는 1이 정확히 하나 있으며, 최소 SOP 형태에서 한 칸짜리 그룹(리터럴 네 개의 완전한 최소항)으로 남습니다. 맵의 가장자리를 넘어서 이웃한 칸도 센다. 그 칸을 클릭하세요.

F = Σm(0, 3, 4, 10, 13, 14, 15)
  1. 1AB = 00, CD = 00
  2. 2AB = 00, CD = 01
  3. 3AB = 00, CD = 11
  4. 4AB = 00, CD = 10
  5. 5AB = 01, CD = 00
  6. 6AB = 01, CD = 01
  7. 7AB = 01, CD = 11
  8. 8AB = 01, CD = 10
  9. 9AB = 11, CD = 00
  10. 10AB = 11, CD = 01
  11. 11AB = 11, CD = 11
  12. 12AB = 11, CD = 10
  13. 13AB = 10, CD = 00
  14. 14AB = 10, CD = 01
  15. 15AB = 10, CD = 11
  16. 16AB = 10, CD = 10
힌트 보기
  1. 이웃한 칸은 정확히 한 변수만 다릅니다.
  2. 맨 왼쪽 열과 맨 오른쪽 열이 이웃하고, 맨 위 행과 맨 아래 행도 이웃합니다.
  3. 모든 1의 이웃 네 칸(위, 아래, 왼쪽, 오른쪽, 가장자리를 넘어서도)을 확인하세요.
정답과 설명 보기

카르노 맵: 칸은 그레이 코드(00, 01, 11, 10) 순서로 배열되므로, 가장자리를 넘어 이웃한 칸을 포함해 이웃한 칸은 정확히 한 변수만 다릅니다. 모든 1이 덮일 때까지 1들을 1, 2, 4, 8, 16칸의 직사각형으로, 가능한 한 크고 가능한 한 적게 묶으세요. 각 그룹은 그 안에서 일정하게 유지되는 변수로 이루어진 곱항 하나입니다. 2ᵏ칸의 그룹은 변수 k개를 잃습니다. 무정의항(X)은 그룹을 키우는 데 쓸 수 있지만 반드시 덮을 필요는 없습니다. 0들을 묶으면 최소 POS 형태가 나옵니다.

각 1의 이웃

이웃한 1이 있는 1은 두 칸 이상의 그룹에 들어갈 수 있습니다.

m3: m2, m1, m7, m11 → 0
ABCD00011110000111101111111

고립된 1

m3 = A′B′CD → AB = 00, CD = 11

답

AB = 00, CD = 11
예제 3어려움
TQ0​Q0​TQ1​Q1​TQ2​Q2​TQ3​Q3​CLKMOD-12

동기식 mod-12 카운터은(는) 0, 1, …, 11을(를) 센 다음 0으로 돌아간다. 8에서 시작한다. 클록 펄스가 36번 들어온 뒤 어떤 값(Q, 십진수)을 나타내는가?

Q0 = 836N = 12

구하는 값: Q

힌트 보기
  1. 카운터는 12개의 상태를 가지며 펄스 12개 뒤에 반복됩니다.
  2. 펄스 k개 뒤의 값은 (8 + k) mod 12입니다.
  3. 36 mod 12 = 0.
정답과 단계별 풀이 보기

플립플롭과 카운터: 플립플롭은 클록의 활성 에지에서만 바뀝니다. D는 입력을 복사합니다(Q⁺ = D). T는 T = 1이면 토글합니다. JK는 00이면 유지, 01이면 리셋, 10이면 셋, 11이면 토글합니다. n비트 이진 카운터는 상태가 2ⁿ개이고 2ⁿ을 법으로 세며, mod-N 카운터는 0, 1, …, N − 1을 거쳐 다시 0으로 돌아가고 2ⁿ ≥ N인 가장 작은 n개의 플립플롭이 필요합니다. 리플 카운터는 단마다 주파수가 절반이 되므로 mod-N 카운터의 마지막 출력은 fclk/N으로 동작합니다. 플립플롭 n개의 존슨 카운터는 상태가 2n개, 링 카운터는 n개입니다.

완전한 주기

펄스 12개마다 카운터는 같은 상태로 돌아옵니다.

36 = 3·12 + 0

남은 펄스 뒤의 값

Q = (8 + 0) mod 12 = 8
Q = 1000₂

답

Q = 8

질문과 답변

디지털 논리: 게이트, 카르노 맵, 플립플롭: 무엇인가요?

디지털 회로는 0(낮은 전압, 거짓)과 1(높은 전압, 참)의 두 값으로 동작합니다. 논리 게이트는 입력을 하나 이상 받아 출력을 하나 냅니다.

디지털 논리: 게이트, 카르노 맵, 플립플롭 문제는 어떻게 단계별로 푸나요?
  1. 회로는 입력에서 출력까지 게이트를 하나씩 따라가며 모든 선에 값을 적거나, 식을 쓰고 진리표를 채우세요.
  2. 간소화할 때는 1(그리고 무정의항은 X)을 그레이 코드 행과 열(00, 01, 11, 10)을 가진 카르노 맵에 넣으세요.
  3. 1들을 1, 2, 4, 8, 16칸의 가능한 한 적고 큰 그룹으로 덮되 가장자리를 넘어 이어 보세요. 각 그룹은 일정하게 유지되는 변수로 이루어진 곱항 하나입니다. POS 형태는 0들을 묶으세요.
  4. 플립플롭과 카운터는 활성 클록 에지마다 입력을 읽고, 에지마다 상태를 적고, n비트 카운터는 2ⁿ개 상태 뒤에 되돌아간다는 것을 기억하세요.
디지털 논리: 게이트, 카르노 맵, 플립플롭에서 자주 하는 실수는?
  • K-맵을 그레이 코드 00, 01, 11, 10 대신 00, 01, 10, 11로 배열하는 것.
  • 그룹이 가장자리를 넘어 이어질 수 있다는 것을 잊거나 3칸이나 6칸 그룹을 그리는 것.
  • 그룹을 키우지 못하는 무정의항을 덮는 것.
  • 카운터가 되돌아간다는 것을 잊거나 Q₃Q₂Q₁Q₀를 잘못된 순서로 읽는 것.
디지털 논리: 게이트, 카르노 맵, 플립플롭 연습에서는 무엇을 다루나요?
  • 쉬움: 게이트, 진리표, 지연
  • 보통: 불 대수, 카르노 맵, 멀티플렉서
  • 어려움: 무정의항, 플립플롭, 카운터

문제마다 값이 새로 바뀌므로 답이 아니라 푸는 방법을 익히게 됩니다. 막혔나요? 먼저 작은 힌트를 열고, 필요할 때만 전체 해설을 보세요.

연습 방법

  • 문제마다 값이 새로 바뀌므로 답이 아니라 푸는 방법을 익히게 됩니다.
  • 막혔나요? 먼저 작은 힌트를 열고, 필요할 때만 전체 해설을 보세요.
  • 진행 상황, 틀린 문제, 저장한 문제가 보관되므로 시험 전에 복습할 수 있습니다.

이 주제의 앞뒤 주제

먼저 배우기

이 주제가 포함된 강의

전기의 다른 주제

인쇄용 학습지