전자일기

시프트 레지스터

전자김치 2024. 3. 6. 16:30
320x100
 

 

시프트 레지스터

시프트 레지스터는 이진 데이터의 저장 또는 전송에 사용할 수 있는 또 다른 유형의 순차 논리 회로입니다.

이 순차 장치는 입력에 있는 데이터를 로드한 다음 매 클록 사이클마다 한 번씩 출력으로 이동하거나 "시프트"하므로 이름이 Shift Register 입니다 .

시프트 레지스터는 기본적으로 여러 개의 단일 비트 "D형 데이터 래치"로 구성됩니다. 각 데이터 비트당 하나씩 논리 "0" 또는 "1"이 직렬 유형 데이지 체인 배열로 함께 연결되어 출력이 하나의 데이터 래치가 다음 래치의 입력이 되는 방식입니다.

데이터 비트는 시프트 레지스터에 직렬로 입력 또는 출력될 수 있습니다. 즉, 왼쪽이나 오른쪽 방향에서 하나씩 차례로 입력되거나 병렬 구성에서 동시에 모두 함께 입력될 수 있습니다.

단일 시프트 레지스터 장치 를 구성하는 데 필요한 개별 데이터 래치의 수는 일반적으로 저장될 비트 수에 따라 결정되며, 가장 일반적인 것은 8개의 개별 데이터 래치로 구성된 8비트(1바이트) 폭입니다.

 

시프트 레지스터는 데이터 저장 또는 데이터 이동에 사용되므로 일반적으로 계산기나 컴퓨터 내부에서 두 개의 이진수와 같은 데이터를 더하기 전에 저장하거나 데이터를 직렬에서 병렬로 또는 병렬에서 직렬로 변환하는 데 사용됩니다. 직렬 형식. 단일 시프트 레지스터를 구성하는 개별 데이터 래치는 모두 공통 클록( Clk ) 신호에 의해 구동되어 동기 장치를 만듭니다.

시프트 레지스터 IC는 일반적 으로 필요에 따라 "SET" 또는 "RESET"이 될 수 있도록 클리어 또는 리셋 연결과 함께 제공됩니다. 일반적으로 시프트 레지스터는 다음과 같은 시프트 레지스터를 통한 데이터의 기본 이동을 통해 네 가지 모드 중 하나로 작동합니다.

  • SIPO(직렬 입력에서 병렬 출력)   – 레지스터에는 한 번에 한 비트씩 직렬 데이터가 로드되며, 저장된 데이터는 출력에서 ​​병렬 형식으로 사용할 수 있습니다.
  • 직렬 입력에서 직렬 출력(SISO)   – 데이터는 클럭 제어에 따라 왼쪽 또는 오른쪽 방향으로 한 번에 한 비트씩 레지스터의 "IN" 및 "OUT"으로 직렬로 이동됩니다.
  • PISO(병렬 입력-직렬 출력)   – 병렬 데이터는 레지스터에 동시에 로드되고 클록 제어에 따라 한 번에 한 비트씩 직렬로 레지스터 밖으로 이동됩니다.
  • 병렬 입력에서 병렬 출력(PIPO)   – 병렬 데이터가 레지스터에 동시에 로드되고 동일한 클록 펄스에 의해 해당 출력으로 함께 전송됩니다.

시프트 레지스터를 통해 왼쪽에서 오른쪽으로 데이터가 이동하는 효과는 다음과 같이 그래픽으로 표시될 수 있습니다.

 

또한 시프트 레지스터를 통한 데이터의 방향 이동은 왼쪽,(왼쪽 이동) 오른쪽,(오른쪽 이동) 왼쪽에서 오른쪽으로 이동,(회전) 또는 왼쪽 및 오른쪽 모두 내에서 이동할 수 있습니다. 동일한 레지스터를 사용하여 양방향으로 만듭니다 . 이 튜토리얼에서는 모든 데이터가 오른쪽으로 이동한다고 가정합니다(오른쪽 이동).

