FPGA已經被廣泛用于實現大規模的數字電路和系統,隨著CMOS工藝發展到深亞微米,芯片的靜態功耗已成為關鍵挑戰之一。文章首先對FPGA的結構和靜態功耗在FPGA中的分布進行了介紹。接下來提出了晶體管的漏電流模型,并且重點對FPGA中漏電流單元亞閾值漏電流和柵漏電流進行了詳細的分析。最后根據FPGA的特點采用雙閾值電壓晶體管,關鍵路徑上的晶體管采用低閾值電壓柵的晶體管,非關鍵路徑上的晶體管采用高閾值電壓柵的晶體管,以此來降低芯片的靜態功耗。
1引言
FPGA因其可以降低成本和設計周期,已經被廣泛用于實現大規模的數字電路和系統。隨著數字電路規模越來越大,時鐘頻率越來越高,也增加了FPGA的復雜性和技術難度。在深亞微米技術下,隨著導電溝道越來越短,靜態功耗越來越大,FPGA面臨許多新的挑戰。本文首先簡單介紹了FPGA的結構和靜態功耗在FPGA中的分布,接下來介紹了晶體管漏電流的原理,提出了FPGA結構中基本單元漏電流的模型并進行了分析,最后提出降低靜態功耗的解決措施。
2 FPGA的結構和靜態功耗分布
2.1 FPGA的結構和基本組成單元
一個FPGA的結構如圖1所示。FPGA中含有規則靈活的可編程配置邏輯塊,簡稱CLB,在它們周圍是一圈可編程輸入輸出模塊,簡稱IOB,兩邊有兩列BRAM,位置是在CLB和IOB的中間。CLB、BRAM和IOB之間是互聯資源。
FPGA的功能是基于查找表LUT來實現的,LUT是SRAM的陣列來實現真值表。圖2說明了2輸入查找表的結構。
FPGA的布線互聯是基于SRAM控制的可編程開關實現的,有三種基本結構,如圖3所示。
2.2靜態功耗在FPGA不同單元中的分布
通過對0.25μm工藝的FPGA進行HSPICE仿真,靜態功耗在FPGA中不同單元的分布如圖4所示。從圖中可以看出,靜態功耗主要來自配置SRAM和布線互聯,超過整個電路靜態功耗的70%.
3 FPGA結構中基本單元漏電流分析
3.1晶體管的漏電流原理
晶體管的漏電流主要包括源漏之間的亞閾值漏電流(Isub)和柵漏電流(Igate),但隨著導電溝道的縮短,也帶來了其他的漏電流。圖5所示為在短溝道下所有的漏電流。
I1為pn結的反偏漏電流。
I2為源漏之間的亞閾值漏電流。它是在柵壓低于閾值電壓Vth時,在亞閾值區域有弱的反型而形成的電流。
I3為穿過柵氧化層形成的柵電流。它是由于柵氧化層厚度越來越薄,電子穿過柵氧化層產生的電流。
I4、I5分別為由于熱載流子效應形成的從漏端到柵的電流和從漏端到襯底的電流。
I6為源漏之間的穿通電流,它是由于在短溝道器件下源-襯底之間的耗盡層與漏-襯底之間的耗盡層越來越靠近,當這兩個耗盡層結合,發生穿通效應而產生的電流。
3.2 FPGA中基本單元漏電流分析
在FPGA中被用來做靜態漏電流模型的基本單元有:反向器、多路選擇器、SRAM單元、LUT單元、布線開關。反向器被設計為具有相同的上升、下降時序,以及盡可能小的延遲和面積開銷。所有的多路選擇器是用面積最小的晶體管來實現,SRAM單元也是用面積最小的晶體管來實現,布線開關的晶體管在面積和延遲方面做了平衡。所有基本單元中的NMOS和PMOS都被用來考慮亞閾值漏電流,但是僅僅NMOS被用來考慮柵漏電流,因為PMOS的柵漏電流要遠遠小于NMOS.當NMOS的柵端為高電平時,即有電流從柵端流向溝道,如圖6所示。
(a)反向器:反向器的亞閾值漏電流在輸入分別為“0”和“1”兩個狀態時都進行了建模,如圖7所示。當反向器的柵為“0”時,只有亞閾值漏電流通過反向器的NMOS管,PMOS管的柵漏電流被忽略。當反向器的柵為“1”時為柵漏電流通過NMOS,亞閾值漏電流通過PMOS管。
(b)多路選擇器:在FPGA中,多路選擇器是通過NMOS傳輸管結構來實現的。多路選擇器中的漏電流非常依靠輸入的狀態。圖8描述了一個4選1多路選擇器的結構,當選擇信號為(0,0)和輸入向量為(0010)時就存在亞閾值漏電流和柵漏電流,僅僅一個Q3傳輸管有亞閾值漏電流,其他三個傳輸管Q2、Q4、Q6有柵漏電流。當保持選擇信號不變,輸入向量變化到(0110)時,就會有三個傳輸管Q1、Q3、Q5有亞閾值漏電流,兩個傳輸管Q1、Q6有柵漏電流。
(c)SRAM單元:在FPGA中有大量的SRAM單元用來配置FPGA,這些SRAM在FPGA工作過程中僅僅被配置一次并且保持值不變。通常用標準的六管結構來設計配置用的SRAM并且選擇高Vth的晶體管,因為這些SRAM僅僅用作只讀模式,僅配置一次。通過高的Vth來降低亞閾值漏電流就會非常重要,在很多商業化的FPGA中都選擇高Vth SRAM單元。亞閾值漏電流通過兩個背靠背連接的反向器,柵漏電流通過傳輸管中的一個,如圖9所示。
(d)LUT單元:LUT查找表是有SRAM單元陣列和多路選擇器組成的。SRAM單元陣列來實現真值表,多路選擇器根據LUT輸入來選擇查找哪個SRAM單元。LUT的漏電流如上SRAM、多路選擇器以及反向器所述。
(e)布線開關:在FPGA中有兩種結構的布線開關,一種是BUF驅動的布線開關,另一種是傳輸管的布線開關,這兩種結構都含有NMOS傳輸管。圖10描述了第一種結構的漏電流情況,當NMOS傳輸管關掉S=0,輸入In為1,輸出Node同樣為1時,亞閾值漏電流通過反向器的PMOS管和傳輸管NMOS,柵漏電流通過反向器的NMOS管。
圖11描述了第二種結構的柵漏電流情況,當傳輸管柵為1,傳輸0時就會有柵漏電流。
在布線結構中最后一級布線開關NMOS必須去驅動BUF,當NMOS傳輸一個邏輯1會損失一個Vth,再去驅動BUF時將會有很大的靜態漏電流,如圖12所示。
為了解決這個問題,商業化的FPGA通常通過提高NMOS傳輸管的柵電壓來防止閾值電壓損失,從而降低靜態電流,如圖13所示。
3.3靜態功耗降低技術
亞閾值漏電流是靜態功耗產生的主要原因之一,降低亞閾值漏電流將有效地降低芯片的靜態功耗。亞閾值漏電流的解析模型如下公式所示:
Vt為閾值電壓,n為亞閾值擺幅系數,W為晶體管的寬度,L為長度,μ為電子遷移率,q為電子電量,Φs為硅表面勢,εsi為硅的介電常數。從式中可以看出亞閾值漏電流非常依賴閾值電壓Vt.
為了降低FPGA中的靜態功耗,可以采用雙閾值電壓的晶體管。對于關鍵路徑上的晶體管,如布線開關對速度要求高,采用低閾值電壓柵的晶體管。
對于非關鍵路徑上的晶體管,如配置SRAM,采用高閾值電壓柵的晶體管來降低靜態功耗。
通過對一個CLB的仿真,將非關鍵路徑上NMOS晶體管的閾值電壓從0.35 V提高到0.5 V,靜態電流將從原來的12μA降低到8μA.
4結束語
本文在分析了FPGA中靜態功耗的分布和基本單元的漏電流模型后,提出了使用雙閾值電壓的晶體管來降低整個芯片的靜態功耗。由于是在非關鍵路徑上使用高閾值電壓柵的晶體管來降低靜態功耗,所以對芯片的工作速度影響很小。
(審核編輯: 小王子)
分享