[논리회로] 카운터

2022. 6. 11. 03:08·CS/논리회로
728x90
반응형

카운터

일정한 순서의 값을 순환하는 회로를 카운터라고 합니다.

 

Shift Reg의 출력의 반전된 출력을 reg의 첫번째 FF과 피드백으로 연결해주면

존슨 카운터를 만들 수 있습니다.

 

존슨 카운터의 구성

위 카운터는 두개의 루프가 존재합니다.

 

 

1. 000 -> 100 -> 110 -> 111 -> 011 -> 001 -> 000

2. 010 -> 101 -> 010

 

카운터의 종류

- 동기형 카운터

1.FF들의 동작이 공통 클럭에 맞춰서 동작하며

2.FF들의 상태변화가 동시에 일어난다.

 

즉 클럭입력에 따라 모든 FF들의 상태가 변화된다고 할 수 있습니다.

 

 

 

 

- 비동기형 카운터

리플 카운터라고도 불리며, 한 개의 FF 상태변화가 다른 FF 상태를 변경하는 트리거 역할을 하는 회로입니다.


T-FF을 이용한 3비트 이진 카운터 설계

보여드릴 이진 카운터는 0부터 7까지 카운트 하고, 다시 0을 돌아가는 카운터입니다.

 

 

초기값은 0입니다.

 

 

3비트 T-FF 이진 카운터 구성

초기 값은 $A=B=C=0$ 이라고 가정합니다.

 

 

먼저 현재 상태와 차기 상태에 대한 진리표를 작성해보고

그에 맞는 T-FF의 입력을 작성해보겠습니다.

 

현재상태 차기상태 T-FF 입력
$C$ $B$ $A$ $C^{+}$ $B^{+}$ $A^{+}$ $T_C$ $T_B$ $T_A$
0 0 0 0 0 1 0 0 1
0 0 1 0 1 0 0 1 1
0 1 0 0 1 1 0 0 1
0 1 1 1 0 0 1 1 1
1 0 0 1 0 1 0 0 1
1 0 1 1 1 0 0 1 1
1 1 0 1 1 1 0 0 1
1 1 1 0 0 0 1 1 1

T-FF은 입력으로 1을 주면 출력이 Toggle되고, 0을 주면 출력의 변화가 없습니다.

 

 

따라서 현재상태와 차기상태를 비교했을때, 변화된 위치에 T-FF의 입력을 1로 주고

변하지 않은 위치에는 0으로 입력을 주면 됩니다.

 

 

T-FF의 입력인 $T_C, T_B, T_A$에 대한 카노맵과 입력 함수를 구해보겠습니다.

 

$T_C$
BA C=0 C=1
00 0 0
01 0 0
11 1 1
10 0 0
$T_B$
BA C=0 C=1
00 0 0
01 1 1
11 1 1
10 0 0
$T_A$
BA C=0 C=1
00 1 1
01 1 1
11 1 1
10 1 1

 

카노맵을 통해 구한 입력 함수는 다음과 같습니다.

 

$T_C = AB$

$T_B = A$

$T_C = 1$


D-FF를 이용한 3비트 이진 카운터 설계

D-FF의 특성식은 $Q^{+} = D$ 이므로

차기 상태가 1로 바뀌면 D-FF의 입력도 1이며,

차기 상태가 0으로 바뀌면 D-FF의 입력도 0이 됩니다.

 

 

이제D-FF의 입력을 작성해보겠습니다.

 

 

D-FF 입력
$D_C$ $D_B$ $D_A$
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 0 0

 

이에 따라 카노맵과 그에 따른 입력 함수를 구해보겠습니다. 

 

 

 

$D_C$
BA C=0 C=1
00 0 1
01 0 1
11 1 0
10 0 1
$D_B$
BA C=0 C=1
00 0 0
01 1 1
11 0 0
10 1 1
$D_A$
BA C=0 C=1
00 1 1
01 0 0
11 0 0
10 1 1

카노맵을 통해 구한 입력 함수는 다음과 같습니다.

 

$D_C = C'BA + CB' + CA' = C'BA + C(BA)' = C \oplus BA$

$D_B = BA' + B'A = A \oplus B$

$D_C = 1A' + 0A = A \oplus 1$

 

이에 따른 D-FF 이진 카운터의 설계 결과는 다음과 같습니다.

 

D-FF을 활용한 이진 카운터의 구성


Up / Down 카운터