직렬 입력에서 병렬 출력으로(SIPO) 시프트 레지스터

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

 

작업은 다음과 같습니다. 모든 플립플롭(  FFA ~ FFD  )이 방금 RESET(CLEAR 입력)되었고 모든 출력 QA ~ QD  논리 레벨 "0"에 있다고 가정합니다. 즉, 병렬 데이터 출력이 없습니다 .

로직 "1"이 FFA 의 DATA 입력 핀 에 연결된 경우 첫 번째 클록 펄스에서 FFA 의 출력 과 그에 따른 QA  로직 "1"로 HIGH로 설정되고 다른 모든 출력은 여전히 ​​로직에서 LOW로 유지됩니다. “0”. 이제 FFA 의 DATA 입력 핀이 로직 "0"으로 다시 LOW를 반환하여 하나의 데이터 펄스 또는 0-1-0을 제공한다고 가정합니다.

두 번째 클록 펄스는 FFA 의 출력을 논리 "0"으로 변경 하고 FFB  Q B HIGH 의 출력을 논리 "1"로 변경합니다. 입력 D 가 Q A 의 논리 "1" 레벨을 갖기 때문입니다 . 이제 로직 "1"이 Q A 에 있는 것처럼 레지스터를 따라 오른쪽으로 한 위치 이동되거나 "이동"되었습니다 .

세 번째 클록 펄스가 도착하면 이 논리 "1" 값은 FFC  Q C ) 의 출력으로 이동하는  식으로 모든 출력 Q A ~ Q D 를 다시 논리 레벨 "0으로 설정하는 다섯 번째 클록 펄스가 도착할 때까지 계속됩니다. ” FFA 에 대한 입력이 논리 레벨 "0"에서 일정하게 유지되었기 때문입니다.

각 클럭 펄스의 효과는 각 단계의 데이터 내용을 한 자리 오른쪽으로 이동시키는 것이며, 이는   0-0-0-1 의 완전한 데이터 값이 레지스터에 저장될 때까지 다음 표에 나와 있습니다. 이제 이 데이터 값을 Q A 에서 Q D 까지 의 출력에서 ​​직접 읽을 수 있습니다 .

그런 다음 데이터가 직렬 데이터 입력 신호에서 병렬 데이터 출력으로 변환되었습니다. 진리표와 다음 파형은 다음과 같이 레지스터를 통해 왼쪽에서 오른쪽으로 논리 "1"이 전파되는 것을 보여줍니다.

 

시프트 레지스터를 통한 기본 데이터 이동

클록 펄스 번호 품질보증 QB 품질관리 QD
0 0 0 0 0
1 1 0 0 0
2 0 1 0 0
0 0 1 0
4 0 0 0 1
5 0 0 0 0
 
 

네 번째 클록 펄스가 종료된 후 4비트 데이터(  0-0-0-1  )가 레지스터에 저장되고 레지스터의 클록킹이 중지된 경우에도 그대로 유지됩니다. 실제로 레지스터에 대한 입력 데이터는 논리 "1"과 "0"의 다양한 조합으로 구성될 수 있습니다. 일반적으로 사용 가능한 SIPO IC에는 표준 8비트 74LS164 또는 74LS594가 포함됩니다.

직렬 입력에서 직렬 출력으로(SISO) 시프트 레지스터

 시프트 레지스터는 위의 SIPO와 매우 유사합니다. 단, 데이터가 출력 Q A 에서 Q D 까지 병렬 형식으로 직접 읽혀지기 전의 경우 , 이번에는 데이터가 레지스터를 통해 다른 쪽 끝으로 곧바로 흐를 수 있습니다. . 출력이 하나만 있기 때문에 DATA는 직렬 패턴으로 한 번에 한 비트씩 시프트 레지스터를 떠나므로 직렬 입력에서 직렬 출력 시프트 레지스터 또는 SISO 라는 이름이 붙습니다 .

