一、前言
隨著系統(tǒng)功率預算的不斷緊縮,迫切需要新型低功率元器件。對通信基礎設施而言,電路板冷卻、機箱體積小型化以及系統(tǒng)可靠性在系統(tǒng)設計中都起著重要的作用。對e-應用,電池壽命、熱耗散和小體積尺寸是主要的設計難點。選用智能器件,輔以正確的設計技巧增加了符合功率預算的可能性。盡管可編程邏輯器件(PLD)有很好的性能,然而卻以犧牲功耗為代價。Actel公司的抗熔斷型FPGA提供低功耗且高性能應用的理想解決方案。本文涵蓋Actel eX系列以及SX/SX-A系列器件,詳細描述了器件的結構特點與設計技巧。
二、抗熔斷型FPGA的結構與特點
Actel公司的抗熔斷型FPGA是用先進的CMOS工藝制作的,內部采用專利的金屬-金屬抗熔斷元件??谷蹟嗷ミB就象純金屬互連一樣,而與用晶體管開關的SRAM互連截然不同??谷蹟嘟Y構消除了CRAM互連開關中圖騰柱結構的功耗,并且縮小了器件的尺寸,使全部連線資源都位于硅片的頂部。這種結構可以更形象地用掩埋在金屬層上的“模塊海洋”來描述,極大地減少了芯片的尺寸以及開關的電阻與電容,從而降低了功耗(圖1)。
分段式連線資源
該類器件采用分段式連線資源,其容量是連線的長度,寬度和負載的函數。分段式連線較全長式短,因而電容也較小。分段結構還允許切斷未使用連線,進一步減小了電容。當信號需要傳輸較長距離時,可將多個線段連接在一起,這是通過連線開關完成的。由于這類開關是快速且低功耗的,因此不會增加功耗與延時。eX以及 SX/SX-A結構采用稱為Fastconnet與Directconnect兩種創(chuàng)新的局部連線資源將邏輯塊連接在一起。此外,器件還具有由不同段長度組成的其它連線資源,以備需要較長距離的連線信號連接使用。
低功耗模式引腳
eX器件提供一個專用的低功耗引腳,這是降低功耗的又一種手段。它能關閉所有的內部電荷泵,將靜態(tài)電流降低至幾乎為0。當然用戶必須細心地處理某些邊緣效應,這將在下文詳細討論。
細晶粒結構
粗晶粒PLD與FPGA邏輯的效率比Actel細晶粒邏輯塊低,因而浪費了很多邏輯功能。Actel eX,SX/SX-A系列是在細晶粒4輸入MUX基本結構上構建的,且備有多個控制輸入。一個單元能實現多達5個輸入的邏輯功能,使邏輯映射功能更有效。這種細晶粒結構與大量的且分段的連線資源相結合,有助于在不犧牲性能的前提下降低功耗。
非易失性與通電時即時工作
由于Actel FPGA采用抗熔斷技術,本質上是非易失性的,在通電時能即時工作,器件在通電序列中無需進行重構,信息是永久性編程的,信息的存儲與保持不消耗電流,從而減小靜態(tài)電流,降低功耗。器件不必攜帶通電系統(tǒng)引導程序的PROM,因而是一種高性能的單片解決方案。
三、降低功耗的設計技巧
基于CMOS的設計主要消耗三類切率:內部的(短路)、漏電的(靜態(tài)的)以及開關的(電容)。當門電路瞬變時,VDD與地之間短路連接消耗內部功率。漏電功耗是CMOS工藝普遍存在的寄生效應引起的。而開關功耗則是自負載電容,放電造成的。開關功耗與短路功耗合在一起稱為動態(tài)功耗。下面介紹降低靜態(tài)功耗和動態(tài)功耗的設計技巧。
降低靜態(tài)功耗
雖然靜態(tài)電流與動態(tài)電流相比可以忽略不計,然而對電池供電的手持設備就顯得十分重要,在設備通電而不工作時更是如此。靜態(tài)電流的因素眾多,包括處于沒有完全關斷或接通的狀態(tài)下的I/O以及內部晶體管的工作電流、內部連線的電阻、輸入與三態(tài)電驅動器上的拉或下拉電阻。在易失性技術中,保持編程信息也需一定的靜態(tài)功率??谷蹟嗍且环N非易失性技術,因此信息存儲不消耗靜態(tài)電流。
下面介紹幾種降低靜態(tài)功耗的設計方法:
·驅動輸入應有充分的電壓電平,因而所有晶體管都是完全通導或關閉的。
·由于I/O線上的上拉或下拉電阻要消耗一定的電流,因此盡量避免使用這些電阻。
·少用驅動電阻或雙極晶體管,這些器件需維持一個恒定電流,從而增加了靜態(tài)電流。
·將時鐘引腳按參數表推薦條件連接至低電平。懸空的時鐘輸入會大大增加靜態(tài)電流。
·在將設計劃分為多個器件時,減少器件間I/O的使用。
eX器件LP方式引腳的使用
Actel eX系列設計了特殊的低功率“休眠”模式。在該引腳驅動至高電平800ns后,器件進入極低功率待機模式,待機電流小于100μA。在低功率模式下,所有 I/O(除時鐘輸入外)都處于三態(tài),而內核全部斷電。由于內核被斷電,觸發(fā)器中存儲的信息會丟失,在進入工作模式(在引腳驅動至低平200ms后)時,用戶需再次對器件初始化。同樣,用戶也應關閉所有通過CLKA、CLKB以及HCLK輸入的時鐘。然而這些時鐘并不處于三態(tài),時鐘就可進入器件,從而增加功耗,因此在低功率模式下,時鐘輸入必須處于邏輯0或邏輯1。
有時用戶很難阻止時鐘進入器件。在此場合,用戶可使用與CLKA或CLKA相鄰的正常輸入引腳并在設計中加進CLKINT。這樣,時鐘將通過靠近時鐘引腳的正常輸入進入器件,再通過CLKINT向器件提供時鐘資源。
采用這種輸入電路后,由于常規(guī)I/O是三態(tài)的,因此用戶不必擔心時鐘進入器件。當然,增加一級門電路會產生0.6ns的較大時鐘延時,幸好這在多數低功率設計中是可以接受的。注意應將與CLKINT緩沖器相關的CLKA或CLKB引腳接地。
此外還要注意,CLKINT只可用作連線時鐘,HCLK并不具備將內部走線網連接到HCLK的能力,因而HCLK資源不能被常規(guī)輸入驅動。換句話說,如果使用LP引腳就不能使用HCLK;使用HCLK時就應在外部截斷時鐘信號。
降低動態(tài)功耗
動態(tài)功耗是在時鐘工作且輸入正在開關時的功耗。對CMOS電路,動態(tài)功耗基本上確定了總功耗。動態(tài)功耗包括幾個成分,主要是電容負載充電與放電(內部與I/O)以及短路電流。多數動態(tài)功率是內部或外部電容向器件充、放電消耗的。如果器件驅動多個I/O負載,大量的動態(tài)電流構成總功耗的主要部分。
對設計中給定的驅動器,動態(tài)功耗由下式計算
p=CL×V 2 DD×f
式中,CL是電容負載,VDD是電源電壓,f則是開關頻率??偣氖敲總€驅動器功耗之總和。
由于VDD是固定的,降低內部功耗就要降低平均邏輯開關頻率,減少每個時鐘沿處的邏輯開關總數、減少連線網絡,特別是高頻信號連線網絡中的電容值。對低功率設計,需要從系統(tǒng)至工藝的每個設計級別中采取相應預防措施,級別越高,效果越好。
四、減少開關活動量的設計方法
減少開關動作可在設計流程中的各個級別加以控制。當然,在設計周期最初階段的結構確定影響最大。設計者應統(tǒng)盤考慮時鐘門控、總線時分復用、減少毛刺、使用功率低的數據通路元件、減少高開關信號的邏輯電平等。下面敘述某些常用的技巧。
時鐘門控
這是最廣泛使用的方法,即在器件末使用時截斷時鐘來降低功耗。然而正確地截斷時鐘十分重要。門控信號與門控邏輯應正確地設計,以消除時鐘線上的任何毛刺。再者,門控邏輯會增加時鐘的延時,影響建立時間與保持時間。由于抗熔斷是一種極快速的技術,引入的延時很小且容易控制。在使用時鐘門控時,用戶應仔細地安置門控邏輯,將時鐘網絡的延時降低到最小限度。典型的門控邏輯如圖3所示。
防護技巧
這是一種在塊輸出不用時防止輸入信號使塊開關工作的技巧。例如考慮一個乘法器,它的輸出僅在某些特定條件下才使用。在此場合可增添一個鎖存器,這樣每當輸出不用時,乘法器的輸入將阻止不必要的開關動作帶入乘法器(圖4)。一個鎖存器只需一個組合單元,并不占用過多芯片面積。
總線復用
高密度設計的布局必須留有空地并相當地展開,才可完成,這便導致連線長,每個線上開關多,這些因素產生不良的時序結果并增加了功耗。此外,塊中的邏輯趨向于分類集結在一起,總線跨越不同塊時需走過較長的距離。在一個設計中采用時分復用寬總線技術,可減少總線的數量,有利于時序和功耗。再者,在DSP設計中,數據是相關的,這表明大多數數據位并未改變狀態(tài)。攜帶相關數據的總線應盡量復用在一起,進一步減少MUX、DEMUX邏輯中的開關活動(圖5)。
減少毛刺與流水作業(yè)
毛刺是信號趨于穩(wěn)定前不必要的開關動作。每個時鐘沿改變了寄存器間組合邏輯的輸入。對每個節(jié)點而言,不同的輸入路徑有不同的延時,它將多次改變狀態(tài)。節(jié)點上的毛刺與該節(jié)點的邏輯深度,也就是節(jié)點至最初輸入的邏輯門個數有關。到達節(jié)點的邏輯錐體越深、越寬,毛刺也越多。降低邏輯深度,減少邏輯錐體的開關輸入可減少這類毛剌。流水線、時序驅動合成以及邏輯單元的合理映射能減少邏輯級的數量。
流水線是又一種技巧,它在很長組合路徑的中點引入寄存器。寄存器會增加等待時間,卻能增加速度,減少邏輯級。引入附加寄存器增加了一定的功耗,然而能極大地減少毛剌。例如,一個用ACTGEN生成的流水線16×16位不帶符號乘法器所消耗的功率比未使用流水線的同樣器件少。
降低頻繁開關轉換信號的邏輯深度
重新安排“if-else”表達式,用戶可將毛刺或快變化信號移至邏輯錐體的后部。這樣既減少開關動作的傳播,又降低了功耗。在合成時,合成工具總是試圖降低高開關概率輸入信號的邏輯級,當輸入具有同等開關概率時,最好采用平衡樹來合成邏輯。
選擇功率低的數據通路元件
不同的數據通路元件對功耗產生不同的影響。例如,脈動進位具有少扇出,從而減少了邏輯面積,降低了功耗;然而它又使用了深開關傳播,因此就有一個利弊權衡,折衷考慮。譯碼器通常是重負荷的,向它提供一個使能信號可在譯碼器不使用時防止輸出的不必要開關動作。對計數器,Gray計數器具有最低開關率,應經常使用。對內部存儲器尋址,也應使用Gray尋址。
狀態(tài)機編碼
狀態(tài)機在傳統(tǒng)上是按二進制編碼的。然而采用Gray編碼,相鄰狀態(tài)可減少瞬變的次數。有時不可能在所有狀態(tài)中使用Gray編碼,則應在狀態(tài)矢量中增加觸發(fā)器的數量以減少開關的次數。另一種方法是使用one-hot編碼,雖然該編碼使用的觸發(fā)器較多,即可減少組合邏輯的使用,在帶多個輸出且每個輸出是幾個狀態(tài)的函數的狀態(tài)機中更是如此。根據狀態(tài)機的形式,設計者可在Gray、One-hot或二進制間進行選擇。
使用異步邏輯
雖然并不經常推薦使用異步邏輯,有時它也能降低功耗。一個例子是前文已提及的時鐘門控。時鐘大約消耗30%的總動態(tài)功率。在eX、SX/SX-A系列中,每個序列元件具有連線時鐘的時鐘選擇邏輯、一個硬連時鐘(HCLK)或常規(guī)連線資源。對每個已使用的觸發(fā)器,它的時鐘選擇邏輯以時鐘速率開關。減少時鐘輸入開關有助于降低功耗。例如一個異步二進制計數器的功耗僅為同步計數器的一半。當然,異步邏輯會帶來諸如競爭狀態(tài),保持時間出錯的時序問題。因此使用異步邏輯時特別推薦運行極小-極大條件下的時序模擬法。
降低時鐘速率
雖然時鐘速率是固定的,有時也可采用低速并行而不是高速串行的方案。上文已提及,每個觸發(fā)器都有相應的時鐘選擇邏輯,時鐘切耗占總功耗的很大一部分。任何旨在減少時鐘開關動作的措施都有助于降低功耗。由于Actel的模塊和連線結構具有低功率特片,使用附加邏輯模塊來補償較低時鐘速率還是能節(jié)省功率的。