使用高速NOR閃存配置FPGA
NOR閃存已作為FPGA(現(xiàn)場(chǎng)可編程門列陣)的配置器件被廣泛部署。其為FPGA帶來(lái)的低延遲和高數(shù)據(jù)吞吐量特性使得FPGA在工業(yè)、通信和汽車ADAS(高級(jí)駕駛輔助系統(tǒng))等應(yīng)用中得到廣泛采用。汽車場(chǎng)景中攝像頭系統(tǒng)的快速啟動(dòng)時(shí)間要求就是很好的一個(gè)例子——車輛啟動(dòng)后后視圖像在儀表板顯示屏上的顯示速度是最為突出的設(shè)計(jì)挑戰(zhàn)。
上電后,F(xiàn)PGA立即加載存儲(chǔ)于NOR器件中的配置比特流。傳輸完成后,F(xiàn)PGA轉(zhuǎn)換為活動(dòng)(已配置)狀態(tài)。FPGA包括許多配置接口選項(xiàng),通常包括并行NOR總線和串行外設(shè)接口(SPI)總線。支持這些總線的存儲(chǔ)器在不同廠商的產(chǎn)品之間總是存在微小的不兼容性,增添了采購(gòu)多款存儲(chǔ)器件的困難程度。
全新發(fā)布的JEDEC xSPI規(guī)范由各大主要NOR閃存廠商聯(lián)合制定。新標(biāo)準(zhǔn)結(jié)束了數(shù)十年來(lái)NOR閃存廠商獨(dú)立開發(fā)產(chǎn)品、各自為政的局面。雖然存在細(xì)微差別,但目前各廠商產(chǎn)品的核心JEDEC xSPI功能已完全相同。JEDEC xSPI規(guī)范對(duì)總線事務(wù)、命令和大量?jī)?nèi)部功能進(jìn)行了標(biāo)準(zhǔn)化。結(jié)合高吞吐量這一性能,這些下一代閃存可實(shí)現(xiàn)全新的應(yīng)用和功能。例如,賽普拉斯Semper NOR Flash系列符合JEDEC xSPI規(guī)范,并提供持續(xù)400MB /s讀取傳輸速率,非常適合作為FPGA配置存儲(chǔ)器。具體而言,憑借400MB/s的數(shù)據(jù)速率,容量為128MB(1Gb)的器件,其內(nèi)容可在320ms內(nèi)完成傳輸。
FPGA配置歷史回顧
當(dāng)FPGA首次面世時(shí),可選擇的配置存儲(chǔ)器是并行EPROM或并行EEPROM產(chǎn)品。隨著時(shí)間的推移,NOR閃存技術(shù)應(yīng)運(yùn)而生,同時(shí)因其系統(tǒng)內(nèi)可重復(fù)編程性和高性價(jià)比而被廣泛采用。在第二次革命性轉(zhuǎn)折中,SPI存儲(chǔ)器接口在大多數(shù)應(yīng)用中取代了并行NOR接口。今天的SPI存儲(chǔ)器產(chǎn)品具有高密度、小封裝尺寸和高讀取吞吐量,以及最重要的特點(diǎn)——更高效的低引腳數(shù)接口。
圖1 - 千兆位四路SPI(6引腳)和并行NOR(45引腳)接口
圖1顯示了千兆位SPI器件與千兆位并行NOR的引腳分配的對(duì)比。對(duì)于一個(gè)千兆位存儲(chǔ)器,四路串行外設(shè)接口(QSPI)器件具有六引腳接口,而并行NOR器件則需要45個(gè)引腳。引腳數(shù)量的巨大差異導(dǎo)致QSPI器件作為首選配置接口而被廣泛采用。QSPI接口允許在不改變器件占用空間的情況下更改密度。
FPGA配置速度
隨著工藝節(jié)點(diǎn)縮小,F(xiàn)PGA器件得以繼續(xù)增加可用的可編程邏輯模塊數(shù)量,進(jìn)而導(dǎo)致對(duì)更高密度和更快速度配置存儲(chǔ)器的需求?,F(xiàn)代FPGA在配置期間需要加載多達(dá)128MB的數(shù)據(jù)。這些高密度配置比特流需要更長(zhǎng)的時(shí)間才能從NOR閃存器件傳輸?shù)紽PGA。配置接口不僅針對(duì)讀取吞吐量進(jìn)行了優(yōu)化,還專注于促進(jìn)不同NOR閃存制造商之間的互操作性。
SPI讀取吞吐量
過去幾年,從最初以x1模式運(yùn)行的SPI接口開始,一直到以x4 DDR模式運(yùn)行的現(xiàn)代QSPI產(chǎn)品,SPI讀取吞吐量發(fā)生了顯著增長(zhǎng)。從表1可以看出,下一代閃存器件能夠推動(dòng)SPI總線性能實(shí)現(xiàn)又一次躍遷。
表1 - 閃存器件SPI讀取吞吐量選項(xiàng)
現(xiàn)代SPI器件能夠永久配置為固定的總線寬度和傳輸類型,可在上電時(shí)立即運(yùn)行。FPGA須支持這一永久配置,以便在上電后立即啟動(dòng)配置過程。
又或者,SPI存儲(chǔ)器可在x1模式下退出通電狀態(tài),從而允許主機(jī)系統(tǒng)(FPGA)查詢存儲(chǔ)器中的串行閃存可發(fā)現(xiàn)參數(shù)(SFDP)表中的特性。這一x1模式已成為多家存儲(chǔ)器廠商支持的標(biāo)準(zhǔn)功能,并允許FPGA檢索有關(guān)器件功能的關(guān)鍵信息。一旦檢索到器件特性,就可以快速重新配置FPGA存儲(chǔ)器控制器和SPI存儲(chǔ)器器件,以獲得最大的讀取性能。
圖2 - 通電時(shí)使用串行閃存可發(fā)現(xiàn)參數(shù)(SFDP)表配置SPI總線功能
在選用可使用x1、x4或x8總線寬度以及SDR或DDR傳輸類型運(yùn)行的下一代閃存設(shè)備時(shí),使用集成SFDP表檢索關(guān)鍵設(shè)備信息將格外重要。所選擇的總線寬度和傳輸類型必須與FPGA上實(shí)現(xiàn)的總線接口基礎(chǔ)設(shè)施保持一致。
雙QSPI配置接口
為減少FPGA配置時(shí)間,許多現(xiàn)代FPGA允許將配置位流分區(qū)至兩個(gè)QSPI器件(圖3)。這兩個(gè)QSPI器件以并行方式連接,其中位流的低半字節(jié)存儲(chǔ)在“主”QSPI器件(QSPI_P)中,位流的高半字節(jié)存儲(chǔ)在“輔助”QSPI器件(QSPI_S)中。這兩個(gè)器件在加載位流時(shí)并行運(yùn)行,從而有效地使讀取數(shù)據(jù)傳輸速率提升一倍。
請(qǐng)注意,除共享SCK(串行時(shí)鐘)線以外,接口在兩個(gè)器件上基本上是獨(dú)立的。之所以要共享SCK線,是為了在以并行方式(即同時(shí))讀取器件時(shí)實(shí)現(xiàn)時(shí)序偏差最小化。當(dāng)使用相同目標(biāo)地址執(zhí)行相同操作時(shí),可以一次僅對(duì)一個(gè)器件進(jìn)行訪問,也可以同時(shí)對(duì)兩個(gè)器件進(jìn)行訪問。
圖3 - 雙QSPI配置接口(11個(gè)引腳)允許配置位流在兩個(gè)QSPI器件之間進(jìn)行分區(qū),從而有效地將讀取數(shù)據(jù)傳輸速率提升一倍。
當(dāng)大型FPGA器件需要以最快的方式傳輸大配置(即高密度)配置比特流時(shí),這種11引腳雙QSPI配置將具有非常大的優(yōu)勢(shì)。
閃存配置
下一代閃存采用x1(主要用于SFDP訪問)、x4或x8 IO總線寬度運(yùn)行,支持SDR或DDR格式傳輸數(shù)據(jù),并且通過使用新的數(shù)據(jù)選通(Data Strobe)信號(hào)以促進(jìn)高速傳輸。例如,使用11引腳接口的賽普拉斯Semper NOR閃存八進(jìn)制配置(圖4)。
圖4 - 低引腳數(shù)接口支持SDR或DDR格式的x1、x4或x8 IO總線寬度傳輸數(shù)據(jù)。圖中顯示的是采用11引腳接口的賽普拉斯Semper NOR閃存八進(jìn)制配置。
這一新的數(shù)據(jù)通選必須結(jié)合到FPGA配置接口中,從而可利用下一代閃存器件的高吞吐量讀取性能。數(shù)據(jù)選通與輸出讀取數(shù)據(jù)邊緣對(duì)齊,其方式與低功耗DDR DRAM器件上的選通方式相同(圖5)。數(shù)據(jù)選通“繪制”數(shù)據(jù)眼圖,并允許FPGA以高時(shí)鐘頻率有效抓取數(shù)據(jù)。
圖5 - 具有數(shù)據(jù)選通功能的x8 DDR讀取事務(wù)與輸出讀取數(shù)據(jù)邊緣對(duì)齊,使FPGA能夠以高時(shí)鐘頻率有效抓取數(shù)據(jù)。
支持連續(xù)讀取操作是非常適用于FPGA配置的閃存功能之一。連續(xù)讀取始于主機(jī)(MCU(微控制器)或FPGA)置位CS#(CS片選引腳),然后發(fā)出讀取命令,后跟目標(biāo)地址。經(jīng)過多次延遲周期,存儲(chǔ)器從目標(biāo)地址輸出數(shù)據(jù)。如果主機(jī)繼續(xù)切換時(shí)鐘,則存儲(chǔ)器將通過從下一個(gè)順序地址輸出數(shù)據(jù)來(lái)響應(yīng)。只要時(shí)鐘繼續(xù)切換,存儲(chǔ)器將繼續(xù)從順序地址輸出數(shù)據(jù)。這種順序讀取功能可以允許FPGA配置單個(gè)讀取事務(wù)。
AutoBoot(自動(dòng)啟動(dòng))是另一項(xiàng)有助于FPGA配置的功能。AutoBoot在通電復(fù)位期間從預(yù)先配置的目標(biāo)地址執(zhí)行自動(dòng)讀取,然后在第一次CS#置位時(shí)立即輸出數(shù)據(jù)(圖6)。此功能對(duì)需要簡(jiǎn)單配置機(jī)制的ASIC(專用芯片)器件也十分有用。一旦CS#解除置位,內(nèi)存將返回其待命狀態(tài),并以正常方式處理后續(xù)操作。
圖6 - 運(yùn)行中的AutoBoot讀取功能(具有3個(gè)預(yù)熱周期)
NOR 閃存器件的寫入事務(wù)(圖7)與標(biāo)準(zhǔn)SPI操作幾乎完全相同,但有兩點(diǎn)例外。首先,在整個(gè)事務(wù)期間必須將新的數(shù)據(jù)選通信號(hào)驅(qū)動(dòng)為L(zhǎng)OW(低電平)。其次,當(dāng)配置為DDR操作時(shí),數(shù)據(jù)被寫為字(16b),而非傳統(tǒng)SPI產(chǎn)品的字節(jié)寫編程粒度。
圖7- NOR 閃存的寫入事務(wù)需要在整個(gè)事務(wù)期間將數(shù)據(jù)選通信號(hào)驅(qū)動(dòng)為L(zhǎng)OW,并且在配置為DDR操作時(shí)將數(shù)據(jù)寫為16位字。
下一代NOR閃存器件可提供滿足大規(guī)模FPGA應(yīng)用的高密度和隨開即用要求所需的高吞吐量。各大NOR閃存制造廠商都參與了JEDEC xSPI規(guī)范的開發(fā),為代工廠商提供了廣泛的采購(gòu)選擇。JEDEC xSPI規(guī)范涵蓋了上述八進(jìn)制SPI接口以及HyperBus接口,兩者均提供400MB/s的讀取吞吐量,已實(shí)現(xiàn)的讀取吞吐量遠(yuǎn)高于傳統(tǒng)SPI產(chǎn)品。為利用高速基礎(chǔ)設(shè)施,需要對(duì)FPGA SPI控制器進(jìn)行修改。需要考慮的新功能包括DDR數(shù)據(jù)速率,用于數(shù)據(jù)抓取的新數(shù)據(jù)選通引腳和擴(kuò)展的x8總線接口。此外,一些NOR閃存器件(例如賽普拉斯Semper NOR系列)允許在實(shí)施雙QSPI配置架構(gòu)時(shí)消除其中一個(gè)QSPI器件。在需要進(jìn)行快速FPGA配置的情況下,以及在執(zhí)行實(shí)時(shí)重新配置的FPGA應(yīng)用中,下一代閃存所提供的性能將具有強(qiáng)大的優(yōu)勢(shì)。