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