레지스터
데이터를 일시 저장하거나 전송하는 장치이다. 플립플롭을 여러 개를 연결되어 있는 장치라고 할 수 있다.
CPU 안에 잠시 연산결과를 저장하는 저장소자로서 사용되고 있습니다.
n 비트 레지스터는 n 개의 플립플롭으로 구성되며 n 비트의 2진 정보를 저장한다.
결국 레지스터는 여러 비트를 일시적으로 저장하거나, 배열된 비트를 좌, 우로 자리이동을 시키는 데 사용된다.
레지스터의 기본 형태

데이터 적재 레지스터
입력된 데이터를 그대로 기억하는 역할을 수행하는 레지스터로, 이 경우 D 플립플롭을 사용하여 구성하는 경우가 많다.
직렬 데이터 적재 레지스터.
예를 들어 4개의 F/F으로 구성한다면 4비트를 저장할 수 있을 것이다.
직렬적재 방식은 직렬로 입력이되고 직렬로 출력을 하는 레지스터다.
데이터를 순차적으로 받아들이는 방식으로 1비트씩 입력하는 방식이다.

전체적으로는 순차적으로 1 , 0, 0, 1, 으로 한 비트씩 입력되고 먼저 입력된 비트가 가장 먼저 출력된다.
구체적으로 만약 상승엣지에서 동작한다고 가정하고 첫 번째 클럭이 가해지면 첫 번째 D플립플롭에 1이라는 정보가 들어온다.
다음 클럭이 가해지면 첫 번째 입력인 1이 다음 플립플롭에 전달되고 두 번째 비트가 입력될 것이다.
이러한 순서로 반복되다 보면 총다음과 같은 결과가 발생한다.

다음은 병렬 적재 레지스터이다.

레지스터에 한 클럭펄스가 입력되면 4개의 입력 데이터가 병렬로 적재된다. 그렇기 때문에 적재된 레지스터의 내용을 그대로 유지하려면 회로에 클럭신호가 입력되지 않아야 한다.
이는 클럭펄스가 1이면 적재를하고 0이면 내용을 유지하도록해야한다.
시프트 레지스터
레지스터가 기억하고 있는 정보에 대해 한 방향 또는 양방향으로 정보의 위치를 이동시킬 수 있는 레지스터이다.
이 경우 플립플롭은 공통 클럭펄스를 가지고 직렬로 연결한다.
클럭펄스에 따라 한 단씩 자리를 이동한다.

클럭 동작시 저장하고 있는 비트를 출력한다. 그리고 입력값으로 0이 입력된다.
예를 들어 1 0 0 1 이 각 플립플롭에 저장되어 있는 경우 오른쪽 시프트에서는
첫 번째 클럭이 입력되면 0 1 0 0 이 저장되는 식이다.
이러한 시프트 레지스터를 이용하면 레지스터 간의 전송이 가능하다.
다만 전제는 송신하는 레지스터의 정보는 유지하되 수신하는 레지스터의 정보를 변경해야 한다.
그렇기에 이를 적용한 회로를 구성해야 한다.
카운터
플립플론을 사용해 만든 순서논리회로로서, 클럭펄스가 입력될 때마다 미리 정해진 순서에 따라 상태가 변한다.
외부의 입력이나 출력이 없으며, 상태변화는 오로지 클럭펄스에 의해 수행된다.
일반적으로는 T 플립플롭이나 JK 플립플롭이 사용된다.
카운터는 종류가 매우 만다.
클럭펄스 인가 방식에 따라 비동기식, 동기식, 결합 카운터가 있고
계수 방식에 따라 2진 카운터나 N진 카운터, 시프트 카운터, 링, 존슨 카운터가 있다.
보통 합쳐서 비동기식 2진 카운터, 동기식 10진 카운터 등으로 표현한다.
비동기식 카운터
카운터를 구성하는 각 플립플롭에 동시에 클럭이 가해지지 않는 카운터이다.
입력펄스가 앞 단의 출력값에 의해 영향을 받게 되며 이를 리플 카운터라고도 한다.
2진, BCD(0~9까지) 리플 카운터로 나누어진다.
예를 들어 2진 리플 카운터는 다음과 같다.
클럭입력이 F/F의 첫 번째 단에, 가장 낮은 자리의 비트를 저장하는 F/F에만 연결되고, 두 번째 F/F부터는 앞의 F/F의 출력에 의해 트리거 된다.

클럭이 앞의 플립플롭의 출력에 연결되어 있는 것을 확인할 수 있다.

예를 들어 4비트 2진 리플 카운터에서 모든 입력값이 1로 설정되어 있고 하강 에지에서 동작한다고 하자.
JK 플립플롭 특성상 입력 값이 1인 경우 출력은 보수를 취한다.
LSB에서 Ao의 출력은 앞의 상태를 토글 한다.
A1의 출력은 A0가 1에서 0으로 변하는 순간 상태를 변경한다.
A2의 출력도 A1의 출력이 1에서 0으로 변하는 순간 보수를 취한다.
A3도 A2가 변하는 순간 보수를 취한다.
2진 카운터의 계수순서는 계수 0에서 시작하여 매 계수 클럭펄스마다 1씩 증가하여 15를 계수한 다음 0으로 되고 다시 같은 순서를 반복한다. 이와 같이 계수를 상향계수하는 카운터를 up counter라고 한다.
반대로 하향계수하면 down counter이다.
정리하자.
레지스터는 비트 단위 이동 및 저장하는 기능을 한다. 이동에는 시프트, 저장에는 데이터 적재 레지스터를 사용한다.
카운터는 계수를 하는 장치로 사용하며 미리 정해진 순서에 따라 상태가 변하도록 구성된다.
비동기식과 동기식 카운터의 차이는 클럭펄스의 동시성에 따라 구분된다.
용어
1. 데이터 적재 : 레지스터에 새로운 데이터를 기억하는 것
2. 직렬 적재 : 데이터를 1비트씩 순차적으로 입력하는 방식
3. 병렬 적재 : 데이터를 한 클럭펄스 때 동시에 입력하는 방식
4. 왼쪽, 오른쪽 시프트 : 기억하고 있는 정보를 왼쪽, 또는 오른쪽으로 자리 이동하는 것
5. 비동기식 카운터 : 카운터를 구성하는 각 F/F에 클럭펄스가 동시에 가해지지 않는 카운터
6. 동기식 카운터 : 카운터를 구성하는 모든 F/F에 클럭펄스가 동시에 가해지는 카운터
'도전' 카테고리의 다른 글
| 3D Computer Graphics (1) (0) | 2023.04.01 |
|---|---|
| 레지스터와 카운터(2) (0) | 2023.03.26 |
| 순서논리회로 (3) (0) | 2023.03.20 |
| 순서논리회로 (2) (0) | 2023.03.14 |
| CPM 네트워크 (0) | 2023.03.13 |
댓글