티스토리 뷰

오늘 포스팅 주제는 레지스터와 카운터입니다.

조합논리회로, 순서논리회로를 모두 학습한 상태이니 이제 응용차례입니다.

 

먼저 레지스터에 대해서 설명하겠습니다.

레지스터외부에서 들어온 데이터를 임시저장하는 기능을 수행하고, 그 데이터를 다시 외부로 전송할 수 있습니다.

일반적으로 D Flip-Flop으로 구성되어있으며, 각 D 플립플롭은 1bit를 구성합니다.

즉, 8개의 D플립플롭을 사용한다면 8bit 레지스터가 됩니다. 이후 설명할 카운터 또한 레지스터의 특별한 형태입니다.

그리고 레지스터는 주로 CPU 내부에서 연산결과를 중간저장하거나, 데이터를 불러오거나 저장할때 사용합니다.

 

레지스터는 입력,출력 방식에 따라 4가지로 분류합니다.

직렬입력 - 직렬출력 레지스터
직렬입력 - 병렬출력 레지스터
병렬입력 - 직렬출력 레지스터
병렬입력 - 병렬출력 레지스터

 

각 레지스터들을 한번씩 살펴보겠습니다.

 

1. 직렬입력 - 직렬출력 레지스터

4비트 직렬입력 - 직렬출력 레지스터

위 회로는 입력이 주어지면 왼쪽부터 오른쪽으로 데이터가 이동하면서 데이터를 출력하는 구조입니다.

위 회로의 타이밍도입니다. 상승에지마다 a에들어왔던 입력이 오른쪽으로 가면서 Qd로 출력을 전송하고 있는 모습입니다.

이 회로의 출력은 Qd이므로, 4번째 펄스이후 출력 ( 1 ), 5번째 펄스이후 출력 ( 0 ) ... 이러한 형태로 출력이나옵니다.

 

2. 직렬입력 - 병렬출력 레지스터

4비트 직렬입력 병렬출력 레지스터

이제 병렬 출력의 경우에는 Read신호가 active low로 동작합니다. 모든 신호 ( 4bit )를 읽어 올 수 있기 때문에, 4번째 펄스 이후, 8번째 펄스이후, 12번째, 16번째 등에서 즉, 4의배수번째 펄스신호에서 Read신호를 0으로하여 출력신호를 한꺼번에 읽어오면 됩니다.

4번째 펄스 이후 출력은 QdQcQbQa 1011 이라는 신호가 나옵니다.

 

 

3. 병렬입력 - 직렬출력 레지스터

이 레지스터의 구조에서는 MUX를 이용해서 동작을 결정합니다.

SH/LD' = 0 입력이 주어졌을때, 입력 데이터(Id,Ic,Ib,Ia)가 각 플립플롭의 입력에 연결되기 때문에 해당 입력들이 출력으로 나오게 됩니다.

 

반면 SH/LD'=1인 경우에는 레지스터의 내용이 오른쪽으로 쉬프트 (이동)하게 됩니다.

이경우에도 출력은 가장 오른쪽 플립플롭만 출력으로 1bit가 출력임을 알 수 있습니다.

 

만약에 어느 순간 입력으로 IaIbIcId가 0101로 주어졌다고 가정해보고 타이밍도를 살펴보겠습니다.

입력이 병렬로 주어지기때문에 SH/LD'=0일때, 출력 Q로 Id의 값이 나오게됩니다.

이후 SH/LD' = 1인 시점부터는 Ic Ib Ia 값이 차례때로 쉬프트되어 출력됩니다.

그 이후는 추가 입력이 없기때문에 고려하지않았습니다.

 

 

 

 

 

4. 병렬입력 - 병렬출력 레지스터

 

위 회로의 구조에서보면 Write=1이면, 입력신호가 AND게이트를 통하여 동시에 플립플롭의 입력으로 전송됩니다.

그리고 읽을때는 Read=0 일때, 각 플립플롭의 출력 데이터가 버퍼를 통하여 출력됩니다.

 

 

 

이상으로 레지스터를 입출력특성에 따라 4가지로 분류해보았습니다.

지금까지 배웠던 조합논리회로, 순서논리회로들을 응용해서 다양한 레지스터를 만들어봤는데요

도움이 되는 포스팅이었길 바랍니다.

오늘도 감사합니다 :)

댓글
공지사항