SISO 시프트 레지스터는 왼쪽 플립플롭에 들어가는 것을 결정하는 직렬 입력(SI), 출력에서 ​​가져오는 직렬 출력(SO)의 세 가지 연결만 갖고 있으므로 네 가지 구성 중 가장 간단한 구성 중 하나입니다. 오른쪽 플립플롭과 시퀀싱 클록 신호(Clk). 아래 논리 회로 다이어그램은 일반화된 직렬 입력 직렬 출력 시프트 레지스터를 보여줍니다.

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

 

출력 데이터가 입력 데이터와 정확히 동일하다면 SISO 시프트 레지스터의 요점이 무엇인지 생각할 수 있습니다. 이 유형의 시프트 레지스터는 임시 저장 장치 역할을 하거나 데이터에 대한 시간 지연 장치 역할을 할 수도 있습니다. 시간 지연 양은 레지스터의 단계 수(4, 8, 16 등)에 따라 제어됩니다. 클록 펄스의 적용을 변경함으로써. 일반적으로 사용 가능한 IC에는 모두 3상태 출력을 갖춘 74HC595 8비트 직렬 입력-직렬 출력 시프트 레지스터가 포함됩니다.

병렬 입력-직렬 출력(PISO)

병렬 입력에서 직렬 출력으로의 시프트 레지스터는 위의 직렬 입력에서 병렬 출력으로의 시프트 레지스터와 반대 방식으로 작동합니다. 데이터는 모든 데이터 비트가 레지스터의 병렬 입력 핀 P A ~ P D 에 동시에 입력되는 병렬 형식으로 레지스터에 로드됩니다. 그런 다음 데이터는 P A 에서 P D 까지 의 데이터를 나타내는 Q 의 레지스터에서 일반 오른쪽 시프트 모드로 순차적으로 읽혀집니다 .

이 데이터는 직렬 형식으로 각 클록 사이클마다 한 번에 1비트씩 출력됩니다. 이러한 유형의 데이터 레지스터에서는 이미 존재하므로 레지스터를 병렬 로드하는 데 클록 펄스가 필요하지 않지만 데이터를 언로드하려면 4개의 클록 펄스가 필요하다는 점에 유의하는 것이 중요합니다.

4비트 병렬 입력 - 직렬 출력

 

이러한 유형의 시프트 레지스터는 8비트 데이터 워드와 같은 병렬 데이터를 직렬 형식으로 변환하므로 다양한 입력 라인을 단일 직렬 데이터 스트림으로 다중화하는 데 사용할 수 있습니다. 이 스트림은 컴퓨터로 직접 전송되거나 컴퓨터를 통해 전송될 수 있습니다. 통신선. 일반적으로 사용 가능한 IC에는 74HC166 8비트 병렬 입력/직렬 출력 시프트 레지스터가 포함됩니다.

병렬 입력-병렬 출력(PIPO)

마지막 작동 모드는 병렬 입력-병렬 출력 시프트 레지스터입니다. 이 유형의 시프트 레지스터는 위의 SISO 구성과 유사한 임시 저장 장치 또는 시간 지연 장치 역할도 합니다. 데이터는 병렬 입력 핀 P A ~ P D 에 병렬 형식으로 제공되고 동일한 클록 펄스에 의해 해당 출력 핀 Q A ~ Q D 로 직접 함께 전송됩니다. 그런 다음 하나의 클럭 펄스가 레지스터를 로드 및 언로드합니다. 병렬 로딩 및 언로딩에 대한 배열은 아래와 같습니다.

4비트 병렬 입력 - 병렬 출력

 

PIPO 시프트 레지스터는 플립플롭에 입력되는 항목을 결정하는 병렬 입력(PI), 병렬 출력(PO) 및 시퀀싱 클록 신호(Clk)의 세 가지 연결만 갖고 있으므로 네 가지 구성 중 가장 간단합니다.

직렬 입력에서 직렬 출력으로의 시프트 레지스터와 유사하게 이 유형의 레지스터는 임시 저장 장치 또는 시간 지연 장치 역할도 하며 시간 지연 양은 클록 펄스의 주파수에 따라 달라집니다. 또한 이러한 유형의 레지스터에서는 데이터의 직렬 이동이 필요하지 않기 때문에 개별 플립플롭 사이에 상호 연결이 없습니다.

