Xilinx FPGA的Fast Startup

發(fā)布時(shí)間:2011-11-10 17:50    發(fā)布者:1046235000
關(guān)鍵詞: Fast Startup , Xilinx FPGA
  在眾多當代應用中,嵌入式系統必須滿(mǎn)足極其苛刻的時(shí)序要求。其中之一就是啟動(dòng)時(shí)間——即上電后電子系統進(jìn)入可操作狀態(tài)所需要的時(shí)間。PCI Express®產(chǎn)品或汽車(chē)應用中基于CAN的電子控制單元(ECU)就是具有嚴格時(shí)序要求的電子系統的應用實(shí)例。
 
  標準PCI Express®(PCIe)系統上電后僅100毫秒,系統的根組件就開(kāi)始掃描總線(xiàn)以便弄清拓撲結構,并在這一過(guò)程中進(jìn)行初始化配置。 如果PCIe設備沒(méi)有準備好響應配置請求,根組件就找不到此PCIe設備,并認為它不存在。該設備將無(wú)法加入PCIe總線(xiàn)系統。[1]
 
  汽車(chē)應用中的情形與此大體相仿。在基于CAN的網(wǎng)絡(luò )中,ECU進(jìn)入睡眠模式,這時(shí)它們將停止運行并切斷電源連接。只有很少部分電路仍然保持戒備狀態(tài),以便探測喚醒信號。一旦出現喚醒事件,ECU就會(huì )重新連接電源并開(kāi)始引導。雖然在喚醒事件后的頭一個(gè)100 毫秒內允許錯過(guò)一些消息,但在此之后所有ECU都必須在網(wǎng)絡(luò )(如CAN網(wǎng)絡(luò ))上做好充分的運行準備。
 
  Xilinx Automotive、Xilinx研究實(shí)驗室以及德國卡爾斯魯厄技術(shù)研究所之間合作展開(kāi)了深入的研發(fā)工作,正在設法通過(guò)一種FPGA兩步配置方法解決這一問(wèn)題。
 
  半導體行業(yè)的科技趨勢已經(jīng)能使FPGA廠(chǎng)家大大增加其器件中的資源。但比特流規模也在成比例地增長(cháng),配置器件需要的時(shí)間也是如此。因此,即使對于中等規模的FPGA,使用低成本配置方案也不可能滿(mǎn)足嚴格的啟動(dòng)時(shí)序要求。圖1表示不同的Xilinx® Spartan®-6 FPGA器件在使用低成本SPI/Quad-SPI配置接口時(shí)的配置時(shí)間。即使使用快速配置方案(即在40 MHz配置時(shí)鐘下運行的Quad-SPI),也只有小型FPGA器件才能達到100 毫秒的啟動(dòng)時(shí)序要求。對于Xilinx Virtex®-6器件來(lái)說(shuō),這個(gè)結果看來(lái)更具挑戰性,因為這些器件提供了更豐富的FPGA資源。
 
  為了克服這個(gè)難題,Fast Startup分兩步配置FPGA器件,而非單步(整片)的全器件配置。按照這種新穎的思路,我們的策略是在上電時(shí)使用最高優(yōu)先級比特流僅載入時(shí)序關(guān)鍵模塊,然后再載入非時(shí)序關(guān)鍵模塊。這種方法最大程度地減少了初始配置數據,從而最大程度地減少了在面向時(shí)序關(guān)鍵設計的FPGA器件啟動(dòng)時(shí)間。
 
FAST STARTUP對比部分重配置

  Fast Startup允許FPGA設計盡快啟動(dòng)設計的關(guān)鍵模塊,關(guān)鍵模塊的啟動(dòng)速度比標準全配置方法要快得多[2]。雖然,從本質(zhì)上來(lái)講Fast Startup利用了部分重配置,但它與這種方法的傳統概念所有不同。部分重配置的初衷是將完整設計作為可在運行時(shí)修改的初始配置使用。相反,Fast Startup已經(jīng)使用了一個(gè)初始的部分比特流,以在上電時(shí)僅僅配置FPGA器件的一個(gè)特定(很小的一部分)區域。第一次配置僅包含完整FPGA設計中必須配置和快速運行的那些部分。而剩下的部分則在以后、在運行時(shí),利用部分重配置進(jìn)行配置。圖2說(shuō)明了這一順序概念。
 
