쉬프트 레지스터 용어
DESCRIPTION
쉬프트 레지스터 용어. Shift Register: N-bit 데이터를 직렬 혹은 병렬로 N-bit 레지스터에 이동 저장하는 동기식 순차회로 . Left Shift: 쉬프트 레지스터에서의 데이터의 이동이 오른쪽에서 왼쪽으로 (MSB 방향으로 ) 이동하는 동작으로 한 클록 펄스마다 한 비트씩 이동한다 . Right Shift: 쉬프트 레지스터에서의 데이터의 이동이 왼쪽에서 오른쪽으로 (LSB 방향으로 ) 이동하는 동작으로 한 클록 펄스마다 한 비트씩 이동한다 . - PowerPoint PPT PresentationTRANSCRIPT
1
쉬프트 레지스터 용어 • Shift Register: N-bit 데이터를 직렬 혹은 병렬로 N-bit 레지스터에 이동 저장하는 동기식 순차회로 .• Left Shift: 쉬프트 레지스터에서의 데이터의 이동이 오른쪽에서 왼쪽으로 (MSB 방향으로 ) 이동하는 동작으로 한 클록 펄스마다 한 비트씩 이동한다 . • Right Shift: 쉬프트 레지스터에서의 데이터의 이동이 왼쪽에서 오른쪽으로 (LSB 방향으로 ) 이동하는 동작으로 한 클록 펄스마다 한 비트씩 이동한다 . • Rotation: 마지막 플립플립의 출력이 처음 플립플롭의 입력과 연결되어 직렬 쉬프트 ( 오른쪽 또는 왼쪽 ) 하는 동작으로 , 데이터가 계속적으로 순환한다 .
Fig. 9.57
2
양방향 쉬프트 레지스터
3
병렬 로드를 가진 쉬프트 레지스터
4
Bi-SR
PL-SR
shift_left shift_right
5
유니버셜 쉬프트 레지스터
0001 1011
6
유니버셜 쉬프트 레지스터의 시뮬레이션
sht_right sht_leftpar_load
7
쉬프트 레지스터 VHDL Structured VHDL Design• 내부 신호들을 이용하여 미리 설계된 컴포넌트들을 연결시키는 VHDL 설계기법 .• LSR, RSR 과 같은 상이한 형태를 구성하기 위해 DFF primitive들을 사용한다 .• DFF Primitive Port Map 은 D, CLK, Q 이다 . DataFlow Design• 입력과 출력사이의 관계를 정의하기 위해 부울식을 사용하는 VHDL 설계 접근방법 .• Entity 는 알테라 라이브러리가 필요 없는 것을 제외하고는 구조적 접근방법과 동일하다 . • 레지스터 Qi 는 여전히 ‘ Buffer’ 로 선언된다 . Behavioral design• 설계를 행위적으로 기술하는 VHDL 설계 기법 .
8
Structured VHDL I(BUFFER 사용 )
9
Structured VHDL II(signal 사용 )
10
Dataflow VHDL
concurrent
11
Behavioral VHDL
12
Ex. 9.15 Bidir. SRG VHDL
13
Ex. 9.15 Bidir. SRG Simulation
14
Generic Width Shift Register
• VHDL 컴포넌트의 엔티티 선언에서의 Generic 절 (clause) 은 컴포넌트가 사례화될 때 규정될 수 있는 파라미터들을 열거한다 .• 변수 ‘ Width’ 를 규정하기 위해 , 엔티티내의 Generic 절을 사용하라 . 일반적인 형식은 GENERIC(Clause := Value).• 4-Bit 쉬프트 레지스터에 대해서는 , GENERIC(Width: Positive := 4).
15
GENERIC 절을 사용한 4-bit Shit Right 레지스터
16
GENERIC 절을 사용한 8-bit Shit Right 레지스터(4-bit SRG 를 사례화 )
17
8-bit Universal SRG
CONV_STD_LOGIC_VECTOR(value, number_of_bits)다른 표현으로는q <= (others => ‘0’); -- q = 00000000; -- aggregateq <= (‘0’, ‘1’ others => ‘0’); -- q = 01000000
18
16-bit Universal SRG(8-bit universal SRG 를 사례화 )
19
LPM 쉬프트 레지스터
• lpm_shiftreg 라고 불리는 프로그램이 가능한 LPM 쉬프트 레지스터의 사용을 허용한다 .• LPM_WIDTH, LPM_DIRECTION 과 같은 여러 가지 옵션 파라미터들을 가지고 있다 . ( 표 9.16 참조 )• 설계 접근방법은 구조적 VHDL 방법으로 설계한 카운터와 유사하다 .
20
8-bit LPM SRG(Shift left)
21
8-bit LPM 쉬프트 레지스터의 시뮬레이션 (Shift left)
Buried nodes
22
8-bit LPM SRG(Shift right)
23
8-bit LPM 쉬프트 레지스터의 시뮬레이션 (Shift Right)
24
8-bit LPM SRG(shift left, pl, aclr)
s
q_out(7) 과 serial_out 은 동일
25
8-bit LPM SRG Simulation(shift left, pl, aclr)
AA
26
쉬프트 레지스터 카운터 (Ring Counters)• 기본적인 링 카운터는 피드백 루프를 가진 D-FF 으로 구성된다 .• 리셋이나 프리셋을 사용하여 초기 데이터가 쉬프트 레지스터로 로드된다.• 카운터는 “ 1000” 또는 “ 0111” 의 로딩 값에 따라서 1 또는 0 이 순환한다 .• 링 카운터의 모듈러스는 고유상태의 최대 값으로 정의된다 .• 모듈러스는 초기 로드 값에 의존한다 : {1000, 0100, 0010, 0001} = Mod4, {1010, 0101} = Mod2.• 일반적으로 N 개 플립플롭으로 구성되는 링 카운터는 N- 상태를 가진다 .( 이진 카운터의 2N 과는 다르다 .)• 디코딩 회로가 필요 없다 ( 장점 ).
27
• Q0 가 아닌 !Q0(Complement) 가 D3 에 피드백 되는 점을 제외하고는 링 카운터와 동일하다 .• 데이터가 보수 혹은 “ twist” 되므로 “ Twisted Ring Counter” 라 불린다 .• 일반적으로 카운터는 클리어 동작에 의해 “ 0000” 으로 초기 화 된다 .• 일반적으로 링 카운터보다 더 많은 상태를 가진다 .• 카운터의 진행순서 = {0000, 1000, 1100, 1110, 1111, 0111, 0011, 0001}.• N- 비트 존슨 카운터의 최대 모듈러스는 2N 이다 .• 카운터 디코딩을 위해 단지 2-input AND(or NAND) 게이트가 요구된다 .( 표 9.18 & 9.19).
쉬프트 레지스터 카운터 (Johnson Counters)
28
4-bit Johnson counter with a synchronous clear
29
8-bit Johnson counter with a synchronous clear
30
8-bit 존슨 카운터의 시뮬레이션
31
Summary Counter 는 behavioral description 이나 LPM 에서 컴포넌트를 사용하는 Structural description 으로 설계될 수 있다 .
Behavioral counter design 은 process 문을 사용한다 . 프로세서 문 내에 if 문은 클럭 이벤트나 동기 / 비동기 입력들을 감지한다 . (clk’EVENT and clk =‘1’)
Variable 는 := 연산자로 할당한다 .
비동기 입력은 process 의 sensitivity list 내에 포함되고 클럭보다 먼저평가된다 .
동기입력은 process 의 sensitivity list 내에 포함되지 않고 클럭보다 나중에 평가된다 .
VHDL component 는 컴포넌트가 사례화 될 때 규정되는 parameter 를 가지고 생성될 수 있다 . 이들 parameter 들은 component entity 선언에서의GENERIC 절에서 열거된다 .