【導讀】做 FPGA 硬件設計,電源樹是極易被低估的一環。很多工程師對照手冊完成原理圖,選好 DC-DC,核對電壓、電流與上電時序,以為電源設計就完成了。等到 PCB 打板回來,卻遇到各類偶發疑難問題:FPGA 間歇性加載失敗、DDR 長時間壓力測試隨機報錯、SerDes 高速鏈路溫變后失鎖。排查時鐘、復位、信號完整性耗費大量時間,最后根源往往落在電源上。
剛開始畫原理圖時,似乎沒什么難度:VCCINT接核心電源,VCCAUX接輔助電源,VCCO按照Bank的I/O標準配置,MGT再單獨安排供電。對照數據手冊,把電壓填好,把DC-DC芯片選好,一棵電源樹看起來就差不多了。
但真正讓工程師頭疼的,往往是板子回來之后。FPGA能上電,卻無法穩定加載配置;邏輯功能看起來正常,DDR跑久了偶爾報錯;SerDes鏈路在實驗室能通,換個溫度或者跑一輪長時間測試,就開始隨機失鎖。查了半天時鐘、復位和信號完整性,最后發現問題出在電源上。
FPGA電源設計最容易踩的坑,就是把“電壓正確”當成了“電源合格”。
電源芯片輸出的電壓沒問題,不代表芯片引腳處的電源足夠干凈;上電順序符合要求,也不代表電壓爬升過程沒有問題。尤其是中高端FPGA,核心電流、瞬態響應、高速收發器噪聲和PCB寄生參數都會影響最終結果。電源樹不是把幾條電源網連起來就結束了,它直接決定整塊板子的穩定性上限。

