Xilinx FPGA的Fast Startup
在眾多當(dāng)代應(yīng)用中,嵌入式系統(tǒng)必須滿足極其苛刻的時(shí)序要求。其中之一就是啟動(dòng)時(shí)間——即上電后電子系統(tǒng)進(jìn)入可操作狀態(tài)所需要的時(shí)間。PCI Express產(chǎn)品或汽車應(yīng)用中基于CAN的電子控制單元(ECU)就是具有嚴(yán)格時(shí)序要求的電子系統(tǒng)的應(yīng)用實(shí)例。
本文引用地址:http://m.butianyuan.cn/article/125814.htm標(biāo)準(zhǔn)PCI Express(PCIe)系統(tǒng)上電后僅100毫秒,系統(tǒng)的根組件就開始掃描總線以便弄清拓?fù)浣Y(jié)構(gòu),并在這一過程中進(jìn)行初始化配置。 如果PCIe設(shè)備沒有準(zhǔn)備好響應(yīng)配置請(qǐng)求,根組件就找不到此PCIe設(shè)備,并認(rèn)為它不存在。該設(shè)備將無法加入PCIe總線系統(tǒng)。[1]
汽車應(yīng)用中的情形與此大體相仿。在基于CAN的網(wǎng)絡(luò)中,ECU進(jìn)入睡眠模式,這時(shí)它們將停止運(yùn)行并切斷電源連接。只有很少部分電路仍然保持戒備狀態(tài),以便探測喚醒信號(hào)。一旦出現(xiàn)喚醒事件,ECU就會(huì)重新連接電源并開始引導(dǎo)。雖然在喚醒事件后的頭一個(gè)100 毫秒內(nèi)允許錯(cuò)過一些消息,但在此之后所有ECU都必須在網(wǎng)絡(luò)(如CAN網(wǎng)絡(luò))上做好充分的運(yùn)行準(zhǔn)備。
Xilinx Automotive、Xilinx研究實(shí)驗(yàn)室以及德國卡爾斯魯厄技術(shù)研究所之間合作展開了深入的研發(fā)工作,正在設(shè)法通過一種FPGA兩步配置方法解決這一問題。
半導(dǎo)體行業(yè)的科技趨勢(shì)已經(jīng)能使FPGA廠家大大增加其器件中的資源。但比特流規(guī)模也在成比例地增長,配置器件需要的時(shí)間也是如此。因此,即使對(duì)于中等規(guī)模的FPGA,使用低成本配置方案也不可能滿足嚴(yán)格的啟動(dòng)時(shí)序要求。圖1表示不同的Xilinx® Spartan®-6 FPGA器件在使用低成本SPI/Quad-SPI配置接口時(shí)的配置時(shí)間。即使使用快速配置方案(即在40 MHz配置時(shí)鐘下運(yùn)行的Quad-SPI),也只有小型FPGA器件才能達(dá)到100 毫秒的啟動(dòng)時(shí)序要求。對(duì)于Xilinx Virtex®-6器件來說,這個(gè)結(jié)果看來更具挑戰(zhàn)性,因?yàn)檫@些器件提供了更豐富的FPGA資源。
為了克服這個(gè)難題,F(xiàn)ast Startup分兩步配置FPGA器件,而非單步(整片)的全器件配置。按照這種新穎的思路,我們的策略是在上電時(shí)使用最高優(yōu)先級(jí)比特流僅載入時(shí)序關(guān)鍵模塊,然后再載入非時(shí)序關(guān)鍵模塊。這種方法最大程度地減少了初始配置數(shù)據(jù),從而最大程度地減少了在面向時(shí)序關(guān)鍵設(shè)計(jì)的FPGA器件啟動(dòng)時(shí)間。
FAST STARTUP對(duì)比部分重配置
Fast Startup允許FPGA設(shè)計(jì)盡快啟動(dòng)設(shè)計(jì)的關(guān)鍵模塊,關(guān)鍵模塊的啟動(dòng)速度比標(biāo)準(zhǔn)全配置方法要快得多[2]。雖然,從本質(zhì)上來講Fast Startup利用了部分重配置,但它與這種方法的傳統(tǒng)概念所有不同。部分重配置的初衷是將完整設(shè)計(jì)作為可在運(yùn)行時(shí)修改的初始配置使用。相反,F(xiàn)ast Startup已經(jīng)使用了一個(gè)初始的部分比特流,以在上電時(shí)僅僅配置FPGA器件的一個(gè)特定(很小的一部分)區(qū)域。第一次配置僅包含完整FPGA設(shè)計(jì)中必須配置和快速運(yùn)行的那些部分。而剩下的部分則在以后、在運(yùn)行時(shí),利用部分重配置進(jìn)行配置。圖2說明了這一順序概念。
工具流程概述
Fast Startup的工具流程依靠設(shè)計(jì)保存流程,來創(chuàng)建針對(duì)時(shí)序關(guān)鍵子系統(tǒng)及非時(shí)序關(guān)鍵子系統(tǒng)的部分比特流。
設(shè)計(jì)保存流程將FPGA設(shè)計(jì)分割為邏輯模塊(稱為“分區(qū)”)。分區(qū)構(gòu)成了層次邊界,將內(nèi)部模塊與設(shè)計(jì)中的其他組件相互隔離。分區(qū)一旦實(shí)現(xiàn)(即完成布局和布線),就能被其他實(shí)現(xiàn)運(yùn)行導(dǎo)入,以按照每個(gè)實(shí)例中完全相同的方式實(shí)現(xiàn)該分區(qū)的模塊[3]。
因此,使用Fast Startup方法的第一步是將完整的FPGA設(shè)計(jì)分成兩部分:即含有時(shí)序關(guān)鍵子系統(tǒng)的高優(yōu)先級(jí)分區(qū)和針對(duì)其余組件的低優(yōu)先級(jí)分區(qū)。
圖1-計(jì)算出的Spartan-6配置時(shí)間的對(duì)數(shù)表示(按最壞情況計(jì)算)
圖2 – Fast Startup概念:順序配置
評(píng)論