논리회로 chap 7. Counters and Registers

2023. 11. 28. 04:04컴퓨터공학 전공공부/논리회로

7-1. 비동기적(리플) 카운터

리플이란?

carry가 전달되는 것을 말한다.

 

4비트 비동기적 카운터

A가 MSB, D가 LSB이다.
15번째의 하강 천이 클럭 펄스(NGT) 발생 후, 카운터 FF는 0000 상태로 다시 돌아간다.

한편, 상태가 시계와 정확히 동기화되어 바뀌는 것은 아니다. 

  • MOD 숫자 : 모드 숫자(MOD number)는 카운터가 처음 상태로 되돌아가기까지 한 주기를 이루는 상태 개수와 같다. 여기서 MOD 숫자는 16이다. 연결된 FF의 개수를 N이라 할 때, MOD 숫자 = 2N이다.
  • 주파수 분할 : 각 FF의 출력 주파수는 입력 주파수의 1/2이다. 
  • 클럭의 주기는 총 delay보단 커야 한다.

 

7-2. 리플 카운터에서의 전파 지연

입력 클럭 주파수의 최대값

일반적인 동작에서, 입력 펄스 간의 주기는 카운터 전체 전파 지연 시간보다 길어야 한다. 따라서 

Tclock ≥ N * tpd

여기서 T는 입력 펄스 간의 주기, N은 FF의 개수, t는 전파 지연 시간이다. 이를 통해 입력 클럭 주파수의 최대값을 구할 수 있다. 입력 펄스 간 주기의 역수가 된다.

Fmax = 1 / ( N * tpd  )

 

Glitch(글리치)의 발생

글리치란 아주 잠깐 발생하는 오류를 말한다.

잘못된 카운트 패턴으로 인해 글리치가 발생

 

7-3. 동기식(병렬) 카운터

동기식 카운터

동기식 카운터에서, 모든 FF는 클럭에 의해 동시에 트리거된다.

위 회로에 대해 분석해 보자.

계수 순서를 보면 A = 1인 동안 클럭의 각 하강 천이 때마다 FF B의 상태가 반전된다. 즉, 계수가 0001인 상황에서 다음 클럭의 하강 천이 때 B는 1로 반전되고, 계수가 0011인 상황에서 다음 클럭의 하강 천이 때 B는 0으로 반전된다. 이러한 동작을 위해서 A의 출력을 FF B의 J와 K 입력에 연결하면 A = 1일 때 J = K = 1이 된다.

계속해서 A = B = 1인 동안 클럭의 각 하강 천이 때마다 C의 상태가 바뀐다. 예를 들어 계수가 0011인 상황에서 다음 클럭의 하강 천이 때 C는 1로 반전되고, 계수가 0111인 상황에서 다음 클럭의 하강 천이 때 C는 0으로 반전된다. 이러한 동작을 위해서 논리 신호 AB를 C의 J, K 입력에 연결하면 A = B = 1일 때 J = K = 1이 된다.

동일한 맥락으로 A = B = C = 1일 때 J = K = 1이 된다.

결론적으로, 임의의 FF에 대하여 하위 단계의 FF 출력이 모두 1일 때만 그 FF의 J, K 입력이 1이 되도록 연결돼야 한다.

 

7-4. MOD 수가 2보다 작은 카운터

MOD 수를 2N에 맞추기

기본 동기 카운터의 MOD 수는 2의 N제곱 꼴로 제한된다. 따라서 원하는 숫자보다 조금 큰, 가장 가까운 2의 N제곱 꼴 숫자를 골라 clear하는 방식을 이용한다. 예를 들어 MOD-6의 경우,  MOD-8에서 6을 센 후 clear하는 방식으로 구현한다. 회로도에서는 모든 FF의 비동기 CLEAR 입력에 NAND 게이트를 연결하여 구현한다.

MOD-6 카운터 회로도
MOD-6 카운터의 상태 전환 다이어그램

위 다이어그램을 보면, 101 이후 110을 매번 잠깐 거쳤다 000으로 돌아가게 된다. 111은 특수 경우(무작위 상태에 가는 경우) 발생 시 거칠 수 있는데, 바로 000으로 가게 된다.

카운터 상태를 표현하기 위해서는 LED를 이용하는 경우가 많으며, HIGH 입력일 때 LED가 점등된다.

LED를 연결한 MOD-6 카운터

 

MOD-10 카운터 (Decade counter)

decade counter(10진 카운터)는 계수 순차가 어떻게 되든 상관 없이 10개의 독립된 상태를 가지는 카운터이다. BCD 카운터 또한 10진 카운터의 일종으로, 00002부터 10012을 카운트한다. MOD-16 카운터를 이용해  MOD-10 카운터를 표현한다.

 

7-5. 동기식 다운 카운터와 업/다운 카운터

동기적 다운 카운터

동기적 다운 카운터는 업 카운터와 유사하게 만들어진다. 다운 카운터는 반전된 FF 출력을 이용하여 J, K 입력을 제어한다.

 

7-6. 프리셋 카운터

초기화시킬 수 있는 회로

위와 같은 회로를 이용해 원하는 특정 값으로 프리셋해 시작할 수 있다. 1일 때 PRESET을, 0일 때 CLEAR를 하면 된다.

 

7-7. 동기식 카운터 IC

74ALS160-163 계열의 IC 핀 배치