工具流程概述

  Fast Startup的工具流程依靠設計保存流程,來(lái)創(chuàng )建針對時(shí)序關(guān)鍵子系統及非時(shí)序關(guān)鍵子系統的部分比特流。
 
  設計保存流程將FPGA設計分割為邏輯模塊(稱(chēng)為“分區”)。分區構成了層次邊界,將內部模塊與設計中的其他組件相互隔離。分區一旦實(shí)現(即完成布局和布線(xiàn)),就能被其他實(shí)現運行導入,以按照每個(gè)實(shí)例中完全相同的方式實(shí)現該分區的模塊[3]。
 
 因此,使用Fast Startup方法的第一步是將完整的FPGA設計分成兩部分:即含有時(shí)序關(guān)鍵子系統的高優(yōu)先級分區和針對其余組件的低優(yōu)先級分區。
圖1-計算出的Spartan-6配置時(shí)間的對數表示(按最壞情況計算)

圖2 – Fast Startup概念:順序配置

高優(yōu)先級分區的實(shí)現

  為了得到盡可能小的高優(yōu)先級分區的部分比特流,設計中有一些一般性問(wèn)題需要考慮。首先,該分區必須只能包含此類(lèi)組件:或者是時(shí)序關(guān)鍵組件,或者是系統需要這些組件來(lái)執行低優(yōu)先級部分(如ICAP)的部分重配置。得到小規模初始部分比特流的關(guān)鍵是使用盡可能小的區域實(shí)現高優(yōu)先級分區。也就是說(shuō),您必須將這個(gè)分區局限在FPGA中的一個(gè)適當區域中。
 
  為了在FPGA中找到理想的物理位置,這個(gè)區域應該提供該設計需要的適當數量的資源。訪(fǎng)問(wèn)該區域以外的資源也是可行的,但我們不鼓勵這么做——盡管對于I/O引腳來(lái)說(shuō),
 
  這樣做一般是無(wú)法避免的。在尋找適當區域時(shí),還要牢記的是這個(gè)FPGA區域有可能會(huì )妨礙FPGA設計中非時(shí)序關(guān)鍵部分的資源。
 
  當您已經(jīng)對FPGA進(jìn)行分區,且已經(jīng)找到了這些分區的適當區域之后,下一步就是使用一個(gè)空的(黑盒子)低優(yōu)先級分區實(shí)現高優(yōu)先級分區。得到的比特流含有很多針對未使用資源的配置幀。您可以刪除這些幀,以便得到針對初步配置高優(yōu)先級分區的有效部分比特流。[4]
 
低優(yōu)先級分區的實(shí)現

  為了創(chuàng )建低優(yōu)先級的部分比特流,首先,您要創(chuàng )建含有這兩個(gè)分區(即高優(yōu)先級分區和低優(yōu)先級分區)的完整FPGA設計的實(shí)現。從以前的實(shí)現中導入高優(yōu)先級分區,從而保證其實(shí)現方法與原來(lái)的實(shí)現方法相同。
 
  對于Virtex-6器件而言,部分重配置(PR)流程可用于所有上述的實(shí)現。這樣,就會(huì )自動(dòng)得到針對低優(yōu)先級分區的部分比特流。由于Spartan-6器件 系列不支持PR流程,在實(shí)現針對Spartan-6設計的Fast Startup時(shí),我們使用了針對差異化的部分重配置的BitGen選項,以獲得低優(yōu)先級分區的部分比特流。[5]圖3給出了該工具流程的高層概覽。


圖3 – Fast Startup工具流程
實(shí)驗與結果

  為了在硬件中驗證Fast Startup配置方法,我們的研究小組在一塊Virtex-6 ML605板和一塊Spartan-6 SP605板上實(shí)現了這種方法。
 
  Virtex-6實(shí)現的應用背景源自視頻領(lǐng)域。用戶(hù)接通視頻系統電源時(shí),他們總是希望立刻就看到系統有所響應,而不用等待數秒。因此,在圖4所示的系統中,一個(gè)配備了TFT控制器的高優(yōu)先級子系統可以迅速點(diǎn)亮TFT屏幕。對于其他低優(yōu)先級應用,即第二個(gè)設計提供了對以太網(wǎng)內核、UART和硬件計時(shí)器的控制和訪(fǎng)問(wèn)。


