핵심 인사이트 (3줄 요약)

  1. 본질: 존슨 카운터(Johnson Counter)는 마지막 출력의 보수를 처음 입력으로 되돌리는 변형된 시프트 카운터다.
  2. 가치: n개의 플립플롭으로 2n개의 상태를 만들 수 있어 링 카운터보다 상태 효율이 높다.
  3. 판단: 상태가 늘어도 해독이 쉽고, 순차 제어와 타이밍 생성에 자주 쓰인다.

Ⅰ. 개요 및 필요성

존슨 카운터는 링 카운터의 단순함과 이진 카운터의 상태 효율 사이를 절충한 회로다. 출력이 한 번 뒤집혀 돌아오기 때문에 상태 수가 두 배로 늘어난다.

이 방식은 순차 제어, LED 패턴, 스캔 타이밍처럼 규칙적인 순환을 만들 때 유용하다.

  • 📢 섹션 요약 비유: 동그란 줄에서 뒤집힌 이름표를 넘기면 같은 인원으로 더 많은 순서를 만들 수 있다.

Ⅱ. 아키텍처 및 핵심 원리

FF1 → FF2 → FF3 → FF4
 ↑                 ↓
 └────── inverted ─┘
구성 요소역할
Flip-Flop상태 저장
Inverted Feedback마지막 비트를 뒤집어 입력
Clock상태 진행
Reset초기 상태 지정
0000 → 1000 → 1100 → 1110 → 1111 → 0111 → 0011 → 0001 → 0000

존슨 카운터는 연속된 1과 0의 조합을 만들어 해독이 쉽다. 그래서 디코딩 로직이 단순하고, 제한된 하드웨어에서 많은 순서를 표현할 수 있다.

  • 📢 섹션 요약 비유: 한 번 뒤집어서 돌아오면 같은 색이 아니라 짝이 바뀐 카드들이 차례대로 나온다.

Ⅲ. 비교 및 연결

구분Ring CounterJohnson CounterBinary Counter
상태 수n2n2^n
상태 해석매우 쉬움쉬움중간
하드웨어 효율낮음중간높음

존슨 카운터는 링 카운터보다 상태 수가 많고, 이진 카운터보다 해독이 쉽다. 그래서 실무에서는 "애매한 중간"이 아니라 "딱 필요한 절충"으로 쓰인다.

  • 📢 섹션 요약 비유: 줄은 하나인데 번호표를 앞뒤로 뒤집어 더 많은 차례를 만드는 방식이다.

Ⅳ. 실무 적용 및 기술사 판단

체크리스트

  1. 상태 수와 해독 난이도의 균형이 맞는가?
  2. 초기 상태와 reset 로직이 안정적인가?
  3. 클록 경계에서 전이 오류가 없는가?
  4. 출력 패턴이 요구 사항과 맞는가?
  5. 링 카운터보다 효율이 필요한 상황인가?

안티패턴

  • 상태 수가 많아야 하는데 무조건 존슨 카운터를 쓰는 설계
  • 초기화 상태를 대충 정하는 설계
  • 해독 로직을 복잡하게 만들어 장점을 잃는 설계
  • 타이밍 경합을 무시하고 순환만 보는 설계

기술사 관점에서는 존슨 카운터를 "중간 성능" 회로가 아니라 "제어용 순환 상태기계"로 봐야 한다. 목적이 분명하면 충분히 강력하다.

  • 📢 섹션 요약 비유: 적당한 크기의 회전판이 있으면 너무 작지도, 너무 복잡하지도 않게 순서를 돌릴 수 있다.

Ⅴ. 기대효과 및 결론

존슨 카운터는 순환 상태를 적당한 비용으로 늘려 주는 실용적인 회로다. 그래서 단순 제어와 표시 패턴에서 자주 활용된다.

결국 핵심은 "적은 회로로 얼마나 규칙적인 순서를 만들 수 있는가"다.

  • 📢 섹션 요약 비유: 같은 바퀴를 조금 다르게 굴리면 더 다양한 패턴이 나온다.

관련 개념 맵

Shift Register
  ↓
Inverted Feedback
  ↓
Johnson Counter
  ↓
2n State Sequence

관련 키워드 및 발전 흐름도

Ring Counter
  ↓
Johnson Counter
  ↓
Sequence Generator
  ↓
Timing Control

어린이를 위한 3줄 비유 설명

카드를 뒤집어서 다시 돌리면 다른 순서가 생겨요.
존슨 카운터는 그런 식으로 순서를 더 많이 만들어요.
그래서 작은 회로로 여러 단계를 만들 수 있어요.