74ALS160-163

  • 카운터는 네 개의 FF를 포함한다.
  • 네 가지 IC 모두 비동기식 clear 입력을 가지며, 신호는 active-low이다.
  • A, B, C, D 입력에 active-low LOAD 입력을 적용하여 임의의 값으로 프리셋할 수 있다.
  • 74ALS160/74ALS162는 MOD-10이고, 74ALS161/74ALS163는 MOD-16이다.
  • RCO(Ripple Carry Out) : 여러 개의 칩을 연결할 때 사용한다. 카운터의 마지막 또는 터미널 상태를 감지(해석)하면 active-HIGH 출력이 나온다.

 

 

 

74ALS160-163 계열의 function table

synchr.clear의 경우, 바로 clear되는 것이 아니라 다음 입력을 기다렸다가 clear되는 것을 말한다.

 

 

 

 

 

 

74ALS190-191 계열의 IC 핀 배치

  • 하나의 enable을 가진다.
  • downcount이면, minimum 값일 때 1이 된다. upcount이면, maximum 값일 때 1이 된다.
  • clear가 없다. 따라서 clear를 위해선 A, B, C, D에 0000을 로드하면 된다.

 

 

 

 

 

 

7-8. 카운터의 부호화(Decoding)

부호화란?

이진수나 아스키코드를 해석하는 것을 말한다. 다시 말해, 이진 결과를 십진 형태로 전환하는 것을 말한다.

 

Decoder 예시

각 10진수 0~7을 나타내는 LED 점등에 사용하는 active-HIGH decoder
디지털 숫자의 표현과 디코더. 오른쪽의 진리표를 갖는다.

 

7-9. 동기식 카운터 분석

동기식 up 카운터

  • JC = AB
  • KC = C
  • JB = KB = A
  • JA = KA = not C
  • 이 네 가지는 플립플롭을 제어하는 입력 표현이다.

이러한 카운터는 아래와 같은 PRESENT state/NEXT state 테이블을 가지며, 이에 따른 전환 다이어그램은 아래와 같이 그릴 수 있다. 전환 다이어그램을 통해 이 카운터는 자동 수정 기능이 있음을 알 수 있다.

control input에 어떤 것이 들어오느냐에 따라 next state가 바뀐다.

 

D 타입 FF로 구현된 동기식 카운터

회로도는 JK 타입 FF보다 복잡하지만, control input과 next state가 같다는 특징이 있다.

 

7-10. 동기식 카운터의 설계

분석과 설계의 관계

분석은 PRESENT state에 control input이 들어오면 NEXT state가 어떻게 될지 예측하는 거라면, 설계는 PRESENT state와 NEXT state를 보고 어떤 control input이 들어왔을지 예측하는 것이다. 다음과 같은 과정을 거쳐 동기식 카운터의 설계를 진행한다.

  1. 전환 다이어그램을 보고 관계를 파악한다.
  2. PRESENT state, NEXT state를 표에 정리한다.
  3. control input을 구한다.

 

D FF와 JK FF의 Excitation Table

 

D 타입 FF로 구현된 동기식 카운터 설계

 

7-14. 상태 기계

상태 기계 예시 : 신호등 제어 상태 기계

 

7-15, 16. 레지스터 데이터 전송, 레지스터 IC

입출력 방식

입출력 방식은 serial, parallel 두 가지 방식으로 나뉜다.

 

Parallel in/Parallel out (PIPO)

PIPO 회로도
PIPO 타입의 레지스터 IC, 74ALS174 & 74HC174

 

Serial in/Serial out (SISO)

SISO 회로도. 입력 포트가 하나이다. 핀을 하나만 쓰기에 여러 개를 연결할 수 있다.

 

Parallel in/Serial out (PISO)

PISO 회로도
PISO 타입의 레지스터 IC, 74ALS166 & 74HC166
74ALS166 & 74HC166의 function table(왼쪽)과 logic symbol(오른쪽)

 

Serial in/Parallel out (SIPO)

SIPO 회로도. 출력을 parallel로 하기 때문에, 출력이 빠르다.

 

7-17. 시프트 레지스터 카운터

시프트 레지스터 카운터

시프트 레지스터 카운터는 피드백을 이용해 작동한다. 여기서 피드백이란, 시프트 레지스터의 마지막 FF 출력이 첫 번째 FF에 반영된다는 것을 의미한다.

 

순환 시프트 레지스터와 링 카운터

순환 시프트 레지스터는 가장 간단한 시프트 레지스터 카운트이다. 관련된 대표적인 카운터는 링 카운터인데, 이는 마지막 FF 값이 처음으로 이동하게끔 연결된 순환 시프트 레지스터이다. 링 카운터가 정상적으로 작동하기 위해선 오직 하나의 FF만 1 상태에, 나머지는 전부 0 상태인 채로 시작해야 한다. power-up 상태는 예측할 수 없기 때문에, 카운터는 클럭 펄스가 적용되기 전 미리 설정된다.

링 카운터

존슨 카운터

기본적인 링 카운터를 약간 변형한 것으로, 존슨 카운터 혹은 트위스트된 링 카운터라 불린다. 여기에선 마지막 FF 값이 반전된 결과가 처음으로 이동하게끔 연결된 것이다. 주어진 MOD 숫자에 대하여, 존슨 카운터는 링 카운터가 필요로 하는 FF의 절반만을 필요로 한다. 한편 링 카운터와 달리, decoding gate를 필요로 한다.

존슨 카운터는 각 카운트를 부호화(decode)하기 위해 logic gate를 이용한다. 각각의 gate는 FF의 수와 상관없이 오직 두 개의 입력을 요구한다.

존슨 카운터(왼쪽), MOD-6 존슨 카운터의 decoding gate(오른쪽)

 

7-18. 고장 진단

고장 진단의 과정

  1. 시스템 작동을 관찰한다.
  2. 분석적 추론을 이용하여 가능한 원인을 파악한다.
  3. 테스트 장비를 사용하여 고장을 분리한다.