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 은
-> A3 가 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 출판)
'CS > 디지털논리회로' 카테고리의 다른 글
기억장치와 PLD, RAM의 구성, RAM의 확장 방법, ROM의 구성, ROM을 이용한 조합논리회로 구현 (0) | 2023.06.15 |
---|---|
레지스터와 카운터, 동기식 2진 카운터, 모듈로-N 카운터, 링 카운터, 존슨 카운터, 카운터의 설계 (0) | 2023.06.15 |
순서논리회로의 설계 과정 및 예시, D 플립플롭, JK 플립플롭 입출력 방정식 및 상태표 작성 (0) | 2023.06.15 |
순서논리회로의 분석, 상태표, 상태도 (0) | 2023.06.15 |
순서논리회로, 플립플롭, SR래치, D 플립플롭, JK 플립플롭, T 플립플롭, 플립플롭의 트리거링 (0) | 2023.06.15 |