圖4 – Virtex-6和Spartan-6演示(Virtex-6包括TFT模塊,Spartan-6僅包括CAN模塊)的基本框圖
  對于這種演示來(lái)說(shuō),我們使用帶BPI的外置閃存作為配置接口。一旦初始高優(yōu)先級比特流配置完該處理器子系統,在BRAM外運行的軟件將初始化TFT控制器,并將數據寫(xiě)入DDR內存中的幀緩沖器。這樣就能確保啟動(dòng)時(shí)屏幕迅速顯示在TFT上面。之后,從BPI閃存中讀出第二個(gè)比特流,并配置低優(yōu)先級分區,這樣處理器子系統可以運行其他應用程序,如Web服務(wù)器。
 
  為方便擴展和清晰隔離兩個(gè)分區,我們使用了AXI至AXI橋接器。這也在最大程度上減少了穿過(guò)兩個(gè)設計分區邊界的網(wǎng)絡(luò )。低優(yōu)先級分區與高優(yōu)先級分區共享系統時(shí)鐘。
 
  表1表示FPGA資源利用情況,表2表示傳統啟動(dòng)方法、僅有高優(yōu)先級分區壓縮比特流的啟動(dòng)方法[6]和Fast Startup配置方法的配置時(shí)間。每種方法都使用BPIx16配置接口,而采用的配置速率(這個(gè)選項決定了目標配置時(shí)鐘頻率)為2 MHz和10 MHz。我們使用一臺示波器測量了該數據,捕獲了FPGA的“init”和“done”信號。 表2中“壓縮的”一欄表示僅有高優(yōu)先級分區的壓縮比特流。含有兩個(gè)分區的完整FPGA設計的壓縮比特流將達到3.1 Mbyte。

資源類(lèi)型
分區
高優(yōu)先級
%
低優(yōu)先級
%
觸發(fā)器
8,849
2.9
1,968
0.7
查找表
7,039
4.7
2,197
1.5
I/O
135
22.5
20
3.3
RAMB36s
34
8.2
2
0.5
表1 – 占用的FPGA資源(針對XC6VLX240T)

XC6VLX240T
配置方法
配置接口
傳統的
8.9 MB
壓縮的
2.0 MB
Fast Startup 1.4 MB
BPIx16 CR2
1,740 ms
389 ms
278 ms
BPIx16 CR10
450 ms
112 ms
84.4 ms
表2 – 測得的配置時(shí)間(Virtex-6視頻設計)

SPARTAN-6汽車(chē)ECU設計

  為了驗證針對Spartan-6的Fast Startup方法,我們選擇了汽車(chē)領(lǐng)域的ECU應用情形。每當您在汽車(chē)電子控制單元中看到一個(gè)FPGA器件時(shí),它一般都僅由ECU的主應用處理單元使用(見(jiàn)圖5)。我們的目標是實(shí)現一種將系統處理器放入FPGA中的設計。這樣我們就能避免對外置處理器的需要,從而降低整個(gè)系統的成本、復雜性、空間和功耗。


圖5 – 現代汽車(chē)ECU中的FPGA應用,FPGA中集成了處理器(虛線(xiàn))
系統分區

  對于這種情形,系統分區是顯而易見(jiàn)的。我們把我們ECU設計分成作為高優(yōu)先級分區的系統處理器部分和作為低優(yōu)先級分區的應用處理部分。
 
  這種設計與Virtex-6設計存在很多相似之處,但不同的是,我們用SPI取代BPI作為外置閃存的接口,因此必須用CAN控制器取代TFT控制器。上電后,系統控制器只有有限的時(shí)間引導并準備好處理第一個(gè)通信數據。由于ECU使用CAN總線(xiàn)用于通信,這個(gè)引導時(shí)間一般限制為100毫秒。按照傳統配置方法,使用帶低成本配置接口(如SPI或Quad-SPI)的大型Spartan-6很難達到如此嚴格的時(shí)序要求。而使用速度更快、更加昂貴的配置接口在汽車(chē)領(lǐng)域中是無(wú)法接受的。
 
