【導讀】現代FPGA是有史以來(lái)最復雜的集成電路之一,它們采用最先進(jìn) 的晶體管技術(shù)和頂尖的架構,以實(shí)現令人難以置信的靈活性和 最高的性能。隨著(zhù)時(shí)間的推移和技術(shù)的進(jìn)步,這種復雜性決定 了,在用FPGA設計和實(shí)現系統時(shí),需要做出某些妥協(xié)。這一點(diǎn) 在電源中最為明顯,FPGA每次更新?lián)Q代,電源都要提高精度、 靈活性、可控性、效率和故障感知能力,還要減小體積。
可能有些讀者會(huì )質(zhì)疑本文的標題, 乍一看,說(shuō)“FPGA的護理和喂養(care and feeding)”似乎完全不合適。然而,對于這種反對意見(jiàn)的答案很簡(jiǎn)單:英語(yǔ)是一個(gè)有趣的語(yǔ)言。雖然人們對于“care and feeding”這一說(shuō)法何時(shí)開(kāi)始流行莫衷一是,但人們都知道,這個(gè)說(shuō)法起源于簡(jiǎn)單的農業(yè)時(shí)代,目前已經(jīng)被人們普遍使用(濫用),指任何脆弱或不穩定的東西。在本文中,這一說(shuō)法可謂一針見(jiàn)血。雖然對于FPGA是否需要“喂養”, 人們充滿(mǎn)爭議,但我們可以肯定的是,FPGA的確需要“護理”!
FPGA電源要求(解讀數據手冊)
工程師應該將大部分時(shí)間用于編程——他們不希望花費時(shí)間和精 力去考慮如何設計合適的電源。實(shí)際上,最佳供電方案就是采用 一種既能滿(mǎn)足項目當前需求,又能達到項目升級發(fā)展需求的,強 大、靈活且行之有效的設計方案。在此,我們將仔細考察一些重 要的電源規格及其含義。
電壓精度
內核電源電壓是平衡 FPGA 功耗和性能的、最重要的關(guān)鍵要素之一。規格文檔給出了一系列可接受的電壓,但總的電壓范圍并不 是問(wèn)題的全部。與所有事物一樣,需要進(jìn)行權衡和優(yōu)化。
表1是當下流行的 Altera Arria 10 FPGA 的內核電壓規格示例。雖然這些數字是Arria 10特有的數據,但它們代表了其他 FPGA 內核電壓要求。電壓范圍為標稱(chēng)電壓另加±3.3%的容差。在此電壓窗口 內,FPGA會(huì )正常運行,但問(wèn)題的全貌要復雜得多。
表1. Altera Arria 10內核電壓規格

注意標有“SmartVID”的行,其電壓范圍為 0.82 V 至 0.93 V。這表示,當 FPGA 通過(guò) SmartVID2 接口(詳見(jiàn)后文)請求自身的內核電壓 時(shí),FPGA 可以接受的各種電壓。該 SmartVID 規格表明了有關(guān) FPGA 的一個(gè)基本事實(shí):FPGA 可以在不同電壓下運行,具體取決于其特 定的制造容差以及采用的特定邏輯設計。FPGA的靜態(tài)電壓可能各不相同。電源必須具備響應和適應能力。
設計目標是產(chǎn)生恰好能滿(mǎn)足編程功能需求的性能水平,不消耗不必要的功率。根據半導體的物理特性以及 Altera、Xilinx®(圖1)和 其他公司公布的數據可知,動(dòng)態(tài)和靜態(tài)功率會(huì )隨著(zhù)內核 VDD 的增加而顯著(zhù)提高,因此我們的目標是確保,給 FPGA 提供的電壓剛好達到其時(shí)序要求即可。功耗過(guò)大無(wú)助于提高性能。實(shí)際上,功耗過(guò)多會(huì )使情況變得更糟,因為晶體管泄漏電流隨著(zhù)溫度的升高而增加,從而消耗更多不必要的功率。由于這些原因,當務(wù)之急是優(yōu) 化設計和工作點(diǎn)的電壓。

圖1. Xilinx Virtex V功率與內核VCC。
這種優(yōu)化過(guò)程需要非常精確的電源才能獲得成功。必須將調節器 誤差納入誤差預算,并從可用于優(yōu)化的可用電壓范圍中減去。如 果內核電壓降至要求電壓以下,則FPGA可能因時(shí)序錯誤而發(fā)生 故障。如果內核電壓漂移至最大規格值以上,結果可能會(huì )損壞 FPGA,或者可能會(huì )在邏輯中形成保持時(shí)間故障。為了防止所有 這些情況,必須考慮電源容差范圍,并且指令電壓必須保持在 規格限值以?xún)取?/div>
問(wèn)題是大多數電源調節器都不夠準確。調節電壓可能是指令電壓 容差范圍內的任何電壓,可能隨負載條件、溫度和老化而漂移。 保證 ±2% 容差的電源可以在 4% 的電壓窗口內任意調節電壓。為 了補償電壓可能比下限值低2% 的問(wèn)題,必須將指令電壓提高到 比時(shí)序要求 2%的水平。如果調節器然后漂移到比指令電壓高 2% 的水平,它將在比該工作點(diǎn)所需的最小電壓高 4% 的水平運行。這仍然符合FPGA的指定電壓要求,但卻浪費了大量功率(圖2)。

