本系列博文描述7系列FPGA配置的技術(shù)參考。作為開篇,簡要概述了7系列FPGA的配置方法和功能。隨后的博文將對(duì)每種配置方法和功能進(jìn)行更詳細(xì)的描述。本文描述的配置方法和功能適用于所有7系列家族器件,只有少數(shù)例外。
1.概述
Xilinx®7系列FPGA通過將特定于應(yīng)用程序的配置數(shù)據(jù)(位流)加載到內(nèi)存中進(jìn)行配置。7系列FPGA可以主動(dòng)從外部非易失性存儲(chǔ)設(shè)備加載,也可以通過外部智能源(如微處理器、DSP處理器、微控制器、PC或板測(cè)試儀)被動(dòng)進(jìn)行配置。在任何情況下,都有兩個(gè)通用配置數(shù)據(jù)路徑。第一個(gè)是串行數(shù)據(jù)路徑,這種情況需要最少的硬件管腳連接。第二個(gè)數(shù)據(jù)路徑是8位、16位或32位數(shù)據(jù)路徑,用于更高性能或訪問(或鏈接)行業(yè)標(biāo)準(zhǔn)接口,非常適合外部數(shù)據(jù)源,如處理器或x8或x16并行閃存。與處理器和處理器外圍設(shè)備一樣,Xilinx FPGA可以在線重新編程,編程次數(shù)無限制。由于Xilinx FPGA配置數(shù)據(jù)存儲(chǔ)在CMOS配置鎖存器(CCL)中,因此必須在斷電后對(duì)其進(jìn)行重新配置。每次通過專用配置引腳將比特流加載到FPGA器件中。這些配置引腳可以用作多種不同配置模式的接口:
主動(dòng)-串行配置模式
從(或被動(dòng))-串行配置模式
主動(dòng)-并行(SelectMAP)配置模式(x8和x16)
主動(dòng)-并行(SelectMAP)配置模式(x8,x16和x32)
JTAG邊界掃描模式
主動(dòng)-串行SPI Flas配置模式(x1,x2,x4)
主動(dòng)-字節(jié)BPI Flash配置模式(x8,x16),使用并行NOR Flash
這些配置模式通過輸入管腳M[2:0]設(shè)置不同的電平進(jìn)行模式選擇。M2,M1和M0應(yīng)該連接至DC電壓常量,可以直接接GND或者VCCO_0或者通過上拉或下拉電阻(≤1kΩ)連接至GND或者VCCO_0。上述幾種配置模式中主或者從是以配置時(shí)鐘管腳CCLK的方向?yàn)閰⒖嫉?。例如,在從配置模式中,CCLK為輸入管腳;在主配置模式中,CCLK來自7系列FPGA內(nèi)部振蕩器,在主配置模式中,配置完成之后,CCLK時(shí)鐘自動(dòng)關(guān)閉,除非通過Persist Option將其配置為強(qiáng)制打開。該CCLK管腳為三態(tài)管腳,內(nèi)部弱上拉。JTAG邊界掃描配置模式,無論M[2:0]配置管腳電平如何,都一直可用。
2.設(shè)計(jì)考慮
要建立一個(gè)高效的系統(tǒng),重要的是要考慮哪種FPGA配置模式最符合系統(tǒng)的要求。每個(gè)配置模式都有專用FPGA配置引腳,并且只能在配置期間臨時(shí)使用其他多功能引腳。配置完成后,這些多功能管腳將被釋放作為通用I/O使用。類似地,配置模式可能會(huì)對(duì)某些FPGA I/O Bank施加電壓限制。盡管FPGA有幾種不同的配置選項(xiàng)可用,但就單個(gè)具體項(xiàng)目來說,每個(gè)系統(tǒng)通常都有一個(gè)最佳解決方案。FPGA配置過程涉及許多步驟。每個(gè)步驟通常涉及一系列事件。例如,第一步是多個(gè)電源的通電順序。要了解總體配置時(shí)間,設(shè)計(jì)師必須了解每個(gè)步驟的貢獻(xiàn)。CALC_CONFIG_TIME可以估算配置時(shí)間。選擇最佳配置選項(xiàng)時(shí)必須考慮幾個(gè)主題:總體方案、速度、成本和復(fù)雜性。
2.1 配置比特流長度及Flash容量選擇
FPGA設(shè)計(jì)被編譯成比特流。比特流通過配置接口加載。每個(gè)FPGA部件類型的完整比特流具有固定長度。表1-1顯示了7系列FPGA的比特流長度和其他設(shè)備特定信息。
表1、7系列FPGA的比特流長度和其他設(shè)備特定信息
2.2 FPGA配置數(shù)據(jù)源
Xilinx 7系列FPGA旨在實(shí)現(xiàn)最大的靈活性。FPGA或者自動(dòng)加載來自非易失性閃存的配置數(shù)據(jù),或者其他外部智能設(shè)備(如處理器或微控制器)可以將配置數(shù)據(jù)下載到FPGA。此外,配置數(shù)據(jù)可以通過電纜從主機(jī)下載到FPGA的JTAG端口。
主動(dòng)模式
主動(dòng)模式,F(xiàn)PGA自我加載,可通過串行或并行數(shù)據(jù)路徑使用。FPGA在驅(qū)動(dòng)配置邏輯的內(nèi)部振蕩器中生成配置時(shí)鐘信號(hào),并在CCLK輸出引腳上可見,F(xiàn)PGA控制整個(gè)配置過程。主動(dòng)模式利用各種類型的非易失性存儲(chǔ)器來存儲(chǔ)FPGA的配置信息。在主動(dòng)模式下,F(xiàn)PGA的配置比特流通常保存在同一塊電路板上的非易失性內(nèi)存中,通常位于FPGA外部。
被動(dòng)模式
圖1、從配置模式
外部控制加載FPGA配置模式,通常稱為從模式,也可通過串行或并行數(shù)據(jù)路徑進(jìn)行配置。在從模式下,外部“智能代理”(如處理器、微控制器、DSP處理器或測(cè)試儀)將配置映像下載到FPGA中,如圖1所示。從屬配置模式的優(yōu)點(diǎn)是FPGA比特流幾乎可以存儲(chǔ)在整個(gè)系統(tǒng)中的任何位置。比特流可以與主機(jī)處理器的代碼一起存儲(chǔ)在閃存板上。它可以儲(chǔ)存在硬盤上,它可以通過網(wǎng)絡(luò)連接或其他類型的網(wǎng)橋連接發(fā)起配置。
2.3 JTAG連接
四針JTAG接口常用于調(diào)試硬件和測(cè)試。無論最終在應(yīng)用程序中使用何種配置模式,最好還包括一個(gè)JTAG配置路徑,以便于設(shè)計(jì)開發(fā)。
2.4 基本配置解決方案
在基本配置解決方案中,F(xiàn)PGA在通電時(shí)自動(dòng)從Flash設(shè)備檢索其比特流。FPGA具有串行外圍接口(SPI),通過該接口,F(xiàn)PGA可以從標(biāo)準(zhǔn)SPI閃存設(shè)備讀取比特流。
2.5 低成本配置解決方案
成本最低的選項(xiàng)因具體應(yīng)用而異。
如果系統(tǒng)中已有備用非易失性存儲(chǔ)器可用,則可將比特流鏡像存儲(chǔ)在系統(tǒng)存儲(chǔ)器中。它甚至可以存儲(chǔ)在硬盤上或通過網(wǎng)絡(luò)連接遠(yuǎn)程下載。如果是,則應(yīng)考慮其中一種下載模式:主BPI模式,從串行模式或JTAG。
如果應(yīng)用程序已經(jīng)需要非易失性內(nèi)存,則可以整合內(nèi)存。例如,F(xiàn)PGA配置比特流可以與該板的任何處理器代碼一起存儲(chǔ)。如果處理器是MicroBlaze™ 嵌入式處理器,則FPGA配置數(shù)據(jù)和MicroBlaze理器代碼可以共享同一個(gè)非易失性存儲(chǔ)設(shè)備。
2.6 高速配置
某些應(yīng)用要求邏輯在短時(shí)間內(nèi)可運(yùn)行。某些FPGA配置模式和方法比其他配置模式和方法更快。配置時(shí)間包括初始化時(shí)間和配置時(shí)間。配置時(shí)間取決于設(shè)備的大小和配置邏輯的速度。
- 在相同的時(shí)鐘頻率下,并行配置模式固有地比串行模式快,因?yàn)樗鼈円淮尉幊?、16或32位。
- 在菊花鏈中配置單個(gè)FPGA比配置多個(gè)FPGA具有更快的固有速度。在關(guān)注配置速度的多FPGA設(shè)計(jì)中,每個(gè)FPGA都應(yīng)該單獨(dú)并行配置。
- 在主模式下,F(xiàn)PGA內(nèi)部生成配置時(shí)鐘信號(hào),并在CCLK引腳上發(fā)送。默認(rèn)情況下,CCLK頻率較低,但比特流配置選項(xiàng)可以提高CCLK頻率,或?qū)CLK源從EMCCLK引腳切換到外部時(shí)鐘源。支持的最大CCLK頻率設(shè)置取決于所連接的非易失性存儲(chǔ)器的讀取規(guī)格。更快的內(nèi)存可實(shí)現(xiàn)更快的配置。當(dāng)使用CCLK的內(nèi)部振蕩器源時(shí),輸出頻率可隨工藝、電壓或溫度而變化。EMCCLK時(shí)鐘源選項(xiàng)啟用精確的外部時(shí)鐘源,以實(shí)現(xiàn)最佳配置性能。
使用EMCCLK選項(xiàng)的從模式或主模式允許更嚴(yán)格的公差和更快的時(shí)鐘。
2.7 保護(hù)FPGA比特流免受未經(jīng)授權(quán)的復(fù)制
與處理器代碼一樣,定義FPGA功能的比特流在上電期間加載到FPGA中。因此,這意味著不道德的公司可以在上電啟動(dòng)配置時(shí)捕獲配置比特流并創(chuàng)建未經(jīng)授權(quán)的設(shè)計(jì)副本。與處理器一樣,存在多種技術(shù)來保護(hù)FPGA比特流和嵌入在FPGA中的任何知識(shí)產(chǎn)權(quán)(IP)核心。最強(qiáng)大的技術(shù)是使用電池支持的基于SRAM密鑰的AES加密或使用eFUSE密鑰的AES加密。設(shè)備識(shí)別是第三種技術(shù),它使用較低級(jí)別的安全性和設(shè)備DNA。
此外,7系列器件還具有片上高級(jí)加密標(biāo)準(zhǔn)(AES)解密邏輯,以提供高度的設(shè)計(jì)安全性。
2.8 加載具有相同配置比特流的多個(gè)FPGA
通常,系統(tǒng)中每個(gè)FPGA有一個(gè)配置比特流映像。通過利用菊花鏈配置,多個(gè)不同的FPGA比特流鏡像可以共享單個(gè)配置閃存。如果應(yīng)用程序中的所有FPGA具有相同的部件并使用相同的比特流,則只需要一個(gè)比特流鏡像。另一種解決方案稱為組合或?qū)掃吪渲?,它使用相同的比特流加載多個(gè)類似的FPGA。僅在從串行或從SelectMAP模式下支持組合或?qū)拏?cè)配置。
3.配置調(diào)試考慮
本節(jié)討論的最佳實(shí)踐有助于在實(shí)現(xiàn)配置解決方案時(shí)遇到問題時(shí)啟用調(diào)試和解決方案。在開始全面調(diào)試之前,請(qǐng)使用比特流默認(rèn)值(例如,計(jì)數(shù)器或LED輸出模式)創(chuàng)建并測(cè)試簡單設(shè)計(jì)。此簡單的設(shè)計(jì)測(cè)試有助于消除高級(jí)比特流設(shè)置或板接口的任何潛在問題。嘗試使用其他方法進(jìn)行配置,例如通過JTAG而不是從閃存進(jìn)行配置,以確定問題是否特定于配置模式。兩個(gè)最重要的配置信號(hào)INIT_B和DONE應(yīng)連接到LED驅(qū)動(dòng)器。INIT_B從低到高的脈沖表示通電時(shí)初始化完成。配置期間INIT_B信號(hào)低電平可指示FPGA設(shè)備讀取到的比特流存在CRC錯(cuò)誤。如果配置未正確完成,狀態(tài)寄存器將提供有關(guān)哪些錯(cuò)誤可能導(dǎo)致故障的重要信息。JTAG readback/verify可確定預(yù)期配置數(shù)據(jù)是否正確加載到設(shè)備中。