범용 시프트 레지스터

오늘날 TTL 74LS194, 74LS195 또는 CMOS 4035 와 같이 직렬 -직렬 간에서 사용할 수 있는 4비트 다기능 장치로 사용할 수 있는 고속 양방향 "범용" 유형 시프트 레지스터 가 많이 있습니다. , 왼쪽 이동, 오른쪽 이동, 직렬-병렬, 병렬-직렬 또는 병렬-병렬 다기능 데이터 레지스터이므로 이름이 "Universal"입니다.

이러한 범용 시프트 레지스터는 출력 작업에 대한 병렬 및 직렬 입력의 모든 조합을 수행할 수 있지만 원하는 기능을 지정하고 장치를 사전 로드 및 재설정하려면 추가 입력이 필요합니다. 일반적으로 사용되는 범용 시프트 레지스터는 아래와 같이 TTL 74LS194입니다.

4비트 범용 시프트 레지스터 74LS194

 

범용 시프트 레지스터는 매우 유용한 디지털 장치입니다. 특정 형태의 임시 메모리 저장이 필요한 작업이나 SISO 또는 PIPO 구성 모드와 같은 정보 지연에 응답하거나 직렬 또는 병렬 형식으로 한 지점에서 다른 지점으로 데이터를 전송하도록 구성할 수 있습니다. 범용 시프트 레지스터는 곱셈이나 나눗셈을 위해 데이터를 왼쪽이나 오른쪽으로 이동하기 위해 산술 연산에 자주 사용됩니다.

튜토리얼 요약

그런 다음 시프트 레지스터 에 대해 조금 요약하자면

  • 간단한 시프트 레지스터는 각 데이터 비트에 대해 하나의 플립플롭인 D형 플립플롭만 사용하여 만들 수 있습니다.
  • 각 플립플롭의 출력은 오른쪽 플립플롭의 D 입력에 연결됩니다.
  • 시프트 레지스터는 각 클럭 펄스에서 필요한 위치로 이동되거나 "시프트"되는 데이터를 메모리에 보유합니다.
  • 각 클럭 펄스는 레지스터의 내용을 한 비트 위치에서 왼쪽이나 오른쪽으로 이동합니다.
  • 데이터 비트는 직렬 입력(SI) 구성에서 한 번에 한 비트씩 로드되거나 병렬 구성(PI)에서 동시에 로드될 수 있습니다.
  • 데이터는 직렬 출력(SO)의 경우 한 번에 한 비트씩 레지스터에서 제거되거나 병렬 출력(PO)에서 동시에 모두 제거될 수 있습니다.
  • 시프트 레지스터의 한 가지 응용 분야는 직렬과 병렬 또는 병렬과 직렬 간의 데이터 변환입니다.
  • 시프트 레지스터는 SIPO, SISO, PISO, PIPO로 개별적으로 식별되거나 모든 기능이 단일 장치 내에 결합된 범용 시프트 레지스터로 식별됩니다.

순차 논리 회로 에 대한 다음 튜토리얼에서는 시프트 레지스터의 마지막 플립플롭의 출력이 첫 번째 플립플롭의 입력에 직접 연결되어 지속적으로 재순환하는 폐쇄 루프 회로를 생성할 때 어떤 일이 발생하는지 살펴보겠습니다. 루프 주위의 데이터. 그런 다음 10진 카운터 및 분배기로 사용되는 링 카운터 라는 또 다른 유형의 순차 논리 회로가 생성됩니다.

320x100

'전자일기' 카테고리의 다른 글

플립플롭의 변환  (0) 2024.03.25
존슨 링 카운터  (0) 2024.03.06
D형 플립플롭  (0) 2024.03.06
멀티바이브레이터  (0) 2024.03.06
JK 플립플롭  (0) 2024.03.06