一. AMD FPGA的加載模式簡介
在不帶內置ARM核的AMD FPGA產品系列中,FPGA的程序加載方式并沒有發生大的變化,仍舊采用JTAG、Master SPI、Serial Configuration、Master BPI、Select MAP幾種加載模式,關于每種加載模式的電路圖和工作原理不再進行描述,每個產品系列的configuration guide中都有詳細描述,關于這部分的硬件設計和工作原理,用戶可以參考對應的文檔如UG470、UG570等。
在不同系列的pure FPGA產品發展過程中,加載模式發生了一些細微變化簡述如下:
A. 自7系列產品開始Master SPI加載模式增加了x2、x4模式,自Ultrascale系列開始在x2、x4的基礎上又增加了x8模式(dual quad SPI模式);
B. 自7系列產品開始不再支持AMD自有的FLASH PROM產品,也不再更新自有的FLASH PROM產品,在UG908文檔中不斷更新測試過的第三方FLASH,如Micron、Spansion、ISSI等廠商的SPI FLASH和BPI FLASH;
帶內置ARM核的SOC產品中,芯片內部集成了bootrom并且需要使用FirstBootloader來進行加載,因此其加載模式和加載流程與pure FPGA器件有區別,常見的boot mode包括JTAG模式、QSPI模式、SD Card模式、EMMC模式、NAND模式、USB模式等,詳細描述可以參考UG585和UG1085文檔中的boot and configuration章節,SOC系列產品的加載方式我們將在以后文章中單獨說明。
本文的寫作初衷是介紹Select MAP加載模式,因此后面的描述基本都是基于不帶內置ARM核的FPGA來展開。
二. bit、bin和mcs文件的區別
在使用JTAG或者其他芯片來Program FPGA和FLASH時,我們最常用到的三個文件是bitstream文件、bin文件和mcs文件,最常遇到的問題是這三個文件有什么區別,在這一章節中我們不展開對文件內部詳細數據格式的解析,主要針對這三個文件的主要差別和使用場景進行對比和描述。
在configuration userguide中,有如下描述:
bit、bin和mcs文件
我截取一個真實bitstream文件的開始部分,如下圖:
bit文件前端內容
我們在JTAG Program FPGA的時候,使用的是bitstream文件;在Serial模式、SPIx1模式Program FLASH的時候,bin文件和mcs文件都可以使用;在SPIx4模式、SPIx8模式、BPI模式、SelectMAP模式Program FLASH的時候,使用的是MCS文件;在SelectMAP模式使用外部其他芯片(如MCU、ARM、CPU、CPLD、FPGA)Program FPGA的時候,使用的是bin文件,但是需要我們自己做bit swap。
從上面兩圖展開介紹:bitstream文件開頭部分包含工程名稱、開發工具版本號、芯片型號、時間戳、加載位寬、同步頭等信息,真正被Program進入FPGA的有效bit在同步頭和緊跟著的NOP之后;在bin文件沒有做bit swap的時候,bin文件直接從全FFFF的無效字段開始,比bitstream文件少了工程名稱、開發工具版本號、芯片型號、時間戳、加載位寬、同步頭等信息;而mcs文件通常比bitstream文件、bin文件大很多,是因為mcs文件中加入了對FLASH的操作命令以及其他一些信息,并且在多位數據位寬時,mcs文件中的有效數據部分根據加載位寬做了bit swap。
三. SelectMAP加載模式的優缺點
什么會有場景需要使用SelectMAP加載模式?SelectMAP加載模式有哪些優缺點呢?SelectMAP模式有如下特點:
A. 可以外供時鐘給CCLK,頻率確定;而Serial模式和Master SPI模式下FPGA自己震蕩產生的CCLK頻率低、頻率不精確;----優點
B. SelectMAP模式可以支持8bit、16bit、32bit加載;----優點
C. 在板卡上有多個FPGA芯片、MCU+FPGA、ARM+FPGA等架構下,可以共用一個FLASH、SD卡、EMMC等存儲介質來存儲加載文件;----優點
D. 占用的IO數量多;----缺點
E. 需要外面一顆芯片來實現SelectMAP模式的加載;----缺點
綜合以上特點,SelectMAP模式在兩種應用場景中會有優勢:
場景一:在使用Serial模式和Master SPI模式的時候,加載數據線位寬只能是1、2、4或8,在Master Serial和Master SPI模式下CCLK時鐘由FPGA內部震蕩產生,這個時鐘頻率是不準確的,而且我們在產生bitstream的配置選項中選擇的configuration rate頻率有限;所以在期望縮短加載時間的應用場景下,更高位寬更高CCLK頻率的SelectMAP模式可以大大縮短加載時間。
場景二:在板卡上有多個芯片時,可以共用加載文件的存儲介質,來減少存儲介質芯片數量。
四. SelectMAP加載的硬件和軟件設計
SelectMAP硬件設計:
在configuration userguide中給出了SelectMAP模式的硬件原理圖示例:
單片FPGA的SelectMAP加載
多片FPGA的SelectMAP加載
Select MAP模式軟件設計:
而FPGA前端負責實現Select MAP加載的主控器件,可以是MCU、CPLD、ARM、FPGA等,只需要按照如下時序將bin文件中的有效內容做bit swap后寫入到FPGA即可。
以8bit SelectMAP模式為例:
連續數據loading SelectMAP模式
不連續數據loading SelectMAP模式
需要說明的是在SelectMAP模式中的bit swap,需要根據數據線位寬在主控器件中實現如下bit swap:
SelectMAP模式bit swap
如果前端主控器件是MCU、ARM、CPU,可以參考AMD官方參考設計XAPP583,C代碼在XAPP583中可以獲得;如果前端主控器件是CPLD或者FPGA,作者曾經寫Verilog代碼實現過一片小FPGA做主控、通過Select MAP模式加載多片FPGA,歡迎咨詢作者本人。
審核編輯:湯梓紅
-
FPGA
+關注
關注
1630文章
21798瀏覽量
606026 -
mcu
+關注
關注
146文章
17323瀏覽量
352654 -
amd
+關注
關注
25文章
5499瀏覽量
134645 -
FlaSh
+關注
關注
10文章
1642瀏覽量
148681 -
程序
+關注
關注
117文章
3796瀏覽量
81416
發布評論請先 登錄
相關推薦
AMD Xilinx 7系列FPGA的Multiboot多bit配置
![<b class='flag-5'>AMD</b> Xilinx 7系列<b class='flag-5'>FPGA</b>的Multiboot多bit配置](https://file1.elecfans.com/web2/M00/C1/D3/wKgaomXarESANhQGAAAbqHkuJcw730.png)
Xilinx SelectMAP 配置問題
怎么通過GPIF II在Slave SelectMap中配置FPGA
由于JTAG,Spartan6從機SelectMap配置失敗了怎么辦
FPGA配置引腳說明及加載時序
通過USB接口實現FPGA 的SelectMap配置
V5 FPGA配置回讀
FPGA多重加載技術的設計模塊及其在硬件平臺上的多模式啟動測試并分析
![<b class='flag-5'>FPGA</b>多重<b class='flag-5'>加載</b>技術的設計模塊及其在硬件平臺上的多<b class='flag-5'>模式</b>啟動測試并分析](https://file1.elecfans.com//web2/M00/A6/EB/wKgZomUMQUCAR12LAAAN8SpUc90265.gif)
評論