Up 카운터는 말 그대로 클럭입력의 에지에서 다음 상태가 현재 상태 + 1이 되는 카운터입니다.

Down 카운터는 반대로 클럭입력의 에지에서 다음 상태가 현재 상태 - 1 이 되는 카운터입니다.

 

 

지금부터 설계할 카운터는 U(Up)입력이 1이고 D(Down)입력이 0인 경우 Up 카운터로 동작하고

U(Up)입력이 0이고 D(Down)입력이 1인 경우 Down 카운터로 동작하는 카운터입니다.

 

 

$U=1, D=0$인 경우의 입력 함수는 D-FF 이진 카운터의 설계 부분을 참고해주세요.

 

$U=0, D=1$인 경우의 D-FF 이진 카운터를 설계해보겠습니다.

 

 

현재상태 차기상태 D-FF 입력
$C$ $B$ $A$ $C^{+}$ $B^{+}$ $A^{+}$ $D_C$ $D_B$ $D_A$
0 0 0 1 1 1 1 1 1
0 0 1 0 0 0 0 0 0
0 1 0 0 0 1 0 0 1
0 1 1 0 1 0 0 1 0
1 0 0 0 1 1 0 1 1
1 0 1 1 0 0 1 0 0
1 1 0 1 0 1 1 0 1
1 1 1 1 1 0 1 1 0

 

위 D-FF 입력에 따른 카노맵은 다음과 같습니다.

 

$D_C$
BA C=0 C=1
00 1 0
01 0 1
11 0 1
10 0 1
$D_B$
BA C=0 C=1
00 1 1
01 0 0
11 1 1
10 0 0
$D_A$
BA C=0 C=1
00 1 1
01 0 0
11 0 0
10 1 1

 

 

카노맵에 따른 입력 함수는 다음과 같습니다.

 

 

 

$D_C = C'B'A' + CB + CA = C'B'A' + C(B'A')' = C \oplus B'A'$

$D_B = A'B' + AB = B \oplus A'$

$D_A = A'1 + A0 = A \oplus 1$

 

 

 

$U=1, D=0$ 인 경우의 입력 함수는 다음과 같고

 

$D_C = C \oplus BA$

$D_B = A \oplus B$

$D_C = A \oplus 1$

 

이 둘을 합치면 다음과 같습니다.

 

 

$D_A = A \oplus (U + D)$

$D_B = B \oplus(UA + DA')$

$D_C = C \oplus(UBA + DB'A')$

 

 

이에 따른 D-FF Up / Down 이진 카운터의 구성은 다음과 같습니다.

 

D-FF Up / Down 이진 카운터의 구성

 

'CS > 논리회로' 카테고리의 다른 글

[논리회로] 밀리머신과 출력 오류 현상  (0) 2022.06.11
[논리회로] 무어머신과 순차 패리티 체커 회로  (0) 2022.06.11
[논리회로] 레지스터  (0) 2022.06.10
[논리회로] 플립플롭  (0) 2022.06.10
[논리회로] 래치와 투과성 문제  (0) 2022.06.10
'CS/논리회로' 카테고리의 다른 글
  • [논리회로] 밀리머신과 출력 오류 현상
  • [논리회로] 무어머신과 순차 패리티 체커 회로
  • [논리회로] 레지스터
  • [논리회로] 플립플롭
uinone
uinone
노는 게 제일 좋아😉
  • uinone
    ideaDummy
    uinone
  • 전체
    오늘
    어제
    • 분류 전체보기
      • CS
        • 확률과 통계
        • 자료구조
        • 논리회로
        • OS
        • 데이터 통신
        • 데이터 과학
        • 컴파일러
      • 알고리즘
        • 그리디
      • 컴퓨터 비전
      • 안드로이드
      • Web
        • CSS
        • TypeScript
        • React.js
      • 기타
        • 모각코
        • 메모장
        • 오류해결
        • 풍미박산 기절초풍 설치과정
      • DL
      • ML
      • 언어
        • C
        • Ocaml
      • Tensorflow
      • 8기 글로벌 SW*AI인재 프로그램
      • 논문 정리
        • 3D Object Detection
        • 3D Multi Object Tracking
      • CUDA
      • Dataset
        • NuScenes
  • 블로그 메뉴

    • LinkedIn
    • Github
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준
    그리디 알고리즘
    NetworkFlow
    우선순위 큐
    정렬
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
uinone
[논리회로] 카운터
상단으로

티스토리툴바