曹正州,曹 靚
(中國電子科技集團(tuán)公司第58研究所,江蘇 無錫 214035)
FPGA因其可以降低成本和設(shè)計(jì)周期,已經(jīng)被廣泛用于實(shí)現(xiàn)大規(guī)模的數(shù)字電路和系統(tǒng)。隨著數(shù)字電路規(guī)模越來越大,時(shí)鐘頻率越來越高,也增加了FPGA的復(fù)雜性和技術(shù)難度。在深亞微米技術(shù)下,隨著導(dǎo)電溝道越來越短,靜態(tài)功耗越來越大,F(xiàn)PGA面臨許多新的挑戰(zhàn)。本文首先簡單介紹了FPGA的結(jié)構(gòu)和靜態(tài)功耗在FPGA中的分布,接下來介紹了晶體管漏電流的原理,提出了FPGA結(jié)構(gòu)中基本單元漏電流的模型并進(jìn)行了分析,最后提出降低靜態(tài)功耗的解決措施。
一個(gè)FPGA的結(jié)構(gòu)如圖1所示。FPGA中含有規(guī)則靈活的可編程配置邏輯塊,簡稱CLB,在它們周圍是一圈可編程輸入輸出模塊,簡稱IOB,兩邊有兩列BRAM,位置是在CLB和IOB的中間。CLB、BRAM和IOB之間是互聯(lián)資源。
圖1 FPGA結(jié)構(gòu)
FPGA的功能是基于查找表LUT來實(shí)現(xiàn)的,LUT是SRAM的陣列來實(shí)現(xiàn)真值表。圖2說明了2輸入查找表的結(jié)構(gòu)。
圖2 2輸入查找表結(jié)構(gòu)
FPGA的布線互聯(lián)是基于SRAM控制的可編程開關(guān)實(shí)現(xiàn)的,有三種基本結(jié)構(gòu),如圖3所示。
圖3 FPGA中布線開關(guān)
通過對0.25 μm工藝的FPGA進(jìn)行HSPICE仿真,靜態(tài)功耗在FPGA中不同單元的分布如圖4所示。從圖中可以看出,靜態(tài)功耗主要來自配置SRAM和布線互聯(lián),超過整個(gè)電路靜態(tài)功耗的70%。
晶體管的漏電流主要包括源漏之間的亞閾值漏電流(Isub)和柵漏電流(Igate),但隨著導(dǎo)電溝道的縮短,也帶來了其他的漏電流。圖5所示為在短溝道下所有的漏電流。
圖4 靜態(tài)功耗在FPGA中的分布
圖5 短溝道下漏電流模型
I1為pn結(jié)的反偏漏電流。
I2為源漏之間的亞閾值漏電流。它是在柵壓低于閾值電壓Vth時(shí),在亞閾值區(qū)域有弱的反型而形成的電流。
I3為穿過柵氧化層形成的柵電流。它是由于柵氧化層厚度越來越薄,電子穿過柵氧化層產(chǎn)生的電流。
I4、I5分別為由于熱載流子效應(yīng)形成的從漏端到柵的電流和從漏端到襯底的電流[1]。
I6為源漏之間的穿通電流,它是由于在短溝道器件下源-襯底之間的耗盡層與漏-襯底之間的耗盡層越來越靠近,當(dāng)這兩個(gè)耗盡層結(jié)合,發(fā)生穿通效應(yīng)而產(chǎn)生的電流。
在FPGA中被用來做靜態(tài)漏電流模型的基本單元有:反向器、多路選擇器、SRAM單元、LUT單元、布線開關(guān)。反向器被設(shè)計(jì)為具有相同的上升、下降時(shí)序,以及盡可能小的延遲和面積開銷。所有的多路選擇器是用面積最小的晶體管來實(shí)現(xiàn),SRAM單元也是用面積最小的晶體管來實(shí)現(xiàn),布線開關(guān)的晶體管在面積和延遲方面做了平衡。所有基本單元中的NMOS和PMOS都被用來考慮亞閾值漏電流,但是僅僅NMOS被用來考慮柵漏電流,因?yàn)镻MOS的柵漏電流要遠(yuǎn)遠(yuǎn)小于NMOS。當(dāng)NMOS的柵端為高電平時(shí),即有電流從柵端流向溝道,如圖6所示。
(a)反向器:反向器的亞閾值漏電流在輸入分別為“0”和“1”兩個(gè)狀態(tài)時(shí)都進(jìn)行了建模,如圖7所示。當(dāng)反向器的柵為“0”時(shí),只有亞閾值漏電流通過反向器的NMOS管,PMOS管的柵漏電流被忽略。當(dāng)反向器的柵為“1”時(shí)為柵漏電流通過NMOS,亞閾值漏電流通過PMOS管。
圖6 柵漏電流
圖7 反向器漏電流
(b)多路選擇器:在FPGA中,多路選擇器是通過NMOS傳輸管結(jié)構(gòu)來實(shí)現(xiàn)的。多路選擇器中的漏電流非常依靠輸入的狀態(tài)。圖8描述了一個(gè)4選1多路選擇器的結(jié)構(gòu),當(dāng)選擇信號(hào)為(0,0)和輸入向量為(0010)時(shí)就存在亞閾值漏電流和柵漏電流,僅僅一個(gè)Q3傳輸管有亞閾值漏電流,其他三個(gè)傳輸管Q2、Q4、Q6有柵漏電流。當(dāng)保持選擇信號(hào)不變,輸入向量變化到(0110)時(shí),就會(huì)有三個(gè)傳輸管Q1、Q3、Q5有亞閾值漏電流,兩個(gè)傳輸管Q1、Q6有柵漏電流。
圖8 4選1多路選擇器漏電流
(c)SRAM單元:在FPGA中有大量的SRAM單元用來配置FPGA,這些SRAM在FPGA工作過程中僅僅被配置一次并且保持值不變。通常用標(biāo)準(zhǔn)的六管結(jié)構(gòu)來設(shè)計(jì)配置用的SRAM并且選擇高Vth的晶體管,因?yàn)檫@些SRAM僅僅用作只讀模式,僅配置一次。通過高的Vth來降低亞閾值漏電流就會(huì)非常重要,在很多商業(yè)化的FPGA中都選擇高VthSRAM單元。亞閾值漏電流通過兩個(gè)背靠背連接的反向器,柵漏電流通過傳輸管中的一個(gè),如圖9所示。
(d)LUT單元:LUT查找表是有SRAM單元陣列和多路選擇器組成的。SRAM單元陣列來實(shí)現(xiàn)真值表,多路選擇器根據(jù)LUT輸入來選擇查找哪個(gè)SRAM單元。LUT的漏電流如上SRAM、多路選擇器以及反向器所述。
圖9 SRAM單元漏電流
(e)布線開關(guān):在FPGA中有兩種結(jié)構(gòu)的布線開關(guān),一種是BUF驅(qū)動(dòng)的布線開關(guān),另一種是傳輸管的布線開關(guān),這兩種結(jié)構(gòu)都含有NMOS傳輸管。圖10描述了第一種結(jié)構(gòu)的漏電流情況,當(dāng)NMOS傳輸管關(guān)掉S=0,輸入In為1,輸出Node同樣為1時(shí),亞閾值漏電流通過反向器的PMOS管和傳輸管NMOS,柵漏電流通過反向器的NMOS管。
圖10 BUF驅(qū)動(dòng)布線開關(guān)漏電流
圖11描述了第二種結(jié)構(gòu)的柵漏電流情況,當(dāng)傳輸管柵為1,傳輸0時(shí)就會(huì)有柵漏電流。
圖11 NMOS傳輸管布線開關(guān)漏電流
在布線結(jié)構(gòu)中最后一級布線開關(guān)NMOS必須去驅(qū)動(dòng)BUF,當(dāng)NMOS傳輸一個(gè)邏輯1會(huì)損失一個(gè)Vth,再去驅(qū)動(dòng)BUF時(shí)將會(huì)有很大的靜態(tài)漏電流,如圖12所示。
圖12 閾值電壓損失后的靜態(tài)漏電
為了解決這個(gè)問題,商業(yè)化的FPGA通常通過提高NMOS傳輸管的柵電壓來防止閾值電壓損失,從而降低靜態(tài)電流,如圖13所示。
圖13 提高柵電壓降低靜態(tài)電流
亞閾值漏電流是靜態(tài)功耗產(chǎn)生的主要原因之一,降低亞閾值漏電流將有效地降低芯片的靜態(tài)功耗。亞閾值漏電流的解析模型如下公式[2]所示:
Vt為閾值電壓,n為亞閾值擺幅系數(shù),W為晶體管的寬度,L為長度,μ為電子遷移率,q為電子電量,Φs為硅表面勢,εsi為硅的介電常數(shù)。從式中可以看出亞閾值漏電流非常依賴閾值電壓Vt。
為了降低FPGA中的靜態(tài)功耗,可以采用雙閾值電壓的晶體管。對于關(guān)鍵路徑上的晶體管,如布線開關(guān)對速度要求高,采用低閾值電壓柵的晶體管。對于非關(guān)鍵路徑上的晶體管,如配置SRAM,采用高閾值電壓柵的晶體管來降低靜態(tài)功耗。
通過對一個(gè)CLB的仿真,將非關(guān)鍵路徑上NMOS晶體管的閾值電壓從0.35 V提高到0.5 V,靜態(tài)電流將從原來的12 μA降低到8 μA。
本文在分析了FPGA中靜態(tài)功耗的分布和基本單元的漏電流模型后,提出了使用雙閾值電壓的晶體管來降低整個(gè)芯片的靜態(tài)功耗。由于是在非關(guān)鍵路徑上使用高閾值電壓柵的晶體管來降低靜態(tài)功耗,所以對芯片的工作速度影響很小。
[1]David Johns.模擬集成電路設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2005.27-28.
[2]畢查德·拉扎維.模擬CMOS集成電路設(shè)計(jì)[M].西安:西安交通大學(xué)出版社,2002.23-24.