FPGA設(shè)計(jì)中的電源管理
掃描二維碼
隨時(shí)隨地手機(jī)看文章
過去,F(xiàn)PGA設(shè)計(jì)者主要關(guān)心時(shí)序和面積使用率問題。但隨著FPGA不斷取代ASSP和ASIC器件,設(shè)計(jì)者們現(xiàn)正期望能夠開發(fā)低功耗設(shè)計(jì),在設(shè)計(jì)流程早期就能對(duì)功耗進(jìn)行正確估算,以及管理和對(duì)與FPGA相關(guān)的各種內(nèi)部電壓及I/O電壓排序。電源管理已成為FPGA設(shè)計(jì)者的一個(gè)重要考慮因素,特別是在設(shè)計(jì)便攜式、電池供電的產(chǎn)品時(shí)。通過功率監(jiān)控設(shè)計(jì)技術(shù)能夠減少功耗、增強(qiáng)可靠性、降低生產(chǎn)成本,并減少對(duì)電源和冷卻的要求。
設(shè)計(jì)者可能會(huì)面臨的與FPGA電源相關(guān)的主要問題如下:系統(tǒng)級(jí)電源要求是什么?將要消耗多少電流?要求多大的電壓水平以及上電和斷電問題?器件的溫度條件如何,在該設(shè)計(jì)給定的溫度環(huán)境下器件能否可靠地工作?在電路板上是否需要針對(duì)發(fā)熱器件內(nèi)置冷卻裝置?
電源理論
在電子器件中,功率通常被定義為電流做功的量。器件往往將電能轉(zhuǎn)換為熱能,但遺憾的是,除非是設(shè)計(jì)一個(gè)加熱器或者是電燈泡,否則在大多數(shù)應(yīng)用中熱都被認(rèn)為是無用的。了解FPGA的熱動(dòng)力學(xué)原理將有助于設(shè)計(jì)者選擇事半功倍的方法來降低功耗??偣氖悄承╊愋偷牡凸钠骷约肮に嚬?jié)點(diǎn)和器件封裝特性的函數(shù)。
功耗的AC部分(與電路資源相關(guān))是功耗的動(dòng)態(tài)部分。AC功耗與電路資源的工作頻率和操作狀態(tài),以及電路資源的數(shù)量直接成正比。以下等式說明了降低供電電壓(最主要的因素)、開關(guān)電容、節(jié)點(diǎn)的轉(zhuǎn)換頻率或信號(hào)轉(zhuǎn)換頻率是如何影響功耗的。
CMOS FPGA的功耗主要來自兩個(gè)方面:靜態(tài)與動(dòng)態(tài)。式中的功耗用焦耳/秒或者瓦特來表示 :
式中各字符的含義為:P-功率(焦耳/秒或瓦特);V-電壓(焦耳/庫(kù)侖或伏特);I-電流(庫(kù)侖/秒或安培);R-電阻(歐姆);-每個(gè)節(jié)點(diǎn)的轉(zhuǎn)換頻率;C-開關(guān)電容;V2DD-電源電壓;F-頻率(每秒轉(zhuǎn)換的次數(shù))。
PStatic相對(duì)于PDynamic的功耗隨處理節(jié)點(diǎn)而變化。在130納米和90納米器件中,靜態(tài)功耗是總功耗的一小部分。例如,假定一個(gè)內(nèi)部邏輯工作頻率50MHz、I/O工作頻率250MHz的設(shè)計(jì)實(shí)例,在130納米FPGA(如LatticeECP或LatticeXP系列)中PStatic約為10%,而在90納米的LatticeECP2或LatticeXP2中則PStatic約為20%。動(dòng)態(tài)的轉(zhuǎn)換操作以及負(fù)載電容的充/放電消耗了大部分能量,這在很大程度上是由用戶設(shè)計(jì)來決定的。在65納米和更小的工藝節(jié)點(diǎn)上,這一傳統(tǒng)會(huì)發(fā)生變化。
晶體管物理特性在尺寸較小時(shí)會(huì)發(fā)生變化,這使得靜態(tài)泄漏非常大。由于晶體管泄漏不斷增加,靜態(tài)功耗成指數(shù)增長(zhǎng)。靜態(tài)功耗在65納米處超過動(dòng)態(tài)功耗。萊迪思(Lattice)半導(dǎo)體公司和其它FPGA供應(yīng)商主要采用改進(jìn)制造工藝,以及混合使用不同類型晶體管的方法來處理這些問題。
AC功耗與電路資源的工作頻率和操作狀態(tài),以及電路資源的數(shù)量直接成正比。以上PDynamic等式指出了供電電壓(最主要的因素)、開關(guān)電容、節(jié)點(diǎn)的轉(zhuǎn)換頻率以及信號(hào)轉(zhuǎn)換頻率是如何影響功耗的。
隨著FPGA工藝的尺寸在縮小,使得設(shè)計(jì)者從更小的晶體管和IC裸片所帶來的功耗減小中獲益。但增加的時(shí)鐘速度和大尺寸設(shè)計(jì)往往在某種程度上抵消了這些好處。FPGA結(jié)構(gòu)單元的相關(guān)功耗在不同的工藝節(jié)點(diǎn)之間也會(huì)發(fā)生變化。例如,圖1a對(duì)130納米LatticeECP和90納米LatticeECP2/M FPGA的各部分電路資源、走線以及LUT、寄存器、嵌入式存儲(chǔ)器塊(EBR)等邏輯的動(dòng)態(tài)功耗比例進(jìn)行了比對(duì)。這里假定設(shè)計(jì)中的邏輯部分利用率為90%、PLL/DLL、存儲(chǔ)器、DSP等嵌入式ASIC的利用率為100%,采用混合LVCMOS 1.2V和LVDS 2.5V DDR信號(hào)標(biāo)準(zhǔn)的I/O的利用率為80%。
雖然90納米器件中的總功耗可能有所下降,但I(xiàn)/O所占功耗的比例大大增加。對(duì)于一個(gè)特定的器件系列而言,這將影響采用何種降低功耗的策略。
熱管理
熱是IC工作時(shí)的副產(chǎn)品,必須利用工藝確保FPGA工作在規(guī)定的結(jié)溫范圍之內(nèi)。只要溫度不超過指定的環(huán)境溫度和硅片結(jié)溫的上限,半導(dǎo)體器件就能正常工作。當(dāng)超過溫度上限時(shí),IC會(huì)停止正常工作并將被損壞。在大功率應(yīng)用或高工作溫度下采用IC時(shí),熱管理是絕對(duì)必要的。
為避免出現(xiàn)可靠性方面的問題,半導(dǎo)體供應(yīng)商在器件數(shù)據(jù)表中規(guī)定了最大允許結(jié)溫。設(shè)計(jì)工程師應(yīng)對(duì)其特定設(shè)計(jì)進(jìn)行熱分析以便確保器件和封裝不超過結(jié)溫要求。內(nèi)部數(shù)據(jù)是相對(duì)的,實(shí)際值取決于各種因素,例如裸片尺寸、焊盤尺寸、氣流、電源,PCB設(shè)計(jì)及應(yīng)用本身。
盡管總功耗、環(huán)境溫度、熱阻和氣流都對(duì)器件的熱有影響,但器件數(shù)據(jù)表中規(guī)定的結(jié)溫(Tj)無疑是最關(guān)鍵的因素。例如帶有各種結(jié)構(gòu)塊(包括DSP、存儲(chǔ)器和SERDES I/O)的LatticeECP2/M,商業(yè)級(jí)器件允許的結(jié)溫是0℃至85℃,工業(yè)級(jí)器件為-40℃至100℃。器件工作在上述范圍內(nèi)時(shí),AC特性能夠得到保證。這種器件工藝的結(jié)溫可靠性限制是125℃。了解供電電壓的最大最小值會(huì)有助于設(shè)計(jì)者降低靜態(tài)功耗。
工作在較高溫度下的器件同樣意味著有較大的靜態(tài)電流(SICC)。在給定溫度下SICC和總ICC(靜態(tài)ICC和動(dòng)態(tài)ICC)的差值提供可用動(dòng)態(tài)預(yù)算。如果器件運(yùn)行時(shí)的動(dòng)態(tài)ICC高于這一預(yù)算,總ICC也比預(yù)算值高,則將導(dǎo)致裸片溫度上升至超過規(guī)定的工作條件。器件的結(jié)溫受諸多因素的影響,例如功率、環(huán)境溫度,熱阻或氣流。減少一個(gè)或多個(gè)因素會(huì)引起變化以減少器件的結(jié)溫。
當(dāng)考慮熱耗散時(shí),用到了熱阻的概念。在IC中,熱阻(()表示對(duì)于裸片表面耗散的每瓦功率(熱)而言,裸片結(jié)點(diǎn)的穩(wěn)態(tài)溫升超過一個(gè)給定的參考值。它的單位是℃/W。最普通的例子是熱阻Junction-to-Ambient (JA(℃/W),以及熱阻Junction-to-Case (JC(℃/W)。另外一個(gè)因素是熱阻Junction-to-Board (JB(℃/W)。
除了器件和封裝,電路的熱特性取決于工作溫度、器件功耗以及系統(tǒng)散熱能力。器件的最大結(jié)溫計(jì)算如下:
TJ = TA + P * θJA (1)
TJ = TC + P * θJC (2)
TJ = TB + P * JB (3)
式中的TJ、TA、TC和TB分別為結(jié)溫、環(huán)境溫度、表面(或封裝)溫度和電路板溫度(℃)。P是器件的總耗散功率。(JA通常用于自然和強(qiáng)制的對(duì)流冷卻系統(tǒng)。當(dāng)器件封裝具有一個(gè)直接安裝在PCB板或散熱片上的高導(dǎo)電性外殼時(shí),(JC非常有用。(JB則在與器件封裝相鄰的電路板溫度已知的情況下使用。
對(duì)于功率(P=Vcc * Icc)因素而言,ICC可通過各個(gè)器件數(shù)據(jù)表的功耗來估算,或者視為功率評(píng)估軟件的輸出。下圖列出了各種不同IC封裝的熱阻((JA和(JC)特性,并展示了某些封裝類型的優(yōu)勢(shì)以及氣流和靜止空氣環(huán)境的對(duì)比。
當(dāng)設(shè)計(jì)一個(gè)系統(tǒng)時(shí),設(shè)計(jì)者必須確保器件工作在系統(tǒng)環(huán)境所規(guī)定的溫度范圍之內(nèi)。這個(gè)問題應(yīng)在設(shè)計(jì)系統(tǒng)之前重點(diǎn)考慮。利用FPGA功率評(píng)估工具,設(shè)計(jì)者能夠預(yù)測(cè)器件的發(fā)熱并估計(jì)動(dòng)態(tài)功耗預(yù)算。在設(shè)計(jì)電路板之前估計(jì)器件的工作溫度還使設(shè)計(jì)者能夠更好地對(duì)功率預(yù)算和氣流進(jìn)行規(guī)劃。
管理功耗
對(duì)于一個(gè)設(shè)計(jì)者必須解決功耗問題的目標(biāo)應(yīng)用,應(yīng)采用功耗逼近的方法。第一步,設(shè)計(jì)者應(yīng)尋找降低功耗的RTL。事半功倍的方法包括目標(biāo)嵌入式模塊、小型FSM的格雷(gray)編碼,采用可減小尺寸而對(duì)性能影響不大的方式來組織各個(gè)模塊。如果FPGA是高密度的90納米器件,則應(yīng)該對(duì)I/O編程和轉(zhuǎn)換進(jìn)行仔細(xì)考慮以節(jié)省功率。其次,應(yīng)該采用可節(jié)省功耗的綜合、布局和布線優(yōu)化,例如寄存器再定時(shí)和面積優(yōu)化。最后,可反映實(shí)際工作情況的強(qiáng)大測(cè)試平臺(tái)將有助于用功率評(píng)估軟件創(chuàng)建用于后仿真分析的精確的活動(dòng)因子和轉(zhuǎn)換速率因子。
有許多設(shè)計(jì)技術(shù)可以幫助降低系統(tǒng)的整體功耗。
減小靜態(tài)功耗的方法包括:
使用睡眠模式(如果提供的話)。例如在系統(tǒng)不工作期間,可以把LatticeXP “C”(VCC= 1.8/2.5/3.3V)器件設(shè)置成睡眠模式。睡眠模式期間待機(jī)電流可減小1000倍。如果電源處于工作范圍內(nèi),則無需切換電源。
減小工作電壓。采用器件規(guī)范中VCC和VCCJ的較低值。
利用以下方法盡可能地減小工作溫度:采用較低熱阻能更好散熱的封裝;將散熱片和散熱層放置在PCB板上器件的周圍;采用諸如機(jī)械導(dǎo)管和風(fēng)扇等氣流技術(shù)。
減小I/O的開關(guān)電容和頻率。
當(dāng)睡眠模式時(shí)對(duì)I/O去耦。如果無法實(shí)現(xiàn)的話,關(guān)閉內(nèi)核電壓,只留下VCCO。
減小I/O電壓擺幅。使I/O驅(qū)動(dòng)盡可能地低。例如,如果驅(qū)動(dòng)3.3V CMOS,可以嘗試采用2.5V~3.0V VCCO。這樣做會(huì)降低抗噪聲能力,但對(duì)減小功耗十分有益。I/O采用低電壓標(biāo)準(zhǔn)。
利用壓擺率控制來減小輸出開關(guān)電流。一些FPGA能提供對(duì)LVCMOS或LVTTL輸出緩沖器的控制,這些緩沖器能被配置成低噪聲性能或者高速性能。
減小動(dòng)態(tài)(AC)的方法:
優(yōu)化綜合資源。減小設(shè)計(jì)在器件間的跨度。在緊湊型設(shè)計(jì)中采用較少的布線資源以減少功耗。
用嵌入式ASIC模塊?,F(xiàn)代FPGA中EBR、DSP和PCS模塊在通用LUT/寄存器邏輯上的功耗較低。
采用計(jì)數(shù)器/FSM模塊的信號(hào)編碼優(yōu)化。例如,16位二進(jìn)制計(jì)數(shù)器平均只有12%的活動(dòng)因子,7位二進(jìn)制計(jì)數(shù)器平均有28%的活動(dòng)因子。另一方面,7位線性反饋移位寄存器(LFSR)能以50%活動(dòng)因子進(jìn)行翻轉(zhuǎn)(即觸發(fā)),這會(huì)導(dǎo)致較高的功耗。由于活動(dòng)因子小于10%,格雷碼計(jì)數(shù)器在每個(gè)時(shí)鐘邊沿僅有一位發(fā)生變化,因此耗用的功率最少。
采用優(yōu)化的時(shí)鐘頻率。由于動(dòng)態(tài)功耗直接與工作頻率成正比,這樣可以減小功耗。設(shè)計(jì)者必須確定設(shè)計(jì)的某部分是否工作在較低時(shí)鐘速率下,以減少功耗。
采用門控時(shí)鐘優(yōu)化。由于時(shí)鐘信號(hào)始終都在轉(zhuǎn)換,會(huì)消耗大量功率,所以門控時(shí)鐘能幫助減少同步寄存器中過多的轉(zhuǎn)換操作。應(yīng)該將門控時(shí)鐘列為FPGA布線資源的最高優(yōu)先級(jí)。
時(shí)分復(fù)用(TDM)類型算法。
同步計(jì)數(shù)器與異步計(jì)數(shù)器實(shí)現(xiàn)。
FPGA功率評(píng)估工具
和仿真類似,F(xiàn)PGA熱分析是一種與傳統(tǒng)FPGA實(shí)現(xiàn)工具并行運(yùn)作的驗(yàn)證流程。在面向萊迪思FPGA的ispLEVER設(shè)計(jì)工具流程中,設(shè)計(jì)者可以在任何階段評(píng)估功耗:即利用功率計(jì)算器進(jìn)行綜合前、布線后和仿真后評(píng)估。FPGA功率計(jì)算軟件工具通??墒乖O(shè)計(jì)者在三個(gè)不同的精確級(jí)上估計(jì)功耗:
驅(qū)動(dòng)估計(jì),此時(shí)手工輸入占用的電路資源和轉(zhuǎn)換頻率。
Post-PAR,此時(shí)面向一個(gè)更精確的使用模型引入后布局和布線。
后仿真,此時(shí)為獲得更精確的活動(dòng)因子和轉(zhuǎn)換速率模型,導(dǎo)入由HDL仿真器產(chǎn)生的轉(zhuǎn)換頻率。
功率計(jì)算器采用諸如器件特性、電壓、溫度、器件參數(shù)差異、氣流、散熱片、使用的資源、活動(dòng)因子和頻率等各種輸入?yún)?shù)來計(jì)算器件的功耗。計(jì)算器求出功耗的靜態(tài)(DC)和動(dòng)態(tài)(AC)部分,以及預(yù)計(jì)的結(jié)溫(TJ)。在進(jìn)行綜合前,用邏輯塊的活動(dòng)因子和I/O切換率估算切換頻率。如果在布局和布線后使用功率計(jì)算器,則可以通過本地電路描述(NCD)數(shù)據(jù)庫(kù)導(dǎo)入實(shí)際的器件利用率。系統(tǒng)采用post-map、 post-place或post-route NCD的結(jié)果時(shí),功率計(jì)算是最準(zhǔn)確的?;诜抡娼Y(jié)果含有活動(dòng)因子和切換率的可選VCD文件將進(jìn)一步增加精確性。
可從下列方程得出AC功率:
總AC功率(資源)= KRESOURCE * fMAX * AFRESOURCE * NRESOURCE
其中,KRESOURCE是針對(duì)資源的功率常數(shù)(mW/MHz)。fMAX是運(yùn)行時(shí)的最高頻率,用MHz量度頻率。
AFRESOURCE是針對(duì)資源的活動(dòng)因子?;顒?dòng)因子為開關(guān)頻率的百分比。NRESOURCE是設(shè)計(jì)中所用資源的數(shù)目。
活動(dòng)因子(或AF%)被定義為信號(hào)激活或轉(zhuǎn)換輸出時(shí)的頻率(或時(shí)間)的百分比。與時(shí)鐘域相關(guān)的大部分資源以與時(shí)鐘相同的頻率百分比運(yùn)行或轉(zhuǎn)換。功率計(jì)算器的使用者可以手工輸入?yún)?shù),或者引入基于模擬結(jié)果的活動(dòng)因子??舍槍?duì)每個(gè)布線資源、輸出或者PFU計(jì)算出AF。如果沒有模擬結(jié)果,那么對(duì)于一個(gè)占用約30% 到70%器件資源的設(shè)計(jì),通常推薦AF%在15% 至25%之間。AP精確性取決于時(shí)鐘頻率、設(shè)計(jì)的激勵(lì)信號(hào)和最終的輸出。
I/O功耗的關(guān)鍵輸入?yún)?shù)是I/O轉(zhuǎn)換速率。用戶提供的信號(hào)(輸入情況下)或者作為設(shè)計(jì)輸出(輸出情況下)的信號(hào)決定了I/O的操作情況。I/O的轉(zhuǎn)換速率定義了它們的操作狀況。下列方程定義了輸出的轉(zhuǎn)換速率(或者TR),單位用MHz表示。
轉(zhuǎn)換速率(MHz) = 1/2 * fMAX * AF%
本文小結(jié)
設(shè)計(jì)中最關(guān)鍵的因素之一是降低系統(tǒng)的功耗,特別對(duì)于手持設(shè)備和其它現(xiàn)代電子產(chǎn)品而言。降低功耗的技術(shù)多種多樣,這取決于目標(biāo)器件的類型和設(shè)計(jì)的特性。理解FPGA功耗、靜態(tài)和動(dòng)態(tài)功耗、內(nèi)核與I/O資源將影響降低功耗的策略。采用節(jié)省功率的設(shè)計(jì)技術(shù)以及估計(jì)方法將有助于設(shè)計(jì)者滿足目標(biāo)器件的工作規(guī)范要求。





