通常來說外部電源為 FPGA 或者 CPLD 內部和外部正常工作提供電能源。實施電源方案時,設計人員應該明確知道這些供電電源 ( 也稱為“軌式電源” ) 的總功率。而且,和器件外部消耗的總功率相比,設計人員還需要考慮器件內部實際消耗的總功率 ( 稱為“熱功率”或者“耗散功率” ) ,例如,外部輸出電容負載和平衡電阻匹配網(wǎng)絡的功耗。
一、FPGA使用的電源類型
FPGA電源要求輸出電壓范圍從1.2V到5V,輸出電流范圍從數(shù)十毫安到數(shù)安培??捎萌N電源:低壓差(LDO)線性穩(wěn)壓器、開關式DC-DC穩(wěn)壓器和開關式電源模塊。最終選擇何種電源取決于系統(tǒng)、系統(tǒng)預算和上市時間要求。
如果電路板空間是首要考慮因素,低輸出噪聲十分重要,或者系統(tǒng)要求對輸入電壓變化和負載瞬變做出快速響應,則應使用LDO穩(wěn)壓器。LDO功效比較低(因為是線性穩(wěn)壓器),只能提供中低輸出電流。輸入電容通??梢越档蚅DO輸入端的電感和噪聲。LDO輸出端也需要電容,用來處理系統(tǒng)瞬變,并保持系統(tǒng)穩(wěn)定性。也可以使用雙輸出LDO,同時為VCCINT和VCCO供電。
如果在設計中效率至關重要,并且系統(tǒng)要求高輸出電流,則開關式穩(wěn)壓器占優(yōu)勢。開關電源的功效比高于LDO,但其開關電路會增加輸出噪聲。與LDO不同,開關式穩(wěn)壓器需利用電感來實現(xiàn)DC-DC轉換。
二、FPGA的特殊電源要求
為確保正確上電,內核電壓VCCINT的緩升時間必須在制造商規(guī)定的范圍內。對于一些FPGA,由于VCCINT會在晶體管閾值導通前停留更多時間,因此過長的緩升時間可能會導致啟動電流持續(xù)較長時間。如果電源向FPGA提供大電流,則較長的上電緩升時間會引起熱應力。ADI公司的DC-DC穩(wěn)壓器提供可調軟啟動,緩升時間可以通過外部電容進行控制。緩升時間典型值在20ms至100ms范圍內。
許多FPGA沒有時序控制要求,因此VCCINT、VCCO和VCCAUX可以同時上電。如果這一點無法實現(xiàn),上電電流可以稍高。時序要求依具體FPGA而異。對于一些FPGA,必須同時給VCCINT和VCCO供電。對于另一些FPGA,這些電源可按任何順序接通。多數(shù)情況下,先給VCCINT后給VCCO供電是一種較好的做法。
當VCCINT在0.6V至0.8V范圍內時,某些FPGA系列會產(chǎn)生上電涌入電流。在此期間,電源轉換器持續(xù)供電。這種應用中,因為器件需通過降低輸出電壓來限制電流,所以不推薦使用返送電流限制。但在限流電源解決方案中,一旦限流電源所供電的電路電流超過設定的額定電流,電源就會將該電流限制在額定值以下。
三、FPGA配電結構
1.集中式電源結構
對于高速、高密度FPGA器件,保持良好的信號完整性對于實現(xiàn)可靠、可重復的設計十分關鍵。適當?shù)碾娫磁月泛腿ヱ羁梢愿纳普w信號完整性。如果去耦不充分,邏輯轉換將會影響電源和地電壓,導致器件工作不正常。此外,采用分布式電源結構也是一種主要解決方案,給FPGA供電時可以將電源電壓偏移降至最低。
在傳統(tǒng)電源結構中,AC/DC或DC/DC轉換器位于一個地方,并提供多 個輸出電壓,在整個系統(tǒng)內分配。這種設計稱為集中式電源結構 (CPA),見圖1。以高電流分配低電壓時,銅線或PCB軌道會產(chǎn)生嚴重的電阻損耗,CPA就會發(fā)生問題。
圖1 集中式電源結構
2.分布式電源結構
CPA的替代方案是分布式電源結構(DPA),見圖2。采用DPA時,整個系統(tǒng)內僅分配一個半穩(wěn)壓的DC電壓,各DC/DC轉換器(線性或開關式)與各負載相鄰。DPA中,DC/DC轉換器與負載(例如FPGA)之間的距離近得多,因而線路電阻和配線電感引起的電壓下降得以減小。這種為負載提供本地電源的方法稱為負載點(POL)。
圖2 分布式電源結構
四、FPGA的管腳介紹
FPGA引腳分為兩類:專用引腳和用戶自定義引腳;
專用引腳大概占FPGA引腳數(shù)的20%~30%,也就是說其硬件編碼都是為了實現(xiàn)專用功能而編寫的。
而專用引腳又分為以下3個子類:
電源引腳:接地或陽極引腳(內核或IO)。
配置引腳:用來“下載”FPGA。
專用輸入或時鐘引腳:它們能驅動FPGA內部的大網(wǎng)線,適合于帶有大輸出端口(fanout)的時鐘和信號。
其它的引腳就是用戶引腳了。
1.用戶引腳
FPGA的大部分引腳屬于“用戶引腳”(比如所謂的“IOs",或者"I/Os",或"用戶I/Os",或"用戶IOs”,或"IO引腳",或……自己理解)。IO代表“輸入-輸出”。
注意:
用戶可以完全自定制用戶IO。它們可以被編程作為輸入,輸出或雙向IO(三向緩沖)。每個“IO引腳”被連接$到FPGA內部的IO單元上。這個“IO單元”通過VCCIO(IO加電引腳)引腳來上電。
2.IO簇
通常每個FPGA有很多VCCIO引腳(IO Power pins),都被加同樣的電壓。但是新一代的FPGA引入了“用戶IO組”??梢园袸O分為不同的組,每組加各自的電壓。這就使FPGA可以用作一個變壓轉換器了,比如對于開發(fā)板部分工作于3.3v,部分工作于2.5v的很有用。(比如cyclone III系列的接DDR2要1.8V的電壓)
3.FPGA電源
FPGA通常需要兩個電壓才能運行:一個是“核心電壓”,另一個是“IO電壓”。每個電壓通過獨立的電源引腳來提供。
內核電壓(這里簡稱VCCINT)是用來給FPGA內部的邏輯門和觸發(fā)器上的電壓。該電壓隨著FPGA的發(fā)展從5v、3.3v、2.5v、1.8v、1.5v變的越來越低。核心電壓是固定的。(根據(jù)所用FPGA的模式來確定)。IO電壓(簡稱VCCIO)是用于FPGA的IO模塊(同IO引腳)上的電壓。該電壓應該與其它連接到FPGA上的器件的電壓匹配。
實際上,F(xiàn)PGA器件本身是允許VCCINT和VCCIO相同的(比如VCCINT和VCCIO兩種引腳可以被連接在一起)。但是FPGA設計是面向低電壓內核和高電壓IO的,所以兩種電壓一般是不相同的。
命名
內部電壓Xilinx簡稱VCC,Altera簡稱VCCINT;IO電壓Xilinx簡稱VCCO,而Altera簡稱VCCIO。
五、FPGA功耗分析
外部電源為 FPGA 或者 CPLD 內部和外部正常工作提供電能源。實施電源方案時,設計人員應該明確知道這些供電電源 ( 也稱為“軌式電源” ) 的總功率。而且,和器件外部消耗的總功率相比,設計人員還需要考慮器件內部實際消耗的總功率 ( 稱為“熱功率”或者“耗散功率” ) ,例如,外部輸出電容負載和平衡電阻匹配網(wǎng)絡的功耗。
器件、輸出負載、外部匹配網(wǎng)絡 ( 如果有 ) 的總功耗通常包括以下幾部分:
待機功耗
動態(tài)功耗
I/O功耗
待機功耗來自器件待機模式下的 ICCINT 電流。內核動態(tài)功耗來自器件內部開關 ( 內部節(jié)點電容沖放電 )。 I/O 功耗來自外部開關 ( 和器件引腳連接的外部負載電容沖放電 )、 I/O 驅動和外部匹配網(wǎng)絡 ( 如果有 ) 。
熱功耗是器件封裝內部實際消耗總功率的一部分,其余部分在外部耗散掉。設計人員在確定器件本身熱傳導能力 ( 稱為熱阻 ) 能否滿足內部管芯結溫正常工作要求時,或者需要鋁熱沉等其他散熱方案來實現(xiàn)更好的熱傳導性能時,應該考慮器件內部的實際熱功耗。一般而言,待機功耗、動態(tài)功耗以及部分 I/O功耗組成了總功耗中的實際熱功耗。
1.待機功耗
由于泄漏電流的存在,器件在待機時也會消耗能量。待機功耗隨管芯大小、溫度以及工藝的變化而變化??梢岳闷骷卣鲄?shù)來模擬待機功耗,并定義為兩類:典型功耗和最大功耗。
Stratix® II 器件使用 90 nm 工藝技術,對功耗和性能進行了優(yōu)化。和前一工藝技術的器件相比,90 nm 器件由于泄漏導致靜態(tài)功耗增大,對總功耗有很大的影響。 90 nm 工藝節(jié)點的待機功耗比以前的工藝技術更依賴于管芯結溫。設計人員應重視降低結溫,以便降低總功耗的待機功耗。下面的圖 1 是待機功耗和結溫的關系。
2.動態(tài)功耗
內部節(jié)點改變邏輯狀態(tài)時會消耗器件內部動態(tài)功耗,因為它需要能量對邏輯陣列和互聯(lián)網(wǎng)絡的內部電容進行沖放電 ( 例如,從邏輯 0 變到邏輯 1) 。內核動態(tài)功耗包括導線功耗和邏輯單元 (LE) 功耗 ( 或者 Stratix II 的自適應邏輯模塊 (ALM))。 LE/ALM 功耗來自內部節(jié)點電容沖放電以及內部電阻單元的電流。導線功耗來自每個 LE/ALM 驅動外部導線電容時的沖放電電流。內核動態(tài)功耗主要來自以下結構單元:
RAM 模塊 (M512、 M4K 和 M-RAM)
DSP 乘法器模塊
鎖相環(huán) (PLL)
時鐘樹網(wǎng)絡
高速差分接口 (HSDI) 收發(fā)器
上面列出的每個單元結構總電流之和與 VCCINT (Stratix II 為 1.2V) 相乘得到動態(tài)總功耗:
動態(tài)功耗 = VCCINT × Σ ICCINT (LE/ALM, RAM, DSP, PLL, Clocks, HSDI, 導線 )
得到多個電容之和后,采用等價 ( 集總 ) 電容值計算動態(tài)功耗。例如,信號驅動輸入或者輸出時,對引腳、走線和封裝電容求和。如果明確了內部開關頻率,這一近似方法是足夠的。 Altera 利用近似曲線 ( 基于特征數(shù)據(jù) ) 來確定內部開關頻率,有效地估算大部分設計拓撲的動態(tài)功耗。估算器件資源的總功耗時,應考慮資源的最大開關頻率、估算的觸發(fā)因子、下游邏輯扇出,以及通過器件特征參數(shù)獲得的資源系數(shù)等。 Altera 的 PowerPlay 功耗分析和優(yōu)化工具包考慮了所有這些因素進行功耗估算和分析。
3、IO功耗
I/O 功耗是 VCCIO 功耗,主要來自器件輸出引腳連接的外部負載電容、阻抗模式輸出驅動電路以及外部匹配網(wǎng)絡 (如果有) 的沖放電電流。器件 I/O 功耗按下式計算:
I/O power功耗
= (有源輸出驅動數(shù) × 功耗系數(shù)) +0.5 × (管芯、封裝走線、引腳和輸出負載電容之和) ×I/O 標準電壓擺幅 × fMAX × (觸發(fā)因子/100) × VCCIO
有源輸出驅動數(shù)包括有源雙向輸出。除了上面計算的 I/O 功耗,還有其他因素影響 I/O 功耗,包括同時由 VCCIO 供電的 I/O 緩沖單元。下面的圖 2 是 I/O 緩沖模型。
如前所述, FPGA 或者 CPLD 內部要實際消耗一部分 VCCIO 功耗,外部匹配電阻網(wǎng)絡以及輸出電容負載消耗了另一部分能量。設計人員在規(guī)劃散熱管理方案時,應考慮 VCCIO 的內部功耗 ( 器件本身或者通過外部熱沉) 。作為 VCCIO 電壓穩(wěn)壓器和轉換器 ( 指軌式電源 ) 輸出功率的一部分,設計人員應考慮外部功率組成。
4.其他功耗要求
設計 FPGA 和CPLD 時,設計人員還應該考慮和總功耗有關的其他幾個因素:浪涌電流、配置功耗以及 VCCPD( 僅對Stratix II) 。
4.1 浪涌電流
浪涌電流是器件初始化上電時的電流。在上電階段,必須為器件提供最低邏輯陣列電流 (ICCINT) ,并維持一段時間。這一持續(xù)時間取決于電源提供的電流大小。如果電流較大, VCCINT 能夠迅速上升。當電壓達到額定值的 90%時,一般不再需要最初的大電流。最大浪涌電流和器件溫度成反比。隨著器件溫度的提高,上電浪涌電流下降 ( 而待機電流會隨著溫度提高而增大 ) 。
4.2 配置功耗
對于普通的 FPGA ,配置功耗是配置器件時消耗的能量。在配置和初始化階段,器件需要能量來復位寄存器,使能 I/O 引腳,進入工作模式。上電階段, I/O 引腳在配置前以及配置期間為三態(tài),以降低功耗,防止在這段時間驅動輸出。