【導(dǎo)讀】盡管能夠使用各種開發(fā)工具,今天基于FPGA的系統(tǒng)中還有什么會使得完全遵循這個建議變得不切實(shí)際或過于困難呢?對電源設(shè)計師來說,在設(shè)計過程早期就考慮最壞情況而不是最佳情況的電源系統(tǒng)是有好處還是壞處呢,F(xiàn)PGA許多方面存在太多的不確定性適合并行工程嗎?
如果設(shè)計師可以在開發(fā)過程早期就滿足基于FPGA的設(shè)計,提出的功耗要求和約束條件,那么在系統(tǒng)的最終實(shí)現(xiàn)階段就能形成極具競爭力的優(yōu)勢。然而,根據(jù)整個技術(shù)文獻(xiàn)中這種自我暗示式的反復(fù)禱告,今天基于FPGA的系統(tǒng)中還有什么會使得完全遵循這個建議變得不切實(shí)際或過于困難呢?盡管能夠使用各種開發(fā)工具,如專門針對FPGA項(xiàng)目開發(fā)的早期功耗預(yù)估器和功耗分析器,但對電源設(shè)計師來說,在設(shè)計過程早期就考慮最壞情況而不是最佳情況的電源系統(tǒng)是有好處的,因?yàn)樵谠S多方面仍有太多的不確定性,比如在硬件設(shè)計完成和功耗可以測量之前,靜態(tài)小電流狀態(tài)與全速工作狀態(tài)之間的動態(tài)負(fù)載要求將如何波動。
采用并行工程(CE)技術(shù),可以為在項(xiàng)目中使用FPGA器件的開發(fā)團(tuán)隊(duì),提供一種快速方便地在當(dāng)前設(shè)計的處理性能、材料清單(BOM)成本和效率之間尋找和實(shí)現(xiàn)最有效平衡的方法嗎?理解并行工程如何影響一個團(tuán)隊(duì)的設(shè)計工作,以及它如何影響開發(fā)團(tuán)隊(duì)從項(xiàng)目一開始就解決FPGA及系統(tǒng)其余部分的電源要求的能力,都有助于回答這個問題(參考副標(biāo)題“并行工程”)。
并行工程,是一種有助于設(shè)計團(tuán)隊(duì)更加快速地發(fā)現(xiàn)和解決一起協(xié)作產(chǎn)生最終設(shè)計的各門科目之間假設(shè)脫節(jié)問題的機(jī)制。任何開發(fā)團(tuán)隊(duì)在設(shè)計開始就完全正確地獲得一個復(fù)雜系統(tǒng)的全部要求基本上是不可能的——因此盡可能早地發(fā)現(xiàn)、判斷和放棄假設(shè)與設(shè)計決策的脫節(jié)、并用能夠以可能最低的成本指導(dǎo)項(xiàng)目更接近理想結(jié)果的條件與決策來代替是更加高效的一種方法。
后期設(shè)計階段和最壞情況下,F(xiàn)PGA電源系統(tǒng)設(shè)計的復(fù)雜性和潛在后果足以證明采用并行工程方法的合理性嗎?為了回答這個問題,我們需要理解:FPGA電源系統(tǒng)設(shè)計師面臨的設(shè)計復(fù)雜性和不確定性根源是什么,這些原因如何影響他們在設(shè)計電源時必須做出的權(quán)衡決策?
復(fù)雜性和不確定性
設(shè)計團(tuán)隊(duì)中的每位成員都在經(jīng)歷復(fù)雜性和不確定性的增加——幸運(yùn)的是,提高集成度和抽象水平多少可以降低一些復(fù)雜性和不確定性,并有助于將整體復(fù)雜性保持在人類設(shè)計師能夠理解和應(yīng)付的范圍內(nèi)。正如任何會在設(shè)計后期增加其影響力的科目一樣,上游設(shè)計假設(shè)與決策可能會形成額外的復(fù)雜性與不確定性來源,如果能夠較早地協(xié)調(diào)與交流,可以最大程度地減小這些復(fù)雜性與不確定性。
電源設(shè)計是在復(fù)雜性日益增加的系統(tǒng)中這些潛在的下游科目之一。在本例中,讓我們從電源設(shè)計師的角度看一下復(fù)雜性和不確定性的來源。影響電源設(shè)計的兩個關(guān)鍵FPGA因素是電壓和電流要求。
FPGA電壓要求趨勢正在推升復(fù)雜性,因?yàn)樗鼈円笕找嬖龆嗟碾娫窜墶=裉斓母叨薋PGA不再只是需要兩個電源軌用于內(nèi)核和I/O單元以及可能第三個電源軌用于輔助功能,而是要求十個以上的外部驅(qū)動電源軌。
為什么需要的電源軌數(shù)量增加得如此顯著呢?SRAM單元可能要求比內(nèi)部邏輯門稍微高一點(diǎn)的電壓,以確??煽康娜俟ぷ?,同時還需較低的電壓用于待機(jī)模式。工業(yè)標(biāo)準(zhǔn)會防止不同的I/O單元共享相同的電源軌,從而增加所需的電源軌數(shù)量,因?yàn)樗鼈兛赡軐⒉煌腎/O單元和物理收發(fā)接口鎖定到具有不同電源噪聲極限和電壓值的不同電源。舉例來說,以太網(wǎng)工作時的I/O電壓可能不同于I2C總線。一種是板上總線,另一種是外部總線,但兩者都可以用FPGA實(shí)現(xiàn)。減少抖動或提高敏感電路(如低噪聲放大器、鎖相環(huán)、收發(fā)器和精密模擬電路)的噪聲余量,也可能增加對更多電源軌的需求,因?yàn)樗鼈儫o法與較高噪聲元件共享相同的電源軌,即使它們工作在相同的電壓。
除了要求日益增多的電源軌外,當(dāng)前FPGA的工作電壓也要比以前的FPGA低,因?yàn)檫@有助于降低功耗,提高集成度,但也增加了復(fù)雜性,因?yàn)殡娫幢仨毮軌虮3衷絹碓絿?yán)格的電壓容差要求(見圖1)。舉個例子,自從用130nm工藝生產(chǎn)FPGA以來,基于28nm技術(shù)節(jié)點(diǎn)的FPGA的內(nèi)核電壓紋波容差的公開幅度已經(jīng)降低了一半還多。誤差預(yù)算百分比已經(jīng)從5%下降到3%,并正在向2%邁進(jìn)。保持電壓容差要求與理解并滿足FPGA電流要求有關(guān)。
圖1:經(jīng)過4代工藝技術(shù)節(jié)點(diǎn)的發(fā)展,平均電壓紋波容差下降了一半還多,對電源設(shè)計師來說這就是增加復(fù)雜性的原因。
FPGA電流特征趨勢正在推動復(fù)雜性的提高,因?yàn)镕PGA中更高的密度和包含的外設(shè)/功能/IP模塊的數(shù)量正在呈摩爾定律增長——每兩代工藝節(jié)點(diǎn)相比,相同面積的硅片所容納的模塊數(shù)量基本要翻倍。雖然提供給FPGA的電壓是固定的,但每個電壓的工作電流不是固定的,會根據(jù)FPGA邏輯的實(shí)現(xiàn)方法變化而發(fā)生波動。
[page]
內(nèi)部邏輯門塊或I/O單元在高利用率和低利用率之間轉(zhuǎn)換時,電流波動異常劇烈。隨著FPGA切換到更高的處理速率,消耗電流將增加,電壓將趨于下降。一個好的電源設(shè)計要防止壓降超過電壓瞬時門限。同樣,當(dāng)FPGA切換到較低處理速率時,電流消耗將下降,電壓將趨于提高,電源設(shè)計應(yīng)防止其超過相應(yīng)的門限??傊?,可能會實(shí)質(zhì)影響電源設(shè)計的大量不確定性源自FPGA設(shè)計師如何在FPGA上實(shí)現(xiàn)系統(tǒng)。
這類不確定性特別影響FPGA系統(tǒng),部分原因是因?yàn)槭褂肍PGA的關(guān)鍵特性之一是,設(shè)計師可以創(chuàng)建任何大小的處理資源和任意數(shù)量的冗余處理資源,以便與軟件可編程處理器相比能用較短的時間和/或較低的功耗解決他們的問題。因此,雖然軟件可編程處理器擁有可以同時操作的有限處理資源,但FPGA提供了創(chuàng)建專門的、最優(yōu)的和定制的處理資源的機(jī)會,不過要求定制的電源設(shè)計。
供電
理解和管理FPGA設(shè)計師如何在設(shè)計周期早期在FPGA上實(shí)現(xiàn)高處理狀態(tài)和低處理狀態(tài)之間的轉(zhuǎn)換,將顯著影響電源設(shè)計師優(yōu)化電源設(shè)計和滿足系統(tǒng)功耗要求的可選方法。FPGA中的每個電源軌沒有要求也沒有必要采用獨(dú)立的電源,因?yàn)檫@樣會增加成本,占用太多寶貴的電路板空間。相反,電源設(shè)計師可以使用分布式電源網(wǎng)絡(luò),由降壓穩(wěn)壓器將系統(tǒng)電源降下來,然后分配給各個負(fù)載點(diǎn)穩(wěn)壓器再提供每個電壓軌。每個穩(wěn)壓器設(shè)計提供恒定的輸出電壓,只要確保輸入電壓和輸出負(fù)載電流在設(shè)計范圍內(nèi)。
有兩種基本類型的穩(wěn)壓器:線性型和開關(guān)型。與開關(guān)穩(wěn)壓器相比,線性穩(wěn)壓器更容易實(shí)現(xiàn),可以提供更小噪聲或更小電壓紋波的更穩(wěn)定輸出,并且使用成本更低,占用的電路板面積更小。然而,它們的電源轉(zhuǎn)換效率要比開關(guān)穩(wěn)壓器低很多,特別是當(dāng)輸入輸出壓差較大時。例如使用線性穩(wěn)壓器從5V產(chǎn)生1V,其轉(zhuǎn)換效率只有20%,比開關(guān)穩(wěn)壓器的近85%轉(zhuǎn)換效率低得多。
轉(zhuǎn)換效率是指輸出功率與輸入功率之比,較低的效率意味著穩(wěn)壓器在消耗功率,而不是FPGA在消耗功率。因此對于具有大工作電流的FPGA應(yīng)用來說,開關(guān)穩(wěn)壓器比線性穩(wěn)壓器更適合。一些高端FPGA系統(tǒng)的快速I/O節(jié)點(diǎn)電流可達(dá)80A。另外,由于浪費(fèi)的功耗引起的溫升將影響用于維持系統(tǒng)元件性能的散熱器或空氣對流所需的空間。一般來說,如果沒有空氣對流,每平方英寸銅耗散1W的功率將導(dǎo)致溫度升高10℃。
雖然開關(guān)穩(wěn)壓器的功效比線性穩(wěn)壓器大得多,但它有噪聲問題,即具有更大的電壓紋波,因而給電源設(shè)計師增加了縮小容差門限的挑戰(zhàn)。在電路板上正確放置開關(guān)穩(wěn)壓器件是盡量減小電氣噪聲的關(guān)鍵,而其體積稍大的元件又增加了這種挑戰(zhàn)性。
因此,在設(shè)計過程中足夠早地了解有關(guān)功耗預(yù)算方面的正確知識,有助于電源設(shè)計師合理安排正確的電路板位置和電路板空間,以便使用更高效的開關(guān)穩(wěn)壓器,或更好地使用較低效率的線性穩(wěn)壓器。
早期規(guī)劃
大部分FPGA功耗取決于FPGA設(shè)計師在系統(tǒng)開關(guān)頻率、輸出負(fù)載、供電電壓、互連數(shù)量、互連開關(guān)百分比以及邏輯與互連模塊結(jié)構(gòu)方面的實(shí)現(xiàn)選擇。這些選擇反過來又影響電源設(shè)計師的判斷和在系統(tǒng)設(shè)計方面的權(quán)衡,進(jìn)而可能影響最終系統(tǒng)性能。
幸運(yùn)的是,F(xiàn)PGA電源設(shè)計師有多種工具和技術(shù)可以用來在設(shè)計過程早期分析電源問題。舉例來說,大多數(shù)FPGA供應(yīng)商提供的早期功耗預(yù)估器和功耗分析器可幫助設(shè)計師建立功耗預(yù)算。設(shè)計師可以使用基于軟件的早期功耗預(yù)估器——基本上是美化過或文字形式的電子表格——在設(shè)計過程早期收集邏輯規(guī)模和工作速率的值與假設(shè)條件,然后估計系統(tǒng)各個部分將使用多少功耗(見圖2)。
圖2:在這個基于軟件的早期功耗預(yù)估器中顯示的工作表可以根據(jù)規(guī)劃的FPGA用途為每個電源軌提供建議的元件(Altera提供)。
早期功耗預(yù)估器可以幫助電源設(shè)計師輸入FPGA上不同子系統(tǒng)的使用率估計值。在工具實(shí)例中,快照底部欄提供的工作表用于捕獲每類資源的功耗值,包括邏輯、內(nèi)存、各種I/O和硬件信號處理資源。這些值還可以供工具中的其它工作表使用。
然而,只是估計功耗是不夠的——電源設(shè)計師需要設(shè)計電源樹以支持FPGA設(shè)計師意圖如何使用FPGA。通過估計FPGA設(shè)計總的靜態(tài)和動態(tài)功耗,這些工具可以幫助電源設(shè)計師將功耗要求轉(zhuǎn)換為合適的電源樹,同時確保設(shè)計符合設(shè)計團(tuán)隊(duì)的系統(tǒng)權(quán)衡決策,并滿足電流與電壓要求。包括圖2所示例子的一些工具可能會建議能夠滿足設(shè)計需求的電源管理器件。預(yù)估器反映了FPGA供應(yīng)商和設(shè)計師的多年經(jīng)驗(yàn),在基于實(shí)際設(shè)計實(shí)現(xiàn)的數(shù)字出來之前非常管用。
[page]
隨著FPGA設(shè)計的進(jìn)展,電源設(shè)計師開始使用電源分析工具并根據(jù)詳細(xì)信息更加精確地獲知功耗和電源要求,比如來自FPGA設(shè)計工具的網(wǎng)表輸出,設(shè)計是如何在FPGA中實(shí)現(xiàn)的等。
功耗預(yù)估和分析工具的目的是幫助設(shè)計師建立早期的功耗預(yù)算指南。有了早期的功耗預(yù)估值,設(shè)計團(tuán)隊(duì)就能同時開展電路板的設(shè)計搭建和FPGA設(shè)計,不僅節(jié)省了時間,而且一旦FPGA設(shè)計完成就會形成更具決定性的電路板設(shè)計,從而幫助團(tuán)隊(duì)完成更高效的測試和優(yōu)化。
電源設(shè)計師需要在系統(tǒng)硬件集成過程中測量和驗(yàn)證實(shí)際的FPGA性能,因?yàn)镕PGA對實(shí)際設(shè)計和環(huán)境工作條件非常敏感,可能與估計和分析工具的結(jié)果有所出入。
關(guān)于協(xié)商
有關(guān)估計和系統(tǒng)集成功耗數(shù)值可能不同的最終免責(zé)聲明并不會給我們帶來很多信心。即使使用這些數(shù)值,電源設(shè)計師仍然面臨極大的不確定性。我們繞了一大圈又回到了FPGA電源設(shè)計是否為并行工程技術(shù)做好準(zhǔn)備的原地。
與航空和微處理器團(tuán)隊(duì)如何能夠理解上游設(shè)計決策如何影響下游設(shè)計要求的例子相似,理解電源設(shè)計要求如何受電路板與FPGA設(shè)計師早期選擇的影響為每個團(tuán)隊(duì)成員提供了一種機(jī)制和機(jī)會,即他們可以在成本固定進(jìn)設(shè)計之前就開始交流和協(xié)商如何優(yōu)化整個系統(tǒng),而不只是系統(tǒng)的一個部分。
從項(xiàng)目開始就與開發(fā)團(tuán)隊(duì)的每位成員進(jìn)行早期協(xié)調(diào)和交流的主要價值是,盡可能在設(shè)計過程早期發(fā)現(xiàn)不同領(lǐng)域?qū)<?mdash;—本例中是電源設(shè)計師、FPGA設(shè)計師和電路板設(shè)計師以及位于或影響電路板的其它系統(tǒng)元件、FPGA和電源系統(tǒng)的設(shè)計師——之間的假設(shè)脫節(jié)問題。在這點(diǎn)上,受影響的組員相互間可以討論、爭論甚至爭吵,最終以較低成本開始和完成尋找及協(xié)商解決方案的過程,因?yàn)樗麄冃枰苊馑邪嘿F的重復(fù)工作以及后期設(shè)計階段的要求更改。
能夠有選擇地使用更高效的開關(guān)型穩(wěn)壓器要求掌握有關(guān)系統(tǒng)功耗要求的相當(dāng)準(zhǔn)確的預(yù)知能力,以便在正確位置有合適大小的電路板空間能被分配給電源穩(wěn)壓器和元件,從而滿足包括電壓紋波容差要求在內(nèi)的電源要求。一個不良或不準(zhǔn)確的功耗預(yù)測結(jié)果可能意味著使用較低效率的穩(wěn)壓器來滿足電壓紋波要求,但這個“紋波”給設(shè)計的其余部分提出了額外的要求,比如需要更大的電源,需要散發(fā)更多的熱量,甚至使FPGA工作在較慢的速率。
功耗估計和分析工具的一個重要價值是讓每個人都盡早地關(guān)注功耗。在當(dāng)代設(shè)計中,F(xiàn)PGA可能是影響系統(tǒng)性能和功耗的主要因素——因此也可能是電源設(shè)計的主要考慮部分。從設(shè)計過程一開始就與電源設(shè)計師協(xié)同工作有助于討論系統(tǒng)權(quán)衡決策以及如何使用FPGA、然后使用工具獲得更早更精確的功耗估計。
成功并不是在你開始之前就使所有系統(tǒng)要求變得正確,而是盡可能早的發(fā)現(xiàn)和放棄不好的決策,并以可能最低的成本用能夠指導(dǎo)項(xiàng)目更接近理想輸出的決策代替之。結(jié)果是在后續(xù)項(xiàng)目中你能收獲到更早、更方便和更精確的功耗預(yù)測的好處。
在我開展一些航空集成產(chǎn)品團(tuán)隊(duì)項(xiàng)目(我們的并行工程版本)時,我們使用了80-20規(guī)則的一個變化版本:80%的項(xiàng)目成本是由前面20%的設(shè)計工作確定的。在那以后,你可望做到的最好一點(diǎn)是應(yīng)付剩余的20%。當(dāng)我們知道最少部分對項(xiàng)目最終成本有最大影響時,我們就能高效地做出決策。
這個表達(dá)可能并不完全準(zhǔn)確,但似乎里面又暗含了某些智慧。更重要的是,它提供了在你糾結(jié)于80%之前提出問題并盡可能合理地與擁有不同領(lǐng)域?qū)<业膱F(tuán)隊(duì)成員合作的警告和提醒,以免在項(xiàng)目到達(dá)最終開發(fā)階段時后悔莫及。
副標(biāo)題
并行工程
在美國國防部防御分析研究所于1988年發(fā)表的一份報告中是這樣描述并行工程的:它是針對產(chǎn)品及其相關(guān)工藝的一體化并行設(shè)計的一種系統(tǒng)性方法,包括制造和支持。這種方法試圖引導(dǎo)開發(fā)人員從一開始就考慮從概念直到廢棄的產(chǎn)品生命周期中的所有元素,包括質(zhì)量、成本、計劃和用戶要求(參考文獻(xiàn)1)。并行工程與許多其它術(shù)語類似和重疊,比如協(xié)作工程、同步工程以及綜合性產(chǎn)品開發(fā)。
早期,對于需要兩個或多個人一起工作的每個項(xiàng)目來說,總是存在某種形式的并行工程,但現(xiàn)代并行工程依賴于信息和通信技術(shù)將更大的多科目開發(fā)團(tuán)隊(duì)組織在一起工作,并且用比以往任何時候都更快的速度分享新項(xiàng)目信息。雖然許多并行工程說明強(qiáng)調(diào)的是并行設(shè)計可以縮短產(chǎn)品開發(fā)時間,但需要提醒的是,并行工程的最重要機(jī)制是它能用來更加快速地發(fā)現(xiàn)協(xié)同工作以生成最終設(shè)計的各種科目之間的假設(shè)脫節(jié)問題。隨著生產(chǎn)系統(tǒng)中出現(xiàn)的復(fù)雜性和這些脫節(jié)問題結(jié)果的增加,較早發(fā)現(xiàn)和解決脫節(jié)假設(shè)的好處會超過因協(xié)調(diào)與通信而增加的成本。
航空項(xiàng)目是最早采用現(xiàn)代并行工程方法的,目的是發(fā)現(xiàn)負(fù)責(zé)原型創(chuàng)建、制造和維修產(chǎn)品的團(tuán)隊(duì)之間的脫節(jié)。許多最早發(fā)現(xiàn)的假設(shè)脫節(jié)發(fā)生在設(shè)計過程中上游和下游任務(wù)之間。例如,在原型創(chuàng)建期間作出的決策可能使得制造或維修更加困難和昂貴——與此同時,如果他們采用稍有不同的方法,可能就可以高效地滿足他們的要求,對下游團(tuán)隊(duì)的任務(wù)要求幾乎沒有或非常少的影響。發(fā)現(xiàn)和解決載人安全系統(tǒng)中的脫節(jié)假設(shè)的好處要遠(yuǎn)遠(yuǎn)超過整個設(shè)計過程中因不同團(tuán)隊(duì)之間的協(xié)調(diào)與通信而增加的成本。
多年以后,新型微處理器的開發(fā)開始受益于處理器架構(gòu)師、提供編譯器等軟件開發(fā)工具的團(tuán)隊(duì)和其它軟件開發(fā)人員之間的早期并行或協(xié)作開發(fā)工作。處理器架構(gòu)開始采納可以簡化編譯器開發(fā)人員必須作出的假設(shè)的決定和功能——從而導(dǎo)致更快、更小和更高效的生成代碼。選擇不同但等效的架構(gòu)方法的好處是,即使軟件系統(tǒng)的復(fù)雜性和成本還在快速增加,但可以實(shí)現(xiàn)更好的編譯后代碼性能。
在上述每個案例中,盡早并頻繁地與系統(tǒng)開發(fā)團(tuán)隊(duì)的其他成員開展協(xié)作和交流所需的額外付出完全可以被發(fā)現(xiàn)假設(shè)中的錯誤和脫節(jié)帶來的更大好處所抵消,因?yàn)檫@時這些問題的協(xié)商和解決代價較低。