FPGA/Xilinx Vivado

Block Memory Generator 만들기(1)

새싹군 2020. 6. 8. 10:42

내용을 쓰기에 앞서 이 내용은 지극히 개인적으로 사용하는 내용에 대한 것을 서술한 것으로 틀린 내용이나 설명이 추가되어야 할 내용이 있으면 댓글 부탁드리겠습니다.

 

저는 1,280byte의 블럭 메모리를 만들예정입니다.

만들고 싶은 사이즈는 정해서 data x addr하면되니 참고하시고 진행하세요~

참고로 FPGA IC마다 내부 Block Memory할당량이 정해있으니 카탈로그를 보시고 무리하게 만들지는 마시길..

 

이제 Block Memory를 만들어봅시다 ㅎㅎ 

 

1. vivado 실행

- Project 생성(생략)

 

2. IP Catalog 클릭

 

3. IP Catalog -> Memories & Stora~ -> RAMs & ROMs &~ -> Block Memory Generator 더블클릭~!

 

4. in/out으로 Dual Port RAM으로 만들예정이므로 다음과 같이 세팅한다.

- 생성할 사이즈는 16bit640=1280byte

 

5. Port A Options 설정

- Port A는 Write로 사용할 것

- 16bit 640개의 데이터를 저장

- 동작 모드는 Write First

- Enable는 사용할 것

(Always~로 선택해도 무관... 아래 처럼 해도 어차피 wea로 제어하면 문제 없음... 경험상 다만 포트A를 항상 살려놓을거냐? 아무래도 전류에는 차이가 있을듯하지만 크게 차이안날것으로 보고 내맘대로 하기로 결정)

* 다음 캡쳐와 같이 세팅하고 사용한다.

6. Port B Options 설정

- Port B는 Read로 사용할 것

- 128bit 80개의 데이터를 읽기 위한 설정

- Enable 사용할 것(write와 겹치지 않게 사용하자.. 아무래도 겹치면 write부터니까 데이터가 이상할듯 ㅋ)

* 다음 캡쳐와 같이 세팅하고 사용한다.

7. Other Options

- 그냥 넘어가도 문제 없지만 Initialization에 파일을 넣으면 아무래도 초기화에 쓰레기 데이터가 아닌 설정해놓은 데이터를 넣어둔다.

- 파일 생성하여 넣어보자.(캡쳐 참고하여 세팅)

< 파일 생성 >
< 파일 내부 hex값 "0000"으로 넣음 >
< 메모리 초기화 사용 예시 >

 

8. Summary

- 설정된 정보를 확인한다.

 

이렇게 하여 OK를 누르면?

Generate를 누르면?

이렇게 IP가 생성된 것을 확인할 수 있다!!

 

다음에는 동작하는 것을 끄적여 봐야겠다 ㅎㅎ 

to be continued...