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