본문 바로가기

논리 회로/디지털 논리 회로

Shift Register

1. Shift Register

  • 데이터를 연산하거나 전송, 변환하려면 데이터를 왼쪽 혹은 오른쪽으로 Shfit해야 한다.
  • 데이터를 Shift할 수 있도록 레지스터를 이용하여 만든 디지털 회로를 "Shift Register"이다.

 

2. Shift Register의 종류

  • Shift Register는 데이터의 입력과 출력 방법에 따라 종류를 나눌 수 있다.
  • SISO (Serial In Serial Out)
  • PISO (Parallel In Serial Out)
  • SIPO (Serial In Parallel Out)
  • PIPO (Parallel In Parallel Out)

Shift Register의 종류

 

  • 그림 13-1 (a), SISO Shift Register는 데이터가 직력로 입력되어 직렬로 출력된다.
  • 그림 13-1 (b), PISO Shift Register는 병렬로 입력되어 직렬로 출력된다.
                           병렬의 데이터를 입력받은 다음 직렬로 전환하여 1비트씩 출력하는 것이다.
                           즉, 병렬의 데이터를 입력받은 뒤, 1비트씩 Shift한 뒤, 결과 값을 1비트씩 출력한다.
  • 그림 13-1 (c), 직렬 데이터를 입력 받은 뒤, Shift한 결과값을 병렬로 전환하여 출력한다.
  • 그림 13-1 (d), 병렬로 입력된 데이터를 Shift한 뒤, 결과값을 다시 병렬로 출력한다.

 

 

 

 

3. SISO Shift Register

  • 아래 그림은 D Flip-Flop으로 구현한 SISO Shift Register이다.
  • 모든 D Flip-Flop에 CLK 신호가 동기화되어 있기 때문에 동기화된 Shift Register이다.
    즉, CLK 신호의 변화에 대해서 첫 번째 D Flip-Flop부터 순차적으로 변화하는 것이 아니라
    한 번에 동시에 모든 D Flip-Flop이 CLK 신호의 변화에 대해서 반응하여 결과값을 출력한다.

4bit SISO Shift Register

 

 

      • SISO Shift Register를 구성하는 D Flip-Flop은 Rising-edge sensitive에서 동작한다는 점을 유념하자.
      • 아래 표는 Shift Register에 공급되는 CLK 신호와 Data 값에 따라 각 Flip-Flop의 출력 값, Q값들의 변화를 표로 정리한 것이다.

(왼) Truth table of SISO Shfit register, (오른) Timing Diagram of SISO Shift register

 

  • 첫 번째 Positive edge 일 경우
    - QA 단자는 input data을 읽어서 1 값을 갖는다.
    - QB 단자는 QA 단자를 읽어서 0 값을 갖는다.
    - QC 단자는 QB 단자를 읽어서 0 값을 갖는다.
    - QD 단자는 QC 단자를 읽어서 0 값을 갖는다.
    - 따라서 QA, QB, QC, QD 값은 각각 1, 0, 0, 0이 출력된다.

  • 두 번째 Positive edge 일 경우
    - QA 단자는 input data을 읽어서 0 값을 갖는다.
    - QB 단자는 QA 단자를 읽어서 1 값을 갖는다.
    - QC 단자는 QB 단자를 읽어서 0 값을 갖는다.
    - QD 단자는 QC 단자를 읽어서 0 값을 갖는다.
    - 따라서 QA, QB, QC, QD 값은 각각 0, 1, 0, 0이 출력된다.

  • 세 번째 Positive edge 일 경우
    - QA 단자는 input data을 읽어서 0 값을 갖는다.
    - QB 단자는 QA 단자를 읽어서 0 값을 갖는다.
    - QC 단자는 QB 단자를 읽어서 1 값을 갖는다.
    - QD 단자는 QC 단자를 읽어서 0 값을 갖는다.
    - 따라서 QA, QB, QC, QD 값은 각각 0, 0, 1, 0이 출력된다.

  • 네 번째 Positive edge 일 경우
    - QA 단자는 input data을 읽어서 0 값을 갖는다.
    - QB 단자는 QA 단자를 읽어서 0 값을 갖는다.
    - QC 단자는 QB 단자를 읽어서 0 값을 갖는다.
    - QD 단자는 QC 단자를 읽어서 1 값을 갖는다.
    - 따라서 QA, QB, QC, QD 값은 각각 0, 0, 0, 1이 출력된다.

'논리 회로 > 디지털 논리 회로' 카테고리의 다른 글

SR Flip-Flop / D Flip-Flop  (0) 2024.07.06
Ring Counter  (0) 2024.07.04
SR Latch / D Latch  (0) 2024.07.04
PSpice를 통한 Grey 코드 구현  (0) 2024.07.03
그레이 코드 (Grey code)  (0) 2024.07.03