一. AMD FPGA的加載模式簡介
在不帶內(nèi)置ARM核的AMD FPGA產(chǎn)品系列中,F(xiàn)PGA的程序加載方式并沒有發(fā)生大的變化,仍舊采用JTAG、Master SPI、Serial Configuration、Master BPI、Select MAP幾種加載模式,關(guān)于每種加載模式的電路圖和工作原理不再進行描述,每個產(chǎn)品系列的configuration guide中都有詳細(xì)描述,關(guān)于這部分的硬件設(shè)計和工作原理,用戶可以參考對應(yīng)的文檔如UG470、UG570等。
在不同系列的pure FPGA產(chǎn)品發(fā)展過程中,加載模式發(fā)生了一些細(xì)微變化簡述如下:
A. 自7系列產(chǎn)品開始Master SPI加載模式增加了x2、x4模式,自Ultrascale系列開始在x2、x4的基礎(chǔ)上又增加了x8模式(dual quad SPI模式);
B. 自7系列產(chǎn)品開始不再支持AMD自有的FLASH PROM產(chǎn)品,也不再更新自有的FLASH PROM產(chǎn)品,在UG908文檔中不斷更新測試過的第三方FLASH,如Micron、Spansion、ISSI等廠商的SPI FLASH和BPI FLASH;
帶內(nèi)置ARM核的SOC產(chǎn)品中,芯片內(nèi)部集成了bootrom并且需要使用FirstBootloader來進行加載,因此其加載模式和加載流程與pure FPGA器件有區(qū)別,常見的boot mode包括JTAG模式、QSPI模式、SD Card模式、EMMC模式、NAND模式、USB模式等,詳細(xì)描述可以參考UG585和UG1085文檔中的boot and configuration章節(jié),SOC系列產(chǎn)品的加載方式我們將在以后文章中單獨說明。
本文的寫作初衷是介紹Select MAP加載模式,因此后面的描述基本都是基于不帶內(nèi)置ARM核的FPGA來展開。
二. bit、bin和mcs文件的區(qū)別
在使用JTAG或者其他芯片來Program FPGA和FLASH時,我們最常用到的三個文件是bitstream文件、bin文件和mcs文件,最常遇到的問題是這三個文件有什么區(qū)別,在這一章節(jié)中我們不展開對文件內(nèi)部詳細(xì)數(shù)據(jù)格式的解析,主要針對這三個文件的主要差別和使用場景進行對比和描述。
在configuration userguide中,有如下描述:
bit、bin和mcs文件
我截取一個真實bitstream文件的開始部分,如下圖:
bit文件前端內(nèi)容
我們在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文件開頭部分包含工程名稱、開發(fā)工具版本號、芯片型號、時間戳、加載位寬、同步頭等信息,真正被Program進入FPGA的有效bit在同步頭和緊跟著的NOP之后;在bin文件沒有做bit swap的時候,bin文件直接從全FFFF的無效字段開始,比bitstream文件少了工程名稱、開發(fā)工具版本號、芯片型號、時間戳、加載位寬、同步頭等信息;而mcs文件通常比bitstream文件、bin文件大很多,是因為mcs文件中加入了對FLASH的操作命令以及其他一些信息,并且在多位數(shù)據(jù)位寬時,mcs文件中的有效數(shù)據(jù)部分根據(jù)加載位寬做了bit swap。
三. SelectMAP加載模式的優(yōu)缺點
什么會有場景需要使用SelectMAP加載模式?SelectMAP加載模式有哪些優(yōu)缺點呢?SelectMAP模式有如下特點:
A. 可以外供時鐘給CCLK,頻率確定;而Serial模式和Master SPI模式下FPGA自己震蕩產(chǎn)生的CCLK頻率低、頻率不精確;----優(yōu)點
B. SelectMAP模式可以支持8bit、16bit、32bit加載;----優(yōu)點
C. 在板卡上有多個FPGA芯片、MCU+FPGA、ARM+FPGA等架構(gòu)下,可以共用一個FLASH、SD卡、EMMC等存儲介質(zhì)來存儲加載文件;----優(yōu)點
D. 占用的IO數(shù)量多;----缺點
E. 需要外面一顆芯片來實現(xiàn)SelectMAP模式的加載;----缺點
綜合以上特點,SelectMAP模式在兩種應(yīng)用場景中會有優(yōu)勢:
場景一:在使用Serial模式和Master SPI模式的時候,加載數(shù)據(jù)線位寬只能是1、2、4或8,在Master Serial和Master SPI模式下CCLK時鐘由FPGA內(nèi)部震蕩產(chǎn)生,這個時鐘頻率是不準(zhǔn)確的,而且我們在產(chǎn)生bitstream的配置選項中選擇的configuration rate頻率有限;所以在期望縮短加載時間的應(yīng)用場景下,更高位寬更高CCLK頻率的SelectMAP模式可以大大縮短加載時間。
場景二:在板卡上有多個芯片時,可以共用加載文件的存儲介質(zhì),來減少存儲介質(zhì)芯片數(shù)量。
四. SelectMAP加載的硬件和軟件設(shè)計
SelectMAP硬件設(shè)計:
在configuration userguide中給出了SelectMAP模式的硬件原理圖示例:
單片F(xiàn)PGA的SelectMAP加載
多片F(xiàn)PGA的SelectMAP加載
Select MAP模式軟件設(shè)計:
而FPGA前端負(fù)責(zé)實現(xiàn)Select MAP加載的主控器件,可以是MCU、CPLD、ARM、FPGA等,只需要按照如下時序?qū)in文件中的有效內(nèi)容做bit swap后寫入到FPGA即可。
以8bit SelectMAP模式為例:
連續(xù)數(shù)據(jù)loading SelectMAP模式
不連續(xù)數(shù)據(jù)loading SelectMAP模式
需要說明的是在SelectMAP模式中的bit swap,需要根據(jù)數(shù)據(jù)線位寬在主控器件中實現(xiàn)如下bit swap:
SelectMAP模式bit swap
如果前端主控器件是MCU、ARM、CPU,可以參考AMD官方參考設(shè)計XAPP583,C代碼在XAPP583中可以獲得;如果前端主控器件是CPLD或者FPGA,作者曾經(jīng)寫Verilog代碼實現(xiàn)過一片小FPGA做主控、通過Select MAP模式加載多片F(xiàn)PGA,歡迎咨詢作者本人。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602977 -
mcu
+關(guān)注
關(guān)注
146文章
17123瀏覽量
350978 -
amd
+關(guān)注
關(guān)注
25文章
5466瀏覽量
134087 -
FlaSh
+關(guān)注
關(guān)注
10文章
1633瀏覽量
147939 -
程序
+關(guān)注
關(guān)注
117文章
3785瀏覽量
81001
發(fā)布評論請先 登錄
相關(guān)推薦
評論