坑一:VCCINT只看電壓和最大電流,忽略瞬態響應
VCCINT是最不能隨便處理的一條電源軌。它的電壓通常不到1V,但電流可能達到數十安培,具體取決于FPGA型號、邏輯規模、工作頻率和實際負載。更麻煩的是,FPGA內部邏輯并不是一直以固定功耗運行。當大量邏輯同時翻轉、DSP陣列集中工作,或者AI推理負載發生變化時,核心電源會面對快速變化的瞬態電流。
這時候,電源芯片的額定輸出電流再大,也不意味著電壓一定穩得住。
舉個例子,假設某條核心電源的瞬態電流變化為10A,設計給交流紋波和瞬態偏差預留的電壓預算為17mV,那么對應的目標阻抗約為:
(Z_{\text{target}}=\frac{17\text{mV}}{10\text{A}}=1.7\text{m}\Omega)
注意,這是一個簡化的預算示例,實際設計還要扣除直流誤差、溫漂、穩壓器負載調整率等因素,并根據目標頻段分析整個電源分配網絡(PDN)的阻抗。
毫歐級是什么概念?電源芯片、PCB走線、過孔、封裝和芯片內部供電路徑上的寄生參數,都可能成為影響因素。只盯著Buck芯片的數據手冊,很容易漏掉真正的問題。
避坑建議: 先用廠商提供的功耗估算工具計算負載,再根據瞬態電流、允許電壓偏差和頻率范圍制定目標阻抗。大電流核心軌通常優先考慮同步Buck、多相Buck等方案,同時檢查負載階躍響應、輸出電容配置、PCB供電路徑和散熱能力。不要因為某顆芯片標稱能輸出幾十安培,就直接認定它適合你的FPGA。
另外,VCCINT也不是簡單地追求“紋波越小越好”。真正要保證的是:在規定的工作條件和頻段內,芯片引腳處的電壓始終滿足數據手冊要求,包括直流精度、紋波和瞬態偏差。
坑二:VCCAUX、VCCO電壓一樣,就直接共用一顆電源
這是原理圖設計中很常見的省成本思路。
反正都是1.8V,為什么還要多用一顆穩壓器?如果兩個I/O Bank都是1.8V,是不是也能直接并在一起?
答案是:電壓相同,只能說明它們有合并的可能,不代表它們一定適合共用電源。
VCCAUX負責器件內部的輔助電路,VCCO則為相應Bank的I/O提供電源。兩者的負載特征、噪聲要求和供電限制并不完全相同。能否合并,首先要看具體FPGA系列的數據手冊和電源設計指南,不能拿某一款器件的規則直接套用到另一款上。
VCCO尤其值得注意。兩個Bank即使使用相同電壓,如果一個連接普通控制信號,另一個連接高速并行接口,負載變化和同時開關噪聲(SSN)也可能完全不同。共用供電路徑后,某個Bank的瞬態電流就可能影響另一個Bank。
這并不意味著每個Bank都必須配一顆獨立穩壓器。那樣做既增加成本,也未必能獲得更好的結果。真正需要判斷的是負載、電流變化、噪聲預算和供電路徑之間的關系。
避坑建議: 先按Bank整理I/O標準、工作頻率、負載和電流需求,再決定哪些電源可以合并。對于負載相對安靜、噪聲要求適中的電源,可以考慮合理共軌;對于對噪聲敏感或存在明顯負載耦合的電源,可以考慮獨立穩壓、局部濾波或優化供電路徑。
至于LDO,也不要簡單理解為“低噪聲,所以哪里都能用”。它適合電流較小、噪聲要求較高的輔助電源,但大電流下的壓差損耗會直接轉化為熱量。是否劃算,要算清楚輸入輸出壓差、負載電流、熱阻和溫升。
坑三:MGT電源照搬核心電源方案,高速鏈路遲早要排查
如果說VCCINT主要考驗大電流下的電壓穩定性,那么MGT電源更考驗噪聲控制。
高速收發器中的模擬電路對供電噪聲非常敏感。參考時鐘、PLL、發送端和接收端的模擬電路,都可能受到電源噪聲影響,最終表現為抖動增加、誤碼率上升,甚至鏈路無法穩定建立。
所以,核心電源和MGT電源不能只因為電壓接近,就采用同一套設計思路。
工程中常見的做法,是使用Buck完成主要降壓,再通過低噪聲LDO或經過驗證的濾波方案進一步抑制殘余噪聲。不過,這不是所有MGT電源都必須采用的固定模板。前級電壓余量、LDO壓差、負載電流、熱耗散和濾波器的動態響應,都需要一起考慮。
還有一個容易被忽略的問題:電源在穩壓器輸出端看起來很干凈,不代表到達FPGA引腳時依然如此。
如果MGT模擬電源的供電路徑較長,去耦電容擺放不合理,或者電源回路與高速信號、時鐘線路之間存在明顯耦合,最終的引腳噪聲仍然可能超標。
避坑建議: 設計MGT電源時,先查對應器件和收發器類型的電源要求,明確允許的紋波、噪聲頻段和瞬態限制,再確定穩壓器及濾波架構。布局時盡量縮短關鍵電源回路,做好電源與地的回流設計,并為高速模擬電源預留可測量、可驗證的測試條件。
不要等到SerDes鏈路出現隨機失鎖,才開始懷疑電源。
坑四:上電順序照著參考設計抄,卻忽略了電壓爬升過程
FPGA電源時序是另一個高頻故障源。
不同器件系列對核心電源、輔助電源、I/O電源和收發器電源的上電要求可能不同。部分AMD/Xilinx器件還有明確的推薦上電順序,以及對電源斜率、單調性和電壓偏差的限制。
這里最容易出現兩種誤區:一種是只看電源先后順序,不看電壓實際怎么爬升;另一種是參考設計能正常啟動,就認為自己的板子照著連接也一定沒問題。
實際上,穩壓器的軟啟動設置、輸出電容、負載變化和限流行為,都可能改變實際的上電波形。電源斜坡過快或過慢、爬升過程中出現平臺或回落,都可能讓啟動過程變得不可靠。具體允許范圍必須以目標器件的數據手冊為準,不能把某一系列的時間參數直接套用到所有FPGA上。
還有一個常被遺漏的角色:配置Flash。
FPGA能否正常啟動,不只取決于FPGA本身的供電。配置Flash的電源、啟動準備時間、配置接口信號狀態以及復位釋放時機,都可能影響配置流程。如果FPGA開始讀取配置數據時,Flash還沒有準備好,問題就可能表現為DONE信號不拉高、配置失敗,或者偶發啟動異常。
避坑建議: 不要只在原理圖上檢查電源時序。板子回來后,用示波器同時觀察關鍵電源軌、復位信號和必要的配置接口信號,確認實際的上電先后、斜坡形狀和穩定時間。對于存在上下電順序要求的器件,也要檢查掉電過程,而不只是驗證上電。
如果故障是“偶爾無法啟動”,優先捕獲真實上電波形,往往比反復修改RTL更有價值。
坑五:去耦電容按數量擺滿了,電源完整性卻沒有做好
“核心電源放幾顆10μF,再配一圈0.1μF”,這種做法并不是完全錯誤,問題在于它把去耦設計簡化成了容值清單。
電容的作用不是簡單地給電源“補容量”,而是在不同頻率范圍內,為負載提供低阻抗的電流路徑。真正影響效果的,除了容值,還有等效串聯電阻(ESR)、等效串聯電感(ESL)、安裝位置、過孔數量和電源回路面積。
通常,大容量電容負責相對低頻的能量儲備,中小容量MLCC負責更高頻段的去耦。但頻率分工并沒有一條適用于所有板子的固定分界線,實際效果取決于電容參數、安裝寄生參數和整個PDN的阻抗特性。
尤其是在高頻下,一顆電容即使容值很大,也可能因為安裝電感而失去預期效果。因此,把小容量去耦電容放在靠近FPGA電源引腳的位置,并盡可能縮短電源和地之間的連接路徑,往往比單純增加電容數量更有意義。
另一個容易忽略的問題是反諧振。不同容值的電容并聯后,受到各自ESL、ESR和電源平面特性的影響,可能在某些頻率出現阻抗峰值。電容越多,PDN不一定越好;盲目增加不同容值,有時反而會讓特定頻段的阻抗惡化。
避坑建議: 從目標阻抗出發,結合電容模型和PCB結構評估PDN,而不是只按參考設計統計電容顆數。布局時優先控制高頻去耦回路的面積和電感,檢查電容焊盤到電源、地平面的連接方式。對于高性能FPGA,條件允許時應進行阻抗仿真或電源完整性分析。
記住一個原則:電容放得近,不只是看它距離芯片多遠,還要看它到電源和地之間的整個電流回路有多短。
坑六:原理圖檢查得很仔細,PCB上的回流路徑卻沒人管
電源從穩壓器輸出,經過銅箔、平面、過孔和BGA焊球進入芯片,電流最終還要通過地回路返回。
這條路徑在原理圖上往往只有一個電源符號和一個GND符號,但在真實PCB上,它有電阻,也有電感。頻率越高,寄生電感造成的影響越不能忽略。
這也是為什么有些板子換了更貴的穩壓器,問題卻沒有明顯改善:真正的瓶頸可能在PCB上。
例如,去耦電容距離FPGA看起來不遠,但電源過孔和地過孔離焊盤較遠,電流必須繞一段路才能進入平面;又或者BGA扇出區域的電源與地連接不合理,導致供電回路面積變大。這些細節都會增加寄生電感,削弱高頻去耦效果。
不過,也不必把所有問題都歸結為過孔。電源平面連續性、參考地完整性、封裝寄生參數和穩壓器至負載的路徑,同樣會影響最終結果。
避坑建議: PCB布局階段就要把電源與地作為一組完整的電流回路來檢查。去耦電容的電源端和地端都要盡量靠近相應連接點;高速信號下方應保持合適、連續的參考平面;關鍵電源路徑避免不必要的繞行和狹窄瓶頸。BGA扇出區域空間緊張時,更要結合封裝引腳分布和PCB層疊設計,而不是等布線完成后再補救。
最后:電源樹設計,別停留在“能上電”這一步
FPGA電源設計最麻煩的地方,在于很多問題并不會立刻暴露。
一塊板子能下載程序、能點亮LED、能跑通一次功能演示,只能說明設計通過了最初級的驗證。進入高速接口測試、DDR壓力測試、溫度循環和長時間運行之后,電源設計的短板才可能逐漸顯現。
所以,設計電源樹時,我更建議把注意力放在三個問題上:
電壓和電流預算是否合理?不僅看額定值,還要考慮直流誤差、瞬態響應、溫升和工作條件。
電源能否按要求建立并穩定下來?不只檢查上電順序,還要檢查斜坡、復位以及配置Flash的配合。
芯片引腳處的供電是否真的滿足要求?不能只看穩壓器輸出端,要把去耦、PCB寄生參數、回流路徑和噪聲耦合一起考慮。
這三件事,分別對應電源選型、啟動可靠性和電源完整性。少了任何一項,電源樹都可能停留在“看起來沒問題”的階段。
真正靠譜的FPGA電源設計,不是把每條電源網都連對,而是知道每條電源軌為什么這樣供電,并且能通過計算、仿真和實測證明它滿足要求。
下一次畫FPGA原理圖時,別急著把電源符號一個個放上去。先把器件的電源要求、負載預算和噪聲約束整理清楚,再決定用什么穩壓器、怎么分配電源軌,以及PCB上如何實現。
前期多花一點時間,遠比板子回來后面對一個“偶爾出錯、很難復現”的故障要劃算得多。
結論
總而言之,FPGA 電源樹設計絕對不是簡單完成電源網絡連接、保證上電即可。FPGA 很多電源相關故障具備隱蔽性,初期功能測試很難暴露,往往在長時間拷機、高低溫循環、高速接口與 DDR 壓力測試階段才集中爆發。




