引言:本文我們繼續(xù)介紹7系列FPGA器件配置,主要介紹幾種常見(jiàn)的配置方案。
1.串行配置模式
在串行配置模式下,F(xiàn)PGA通過(guò)每個(gè)CCLK周期加載一個(gè)配置位進(jìn)行配置。CCLK是主串行模式下的輸出,是從串行模式下的輸入。圖1顯示了基本的7系列FPGA串行配置接口。
圖1、7系列FPGA串行配置接口
1.1 從串行配置模式
從串行配置通常用于串行菊花鏈中的器件,或從外部微處理器或CPLD配置單個(gè)器件時(shí)(見(jiàn)圖2)。除了CCLK的方向外,設(shè)計(jì)注意事項(xiàng)與主串行配置類似。CCLK必須由外部時(shí)鐘源驅(qū)動(dòng)。
圖2、從串行模式配置舉例
- 7系列FPGA VCCO_0和Xilinx電纜VREF必須具有相同的電壓;DONE引腳為開(kāi)路漏極輸出;INIT_B引腳是一個(gè)雙向開(kāi)放式漏極引腳,需要一個(gè)外部上拉電阻器;對(duì)于串行配置,必須為CCLK設(shè)置位流啟動(dòng)時(shí)鐘設(shè)置;CCLK信號(hào)完整性至關(guān)重要,可能需要匹配端接;VCCBATT是存儲(chǔ)在SRAM中的AES密鑰的電源。使用時(shí),應(yīng)將其連接至電池電源。
1.2 主串行配置模式
主串行配置模式與從串行配置模式相同,只是FPGA生成CCLK。也就是說(shuō),CCLK是主串行模式下的輸出。對(duì)于7系列FPGA,主SPI模式是串行Flash器件低引腳數(shù)配置的主要配置模式。
1.3 時(shí)鐘串行配置數(shù)據(jù)
圖3顯示了如何在從串行和主串行模式下將配置數(shù)據(jù)傳輸到7系列FPGA中。
圖3、串行配置時(shí)鐘順序
- Bit0為第一個(gè)字節(jié)最高位。例如,如果第一個(gè)字節(jié)是0xAA(10101010)、位0=1、位1=0、位2=1,等等;對(duì)于主配置模式,CCLK僅在INIT_B變高后輸出驅(qū)動(dòng),到DONE變高后短暫驅(qū)動(dòng)。否則,CCLK處于高Z狀態(tài);CCLK可在從機(jī)串行模式下自由運(yùn)行。
2.主SPI配置模式
7系列FPGA主SPI配置模式允許使用低引腳數(shù)、行業(yè)標(biāo)準(zhǔn)SPI閃存器件進(jìn)行位流存儲(chǔ)。FPGA支持直接連接到SPI閃存器件的實(shí)際標(biāo)準(zhǔn)四線接口,用于讀取存儲(chǔ)的配置文件位流。7系列FPGA主SPI配置模式(圖4)可以選擇支持x2和x4快速輸出讀取操作的SPI設(shè)備進(jìn)行讀取。這些輸出模式按比例比標(biāo)準(zhǔn)1位SPI接口快。此外,下降沿時(shí)鐘模式可用于更好地利用整個(gè)時(shí)鐘周期,并允許更高的配置速度。
圖4、7系列FPGA SPI配置接口
圖5顯示了具有x1或x2數(shù)據(jù)寬度的SPI配置的連接。這些連接是相同的,因?yàn)閤2模式使用D00_MOSI引腳作為雙用途數(shù)據(jù)輸入/輸出引腳。菊花鏈配置模式僅在SPI x1模式下可用。
圖5、7系列FPGA SPI x1/x2配置接口
圖6顯示了具有x4數(shù)據(jù)寬度的SPI配置的連接。
圖6、7系列FPGA SPI x4配置接口
- DONE引腳為開(kāi)路漏極輸出;INIT_B引腳是一個(gè)雙向開(kāi)放式漏極引腳。需要一個(gè)外部上拉電阻;必須為用于SPI配置的CCLK設(shè)置位流啟動(dòng)時(shí)鐘設(shè)置;CCLK信號(hào)完整性至關(guān)重要,可能需要端接;對(duì)于菊花鏈SPI x1配置模式,DOUT應(yīng)連接到下游FPGA的DIN。x2或x4 SPI模式不支持菊花鏈;從Flash到FPGA的數(shù)據(jù)路徑應(yīng)考慮一個(gè)串聯(lián)電阻器,以最小化過(guò)沖;7系列FPGA VCCO_0電源必須與用于SPI設(shè)備I/O的VCC兼容;數(shù)據(jù)從CCLK下降沿上的SPI時(shí)鐘輸出,并在上的FPGA上時(shí)鐘輸入;通過(guò)ConfigRate選項(xiàng)調(diào)整CCLK頻率?;蛘?,ExtMasterCclk_en選項(xiàng)可以將CCLK切換到來(lái)自EMCCLK引腳的源,以使用外部時(shí)鐘源;VCCBATT是存儲(chǔ)在SRAM中的AES密鑰的電源。它應(yīng)該是連接的使用時(shí)連接到電池電源。
3.主BPI配置模式
7系列FPGA主BPI配置模式(圖7)支持使用行業(yè)標(biāo)準(zhǔn)的并行NOR(BPI)閃存設(shè)備進(jìn)行比特流存儲(chǔ)。FPGA支持直接連接到BPI閃存的地址、數(shù)據(jù)和控制信號(hào),以提取存儲(chǔ)的位流。
圖7、7系列FPGA主BPI 配置接口
這種模式配置接口FPGA需要連接的信號(hào)較多,硬件布線稍復(fù)雜些。由于采用并行總線進(jìn)行配置數(shù)據(jù)傳輸,具有較高的配置速度。如果項(xiàng)目對(duì)配置時(shí)間具有較高要求,并行配置模式可以大大縮短上電配置時(shí)間。如果對(duì)配置速度無(wú)要求,經(jīng)常采用串行配置方式,簡(jiǎn)化硬件設(shè)計(jì)。圖8給出了主BPI配置模式讀操作舉例。
圖8、7系列FPGA主BPI配置接口-異步讀操作舉例
- 7系列FPGA VCCO_0電源輸入和Xilinx電纜VREF必須連接到相同的電壓;7系列FPGA組電壓VCCO_14提供:A[15:00]、FCS_B、D[15:00]、EMCCLK、PUDC_B和CSO_B信號(hào)。氣缸組電壓VCCO_15提供:A[28:16]、FWE_B、FOE_B、ADV_B、RS0和RS1信號(hào);對(duì)于BPI模式,M[2:0]=010;圖8顯示了x16 BPI接口。
對(duì)于x8 BPI接口,僅使用D[07:00];向數(shù)據(jù)引腳發(fā)送位流遵循與SelectMAP模式相同的位交換規(guī)則。參見(jiàn)第83頁(yè)的并行總線位順序;CCLK輸出不用于在異步讀取模式下連接到閃存,但用于在配置期間對(duì)閃存讀取數(shù)據(jù)進(jìn)行采樣。所有定時(shí)均參考CCLK;RS[1:0]引腳未按圖2-17所示連接。這些輸出引腳是可選的,可用于多引導(dǎo)配置;DONE引腳為開(kāi)路漏極輸出;有關(guān)特定閃存信號(hào)連接的詳細(xì)信息,請(qǐng)參考BPI閃存供應(yīng)商數(shù)據(jù)表。為防止地址錯(cuò)位,用戶應(yīng)密切注意所用字節(jié)/字模式的閃存系列地址LSB。并非所有閃存系列都使用A01作為地址LSB;所示JTAG連接用于簡(jiǎn)單的單設(shè)備JTAG掃描鏈。當(dāng)JTAG掃描鏈上有多個(gè)設(shè)備時(shí),使用適當(dāng)?shù)腎EEE Std 1149.1菊花鏈技術(shù)連接JTAG信號(hào)。TCK信號(hào)完整性對(duì)于JTAG的運(yùn)行至關(guān)重要。路由、終止并在必要時(shí)適當(dāng)緩沖TCK信號(hào),以確保JTAG掃描鏈中設(shè)備的信號(hào)完整性;顯示FPGA模式(M[2:0])引腳設(shè)置為主BPI模式(010)。
建議使用戶能夠?qū)PGA模式引腳更改為JTAG模式(101)的板級(jí)選項(xiàng)的實(shí)現(xiàn),以便在設(shè)計(jì)期間為FPGA啟用基于JTAG的調(diào)試功能。這不是必需的,但JTAG模式設(shè)置可確保調(diào)試期間不會(huì)受到主BPI配置的干擾;在本示例示意圖中,F(xiàn)PGA PUDC_B引腳與接地相連,從而在配置期間實(shí)現(xiàn)內(nèi)部上拉,包括非專用配置I/O。PUDC_B也可以在配置期間將非專用配置I/O設(shè)置為3狀態(tài);VCCBATT是存儲(chǔ)在SRAM中的AES密鑰的電源。使用時(shí),應(yīng)將其連接至電池電源;此示例示意圖支持單比特流配置。因此,在本示例示意圖中,F(xiàn)PGA RS[1:0]引腳未連接;有關(guān)VCCINT電源電壓,請(qǐng)參見(jiàn)相應(yīng)的7系列FPGA數(shù)據(jù)表。
4.SelectMAP配置模式
SelectMAP配置接口(圖9)為7系列FPGA配置邏輯提供8位、16位或32位雙向數(shù)據(jù)總線接口,可用于配置和回讀。數(shù)據(jù)總線的回讀和讀取方向僅適用于從屬SelectMAP模式。CCLK是主選擇映射模式下的輸出,是從選擇映射模式下的輸入??梢酝ㄟ^(guò)SelectMAP總線配置一個(gè)或多個(gè)7系列設(shè)備。
圖9、7系列FPGA SelectMAP配置接口圖10顯示了從配置模式SelectMAP配置舉例。
圖10、從配置模式SelectMAP配置舉例
- 參考XAPP583,使用微處理器通過(guò)從串行或從SelectMAP模式配置7系列FPGA,了解一種可能實(shí)現(xiàn)的討論;處理器或CPLD I/O需要支持與連接的FPGA引腳兼容的電壓。7系列FPGA VCCO_0電源輸入和Xilinx電纜VREF必須具有相同的電壓;DONE引腳為開(kāi)路漏極輸出;INIT_B引腳是一個(gè)雙向開(kāi)放式漏極引腳,需要一個(gè)外部上拉電阻;對(duì)于SelectMAP配置,必須為CCLK設(shè)置位流啟動(dòng)時(shí)鐘設(shè)置;如果只配置一個(gè)FPGA,并且不需要回讀,則CSI_B和RDWR_B信號(hào)可以連接到地;CCLK信號(hào)完整性至關(guān)重要,可能需要端接。建議通過(guò)模擬來(lái)確定適當(dāng)?shù)慕K止,因?yàn)樗Q于應(yīng)用程序;VCCBATT是存儲(chǔ)在SRAM中的AES密鑰的電源。使用時(shí),應(yīng)將其連接至電池電源;對(duì)于從SelectMAP配置,數(shù)據(jù)總線寬度可以是x8、x16或x32。從屬SelectMAP x16和x32總線寬度不支持AES加密的比特流。