測量裝置
  對于SP605汽車(chē)ECU演示來(lái)說(shuō),我們在實(shí)驗室中進(jìn)行了測量,圖6給出了測量裝置。圖中左側是一個(gè)基于Spartan-3的X1500汽車(chē)平臺,它實(shí)現了針對CAN總線(xiàn)的網(wǎng)絡(luò )發(fā)包器,該發(fā)生器能夠收發(fā)CAN消息并使用硬件計時(shí)器測量CAN消息之間的時(shí)間。右側為目標平臺,它沒(méi)有直接與CAN總線(xiàn)相連,而是使用來(lái)自額外的定制電路板的CAN收發(fā)器。除了提供一個(gè)CAN PHY之外,這個(gè)定制電路板還要控制目標電路板的電源。


圖6 – 汽車(chē)ECU的測量裝置

  測量配置時(shí)間的程序從網(wǎng)絡(luò )發(fā)包器處于空轉(空檔)狀態(tài)下開(kāi)始,此時(shí)CAN PHY電路板上的CAN收發(fā)器也處于睡眠模式,SP605也與電源斷開(kāi)。接著(zhù),網(wǎng)絡(luò )發(fā)包器啟動(dòng)一個(gè)硬件計時(shí)器并發(fā)送一條CAN消息。識別CAN總線(xiàn)上的事件后,CAN PHY被喚醒并重新讓SP605接通電源。然后FPGA開(kāi)始載入來(lái)自SPI閃存的初始比特流。
 
  由于沒(méi)有接收器確認由網(wǎng)絡(luò )發(fā)包器發(fā)送的消息,這條消息立刻重復發(fā)送,直至FPGA已經(jīng)完成其配置并用有效的波特率配置了CAN內核。一旦Spartan-6設計的CAN內核確認了這條消息,網(wǎng)絡(luò )發(fā)包器的CAN內核將觸發(fā)一個(gè)中斷,由這個(gè)中斷停止硬件計時(shí)器。該計時(shí)器現在保存著(zhù)SP605設計的引導時(shí)間。測量結果包括SP605設計內一個(gè)額外的硬件計時(shí)器,此結果表明,當執行該軟件來(lái)配置內置BRAM內存的CAN內核時(shí),軟件啟動(dòng)時(shí)間可以忽略不計。
 
  表3表示每個(gè)分區的FPGA資源消耗。百分比信息是用來(lái)表示使用的XC6S45LXT器件的有效資源的總數量。

資源類(lèi)型
分區
高優(yōu)先級
%
低優(yōu)先級
%
觸發(fā)器
3,480
6%
1,941
4%
查找表
3,507
13%
1,843
7%
I/O
58
20%
20
7%
RAMB
12
10%
2
2%
表3 – Spartan-6設計中占用的FPGA資源
配置接口
配置方法
傳統的1,450 KB
壓縮的
920 KB
Fast Startup 314 KB
SPIx1 CR2
5,297 ms
3,382 ms
1,157 ms
SPIx1 CR26
292 ms
196 ms
85 ms
SPIx2 CR2
2,671 ms
1,699 ms
596 ms
SPIx2 CR26
161 ms
113 ms
58 ms
SPIx4 CR2
1,348 ms
872 ms
311 ms
SPIx4 CR26
97 ms
73 ms
45 ms
表4 – 測得的Spartan-6配置時(shí)間
  表4表示配置時(shí)間的測量結果。對于這些結果,我們實(shí)現并比較了完整設計的一個(gè)標準比特流和一個(gè)壓縮比特流以及使用部分初始比特流的Fast Startup方法。該表列出了針對不同SPI總線(xiàn)帶寬和不同配置速率(CR)設置的配置時(shí)間。不出所料,配置時(shí)間與比特流大小成正比。由于使用快速配置,時(shí)鐘沒(méi)有影響清倉過(guò)程(housecleaning process),高CR設置的比率(按百分比)發(fā)生了變化。
 
