Skip to content
DevBJ
Go back

Vivado Block Memory를 COE 파일로 초기화하는 방법

Advertisement
Editor

Vivado Block Memory에 COE 파일로 초기값을 넣어 보자.

메모리용 COE 파일은 memory_initialization_radixmemory_initialization_vector를 사용한다. 파일을 Block Memory Generator의 Load Init File에 연결하면 된다.

COE 파일 만들기

아래는 주소 0부터 다섯 개의 8-bit 값을 넣는 예다.

memory_initialization_radix=16;
memory_initialization_vector=
00,
11,
22,
33,
ff;

memory_initialization_radix에는 2, 10, 16을 사용할 수 있다. 첫 번째 값이 주소 0에 들어가고 마지막 값 뒤에는 세미콜론을 붙인다.

파일 확장자는 .coe로 저장한다. 값의 폭과 개수는 설정한 memory width와 depth에 맞춘다.

Block Memory Generator에 넣기

Block Memory Generator의 Other Options에서 Load Init File을 선택한다. Browse로 COE 파일을 지정한다.

Vivado Block Memory Generator에서 COE 초기값 파일을 편집하는 화면

Edit을 누르면 radix와 vector를 확인하거나 수정할 수 있다. 화면의 Validate로 형식을 확인한 뒤 IP output products를 다시 생성한다.

다른 COE 예제를 복사할 때 주의

COE 문법은 IP 종류에 따라 다르다. 원문에 함께 적었던 아래 형식은 Bit Correlator용이다.

radix=16;
pattern=...;

Block Memory 초기화에는 이 형식을 사용하지 않는다. AMD 문서에서 현재 사용하는 IP에 해당하는 예제를 골라야 한다.

확인

behavioral simulation에서 주소 0부터 기대한 값이 나오는지 먼저 본다. bitstream까지 다시 만들었다면 FPGA에서도 read address와 output timing을 확인한다.

스크린샷에는 COE Editor에서 00 01 02 ... 0A를 입력한 기록이 있다. 실제 합성 후 메모리 출력은 이번에 다시 확인하지 않았다.

공식 자료

원문 기록

한 줄 요약

Block Memory용 COE는 memory_initialization_radixmemory_initialization_vector로 작성한다.


Share this post on:

Next Post
Vivado에서 MCS 파일을 SPIx4로 만드는 방법