7세그먼트 디스플레이용 BCD 디코더 설계: 진리표에서 시뮬레이션까지
BCD 디코더는 4비트 이진수(0–9) 입력을 7세그먼트 디스플레이의 신호로 변환합니다. 각 세그먼트(a–g)는 x3(상위비트), x2, x1, x0(하위비트) 입력에 따라 논리 함수로 제어됩니다. 숫자 10–15(1010–1111)에 대해서는 모든 세그먼트가 꺼집니다.
진리표는 각 세그먼트의 상태를 정의합니다:
| 숫자 | x3 | x2 | x1 | x0 | a | b | c | d | e | f | g |
|------|----|----|----|----|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
| 2 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
| 3 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |
| 4 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
| 5 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
| 6 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 |
| 7 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| 8 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 9 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
논리 함수 합성 방법
각 세그먼트에 대해 부울 함수를 합성합니다. 선택 기준은 출력값 중 1과 0의 비율에 따라 달라집니다:
- SOP(곱의 합, 1을 기준): 출력이 1인 minterm의 논리곱을 논리합으로 연결. 출력값이 50% 이상이면 적합.
- POS(합의 곱, 0을 기준): 출력이 0인 maxterm의 논리합을 논리곱으로 연결. 출력값이 50% 이상이면 최적.
예시: 세그먼트 A(0이 두 개: 1, 4) — POS
- 0001 행:
(x3 ∨ x2 ∨ x1 ∨ ¬x0) - 0100 행:
(x3 ∨ ¬x2 ∨ x1 ∨ x0) - A =
(x3 ∨ x2 ∨ x1 ∨ ¬x0) ∧ (x3 ∨ ¬x2 ∨ x1 ∨ x0)
예시: 세그먼트 E(1이 네 개) — SOP
- 0000:
¬x3 ∧ ¬x2 ∧ ¬x1 ∧ ¬x0 - 0010:
¬x3 ∧ ¬x2 ∧ x1 ∧ ¬x0 - 0110:
¬x3 ∧ x2 ∧ x1 ∧ ¬x0 - 1000:
x3 ∧ ¬x2 ∧ ¬x1 ∧ ¬x0 - E = 위 식들을 ∨로 연결.
식의 최소화 기법
카르노 맵 또는 온라인 계산기를 활용해 식을 단순화합니다. 최종 최소화된 표현식(곱의 합 형태):
- a:
((¬x0 ∧ ¬x2) ∨ x3 ∨ x1 ∨ (x0 ∧ x2)) - b:
((¬x0 ∧ ¬x1) ∨ ¬x2 ∨ x3 ∨ (x0 ∧ x1)) - c:
x3 ∨ x2 ∨ ¬x1 ∨ x0 - d:
((¬x0 ∧ ¬x2) ∨ x3 ∨ (¬x0 ∧ x1) ∨ (x0 ∧ ¬x1 ∧ x2) ∨ (x1 ∧ ¬x2)) - e:
((¬x0 ∧ ¬x1 ∧ ¬x2) ∨ (¬x0 ∧ x1 ∧ ¬x3)) - f:
((¬x0 ∧ ¬x1) ∨ x3 ∨ (¬x0 ∧ x2) ∨ (¬x1 ∧ x2)) - g:
((¬x0 ∧ ¬x1 ∧ ¬x2) ∨ (¬x0 ∧ x1 ∧ ¬x2) ∨ (x0 ∧ x1 ∧ ¬x2) ∨ (x3 ∧ ¬x2 ∧ ¬x1))
이 식들은 AND, OR, NOT 게이트를 사용해 구현됩니다.
Digital Deeds에서의 계층적 구현
Digital Deeds는 계층적 블록(.cbe 파일 형식)과 회로도(.pbs 파일 형식)를 지원합니다.
단계 1: 세그먼트 블록 생성
- 새 블록 생성: 입력 4개(x3–x0), 출력 1개.
- 핀 이름 재지정: 더블클릭.
- 공식에 맞춰 선 연결(Ctrl+W), 예: 세그먼트 A.
단계 2: 메인 회로 구성
- 새 회로 생성.
- 사용자 정의 컴포넌트 불러오기(7개 블록).
- x0–x3 입력을 모든 블록에 병렬 연결.
- 출력은 7세그먼트 디스플레이에 연결.
테스트: 0000–1001 범위를 순환하면 정확한 숫자 표시. 시뮬레이터는 디버깅용 타이밍 다이어그램을 생성합니다.
핵심 요약
- 진리표에서 1과 0의 밀도에 따라 SOP 또는 POS를 선택하세요.
- 최소화는 부품 수를 줄입니다: 4변수 경우 카르노 맵이 최적입니다.
- 계층적 블록은 FPGA/ASIC 설계 확장성 향상에 유리합니다.
- BCD 디코더는 카운터, 타이머, 디지털 디스플레이의 기초입니다.
- 시뮬레이션 테스트는 물리적 프로토타입 전 오류를 조기에 발견할 수 있습니다.
— Editorial Team
아직 댓글이 없습니다.