在硬件中驗證

  我們開(kāi)發(fā)的高級配置方法可以稱(chēng)為優(yōu)先化的FPGA啟動(dòng),因為它分兩步配置器件。這種方法不僅對于解決現代FPGA中配置時(shí)間不斷增加的挑戰是必不可少,而且也能在很多現代應用中得到使用,如PCI Express或基于CAN的汽車(chē)系統。
 
  除了提出高優(yōu)先級初始配置方法,我們還在硬件中對這種方法進(jìn)行了驗證。我們使用并測試了針對Fast Startup的工具流程和方法,以在Spartan-6評估板(SP605)上實(shí)現基于CAN的汽車(chē)ECU,以及在Virtex-6原型板上實(shí)現視頻設計。通過(guò)使用這種新穎的方法,我們減小了初始比特流大小,從而使配置時(shí)間改進(jìn)了84%(與標準完整配置方案相比)。
 
  Xilinx將在針對7系列FPGA的軟件中支持針對 PCI Express應用的Fast Startup概念,并通過(guò)優(yōu)化的實(shí)現方法簡(jiǎn)化其使用。在7系列中,新的兩步比特流方法是實(shí)現起來(lái)最簡(jiǎn)單最低成本的方法。設計FPGA時(shí),用戶(hù)可以通過(guò)一個(gè)簡(jiǎn)單的軟件開(kāi)關(guān)實(shí)現兩級比特流。該比特流的第一級僅包含配置時(shí)序關(guān)鍵模塊需要的配置幀。配置時(shí),會(huì )產(chǎn)生一個(gè)FPGA STARTUP序列,關(guān)鍵模塊變成活動(dòng)模塊,這樣就可輕易滿(mǎn)足100毫秒時(shí)序要求。當時(shí)序關(guān)鍵模塊運行時(shí)(例如PCI Express枚舉/配置系統過(guò)程正在進(jìn)行),剩下的FPGA配置得以加載。兩級比特流方法能夠使用便宜的閃存器件存儲比特流。
 
參考資料
[1]PCI Express底層規范(PCI Express Base Specification),版本1.1,PCI-SIG,2005年3月
[2]M. Huebner, J. Meyer, O. Sander, L.Braun, J. Becker, J. Noguera和R.Stewart, “基于部分及動(dòng)態(tài)重配置的快速順序FPGA啟動(dòng)”( PCI Express Base Specification),IEEE計算機學(xué)會(huì )VLSI年度研討會(huì )(ISVLSI),2010年7月
[3]層次設計方法指南,UG748, v12.1, Xilinx,2010年5月
[4]B. Sellers, J. Heiner, M. Wirthlin和J. Kalb, “通過(guò)幀摘除和部分重配置壓縮比特流”( Bitstream compression through frame removal and partial reconfigura- tion),現場(chǎng)可編程邏輯(和應用國際大會(huì )FPL),2009年9月
[5]J. Meyer, J. Noguera, M. Huebner, L. Braun, O. Sander, R. Mateos Gil, R. Stewart, J. Becker, “利用動(dòng)態(tài)部分重配置快速啟動(dòng)Spartan-6 FPGA”( Fast Startup for Spartan-6 FPGAs using dynamic partial reconfiguration),歐洲設計、自動(dòng)化與測試研討會(huì )(DATE ‘11),2011年
[6]“通過(guò)部分重配置快速配置PCI Express技術(shù)”( Fast Configuration of PCI Express Technology through Partial Reconfiguration),XAPP883, v1.0, Xilinx, 2010年11月,http://www.xilinx.com/ support/documentation/application_notes/xapp883_Fast_Config_PCIe.pdf.

作者 Joachim Meyer
博士生
卡爾斯魯厄技術(shù)研究所
joachim.meyer@kit.edu

Juanjo Noguera
高級研究工程師
Xilinx公司
juanjo.noguera@xilinx.com

Rodney Stewart
汽車(chē)系統架構師
Xilinx公司
rodney.stewart@xilinx.com

Michael Hübner
工程博士
卡爾斯魯厄技術(shù)研究所
michael.huebner@kit.edu

Jürgen Becker
教授,工程博士
卡爾斯魯厄技術(shù)研究所
becker@kit.edu
本文地址:http://selenalain.com/thread-79111-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页