VHDL

Shift Register(쉬프트 레지스터) VHDL

전자자연인 2021. 6. 8. 22:18
반응형

1. Shift Register

2진 정보를 왼쪽 혹은 오른쪽으로 이동시키는 레지스터

시프트 레지스터는 각 FF의 출력일 다음 FF의 입력이 되도록 종속적으로 연결된 일련의 FF들로 구성됨.

FF에 공통의 CLock을 입력시키면 1비트씩 자리 이동

CLK에 연결된 FF의 수 = 시프트 레지스터 길이

 

8 Shift Register : 8개의 D FF으로 이루어진 8비트 (왼쪽 이동)

D FF의 출력값이 7비트부터 0비트까지 값이 전달됨

Ex> 00000000 일 경우 다음D값이 1이면 00000001 으로 가고

다음D값이 1이면 00000011 이되고 다음D값이 0일시 00000110이 됨. 

 

 

< 구조적 모델링을 위하여 설계 및 사용할 D-FF>

 

 

 

 

4~9 : entity shift8 의 포트 설정

D,RST,CLK는 입력로직 선언

Q (7부터0까지 8비트 내림차순의) 출력로직 선언

 

13 : signal형의 tmp 선언 ( 7부터 0까지 내림차순의 8비트)

15 : component D_FF : 설계된 D_FF을 사용한다는 처리문 포트설정(포트맵사용시 선언된 순서대로 넣어줘야함)

 

23~30 : 각 단계 DFF(1,2,3,4,5,6,7,8)을 표기하기 위함

D_FF port map(입력,리셋,클락,tmp(0비트~7비트)를 포트맵에 넣어주어서

23 : D,Rst,CLK을 설계된 D_FF의 입력신호로 전달하여 tmp에 설계된 D_FF의 출력 Q의 값을 entity shfit8 tmp(0비트)로 전달해줌

24 : tmp(0비트),Rst,CLK을 설계된 D_FF의 입력값으로 전달하여 tmp에 설계된 D_FF의 출력Q의 값을 tmp(1비트)로 전달해줌

30 : 이와같은 과정을 반복하여 최종적으로 D_FF tmp(6비트),Rst,CLK의 신호를 전달해주고 나온 Q값을 tmp(7비트)로 전달해줌

32 : 최종 적인 출력 Q값은 tmp(7비트부터 0비트 내림차순)의 값을 전달받음

 

 

 

 

반응형