Skip to content
DevBJ
Go back

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

Advertisement
Editor

Vivado에서 SPIx4로 부팅할 MCS 파일을 만들어 보자.

bitstream의 configuration mode와 write_cfgmem의 interface를 모두 SPIx4로 맞춘다. configuration clock은 FPGA와 flash가 지원하는 범위에서 정한다.

먼저 확인할 것

이 글의 속성 예제는 AMD 7 Series FPGA 기준이다. 보드 회로도에서 flash part와 FPGA 연결 방식이 x4인지 먼저 확인한다.

flash 용량과 허용 clock은 부품 datasheet를 따른다. 원문에는 부팅이 느렸다는 기록이 있지만 이번에는 같은 보드에서 속도를 다시 측정하지 않았다.

bitstream 속성 설정

XDC 파일에 아래 설정을 추가한다.

set_property CONFIG_MODE SPIx4 [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 33 [current_design]

CONFIGRATE 33은 7 Series에서 선택할 수 있는 값 중 하나다. 그냥 큰 값으로 올리지 말고 사용하는 flash와 보드가 해당 clock을 감당하는지 확인한다.

설정을 바꾼 뒤 bitstream을 다시 생성한다. 기존 .bit 파일로 MCS만 다시 만들면 변경한 bitstream 속성이 반영되지 않는다.

SPIx4 MCS 생성

128 Mbit flash 하나를 사용하는 예다. flash 용량이 다르면 -size를 실제 Mbit 값으로 바꾼다.

write_cfgmem -force \
  -format mcs \
  -interface SPIx4 \
  -size 128 \
  -loadbit "up 0x00000000 design.bit" \
  -file design.mcs

-interface SPIx4는 MCS 배치 방식이다. 앞에서 지정한 bitstream의 CONFIG_MODESPI_BUSWIDTH도 함께 맞아야 한다.

확인

Hardware Manager에서 실제 flash part를 선택하고 MCS를 program한다. 전원을 완전히 껐다 켠 뒤 DONE 신호와 설계 출력을 확인한다.

부팅되지 않으면 아래 순서로 본다.

  1. 보드의 configuration mode jumper
  2. Hardware Manager에서 선택한 flash part
  3. -size와 실제 flash 용량
  4. SPIx4 배선과 Quad Enable 지원
  5. CONFIGRATE를 낮춘 bitstream

JTAG로 FPGA에 .bit를 직접 올리는 절차와 flash에서 자동 부팅하는 절차는 다르다. JTAG 확인은 Vivado에서 Nexys A7 bitstream을 생성하고 FPGA에 올리는 방법을 참고한다.

공식 자료

원문 기록

한 줄 요약

bitstream과 MCS의 interface를 모두 SPIx4로 맞추고 configuration clock은 flash 허용 범위 안에서 정한다.


Share this post on:

Previous Post
Vivado Block Memory를 COE 파일로 초기화하는 방법
Next Post
Windows에서 Nexys A7 UART를 Tera Term으로 확인하는 방법