Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- ring counter
- prescaling
- vivado
- FND
- gpio
- atmega 128a
- verilog
- i2c 통신
- Edge Detector
- java
- D Flip Flop
- hc-sr04
- Algorithm
- soc 설계
- pwm
- Linked List
- ATMEGA128A
- dataflow modeling
- uart 통신
- Pspice
- test bench
- KEYPAD
- structural modeling
- half adder
- behavioral modeling
- BASYS3
- DHT11
- Recursion
- LED
- stop watch
Archives
- Today
- Total
거북이처럼 천천히
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)
- 그림 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 신호의 변화에 대해서 반응하여 결과값을 출력한다.
- SISO Shift Register를 구성하는 D Flip-Flop은 Rising-edge sensitive에서 동작한다는 점을 유념하자.
- 아래 표는 Shift Register에 공급되는 CLK 신호와 Data 값에 따라 각 Flip-Flop의 출력 값, Q값들의 변화를 표로 정리한 것이다.
- 첫 번째 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 |