KU FPGA FLASH boot失敗debug

Hello-FPGA發表於2024-07-19

原因

新板子回來後,測試flash 燒錄正常,但是無法BOOT,此時SPI設定為X4模式,使用內部時鐘,速度90M。燒錄過程不報錯,校驗也正常。

FLASH理論支援最大速度108M,90M應該還好。另外板卡預留了EMCCLK外部時鐘模式,速率100M 也不可行。

此時約束如下:


set_property CONFIG_VOLTAGE 3.3 [current_design]
set_property CFGBVS VCCO [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property CONFIG_MODE SPIx4 [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 90 [current_design] 
#set_property BITSTREAM.CONFIG.EXTMASTERCCLK_EN div-1 [current_design]
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
set_property BITSTREAM.CONFIG.UNUSEDPIN Pullup [current_design]

分析

90M偏高,嘗試降低速率嘗試。實際多次測試發現82M以下均正常。不同的器件支援的速度是有差異的,具體參考UG908 https://www.xilinx.com/support/documents/sw_manuals/xilinx2022_1/ug908-vivado-programming-debugging.pdf

SPIX8 模式

實際為了加快boot速度,硬體上支援SPIX8模式,這樣實際速度可以提高到原有速度的2倍,從而加快啟動過程。這在一些pice 應用上是必要的。


set_property CONFIG_VOLTAGE 3.3 [current_design]
set_property CFGBVS VCCO [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 8 [current_design]
set_property CONFIG_MODE SPIx8 [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 82 [current_design] 
#set_property BITSTREAM.CONFIG.EXTMASTERCCLK_EN div-1 [current_design]
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
set_property BITSTREAM.CONFIG.UNUSEDPIN Pullup [current_design]

實際生成下載韌體的時候會有2個 bin檔案,對應按照提示下載即可。

如果不做multiboot,生成bin檔案時候的使用方式和SPIX4沒有什麼差異。

cd [get_property DIRECTORY [current_project]]/[current_project].runs/impl_1
write_cfgmem  -format bin -size 32 -interface SPIx8 -loadbit "up 0x00000000 [get_property top [current_fileset]].bit" -file [get_property DIRECTORY [current_project]]/test.bin -force

相關文章