專利名稱:通用現(xiàn)場可編程門陣列布局布線模型的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于超大規(guī)模集成電路技術(shù)領(lǐng)域,具體涉及到一種與FPGA具體結(jié)構(gòu)無關(guān)的布局布線模型。
背景技術(shù):
自從1985年Xilinx公司推出FPGA(現(xiàn)場可編程門陣列)以來,F(xiàn)PGA獲得了日益廣泛的應用。最初,F(xiàn)PGA用于制作樣機等小批量生產(chǎn),且只能實現(xiàn)簡單數(shù)字電路;隨著FPGA在速度,功耗,集成度等方面的改善,現(xiàn)在的FPGA可以實現(xiàn)包含存儲器,處理器的復雜數(shù)字系統(tǒng),芯片的集成度達到1000萬門,速度達到300MHz。除制造工藝外,這種巨大變化絕大多數(shù)是結(jié)構(gòu)改善的結(jié)果。學術(shù)界和工業(yè)界對邏輯塊和布線結(jié)構(gòu)進行了廣泛的研究,然而這些研究工作絕大多數(shù)是基于學術(shù)研究上的,工業(yè)的FPGA結(jié)構(gòu)相對要復雜得多。因此,開發(fā)通用有效的FPGA軟件對結(jié)構(gòu)研究具有重大意義。
FPGA芯片按照其可編程的邏輯單元的規(guī)模的大小可以分成粗粒度和細粒度兩類。前者如Xilinx的XC4000系列,其每個邏輯單元由一個或兩個4輸入的LUT組成,可以實現(xiàn)全部4輸入或者5輸入的邏輯函數(shù);后者如Actel的ProASIC系列,其每個邏輯單元由少量的MUX及邏輯門構(gòu)成,可以實現(xiàn)除異或邏輯外的任意三輸入邏輯函數(shù)。但對于FPGA布局布線模塊來說,不管粗粒度或細粒度的FPGA芯片,其結(jié)構(gòu)都可以歸結(jié)于同一種模型描述,這種模型可以采用通用的FPGA布局布線算法來處理。
VPR是學術(shù)上比較成功的布局布線模塊,它可以處理平面化的FPGA結(jié)構(gòu),并且算法處理在同類軟件中是比較令人滿意的,相當多學者利用它來進行一些重要的FPGA結(jié)構(gòu)研究。因此,本模塊在以VPR代碼為基礎(chǔ)的情況下,致力于彌補VPR中的缺陷與不足,主要解決的問題在于擴展VPR中連接盒CB的模型;擴展VPR中開關(guān)盒SB的模型。
發(fā)明內(nèi)容
本發(fā)明的目的在于在學術(shù)軟件VPR的基礎(chǔ)上,對其模型進行改進,使其更為通用,從而實現(xiàn)與結(jié)構(gòu)無關(guān)的FPGA布局布線模塊。
采用本發(fā)明模型,可以找到對應于FPGA結(jié)構(gòu)的最優(yōu)的連接盒CB和開關(guān)盒SB結(jié)構(gòu),對于FPGA結(jié)構(gòu)改進具有重要意義。
VPR在處理布局布線時所采用的模型是比較簡單的,與實際的FPGA結(jié)構(gòu)相比起來,該模型具有很大的限制。VPR模型要求引腳與通道中的布線資源連接度一致,如圖1所示。在圖1中,輸入引腳與輸出引腳的連接度均為0.5,也就是說,輸入引腳與輸出引腳均連接50%的布線資源。另外,VPR開關(guān)盒(或者說橫向布線資源與縱向布線資源)模型的連接方式僅限于學術(shù)上的三種結(jié)構(gòu)模型,如圖2的a)、b)和c)圖。
要以VPR現(xiàn)有的簡單模型去評估工業(yè)FPGA的結(jié)構(gòu),那是很不合適的,因為模型本身無法描述工業(yè)FPGA復雜的結(jié)構(gòu),也就無從得到合理的布局布線結(jié)果。
在此情況下,本發(fā)明以VPR的模型為基礎(chǔ),并做出充和改進。這種改進主要在連接盒CB和開關(guān)盒SB兩個方面。
(I)連接盒CB的改進CB是CLB的引腳與通道中布線資源的連接情況描述。
VPR的CB模型比較簡單,它規(guī)定所有的輸入引腳的連接度一個值,所有的輸出引腳的連接度也是一個值(所謂連接度,就是引腳與通道中布線資源連接的百分比)。在圖1中,輸入引腳與輸出引腳的連接度均為0.5,也就是說,輸入引腳與輸出引腳均連接50%的布線資源。
在本模型里,將CB的靈活性擴展到可以指定任意一個引腳與通道中布線資源的連接情況,從而使得VPR的模型不再局限于引腳連接度的單一性。
具體做法如下對于任意一個引腳Pi,令β(Pi)=(i,POSi,T1,T2,...,Tn),i為引腳的序號,POSi為第i個引腳的位置,位置關(guān)系包括上下左右四個方向。T1,T2,…,Tn為一系列布爾值,當其中的Tk為1時,代表第i個引腳與通道中的第K根布線資源相連,反之,則不存在連接關(guān)系。
通過對每個引腳的信息進行定義后,就可以得到每個引腳的具體位置,連接關(guān)系信息,從而達到連接盒CB的靈活性要求。
這樣做的意義在于,在保證芯片布通率的情況下,可以適當減少輸入引腳和輸出引腳與通道中布線資源的連接,那么,既不影響芯片布通率,又可以減少相當數(shù)目的開關(guān)管,對芯片的面積功耗都有相當?shù)墓?jié)省。
表1是基于此目的而做出的測試。VPR模型的所有輸入引腳和輸出引腳跟通道中的每一根布線資源都有連接,第二欄的通道高度是在此設置下完成布線所需的最小通道寬度。在得到第二欄的最小所需通道高度后,對其中的LUT引腳連接度進行減小,F(xiàn)c1為四輸入LUT的第一個引腳連接度,F(xiàn)c2為四輸入LUT的第二個引腳連接度,依此類推。輸出引腳和時鐘引腳的連接度保持不變。
由表1可以發(fā)現(xiàn),在適當減少某些引腳的連接度,對芯片布通率并沒有太大影響。那么,根據(jù)此情況,在通道中的布線資源數(shù)固定的情況下,適當減少部分引腳連接度可以減少整個芯片的開關(guān)管,進而可以找到每個引腳最少所需要的連接度。
(II)開關(guān)盒SB的改進SB是橫向通道中的布線資源與縱向通道中布線資源的連接情況描述。
工業(yè)FPGA結(jié)構(gòu)的調(diào)研發(fā)現(xiàn),絕大多數(shù)的FPGA開關(guān)盒不能采用學術(shù)上的三種開關(guān)盒結(jié)構(gòu)Wilton、Subset和Universal來描述(三種開關(guān)盒如圖2所示),這就使得VPR在描述這些FPGA結(jié)構(gòu)時力不從心。
針對目前FPGA結(jié)構(gòu)開關(guān)盒的多樣性,本發(fā)明采用函數(shù)方式來描述橫向通道與縱向通道的連接關(guān)系。具體地說,為橫向通道的track給定一組序號,也為縱向通道的track給定一組序號,而函數(shù)則用來描述兩組序號之間的映射關(guān)系。
具體做法如下為開關(guān)盒左邊的橫向通道的布線資源指定一組序號LH1,LH2,LH3,…,為開關(guān)盒上邊的縱向通道的布線資源指定一組序號TV1,TV2,TV3,…,為開關(guān)盒右邊的橫向通道的布線資源指定一組序號RH1,RH2,RH3,…,為開關(guān)盒下邊的縱向通道的布線資源指定一組序號BV1,BV2,BV3,…,那么,對于四組序號的任意兩組序號之間的各個元素之間總存在一一映射關(guān)系,也就是說每兩組序號可以存在函數(shù)關(guān)系。
由于開關(guān)盒內(nèi)的開關(guān)是雙向的,故對于一個開關(guān)盒,描述其結(jié)構(gòu)的函數(shù)個數(shù)只需C42個。那么,一個具體開關(guān)盒SB的描述方式如下左邊通道與上面通道(LH1,LH2,...,LHn)=f1(TV1,TV2,...,TVn,R),左邊通道與右邊通道(LH1,LH2,...,LHn)=f2(RH1,RH2,...,RHn,R),左邊通道與下面通道(LH1,LH2,...,LHn)=f3(BV1,BV2,...,BVn,R),上面通道與下面通道(TV1,TV2,...,TVn)=f4(BV1,BV2,...,BVn,R),上面通道與右邊通道(TV1,TV2,...,TVn)=f5(RH1,RH2,...,RHn,R),下面通道與右邊通道(BV1,BV2,...,BVn)=f6(RH1,RH2,...,RHn,R),R為通道中的布線資源數(shù)目。
這種方法避開了VPR原有的開關(guān)盒模型的單一性。
為驗證本發(fā)明模型的任意性,任意設計了一類開關(guān)盒結(jié)構(gòu),其拓撲結(jié)構(gòu)如圖3所示。該結(jié)構(gòu)與學術(shù)三種模型的比較結(jié)果如表2所示。
采用本模型,可以找到一種最優(yōu)的開關(guān)盒模型。
技術(shù)效果根據(jù)本發(fā)明提出的通用的CB和SB模型加上相應的處理方法,可以為FPGA硬件結(jié)構(gòu)找到一個最優(yōu)的結(jié)構(gòu)優(yōu)化,F(xiàn)PGA結(jié)構(gòu)設計工程師可以借助本發(fā)明及相應的軟件找到最優(yōu)的FPGA結(jié)構(gòu)。
表1 CB靈活性測試。
表2 本發(fā)明任意指定開關(guān)盒模型與學術(shù)開關(guān)盒模型比較。
表1
表
圖1 VPR中的CB和SB模型圖2 不同開關(guān)盒拓撲,其中,(a)Disjoint,(b)Universal,(c)Wilton。
圖3 本發(fā)明測試的開關(guān)盒模型。
具體實施例方式
為了說明本文所用的方法,在此針對特定例子對本文的技術(shù)方案及實施步驟進行詳細說明。
(I)連接盒CB的改進在本模型里,將CB的靈活性擴展到可以指定任意一個引腳與通道中布線資源的連接情況,從而使得VPR的模型不再局限于引腳連接度的單一性。
以表1的alu4測試電路為例,具體方法如下對于本發(fā)明模型的引腳,有如下連接關(guān)系β(P1)=(1,TOP,1,1,0,1,1,1,0,1,1,0)第一根引腳,位置在上面,引腳與水平第三、七、十根布線資源沒有連接β(P2)=(2,BOTTOM,1,0,1,0,1,0,1,0,1,1)第二根引腳,位置在下面,引腳與水平第二、四、六、八根布線資源沒有連接β(P3)=(3,LEFT,1,1,1,1,0,1,1,1,1,0)第三根引腳,位置在左邊,引腳與第五、十根布線資源沒有連接
β(P4)=(4,RIGHT,1,1,0,1,1,1,0,1,1,0)第四根引腳,位置在右邊,引腳與第三、七、十根布線資源沒有連接β(P5)=(5,RIGHT,1,1,1,1,1,1,1,1,1,1)第五根引腳,位置在右邊,引腳與所有布線資源均連接β(P6)=(6,LEFT,1,1,1,1,1,1,1,1,1,1)第六根引腳,位置在右邊,引腳與所有布線資源均連接通過對每個引腳的信息進行定義后,軟件就可以得到每個引腳的具體位置,連接關(guān)系信息,從而達到連接盒CB的靈活性要求。
在處理CB時,軟件模塊讀入上述指定的每個引腳的連接度,存儲在內(nèi)存里。
接著,在軟件模塊生成布線資源圖時,調(diào)出上述存儲的數(shù)據(jù),根據(jù)每個引腳的連接度,重新修改布線資源圖,使之符合用戶的設定,然后再進行布局布線。
表1是根據(jù)上述的具體方法而做出的測試。VPR模型的所有輸入引腳和輸出引腳跟通道中的每一根布線資源都有連接,第二欄的通道高度是在此設置下完成布線所需的最小通道寬度。在得到第二欄的最小所需通道高度后,對其中的LUT引腳連接度進行減小,F(xiàn)c1為四輸入LUT的第一個引腳連接度,F(xiàn)c2為四輸入LUT的第二個引腳連接度,依此類推。輸出引腳和時鐘引腳的連接度保持不變。
由表1可以發(fā)現(xiàn),在適當減少某些引腳的連接度,對芯片布通率并沒有太大影響。那么,根據(jù)此情況,在通道中的布線資源數(shù)固定的情況下,適當減少部分引腳連接度可以減少整個芯片的開關(guān)管,進而可以找到每個引腳最少所需要的連接度。
(II)開關(guān)盒SB的改進在處理SB時,放棄VPR原有生成開關(guān)盒結(jié)構(gòu)的代碼,而采用本發(fā)明的模型來處理。對于通道中的每根布線資源,在布線資源圖中是一個結(jié)點,根據(jù)本發(fā)明中的六個函數(shù),得到與之相連的各個通道的布線資源,并在布線資源圖中以有向邊連接。兩個結(jié)點間存在有向邊的,那么布線時這兩個結(jié)點是可到達的,反之,則不可到達。
根據(jù)前文講述的方法,對圖3中的開關(guān)盒描述如下左邊通道與上面通道y=|R-x-1|左邊通道與右邊通道y=x左邊通道與下面通道y=|R-x-1|上面通道與下面通道y=x
上面通道與右邊通道y=|R-x-1|下面通道與右邊通道y=|B-x-1|R為通道中的布線資源數(shù)目。y為后者布線資源的序號,x為前者后線資源的序號。以左邊通道序號為1的布線資源跟上邊通道序號為3的布線資源的連接關(guān)系為例,1=5-3-1,故兩條布線資源存在連接。
在處理SB時,軟件模塊讀入用戶指定的6個函數(shù),存儲在內(nèi)存里。
在軟件模塊調(diào)用生成開關(guān)盒布線資源的子模塊時,軟件模塊根據(jù)這六個函數(shù),生成各個布線資源的連接關(guān)系,在內(nèi)存中構(gòu)造有向圖,有存在連接關(guān)系的,以兩條有向邊表示,不存在連接關(guān)系的,之間不存在有向邊。
生成布線資源圖后,調(diào)用迷宮布線算法進行布局布線。
這種方法避開了VPR原有的開關(guān)盒模型的單一性,在實現(xiàn)方法處理上,與原有的VPR實現(xiàn)方式差異較多。
采用本模塊的方法,可以找到一種最優(yōu)的開關(guān)盒模型。
由于布局布線所采用的模擬退火算法和迷宮布線算法與芯片的具體結(jié)構(gòu)是無關(guān)的,所以本發(fā)明模型的改進對算法不造成影響。
六、參考文獻[1]A.Marquardt,V.Betz,and J.Rose,Speed and Area Tradeoffs in Cluster-Based FPGAArchitectures,IEEE Transactions on VLSI Systems,vol.8,F(xiàn)eb.2000,pp.84-93. E.Ahmed and J.Rose,The Effect of LUT and Cluster Size on Deep-Submicron FPGAPerformance and Density,in ACM/SIGDA International Symposium on Field-ProgrammableGate Arrays,F(xiàn)eb.2000,pp.3-12. J.Rose,R.J.Francis,D.Lewis,and P.Chow,Architecture of Field-Programmable GateArraysThe Effect of Logic Block Functionality on Area Efficiency,IEEE Journal of Solid-StateCircuits,vol.25,Oct.1990,pp.1217-1225. J.Rose,R.J.Francis,P.Chow,and D.Lewis,The Effect of Logic Block Complexity onArea of Programmable Gate Arrays,IEEE Custom Integrated Circuits Conference,May,1989,pp.5.3.1-5.3.5. M.I.Masud and S.J.E.Wilton,A New Switch Block for Segmented FPGAs,International Workshop on Field Programmable Logic and Applications,August 1999. Y.W.Chang,D.Wong,and C.Wong,Universal Switch Modules for FPGA Design,ACM Transactions on Design Automation of Electronic Systems,vol.1,Jan,1996,pp.80-101. Andy Yan,Rebecca Cheng,Steven J.E.Wilton,On the Sensitivity of FPGAArchitectural Conclusions to Experimental Assumptions,Tools,and Techniques,F(xiàn)PGA’02,F(xiàn)ebruary,2002,pp.24-26,Monterey,California,USA.
權(quán)利要求
1.一種通用現(xiàn)場可編程門陣列布局布線模型,其特征在于在VPR模型基礎(chǔ)上,對其中的連接盒CB和開關(guān)盒BS模型進行改進(I)連接盒CB的改進對于任意一個引腳Pi,令β(Pi)=(i,POSi,T1,T2,...,Tn),i為引腳的序號,POSi為第i個引腳的位置,位置關(guān)系包括上下左右四個方向;T1,T2,…,Tn為一系列布爾值,當其中的Tk為1時,代表第i個引腳與通道中的第K根布線資源相連,反之,則不存在連接關(guān)系;(II)開關(guān)盒SB的改進為開關(guān)盒左邊的橫向通道的布線資源指定一組序號LH1,LH2,LH3,…,為開關(guān)盒上邊的縱向通道的布線資源指定一組序號TV1,TV2,TV3,…,為開關(guān)盒右邊的橫向通道的布線資源指定一組序號RH1,RH2,RH3,…,為開關(guān)盒下邊的縱向通道的布線資源指定一組序號BV1,BV2,BV3,…,那么,一個具體開關(guān)盒SB的描述方式如下左邊通道與上面通道(LH1,LH2,...,LHn)=f1(TV1,TV2,...,TVn,R),左邊通道與右邊通道(LH1,LH2,...,LHn)=f2(RH1,RH2,...,RHn,R),左邊通道與下面通道(LH1,LH2,...,LHn)=f3(BV1,BV2,...,BVn,R),上面通道與下面通道(TV1,TV2,...,TVn)=f4(BV1,BV2,...,BVn,R),上面通道與右邊通道(TV1,TV2,...,TVn)=f5(RH1,RH2,...,RHn,R),下面通道與右邊通道(BV1,BV2,...,BVn)=f6(RH1,RH2,...,RHn,R),R為通道中的布線資源數(shù)目。
全文摘要
本發(fā)明屬于超大規(guī)模集成電路技術(shù)領(lǐng)域,具體為一種通用現(xiàn)場可編程門陣列(FPGA)布局布線模型。該模型是在VPR學術(shù)模型的基礎(chǔ)上,對VPR的CB及SB模型進行改進,使新的模型更通用,更具有代表性,并具有相當?shù)撵`活性,可以處理FPGA中任意的連接盒CB和開關(guān)盒SB結(jié)構(gòu)。根據(jù)此模型,結(jié)合相應的軟件處理方法,可以由一個初始的FPGA結(jié)構(gòu)出發(fā),改變CB和SB的結(jié)構(gòu),最終找到對應于本FPGA結(jié)構(gòu)的最佳CB和SB結(jié)構(gòu)。測試結(jié)果表明,采用本發(fā)明的模型,對FPGA結(jié)構(gòu)的優(yōu)化有著重要的指導作用。
文檔編號G06F17/50GK1776693SQ20051011106
公開日2006年5月24日 申請日期2005年12月1日 優(yōu)先權(quán)日2005年12月1日
發(fā)明者唐璞山, 陳苑鋒, 來金梅, 童家榕 申請人:復旦大學