??? 一個復(fù)雜的系統(tǒng)設(shè)計擁有5年或10年市場生命的日子已經(jīng)一去不復(fù)返了,。系統(tǒng)要求正以爆炸式的速度在改變。I/O" title="I/O">I/O標準,、數(shù)據(jù)通信標準,、系統(tǒng)性能要求及對系統(tǒng)功能性的需求呈現(xiàn)出前所未有的快速變化。系統(tǒng)設(shè)計者有以下兩種選擇:
??? (1)當系統(tǒng)在市場上不再具有競爭力時,,只有重新設(shè)計具有確定功能的系統(tǒng)以滿足新的市場要求,。
?? ?(2)設(shè)計基于FPGA的系統(tǒng)并使之能不斷更新,可采用在系統(tǒng)重構(gòu)" title="重構(gòu)">重構(gòu)或者現(xiàn)場邏輯更新,。延長目前系統(tǒng)的壽命,,擴展已安裝在現(xiàn)場設(shè)備的功能和性能,排除故障而不需要改動硬件。無需停止系統(tǒng)的運行,,就能以可靠和安全的方式重構(gòu)已應(yīng)用在現(xiàn)場的FPGA,。充分利用FPGA能賦予產(chǎn)品新生命的特點。
??????????????????????????????????????? 現(xiàn)實世界的需求
??? 越來越多的系統(tǒng)設(shè)計者正在利用FPGA的重構(gòu)功能,,在開始系統(tǒng)設(shè)計和開發(fā)之后,,解決各種問題,擴展系統(tǒng)的生命周期和功能,。例如一個主流服務(wù)器供應(yīng)商應(yīng)該可以支持其FPGA現(xiàn)場邏輯更新硬件系統(tǒng),。開發(fā)、應(yīng)用和維護成千上萬個分布在各地的服務(wù)器并進行遠距離的系統(tǒng)更新是一個基本要求?,F(xiàn)在技術(shù)人員不再需要從系統(tǒng)中替換或更新FPGA。所有的工作都可以遠距離地進行而不需要技術(shù)人員親臨現(xiàn)場,。
??? 一家中國領(lǐng)先的電信供應(yīng)商(提供基站,、網(wǎng)絡(luò)服務(wù)器、路由器等產(chǎn)品)要求能夠支持遠距離的現(xiàn)場更新來排除故障,,并增加新的特性和服務(wù),。終端客戶要求所有系統(tǒng)在更新時的系統(tǒng)停機時間小于50ms。
??? 基于PC的產(chǎn)品,、廣播視頻附加卡的制造商利用FPGA具有現(xiàn)場邏輯更新的特點來實現(xiàn)視頻算法和提供增強的特性并支持用戶對設(shè)計進行更新,。制造商所關(guān)注的是遠距離更新過程" title="更新過程">更新過程的可靠性。嵌入在這些視頻算法中的知識產(chǎn)權(quán)(IP)需要嚴密保護,,因此現(xiàn)場邏輯更新期間FPGA的代碼也是非常重要的,。
?????????????????????????????????????FPGA現(xiàn)場邏輯更新需求
??? 為了有效地進行FPGA的現(xiàn)場邏輯更新,有4個方面的基本要求:
?? ?(1)嵌入式編程,。系統(tǒng)微處理器必須能對FPGA編程,。系統(tǒng)微處理器能夠?qū)PGA供應(yīng)商提供的C代碼程序進行編譯并執(zhí)行,于是微處理器提供外界與目標FPGA的通信鏈接(通過Ethernet,、Internet,、RF和陸線)。微處理器可以訪問新的FPGA編程文件,,下載這個新的位流至專門的存儲器芯片,,或者至FPGA的片上Flash存儲器,然后控制FPGA本身的重構(gòu),。
?? ?(2)最小的系統(tǒng)停機時間,。越來越多的用戶對“5個9”(99.999%)系統(tǒng)感興趣。FPGA被再次編程時,,系統(tǒng)是不工作的,,因此這個過程必須盡可能地短。這是FPGA系統(tǒng)設(shè)計者必須仔細研究的問題。對基于SRAM的FPGA,,從專門的SPI Flash或E2PROM引導(dǎo)存儲器下載新的位流所需的時間大約是數(shù)十到數(shù)百毫秒,。如果設(shè)計者利用單片、非易失" title="非易失">非易失,、具有專門Flash配置存儲器的基于SRAM的FPGA,,最長的時間是2ms。
?? ?引導(dǎo)PROM(基于SRAM的FPGA)的實際配置或者片上Flash存儲器(SRAM/Flash FPGA)將采用后臺模式,,同時系統(tǒng)仍然工作,,因此實際下載新位流到FPGA SRAM所需的時間唯一決定了在用新的配置工作之前,系統(tǒng)將停止工作多久,。
?? ?(3)必須控制I/O的狀態(tài),。FPGA的輸出通常驅(qū)動系統(tǒng)內(nèi)的關(guān)鍵控制信號(芯片復(fù)位、電源使能等),。FPGA配置期間,,非常關(guān)鍵的是這些信號仍然驅(qū)動在正確的狀態(tài)。這些信號中的干擾會引起系統(tǒng)的復(fù)位,、再引導(dǎo),。對于FPGA設(shè)計者來說,這是另外一個必須仔細評估的問題,。一旦進入編程模式,,許多FPGA結(jié)構(gòu)默認I/O為三態(tài),這會引起中斷系統(tǒng)運行,。市場上其他FPGA解決方案允許用戶對I/O的狀態(tài)逐個預(yù)定義(即高,、低、高阻或采樣,,然后驅(qū)動到電流值),,支持透明和有序的系統(tǒng)暫停。
?? ?(4)必須控制器件的狀態(tài),。退出配置過程之前控制FPGA內(nèi)的邏輯狀態(tài)是基本的要求,。在器件配置完成之后,使器件的邏輯立即輸出正確的電平,。如果必要的話,,鎖相環(huán)(PLL)也必須再次鎖定。這些功能都是基本的,,使系統(tǒng)從短暫的休眠狀態(tài)過渡到喚醒,,使FPGA復(fù)原進入正常工作狀態(tài)。FPGA設(shè)計者會發(fā)現(xiàn)市場上大多數(shù)易失(基于SRAM)的FPGA不支持這些關(guān)鍵的功能,。然而,,單片非易失SRAM/Flash FPGA確實支持這些要求。
?? ?作為現(xiàn)場邏輯更新的過程,圖1列舉了萊迪思" title="萊迪思">萊迪思“透明現(xiàn)場重構(gòu)”的4個步驟,。萊迪思的FPGA結(jié)構(gòu)支持這個流程,。
?
??? 以上是訪問FPGA的基本步驟,可以通過它們刷新和延長基于FPGA設(shè)計的生命,。然而,,還應(yīng)當考慮現(xiàn)場邏輯更新的可靠性和安全性:
?? ?· 如果新的以及更新的FPGA位流在遠距離的配置過程中損壞,系統(tǒng)將發(fā)生什么情況,?
?? ?· 嵌入于FPGA位流中的知識產(chǎn)權(quán)核(IP)在現(xiàn)場邏輯更新過程中是如何保護的,?
?????????????????????????????? 針對現(xiàn)場邏輯更新可靠性的雙引導(dǎo)方案
?? ?更新存儲的FPGA配置時,總是會有風險,。電源和通信的故障導(dǎo)致?lián)p壞配置和系統(tǒng)不能正常運行,。防止這種情況發(fā)生的一種方法是使用雙引導(dǎo)方式,將第二個或“正確的”配置存儲在引導(dǎo)存儲器中,,專門用來應(yīng)對配置失敗的情況,。采用這種方法,系統(tǒng)總是能夠恢復(fù),。一些基于SRAM的FPGA結(jié)構(gòu)在單片SPI Flash引導(dǎo)存儲器中支持多引導(dǎo)映射(或配置位流)。有些非易失SRAM/Flash FPGA在片內(nèi)存儲有效的引導(dǎo)映射,,在專門的SPI Flash引導(dǎo)存儲器中含有正確的引導(dǎo)映射,。
??? 作為雙引導(dǎo)實現(xiàn)的例子,圖2展示了LatticeXP2系列非易失,、嵌入式閃存的功能,。
?
?
?????????????????????????????????????? 針對設(shè)計安全性的加密
??? 現(xiàn)在市場上有一些FPGA支持位流加密(128位AES加密)。FPGA系統(tǒng)設(shè)計者設(shè)立了一個密鑰,,這個密鑰編程至FPGA,,且合并入位流。加密位流傳入FPGA,,器件具有解密引擎,,與存儲的密鑰組合在一起,在下載至SRAM配置存儲器之前對加密的位流解密,。這樣在現(xiàn)場邏輯更新過程中敏感的設(shè)計數(shù)據(jù)得到了保護,。
?? ?作為128位AES加密流的實例,圖3展示了非易失,、嵌入式閃存LatticeXP2 FPGA的加密功能,。
?
??????????????????????????????????????????? 總? 結(jié)
??? 越來越多的系統(tǒng)設(shè)計者要求能在現(xiàn)場更新基于FPGA的系統(tǒng),延長設(shè)計的壽命以免設(shè)計很快被廢棄,。針對現(xiàn)場邏輯更新,,這個挑戰(zhàn)是用支持4個基本要求的FPGA進行設(shè)計來應(yīng)對,此外還要滿足現(xiàn)場更新可靠和安全的要求。幸運的是現(xiàn)在市場上已有多款FPGA支持所有這些要求,。