一、FPGA配置引腳說明
1、CFGBVS
如果VCCO0連接至2.5V或3.3V,CFGBVS連接至VCCO0。
如果VCCO0連接至1.5V或1.8V,CFGBVS連接至GND。
建議bank0、bank14、bank15的VCCO電壓一致,避免出現(xiàn)I/O Transition at the End of Startup(建議按照下表進(jìn)行配置)
2、M[2:0]模式配置引腳,按照下表進(jìn)行選擇。
3、PROGRAM_B(input)
低電平有效,為低時(shí),配置信息被清空,將配置過程重新進(jìn)行。上電時(shí)保持PROGRAM_B為低電平不會使FPGA配置保持復(fù)位狀態(tài)。而是使用INIT_B來延遲上電配置序列。
4、INIT_B(inout)
FPGA處于配置復(fù)位狀態(tài),F(xiàn)PGA正在初始化(清除)其配置存儲器時(shí),或者當(dāng)FPGA檢測到配置錯誤時(shí),F(xiàn)PGA將此引腳驅(qū)動為低電平。在上電期間,INIT_B可以在外部保持低電平,以在初始化過程結(jié)束時(shí)停止上電配置序列。當(dāng)初始化過程后在INIT_B輸入檢測到高電平時(shí),F(xiàn)PGA繼續(xù)執(zhí)行M [2:0]引腳設(shè)置所指示的配置序列的其余部分。
5、VCCBATT
VCCBATT是FPGA內(nèi)部易失性存儲器的電池備用電源,用于存儲AES解密器的密鑰。如果不要求使用易失性密鑰存儲區(qū)中的解密密鑰,請將此引腳連接到GND或VCCAUX。
二、使用EMCCLK引腳,全速加載程序
由于CCLK引腳存在容差,因此可以使用比CCLK更精準(zhǔn)的時(shí)鐘EMCCLK引腳。使能該功能時(shí)需要如下步驟:
1、使能ExtMasterCclk_en比特流生成選項(xiàng)
2、定義EMCCLK目標(biāo)電壓。Bank 14有另一個定義了IOSTANDARD的引腳。在BANK14上定義的電壓自動應(yīng)用于EMCCLK。使用BITSTREAM.CONFIG.EXTMASTERCCLK_EN屬性在Vivado中設(shè)置ExMasterCclk_en選項(xiàng)
三、FPGA加載時(shí)序
上電時(shí)序圖
上電時(shí)序圖
上電配置流程
其配置過程分解為8個步驟。
1、上電
7系列器件需要為VCCO_0,VCCAUX,VCCBRAM和VCCINT引腳供電。上電時(shí),VCCINT電源引腳必須提供1.0V或0.9V(適用于-2L)電源。在JTAG模式下,除VCCO_0之外的任何I / O電源都不需要為7系列FPGA配置供電。當(dāng)選擇使用多功能引腳的配置模式(即串行,主BPI,SPI,SelectMAP)時(shí),還必須提供VCCO_14,VCCO_15或兩者。上電后,可以通過將PROGRAM_B引腳切換為低電平來重新配置。
應(yīng)用:此步可以用來使用看門狗電路重新加載FPGA,亦或通過其他器件(DSP、CPLD等)對FPGA重新加載的控制。
2、清除配置內(nèi)存
在器件上電后,PROGRAM_B引腳脈沖為低電平,使用JTAG JPROGRAM指令或IPROG命令后,或在回退重試配置序列期間,配置存儲器將被順序清零。塊RAM被復(fù)位到其初始狀態(tài),并且通過斷言全局置位復(fù)位(GSR)重新初始化觸發(fā)器。在此期間,除少數(shù)配置輸出引腳外,通過使用全局三態(tài)(GTS)將I / O置于高阻態(tài),如果PUDC_B為低電平,則內(nèi)部上拉。INIT_B在初始化期間內(nèi)部驅(qū)動為低電平,然后在TPOR之后用于上電情況,而TPL用于其他情況。如果INIT_B引腳從外部保持為低電平,器件將在初始化過程中等待,直到引腳被釋放,并且滿足TPOR或TPL延遲。
3、采樣M2:0引腳
當(dāng)INIT_B引腳為高電平時(shí),器件對M [2:0]模式引腳進(jìn)行采樣,如果處于主模式,則開始驅(qū)動CCLK。此時(shí),器件開始在配置時(shí)鐘的上升沿對配置數(shù)據(jù)輸入引腳進(jìn)行采樣。對于BPI和SelectMAP模式,總線寬度最初為x8,狀態(tài)寄存器反映了這一點(diǎn)。在總線寬度檢測序列之后,狀態(tài)寄存器被更新。僅在通過重新上下電或PROGRAM_B的置位進(jìn)行重新配置時(shí),才會再次對模式引腳進(jìn)行采樣。
4、同步
對于BPI,Slave SelectMAP和Master SelectMAP模式,必須首先檢測總線寬度。從串行,主串行,SPI和JTAG模式忽略總線寬度檢測模式。然后必須將特殊的32位同步字(0xAA995566)發(fā)送到配置邏輯。同步字警告設(shè)備即將到來的配置數(shù)據(jù),并將配置數(shù)據(jù)與內(nèi)部配置邏輯對齊。除“總線寬度自動檢測”序列外,忽略同步前配置輸入引腳上的任何數(shù)據(jù)。同步對大多數(shù)用戶是透明的,因?yàn)楣ぞ呱傻乃信渲帽忍亓鳎˙IT文件)都包括總線寬度檢測模式和同步字。
同步檢測信號
5、檢查設(shè)備ID
設(shè)備同步后,必須先通過設(shè)備ID檢查才能加載配置數(shù)據(jù)幀。這可以防止使用為不同設(shè)備格式化的比特流進(jìn)行配置。如果在配置期間發(fā)生ID錯誤,則設(shè)備會嘗試執(zhí)行回退重新配置。設(shè)備ID檢查內(nèi)置于比特流中,使此步驟對大多數(shù)設(shè)計(jì)人員而言都是透明的。器件ID檢查通過比特流中的命令執(zhí)行到配置邏輯,而不是通過JTAG IDCODE寄存器執(zhí)行。
ID注解
6、加載數(shù)據(jù)
加載同步字并檢查設(shè)備ID后,將加載配置數(shù)據(jù)幀。此過程對大多數(shù)用戶是透明的。
7、循環(huán)冗余校驗(yàn)
當(dāng)加載配置數(shù)據(jù)幀時(shí),設(shè)備從配置數(shù)據(jù)包計(jì)算循環(huán)冗余校驗(yàn)(CRC)值。加載配置數(shù)據(jù)幀后,配置比特流可以向設(shè)備發(fā)出校驗(yàn)CRC指令,然后是預(yù)期的CRC值。如果設(shè)備計(jì)算的CRC值與比特流中的預(yù)期CRC值不匹配,則設(shè)備將INIT_B拉低并中止配置。CRC校驗(yàn)?zāi)J(rèn)包含在配置比特流中。
對于加密比特流(當(dāng)BITSTREAM.ENCRYPTION.ENCRYPT屬性為是時(shí)),禁用CRC校驗(yàn),而HMAC驗(yàn)證加密的比特流數(shù)據(jù)。比特流數(shù)據(jù)中的錯誤在BOOTSTS寄存器中報(bào)告為HMAC錯誤。
如果在配置為FPGA為配置主機(jī)的模式期間發(fā)生CRC錯誤,則設(shè)備可以嘗試進(jìn)行回退重配置。在BPI和SPI模式下,如果回退重新配置再次失敗,則BPI / SPI接口只能通過脈沖PROGRAM_B引腳重新同步,并從頭開始重新啟動配置過程。JTAG接口仍然響應(yīng),設(shè)備仍處于活動狀態(tài),只有BPI / SPI接口無法運(yùn)行。
7系列器件使用32位CRC校驗(yàn)。CRC校驗(yàn)旨在捕獲傳輸配置比特流時(shí)的錯誤。存在這樣的情況:CRC校驗(yàn)可能錯過傳輸配置比特流的錯誤:某些時(shí)鐘錯誤(例如雙時(shí)鐘)可能導(dǎo)致32位比特流分組與配置邏輯之間的同步丟失。同步丟失后,不理解任何后續(xù)命令,包括檢查CRC的命令。在這種情況下,配置因DONE Low和INIT_B High而失敗,因?yàn)镃RC被忽略。在BPI模式異步讀取中,地址計(jì)數(shù)器最終溢出或下溢以導(dǎo)致環(huán)繞,從而觸發(fā)回退重新配置。BPI同步讀取模式不支持環(huán)繞錯誤條件。
8、啟動
加載配置幀后,比特流指示設(shè)備進(jìn)入啟動序列。啟動序列由8相(0-7階段)順序狀態(tài)機(jī)控制。啟動順控程序執(zhí)行下表中列出的任務(wù)。每個啟動事件的特定階段是用戶可編程的。
可以強(qiáng)制啟動序列等待MMCM鎖定或使DCI與適當(dāng)?shù)倪x項(xiàng)匹配。這些選項(xiàng)通常設(shè)置為在MMCM鎖定和/或DCI匹配之前阻止DONE,GTS和GWE被置位(阻止設(shè)備操作)。
DONE信號由啟動定序器在用戶指示的周期中釋放,但啟動定序器不會繼續(xù),直到DONE引腳實(shí)際看到邏輯高電平。DONE引腳是開漏雙向信號。通過釋放DONE引腳,器件停止驅(qū)動邏輯低電平,并通過內(nèi)部上拉電阻上拉引腳。默認(rèn)情況下,DONE_PIPE被使能,以在DONE引腳和配置邏輯之間添加寄存器。
與啟動序列發(fā)生器有關(guān)的信號
與啟動序列發(fā)生器有關(guān)的信號時(shí)序
默認(rèn)情況下,在啟動的第4階段釋放DONE,并啟用DONE_PIPE以添加一個額外的延遲時(shí)鐘周期。DONE表示配置已完成且所有數(shù)據(jù)已加載,但需要應(yīng)用一些額外的時(shí)鐘周期以確保啟動順序正確完成到第7階段,即啟動結(jié)束。DONE為24后,所需時(shí)鐘周期的保守?cái)?shù)字; 這將解釋最常見的用例。比特流選項(xiàng)LCK_cycle或Match_cycle將添加未定義的額外數(shù)量的時(shí)鐘周期。
在Spartan-7,Artix-7和Kintex-7系列中,如果bank的VCCO為1.8V或更低,那么在I / O bank上有多功能配置引腳,并且該bank上的引腳是 低或浮動,然后輸入可能在配置啟動期間有0-1-0過渡到互連邏輯。由于此轉(zhuǎn)換發(fā)生在GWE啟用內(nèi)部邏輯之后,因此可能會在配置后影響設(shè)備的內(nèi)部狀態(tài)。在EOS(啟動結(jié)束)之后,轉(zhuǎn)換發(fā)生一個CFGCLK。為避免這種轉(zhuǎn)換,將VCCO_14和VCCO_15設(shè)置為2.5V或3.3V,或者將引腳驅(qū)動為外部高電平(見表5-13)。否則,邏輯應(yīng)設(shè)計(jì)為忽略這些受影響的輸入信號,直到在EOS上升沿之后的一個CFGCLK之后至少200 ns。可以使用STARTUPE2監(jiān)視CFGCLK和EOS。
四、配置文件格式
燒寫配置文件包括四種,其中MCS、BIN和HEX文件為固化文件,直接燒寫到FPGA外掛的存儲器中。
五、MultiBoot
7系列FPGA MultiBoot和后備功能支持現(xiàn)場更新系統(tǒng)。比特流圖像可以在現(xiàn)場動態(tài)升級。FPGA MultiBoot功能可以實(shí)時(shí)切換圖像。在MultiBoot配置過程中檢測到錯誤時(shí),F(xiàn)PGA可以觸發(fā)回退功能,確?梢詫⒁阎己玫脑O(shè)計(jì)加載到設(shè)備中
發(fā)生回退時(shí),內(nèi)部生成的脈沖會復(fù)位整個配置邏輯,但專用的MultiBoot邏輯,熱啟動開始地址(WBSTAR)和啟動狀態(tài)(BOOTSTS)寄存器除外。該復(fù)位脈沖將INIT_B和DONE拉低,清除配置存儲器,并從地址0重新開始配置過程,并將修訂選擇(RS)引腳驅(qū)動為00.復(fù)位后,比特流將覆蓋WBSTAR起始地址。
在配置期間,以下錯誤可能會觸發(fā)回退:IDCODE錯誤、CRC錯誤、看門狗超時(shí)、BPI地址環(huán)繞錯誤。
也可以使用比特流選項(xiàng)ConfigFallback啟用后備。在回退重新配置期間忽略嵌入式IPROG。在回退重新配置期間禁用看門狗定時(shí)器。如果回退重新配置失敗,則配置停止,INIT_B和DONE都保持為低。
六、BPI - 硬件RS引腳設(shè)計(jì)注意事項(xiàng)
在BPI模式下,RS引腳需要連接到高位地址位,其中一個RS引腳上的上拉電阻連接到高位地址線。使用此硬件實(shí)現(xiàn),系統(tǒng)不包括WBSTAR地址,并且每個圖像的比特流選項(xiàng)相同。
默認(rèn)情況下禁用兩用RS引腳。在BPI或Master SelectMAP模式的回退期間,RS引腳驅(qū)動為低電平,但在SPI模式期間不會驅(qū)動為低電平。對于初始MultiBoot系統(tǒng),RS引腳分別連接到閃存的高位地址位,并分別通過上拉或下拉電阻綁定為高電平或低電平。上電時(shí),系統(tǒng)將引導(dǎo)至由RS上的上拉電阻和地址線連接定義的高位地址空間。在回退期間,RS引腳驅(qū)動為低電平,器件從地址空間0引導(dǎo).RS引腳應(yīng)連接到系統(tǒng)定義的高位地址,以允許將完整位文件存儲在每個存儲器段中。
七、多FPGA JTAG菊花鏈
XC7VX415T-1FF1157C
XC7VX485T-1FF1158I
XC7VX415T-2FFG1157I
XC7VX485T-1FFG1158C
XC7VX415T-3FFG1158E
XC7VX415T-3FFG1157E
XC7VX485T-1FFG1158I
TMS320C6455BGTZA
XC7VX1140T-1FL1928I
XC7VX1140T-2FL1928C
XC7VX1140T-2FL1928I
XC7VX1140T-1FLG1928C
XC7VX1140T-2FLG1926C
XC7VX1140T-2FLG1928C
XC7VX1140T-1FLG1926C
XC7VX1140T-1FLG1928I
XC7VX1140T-L2FLG1926E
XC7VX1140T-L2FLG1928E