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