圖2. 電源調節器容差權衡。
解決辦法是選擇能支持更嚴格的電壓容差的電源調節器。容差 為±0.5%的調節器可以在要求工作頻率下,在更接近最小規格要 求的范圍內工作,并且保證與所需電壓的偏離幅度小于1%。這 種情況下,FPGA會(huì )正常工作,并且其功耗將達到該工作條件下 的最低水平。
LTC388x 系列電源控制器可在較寬的可配置電壓范圍內,保證調 節輸出電壓容差優(yōu)于±0.5%。LTC297x 系列電源系統管理器可保證 調整后的電壓調節器容差優(yōu)于±0.25%。在這些精度條件下,對于FPGA,顯然都能使其功耗與性能之間達到最佳平衡。
熱管理
就電源精度而言,一個(gè)更微妙的意義體現在熱預算當中。由于靜 態(tài)功耗遠遠沒(méi)有達到可以忽略不計的程度,因此FPGA即使在無(wú)所 事事的情況下也會(huì )升溫。溫度升高會(huì )導致更多的靜態(tài)功耗,從而 進(jìn)一步提高工作溫度(圖3)。向電源添加不必要的電壓只會(huì )使該 問(wèn)題變得更加糟糕。不準確的電源需要工作電壓保護段,確保有 足夠的電壓來(lái)完成此項工作。由容差、系統組件變化和工作溫度 的變化引起的電源電壓不確定性可能產(chǎn)生明顯高于所需最小值的 電壓。當施加到FPGA時(shí),這種額外的電壓可能導致熱效應,甚至 可能在高處理負載下導致熱失控。

圖3. 電源電流與工作溫度的關(guān)系。
補救措施是選擇一種非常精確的電源,該電源僅產(chǎn)生恰當且不超過(guò)必要的電壓,這正是 ADI 電源系統管理 (PSM) 器件所擅長(cháng)的。
SmartVID
SmartVID 是 Altera 公司出品的一種技術(shù),該技術(shù)用于按照FPGA本身 的要求,為每個(gè) FPGA 提供最佳電壓。FPGA 內部有一個(gè)寄存器,其 中包含一個(gè)因器件而異的電壓(已在出廠(chǎng)中編程),可保證 FPGA 高效運行。FPGA 內部編譯的一項IP功能可以讀取該寄存器,并通過(guò) 外部總線(xiàn)向電源發(fā)出請求,要求提供這個(gè)精確的電壓(圖4)。一 旦達到電壓要求,它就會(huì )在運行期間保持靜止。

圖4. Altera SmartVID結構。
SmartVID 應用對電源的要求包括特定的總線(xiàn)協(xié)議、電壓精度和速 度??偩€(xiàn)協(xié)議是 FPGA 用于將其所需電壓傳送到功率調節器的幾 種方法之一。在可用的方法中,PMBus 最為靈活,因為它可以 滿(mǎn)足最廣泛的電源管理IC的需求。SmartVID IP 使用兩個(gè) PMBu s指令:VOUT_MODE 和VOUT_COMMAND,用于命令符合 PMBus 標準的功率調節器達到正確的電壓。
調節器的電壓精度和速度要求包括自主引導電壓(在PMBus激活之 前),能每10毫秒接受一個(gè)新電壓指令,在電壓調整階段每 10 毫秒能步進(jìn) 10 mV,并且能在10毫秒的步進(jìn)時(shí)間內穩定在目標電壓30 mV (~3%)范圍內,最終升至指令電壓并在FPGA工作期間保持靜止。
雖然 Altera 使用的是 SmartVID 技術(shù),但業(yè)界使用的其他類(lèi)似技術(shù)也 可以完成相同的任務(wù)。一種最簡(jiǎn)單的方法是在工廠(chǎng)測試每塊電路板,并在電源的非易失性存儲器中編程一個(gè)精確的電壓,優(yōu)化該 特定電路板的性能。使用該技術(shù)時(shí),不需要進(jìn)一步干預,電源就能在正確的電壓下工作。這是搭載EEPROM 的電源管理器或控制 器的優(yōu)點(diǎn)之一。
LTC388x 系列電源控制器可滿(mǎn)足 Altera SmartVID 的所有要求。此外,LTM4675/LTM4676/LTM4677 µModule 調節器可以輕松滿(mǎn)足這些 要求,而且通過(guò)單一緊湊的形式提供了完整的解決方案。
時(shí)序收斂
任何邏輯模塊的計算速度均取決于其電源電壓。在限值范圍內, 電壓越高,性能越快。我們已經(jīng)看到,為什么不能采用簡(jiǎn)單的辦 法,即在最高電壓下運行,保證獲得最佳速度。另一方面,我們必須使工作電壓足夠高,能滿(mǎn)足應用需求,如圖5所示。

圖5. FPGA工作頻率與VDD之間的平衡關(guān)系。
圖5的一個(gè)重要啟示是,當特定設計達不到其邏輯時(shí)序要求并處 于故障區域時(shí)可以采取哪些措施。通常,在將設計轉化成硬件 之前,很難準確定義正常工作與故障之間的界限,也無(wú)法預先 確定它將在哪個(gè)特定電壓下超過(guò)時(shí)序要求。唯一的選擇是提前確 定一個(gè)遠高于最小值的電壓,以浪費功率為代價(jià)來(lái)保證功能;或 者設計一種靈活的電源,以在測試時(shí)適應硬件需求,甚至在采用 SmartVID 技術(shù)的情況下,能在加電時(shí)適應硬件需求。適應未知需 求的能力使得 ADI PSM 器件的精度更具價(jià)值,因為 FPGA 設計師可以在實(shí)際設計階段和任何開(kāi)發(fā)階段在功耗與性能之間進(jìn)行權衡。
推薦閱讀: