본문 바로가기
CS/디지털논리회로

레지스터, 데이터 적재 레지스터, 시프트 레지스터, 카운터, 비동기식 카운터

by Renechoi 2023. 6. 15.

1. 레지스터 

 

(1) 레지스터의 개요 

 

- 데이터를 일시 저장하거나 전송하는 장치

- 여러 개의 플립플롭을 연결하여 구성

- n 비트 레지스터는 

  -> n 개의 플립플롭으로 구성되며

  -> n 비트의 2진 정보를 저장 

- 결국 레지스터는 여러 비트를 일시적으로 저장하거나 배열된 비트를 좌우로 자리이동 시키는데 사용 

 

 

레지스터의 기본 형태 

 

 

직렬 - 직렬 

직렬 - 병렬 

병렬 - 직렬

병렬 - 병렬 

 

(2) 데이터 적재 레지스터 

레지스터의 가장 중요한 기능 : 데이터를 임시 보관 => 데이터 적재 기능 

- 입력된 데이터를 그대로 기억하는 역할을 수행

- 일반적으로 D F/F 사용하여 구성 

 

데이터 입력에 따라 직렬, 병렬로 나뉨 

 

 

 

직렬적재 레지스터 

 

여러 개의 플립플롭을 연결하여 구성

- 구성 예 : 4개의 F/F으로 구성, 4비트 저장

 

직렬적재 방식 : 직렬 입력-직렬 출력 레지스터

- 데이터를 순차적으로 받아들이는 방식

- 즉, 1 비트씩 입력하는 방식

 

 

 

순차적으로 1비트씩 입력, 출력 

 

 

 

 

병렬 적재 레지스터 

 

병렬로 들어오게 되고 병렬로 출력 

 

-> 레지스터에 한 클럭펄스가 입력되면 4개의 입력 데이터가 병렬로 적재

-> 따라서 적재된 레지스터의 내용을 그대로 유지하려면,  회로에 클럭신호가 입력되지 않아야 된다.

-> 즉, 클럭펄스가 1 이면 적재, 클럭펄스가 0 이면 내용을 유지하도록 해야 한다.

 

구현 

 

 

-> 적재입력이 1이면

- 클럭의 상승에지에서 입력 데이터는 레지스터로 전송된다.

 

-> 적재입력이 0이면
- 입력 데이터는 차단되고, D F/F의 현재 상태값이 재입력되어 레지스터는 현재의 내용을 유지한다.

피드백 된 값이 다시 그대로 되돌아와서 변동이 생기지 않음 

 

 

즉 1: 전송 , 0 유지 

 

(3) 시프트 레지스터 

 

비트 단위의 정보 이동

 

- 레지스터가 기억하고 있는 정보에 대해 한 방향 또는 양방향으로 정보의 위치를 이동시킬 수 있는 레지스터 

-> F/F을 직렬 연결, 모든 F/F은 공통 클럭펄스를 가짐 

-> 클럭펄스에 따라 한 단씩 자리를 이동 

 

클럭은 공통으로 연결이 되어 있고 오른쪽 입력은 왼쪽에서 입력해서 오른쪽으로 출력 

 

 

 

 

오른쪽 시프트 레지스터의 예 

- 맨 왼쪽에 0을 입력 하면 

 

한 단씩 비트가 이동하게 된다. 

 

 

이동을 시켜주기 위해서는 입력을 0으로 하고 이동을 한다. 

 

최종적으로 1001 정보가 빠져나감 

 

 

 

레지스터 A에서 레지스터 B로의 직렬 전송 

- 직렬전송: 한번에 한 비트씩 정보 전송 

 

A의 정보를 B로 이동시켜 준다. 

10->5를 옮기면 5가 없어지고 10으로 덮어씌워짐 

 

이때 A의 정보가 손실이 있어서는 안되기 위해 피드백을 만듬 

 

시프트 제어신호가 1인 경우에만 동작을 할 수 있도록 함. 클럭 신호가 상승 엣지시에만 동작.

 

 

 

 

4비트 직렬 전송의 예 

 

예를 들어

- 레지스터 A : 1010

- 레지스터 B: 1011 

 

 

-> 4 단계를 거쳐서 수행함 

 

 

 

 

T1이 끝나고 나면 한 비트씩 이동을 하게 됨. 

 

먼저펄스T1 이 입력되면 레지스터A의 맨 오른 쪽 비트는 레지스터 B 의 맨 왼쪽 비트 위치로 시프트 되고,

동시에 그 내용은 레지스터 A 의  맨 왼 쪽 위치로 피드백

 

이후의 T2, T3, T4 의 펄스에서도 똑같은 시프트 동작이 이루어져 결국 레지스터 A의 내용이 레지스터 B 로 한번에 한 비트씩 이동하게 된다.

 

 

 

 

병렬 적재 양방향 시프트 레지스터 

D 플립플롭을 4개 이용해서 구성 

멀티플렉스를 이용 

 

 

선택신호 P, Q에 따라  4가지 기본 동작

- 왼쪽 시프트

- 오른쪽 시프트

- 변화 없음

- 병렬 적재 

 

멀티플렉스: 데이터 선택기 

 

2. 카운터 

레지스터의 또 다른 형태 

 

(1) 카운터의 개요 

- 카운터는 일종의 계수 장치

 

- 플립플롭을 사용해 만든 순서논리회로로서, 클럭펄스가 입력될 때마다 미리 정해진 순서에 따라 상태가 변한다.

- 외부의 입력이나 출력이 없으며, 상태변화는 클럭펄스에 의해 수행

- 일반적으로 T F/F 이나 JK F/F 이 사용된다.

 

 

 

실제로 카운터를 나타낼 때는 

- 비동기식 2진 카운터, 동기식 10진 카운터 등으로 표현 

 

 

 

(2) 비동기식 카운터 

 

- 카운터를 구성하는 각 F/F에 동시에 클럭이 가해지지 않는 카운터

- 결국 입력펄스가 앞 단의 출력값에 의해 영향을 받게 되며

- 리플 카운터라고도 함 

  1) 2진 리플 카운터

  2) BCD 리플 카운터 

 

 

1) 2진 리플 카운터 

클럭입력이 F/F의 첫째 단, 즉 가장 낮은 자리의 비트를 저장하는 F/F에만 연결되고, 두번째 F/F 부터는 앞의 F/F의 출력에 의해 트리거 된다.

 

=> 클럭펄스가 첫 번째 단에만 입력이 됨 

 

- 각 F/F의 출력은 순서적으로 다음 F/F의 클럭 입력에 연결

- LSB의 F/F은 계수입력펄스가 들어오고, J 와 K 입력은 모두 논리-1

 

상향으로 카운터하는 것이 있고 하향으로 카운터하는 것이 있다.  

 

 

4비트 2진 리플 카운터(업 카운터: 0 > 15 카운트 ) 

 

하강에지에서 동작을 하는데  입력은 1로 세팅이 되어 있음.

JK의 특성에 따라 11이 들어오면 보수 값 

 

- F/F A0 의 출력은 각 클럭의 하강에지에서 앞 상태를 토글

- F/F A1 의 출력은 A0 가1에서 0으로 변하는 순간 상태를 바꾼다.

- F/F A2 의 출력은 A1 이1에서0으로 변하는 순간 보수를 취한다.

- F/F A3 의 출력은 A2 가1에서0으로 변하는 순간 보수를 취한다.

 

 

2진 카운터의 계수순서를 보면 계수 0 에서 시작하여 매 계수 클럭펄스마다 1씩 증가하여 15를 계수한 다음 0 으로 되고, 다시 같은 순서를 반복한다.

-> 이와 같이 계수를 상향계수하는 카운터를 업카운터(up counter)

-> 반대로 하향계수하면 다운카운터(down counter)

 

 

논리도의 큰 차이는 없음 

 

업카운터는 Q가 다음 단의 동작을 시키지만 다운은 ~Q가 동작을 시킴 

 

 

 

 

(2) BCD 리플 카운터

- 0 ~ 9 까지 10개 상태를 계수하는 카운터 

 

아래와 같은 동작을 해주면 됨 

 

 

 

 

 

2진 리플과는 연결이 다르게 되어 있다. => 계수 방법이 다름 

 

- 첫번째F/F A0 는J 와 K 의 입력을 1 로 하면 토글

- 두 번째 F/F A1
  -> A
3 가 0  이면 토글

  -> A3 가 1 이면 0

 

- 세번째F/F A2는 A1 이1에서0으로바뀔때토글

 

- 네 번째 F/F A3 는 A0가 1에서 0으로 바뀔때  A1 과A2 가 동시에 1이면 토글하고, A1 과 A2 가 하나라도 0이면 출력A3 는 0이 된다.

 

 

 

 

 


참고자료: 디지털논리회로(김형근, 손진곤 공저, KNOU press 출판) 

반응형