전공지식정리/논리회로

레지스터

TimeSave 2020. 12. 7. 00:05

1. 레지스터 : F/F 여러개를 배열, 연결하여 nbit 2진수를 저장하게 만든 것.
- 카운터는 레지스터의 특수형태이다.
- 용도 : 카운터, shift, 임시저장, 2's complement, 곱셈,나눗셈 등

2. 구분 : 구조에 따라
- 입력(직렬,병렬), 출력(직렬,병렬) 에 따라 2X2 = 4가지의 레지스터가 존재한다. 보통 D F/F를 사용하는 것 같다.

2.1
직in - 직out : 링카운터 같은 형태이다. 마지막에 돌아오는 게 없어서, 한개씩 shift하는 기능만 있다.
즉, MSB F/F의 출력을 LSB의 F/F로 연결하지 않아서 shift되고 끝난다.

2.2
직in - 병out : (직,직 +  3-상태 버퍼)
3-state를 출력단에 배치하여, 값을 뽑던지, high-Z(open된것이랑 동일)
로 동작을 안하게 만들 수 있다. 
또한, HIGH-Z 단자를 공통으로 만들고, RD라고 명명하였다(이름을 지어줬다)

어쨌든, 동작은 직,직과 동일한데, 모든 F/F의 출력값을 확인할 수 있다.

2.3
병in - 직out: (직,직 + 2x1 MUX)
F/F 사이에 MUX를 넣어줘서 하나(A단자)는 외부 입력, 
                                            하나(B단자)는 앞단 출력을 받게 만든다.
외부 입력을 받게되면, 병렬입력기능이고, 
앞단 출력을 받게되면, 직,직 구조와 차이가 없어서 shift를 수행한다.

- Select 버튼
병렬입력 : 보통 low active

shift : 보통 high active


2.4 병in - 병out : (직,직 + 3상태 버퍼 + AND게이트)
 앞의 병in에서는 mux를 이용해 입력을 선택했는데,  
여기서는 AND를 거쳐서 받거나 안받거나를 선택한다(1:받기 0: clear)
[어차피 mux도 and와 or를 이용한 것이라, 차이는 없을 듯.)

AND의 공통입력으로 WR을 사용하여 1일때 입력이 들어가는 구조를 만들었다.

병out은 똑같이 3-상태 버퍼를 이용한다.

2.5
위의 구조에서 중요한 insight
병렬 입력등장과 함께, select or write 단자를 만들었고
병렬 출력등장 함께, high Z or read 단자를 만들었다.
=> 메모리 이해의 도입부이다.

3.양방향 shift - register
 R/L' 신호에 따라 왼쪽, 오른쪽을 선택하여 shift 하게 만든 register
 원리는 up/down 카운터와 비슷하다.
MUX를 이용, right shift는 기존과 동일하고,
left shift는 Dd(MSB)에 입력하고 Qd를 Dc에 넣는다.
이런식으로 출력을 앞의 F/F에 넣어서 left shift를 완성한다.
[당연히 출력은 MUX를 거쳐서 앞단 F/F에 연결한다]
 즉, MUX를 거쳐서 입력순서를 뒤바뀌게 연결한다.
(선 연결로써 해결해 주는 것이다)