專利名稱:基于Multi-Vt技術的低功耗FPGA及配套的EDA設計方法
技術領域:
本發明涉及現場可編程門陣列(FPGA)及其配套電子設計自動化(EDA)設計技術領域,特別涉及一種基于mult1-Vt技術的低功耗FPGA及配套的EDA設計方法。
背景技術:
現場可編程門陣列(FPGA, Field Programmable Gate Array)內部主要由輸入輸出單元(IOB, Input/Output Block),邏輯單元塊(LB, Logic Block)陣列,配置單元和布線資源組成。配置單元用于配置邏輯單元塊的邏輯功能和控制布線資源之間的連接關系。根據需要對配置單元進行相應的配置即可以實現不同的電路功能。FPGA具有的用戶可編程性和低開發成本等特性使它成為現代數字電路和系統中的核心技術,隨著集成電路工藝技術的不斷進步,現場可編程門陣列(FPGA)與專用集成電路(ASIC, Application Specific Integrated Circuit)的性能差距正在逐步縮小,再加上FPGA開發周期短,研發成本低,應用靈活等天然優勢,使得FPGA開始在很多領域漸漸取代ASIC0與此同時,隨著集成電路工藝進入深亞微米階段,晶體管漏電流帶來的靜態功耗已經成為總功耗的主要組成部分之一。為了抑制漏電流帶來的靜態功耗,mult1-Vt技術應運而生。mult1-Vt技術的理念在于僅在電路的關鍵路徑上采用低閾值的高性能晶體管,以此保證電路的性能,而在其余占電路絕大多數面積的非關鍵路徑上采用高閾值的低功耗晶體管,從而在基本不影響電路性能的基礎上很大程度上降低了電路的功耗。目前,mult1-Vt技術還主要用于ASIC方面,將mult1-Vt技術引入FPGA領域將對FPGA向高性能低功耗方向邁進具有重大意義,這將進一步拓展FPGA在低功耗領域的應用。然而相比于ASIC,在FPGA中引入mult1-Vt技術需要克服更多的障礙,由于FPGA內部的邏輯和布線資源有限,且位置是相對固定的,因此mult1-Vt在FPGA中的應用必須得到配套EDA 設計方法的支持,在綜合(Synthesis)Jj^Jt (Mapping)、布局布線(Place and Route)各個步驟都需要EDA設計方法做出相應的配合措施。所以將mult1-Vt技術引入到FPGA的過程中必須從FPGA硬件結構和配套的EDA設計方法兩方面共同出發。本發明提出一種基于mult1-Vt技術的低功耗FPGA及配套EDA設計方法,以促進mult1-Vt技術在FPGA領域的引入。
發明內容
(一 )要解決的技術問題為了在基本不影響性能的前提下,降低FPGA中晶體管漏電流帶來的不可忽視的靜態功耗,以推廣FPGA技術在低功耗領域的應用, 本發明提出了一種基于mult1-Vt技術的低功耗FPGA及配套EDA設計方法。( 二 )技術方案本發明的技術方案包括一種基于mult1-Vt技術的低功耗FPGA和一種與所述FPGA相配套的EDA設計方法。基于mult1-vt技術的低功耗FPGA以現有的島形結構為總體結構,基本邏輯單元(BLE)基于查找表(LUT)結構,可編程邏輯及布線開關的配置基于SRAM單元,其特征在于:編程電路采用高閾值低功耗晶體管實現;可編邏輯及布線開關的配置基于SRAM單元,且所有配置單元也均采用高閾值低功耗晶體管實現;各邏輯單元塊按照一定的布局和比例,分別采用不同閾值的晶體管實現;各輸入輸出單元也按照一定的布局和比例,分別采用不同閾值的晶體管實現;該FPGA還包括FPGA架構文件,不同閾值的各邏輯單元塊和各輸入輸出單元的布局和比例信息保存在FPGA架構文件中。可選的,其中用于實現邏輯單元塊的晶體管包括低閾值高性能晶體管和高閾值低功耗晶體管。可選的,其中低閾值高性能的邏輯單元塊布局方式是分區式、分布式、或者分區式與分布式兼而有之。可選的,其中用于實現輸入輸出單元的晶體管包括低閾值高性能晶體管和高閾值低功耗晶體管。可選的,其中低閾值高性能的輸入輸出單兀的布局方式是分區式、分布式、或者分區式與分布式兼而有之。所述的與FPGA相配套的EDA設計方法包含如下步驟:1.綜合步驟,包括:讀取所述FPGA的FPGA架構文件,根據FPGA的硬件結構進行工藝映射,得到基本邏輯單元級的電路網表,對工藝映射后的網表進行時序分析,識別出關鍵路徑,并在關鍵路徑上各個基本邏輯單元的屬性中注明該單元的關鍵度;I1.映射步驟,包括:優先將關鍵路徑上的基本邏輯單元打包進邏輯單元塊或輸入輸出單元,接下來以常規方式將非關鍵路徑上的基本邏輯單元打包進邏輯單元塊或輸入輸出單元,通過時序分析在邏輯單元塊和輸入輸出單元的屬性中注明該邏輯單元塊或輸入輸出單元是否為關鍵邏輯單元塊或關鍵輸入輸出單元,根據不同閾值邏輯單元塊和輸入輸出單元的時序模型進行循環時序分析,以最少的低閾值高性能邏輯單元塊和輸入輸出單元完成設計;II1.布局布線步驟:以邏輯單元塊或輸入輸出單元是否為關鍵邏輯單元塊或關鍵輸入輸出單元為約束條件進行布局,然后進行常規布線并以常規方式產生碼流文件,下載至FPGA中。可選的,在綜合步驟中對工藝映射后的網表進行時序分析,設定關鍵路徑上基本邏輯單元的屬性criticality > O,設定非關鍵路徑上基本邏輯單元的屬性criticality =O0可選的,其中用于實現邏輯單元塊或輸入輸出單元的晶體管包括低閾值高性能晶體管和高閾值低功耗晶體管,在進行循環時序分析時,循環過程逐次將低閾值高性能晶體管實現的邏輯單元塊或輸入輸出單元替換進電路的關鍵路徑。可選的,布局布線步驟中,讀取FPGA架構文件中的信息,在常規布局的基礎上添加如下的約束條件:屬性critical = true的邏輯單元塊只允許布局在FPGA低閾值高性能邏輯單元塊的位置上,屬性critical = false的邏輯單元塊只允許布局在FPGA高閾值低功耗邏輯單元塊的位置上。
可選的,布局布線步驟中,讀取FPGA架構文件中的信息,在常規布局的基礎上添加如下的約束條件:屬性critical = true的輸入輸出單元只允許布局在FPGA低閾值高性輸入輸出單元的位置上;屬性critical = false的輸入輸出單元只允許布局在FPGA高閾值低功耗輸入輸出單元的位置上。(三)有益效果從上述的技術方案可以看出,本發明的有益效果在于:通過在傳統的FPGA架構中引入mult1-Vt技術,結合配套的EDA設計方法,可以在基本不影響電路性能的基礎上大大降低電路的靜態功耗,從而降低電路的整體功耗。本發明提及的FPGA硬件結構改進方案理論依據清晰,在原有FPGA設計方案的基礎上無需較大改動,對于控制FPGA研發成本具有重要意義,具有現實可行性。在硬件結構設計方案的基礎上,通過對配套的EDA設計方法各個流程添加相應的約束條件即可完成高性能低功耗電路的設計,軟件代碼改動小,特別在布局步驟中因約束條件的加入將得到縮短布局時間消耗的有益效果。
圖1是基于mult1-Vt技術的低功耗FPGA結構示意圖;圖2是與mult1-Vt技術FPGA相配套的EDA設計方法流程;圖3是綜合步驟中時序分析識別出關鍵路徑的基本邏輯單元級網表;圖4是映射步驟后得到的標注了 critical屬性的邏輯單元塊級網表;圖5是布局布線步驟完成后的最終電路設計示意圖。
具體實施例方式為使本發明的目的、技術方案和優點更加清楚明白,以下結合具體實施例,并參照附圖,對本發明進一步詳細說明。FPGA硬件結構方面的具體實施方式
如下:FPGA以現有的島形結構為總體結構,基本邏輯單元(BLE)基于查找表(LUT)結構,可編程邏輯及布線開關的配置基于SRAM單元。鑒于在絕大多數應用環境下,用戶對于FPGA的編程過程并不關心,對編程的速度也沒有過高的要求,因此本發明的FPGA的編程電路采用高閾值低功耗晶體管實現。FPGA中配置單元的作用在于配置基本邏輯單元(BLE)的邏輯功能和控制布線開關的狀態,FPGA —經配置后配置單元的狀態保持不變,而配置單元本身并不屬于功能電路,對設計電路的性能沒有影響。FPGA中配置單元的面積比例高達約1/3,為了能有效的控制配置單元帶來的這部分不可忽視的靜態功耗,FPGA的所有配置單元均采用功耗盡可能低的高閾值晶體管實現。采用本發明的特點在于不影響電路性能的前提下,可以大大降低配置單元帶來的靜態功耗。FPGA的邏輯單元塊(LB)是靜態功耗的最主要來源,對此FPGA內部以邏輯單元塊為單位,按照一定的布局和比例分別采用不同閾值的晶體管來實現。理論上關鍵路徑的面積平均僅占整個電路面積的約20%,因此FPGA內部只需要較少比例的低閾值高性能邏輯單元塊即可滿足電路對性能上的要求,其余部分則采用高閾值低功耗邏輯單元塊以便控制電路的靜態功耗。如圖1所示,陰影方框表示低閾值高性能邏輯單元塊,無陰影方框表示高閾值低功耗邏輯單元塊。低閾值高性能的邏輯單元塊布局方式可以是分區式的,也可以是分布式的,或者是上述兩種形式兼而有之,具體的分布方式和比例應根據FPGA面向的應用領域,通過眾多應用實例的統計分析而得出。不同閾值的邏輯單元塊的位置和比例信息寫入FPGA架構文件,此文件將被配套的EDA設計方法利用,以提取該FPGA中不同閾值的邏輯單元塊的位置和比例信息。FPGA的輸入輸出單元(IOB)是靜態功耗的又一大來源,為了控制輸入輸出單元的靜態功耗,FPGA內部以輸入輸出單元(IOB)為單位按照一定的布局和比例分別采用不同閾值晶體管來實現,如圖1所示,陰影矩形框表示低閾值高性能輸入輸出單元,無陰影矩形框表示高閾值低功耗輸入輸出單元。與邏輯單元塊類似,具體的分布方式和比例應根據FPGA面向的應用領域,通過眾多應用實例的統計分析而得出。不同閾值的輸入輸出單元的位置和比例信息寫入FPGA架構文件,此文件將被配套的EDA設計方法利用,以提取該款芯片中不同閾值的輸入輸出單元的位置和比例信息。配套的EDA設計方法技術方案如下:如圖2所示,配套的EDA設計方法流程包括綜合、映射和布局布線這幾個步驟。1、綜合步驟,讀取FPGA架構文件,根據FPGA的硬件結構進行工藝映射,得到基本邏輯單元級的電路網表。接下來根據FPGA的單元庫進行時序分析,標定出電路的關鍵路徑及關鍵路徑上基本邏輯單元的關鍵度。在綜合步驟的輸出文件中,以criticality屬性表示基本邏輯單元的關鍵度,此屬性值為整數型。如圖3所示,當criticality = O時,表示該基本邏輯單元處在非關鍵路徑上;當criticality > O時表示該基本邏輯單元處在關鍵路徑上,基本邏輯單元的關鍵程度越大criticality的數值越大。2、映射步驟,讀取綜合步驟輸出的網表文件,識別出criticality > O的基本邏輯單元,即關鍵路徑上的基本邏輯單元,并做優先處理,將這些關鍵路徑上的基本邏輯單元打包進邏輯單元塊或輸入輸出單元,以criticality屬性表示邏輯單元塊或輸入輸出單元的關鍵度,其數值等于打包進該邏輯單元塊或輸入輸出單元的全部基本邏輯單元的criticality之和,接下來按照常規方式打包非關鍵路徑上的基本邏輯單元和輸入輸出單元。本實例中映射步驟將圖3中虛線框內的基本邏輯單元打包進一個邏輯單元塊中。以critical屬性表示邏輯單元塊或輸入輸出單元是否為關鍵邏輯單元塊或關鍵輸入輸出單元,電路全部打包完畢后,初始化critical = false。接下來進行邏輯單元塊級的網表時序分析并根據分析結果更新critical屬性的循環過程。即根據不同閾值邏輯單元塊和輸入輸出單元的時序模型進行循環時序分析,以其能以最少的低閾值邏輯單元塊和輸入輸出單元完成設計。根據本發明的優選實施方式,在映射步驟,時序分析過程中critical = true的邏輯單元塊和輸入輸出單元分別采用低閾值高性能的邏輯單元塊時序模型和低閾值高性能的輸入輸出單元時序模型(首次循環過程critical = true的邏輯單元塊和輸入輸出單元數目均為O) ,critical = false的邏輯單元塊和輸入輸出單元分別采用高閾值低功耗的邏輯單元塊時序模型和高閾值低功耗的輸入輸出單元時序模型。如果電路不滿足性能要求,則選取critical = false,且criticality值最大的邏輯單元塊或輸入輸出單元,設置該邏輯單元塊或輸入輸出單元的屬性critical = true,對critical屬性更新后的網表再次做時序分析,如果電路性能仍然達不到要求則循環執行上述更新critical屬性的過程,直至電路的性能要求得到滿足終止循環,其流程如圖2映射步驟所示。以上的循環過程逐次將低閾值高性能邏輯單元塊或低閾值高性能輸入輸出單元替換進電路的關鍵路徑,保證了以最少的低閾值高性能邏輯單元塊和低閾值高性能輸入輸出單元完成設計,在滿足性能要求的前提下,最大限度地降低了電路的功耗。以上循環過程結束后,得到如圖4所示的邏輯單元塊級電路網表,輸出網表文件中邏輯單元塊和輸入輸出單元的critical屬性將作為布局布線步驟的重要約束條件。3、布局布線步驟,在常規布局的基礎上添加如下的約束條件:屬性critical =true的邏輯單元塊只允許布局在FPGA芯片低閾值高性能邏輯單元塊的位置上;屬性critical = false的邏輯單元塊只允許布局在FPGA芯片高閾值低功耗邏輯單元塊的位置上;屬性critical = true的輸入輸出單元只允許布局在FPGA芯片低閾值高性輸入輸出單元的位置上;屬性critical = false的輸入輸出單元只允許布局在FPGA芯片高閾值低功耗輸入輸出單元的位置上。因上述約束條件的引入,將有效縮短布局過程的時間消耗。布局完成后進行常規布線即可。完成布局布線后的電路設計示意圖如圖5所示。經過上述的綜合、映射和布局布線后,EDA設計方法以常規方式產生碼流文件,下載至FPGA芯片中即最終完成了設計任務。以上所述的具體實施方式
,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,對于本領域的技術人員將十分易于理解。特別提出:以上所述僅為本發明的具體實施方式
而已,并不用于限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種基于mult1-vt技術的低功耗FPGA,以島形結構為總體結構,基本邏輯單元(BLE)基于查找表(LUT)結構,可編程邏輯及布線開關的配置基于SRAM單元,其特征在于,包含如下硬件結構: FPGA的編程電路及所有SRAM配置單元均采用高閾值低功耗晶體管實現; FPGA內部以邏輯單元塊為單位,根據芯片面向的應用領域,通過眾多應用實例的統計分析得出一定的布局和比例,分別采用不同閾值的晶體管來實現; FPGA內部以輸入輸出單元為單位,根據芯片面向的應用領域,通過眾多應用實例的統計分析得出一定的布局和比例,分別采用不同閾值晶體管實現。
2.根據權利要求1所述的基于mult1-Vt技術的低功耗FPGA,其中用于實現邏輯單元塊的晶體管包括低閾值高性能晶體管和高閾值低功耗晶體管。
3.根據權利要求2所述的基于mult1-Vt技術的低功耗FPGA,其中低閾值高性能的邏輯單元塊布局方式是分區式、分布式、或者分區式與分布式兼而有之。
4.根據權利要求1所述的基于mult1-Vt技術的低功耗FPGA,其中用于實現輸入輸出單元的晶體管包括低閾值高性能晶體管和高閾值低功耗晶體管。
5.根據權利要求4所述的基于mult1-Vt技術的低功耗FPGA,其中低閾值高性能的輸入輸出單兀的布局方式是分區式、分布式、或者分區式與分布式兼而有之。
6.根據權利要求1所述的基于mult1-Vt技術的低功耗FPGA,將不同閾值單元的布局和比例信息寫入FPGA架構文件。
7.一種與權利要求1所述的低功耗FPGA相配套的EDA設計方法,其特征在于包含如下步驟:合步驟,包括: 讀取FPGA架構文件,根據FPGA的硬件結構進行工藝映射,得到基本邏輯單元級的電路網表, 對工藝映射后的網表進行時序分析,識別出關鍵路徑,并在關鍵路徑上各個基本邏輯單元的屬性中注明該單元的關鍵度; I1.映射步驟,包括: 優先將關鍵路徑上的基本邏輯單元打包進邏輯單元塊或輸入輸出單元,接下來將非關鍵路徑上的基本邏輯單元打包進邏輯單元塊或輸入輸出單元, 通過時序分析在邏輯單元塊和輸入輸出單元的屬性中注明該單元塊是否為關鍵邏輯單元塊或關鍵輸入輸出單元, 根據不同閾值邏輯單元塊和輸入輸出單元的時序模型進行循環時序分析,以最少的低閾值高性能邏輯單元塊和輸入輸出單元完成設計; II1.布局布線步驟: 其中以邏輯單元塊和輸入輸出單元是否為關鍵單元為約束條件進行布局,然后進行布線并產生碼流文件,下載至FPGA芯片中。
8.根據權利要求7所述的EDA設計方法,其特征在于,在綜合步驟中對工藝映射后的網表進行時序分析,設定關鍵路徑上基本邏輯單元的屬性criticality > O,設定非關鍵路徑上基本邏輯單元的屬性criticality = O。
9.根據權利要求7所述的EDA設計方法,其中用于實現邏輯單元塊的晶體管包括低閾值高性能晶體管和高閾值低功耗晶體管,在進行循環時序分析時,循環過程逐次將低閾值高性能晶體管實現的邏輯單元塊替換進電路的關鍵路徑。
10.根據權利要求7所述的EDA設計方法,其中用于實現輸入輸出單元的晶體管包括低閾值高性能晶體管和高閾值低功耗晶體管,在進行循環時序分析時,循環過程逐次將低閾值高性能晶體管實現的輸入輸出單元替換進電路的關鍵路徑。
11.根據權利要求7所述的EDA設計方法,其特征在于,布局布線步驟中,讀取FPGA架構文件中的信息,在常規布局的基礎上添加如下的約束條件:屬性critical = true的邏輯單元塊只允許布局在FPGA低閾值高性能邏輯單元塊的位置上,屬性critical = false的邏輯單元塊只允許布局在FPGA高閾值低功耗邏輯單元塊的位置上。
12.根據權 利要求7所述的EDA設計方法,其特征在于,布局布線步驟中,讀取FPGA架構文件中的信息,在常規布局的基礎上添加如下的約束條件:屬性critical = true的輸入輸出單元只允許布局在FPGA低閾值高性輸入輸出單元的位置上;屬性critical = false的輸入輸出單兀只允許布局在FPGA高閾值低功耗輸入輸出單兀的位置上。
全文摘要
本發明公開了一種基于Multi-Vt技術的低功耗FPGA及配套EDA設計方法,屬于現場可編程門陣列(FPGA)及電子設計自動化(EDA)設計技術領域。本發明的FPGA以現有的島形結構為總體結構,基本邏輯單元(BLE)基于查找表(LUT)結構,可編程邏輯及布線開關的配置基于SRAM單元。本發明的特征在于FPGA芯片的編程電路及所有的SRAM配置單元均采用高閾值低功耗晶體管實現;FPGA芯片的輸入輸出單元和邏輯單元塊根據芯片面向的應用領域,通過眾多應用實例的統計分析得出一定的布局和比例,分別采用不同閾值晶體管實現;綜合步驟對基本邏輯單元級網表進行時序分析并標注關鍵路徑和基本邏輯單元的關鍵度;映射步驟根據基本邏輯單元的關鍵度進行打包并標注打包后的邏輯單元塊和輸入輸出單元是否屬于關鍵邏輯單元塊或關鍵輸入輸出單元;布局布線步驟中以邏輯單元塊和輸入輸出單元是否為關鍵邏輯單元塊或關鍵輸入輸出單元為約束條件進行布局。本發明在基本不影響電路性能的前提下,將大大降低電路的靜態功耗,從而降低電路的總體功耗。
文檔編號G06F17/50GK103106291SQ20111036121
公開日2013年5月15日 申請日期2011年11月15日 優先權日2011年11月15日
發明者郭旭峰, 劉貴宅, 李艷, 于芳 申請人:中國科學院微電子研究所