欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種測(cè)試fpga單長(zhǎng)線及連接開關(guān)的擴(kuò)展布線方法

文檔序號(hào):5946078閱讀:177來源:國(guó)知局
專利名稱:一種測(cè)試fpga單長(zhǎng)線及連接開關(guān)的擴(kuò)展布線方法
技術(shù)領(lǐng)域
本發(fā)明實(shí)現(xiàn)了ー種測(cè)試FPGA單長(zhǎng)線及連接開關(guān)的擴(kuò)展布線方法,屬FPGA自動(dòng)化布線范疇。
背景技術(shù)
FPGA芯片是ー種布線資源數(shù)量龐大、種類繁多、可重復(fù)編程的超大規(guī)模集成電路,在實(shí)際應(yīng)用中,發(fā)生于互連資源上的故障率遠(yuǎn)大于其它器件的故障率,那么為了解決發(fā)生于互連資源上的故障,尤其為了測(cè)試單長(zhǎng)線及互連開關(guān)的連接情況,并快速有效地對(duì)故障進(jìn)行查找、定位和解決,這里采用了ー種FPGA單長(zhǎng)線及直連開關(guān)的測(cè)試方法(專利申請(qǐng)?zhí)?01110125752. 7)。
在對(duì)該測(cè)試方法進(jìn)行實(shí)施驗(yàn)證的過程中發(fā)現(xiàn),由于手工費(fèi)時(shí)費(fèi)力且錯(cuò)誤率高以及機(jī)時(shí)有限且極其昂貴等系列原因,極需ー種更高效的布線算法來進(jìn)行快速的資源配置和有效配置資源圖生成以進(jìn)行連續(xù)無間斷的測(cè)試。近年來,各國(guó)學(xué)者提出過許多相關(guān)布線算法,其中迷宮算法是ー種比較成熟的算法,其它如蟻群算法、全局尋優(yōu)算法等都有一定的用途和群眾基礎(chǔ),然而,這些算法在實(shí)施的過程中不是針對(duì)性不強(qiáng),如單長(zhǎng)線資源的覆蓋率問題,就是理論到實(shí)踐驗(yàn)證轉(zhuǎn)換有一定難度,可操作性不強(qiáng),另外有的算法在布線效率上的表現(xiàn)也不是很令人滿意。

發(fā)明內(nèi)容
為了解決現(xiàn)有布線方法的不足、針對(duì)性不強(qiáng)以及其它如手工布線效率低下等問題,本發(fā)明依據(jù)層次式FPGA的結(jié)構(gòu)特點(diǎn),提出了一種測(cè)試FPGA單長(zhǎng)線及連接開關(guān)的擴(kuò)展布線方法,是ー種基于布通率的高可靠、高適應(yīng)、高效率的布線方法。按照本發(fā)明提供的技術(shù)方案,所述測(cè)試FPGA單長(zhǎng)線及連接開關(guān)的擴(kuò)展布線方法,步驟如下
步驟一、設(shè)置輪回行并初始化參數(shù)確定輪回行的數(shù)目為2,并為后續(xù)布線捜索到的鏈路中間結(jié)果準(zhǔn)備存儲(chǔ)空間,準(zhǔn)備完成后進(jìn)入步驟ニ ;
步驟ニ、快速分組依據(jù)分組算法依次將CLB和單長(zhǎng)線進(jìn)行分組,獲取輪回行所有CLB分組和第一組CLB分組對(duì)應(yīng)單長(zhǎng)線起始組合點(diǎn);分組完成后進(jìn)入步驟三,如果失敗則退出算法,返回失敗代碼;
步驟三、線序預(yù)估在選取完第一組CLB分組連接點(diǎn)后,通過獲取輪回行所有關(guān)鍵布線CLB分組連接點(diǎn)的方法獲取輪回行所有CLB分組的起始連接點(diǎn),然后分別對(duì)這些連接點(diǎn)進(jìn)行測(cè)試驗(yàn)證,測(cè)試該分組是否合適,是否可以選出最優(yōu)線序;測(cè)試的方法是依據(jù)寬度優(yōu)先算法搜索并選取該CLB布線在最大鏈長(zhǎng)下的所有可布通的線網(wǎng),如能布通則表示該分組暫時(shí)可行,井分別記錄CLB1、CLB2、CLB3、CLB4可布通的組合序號(hào)以便在后續(xù)回退時(shí)調(diào)整該組合序號(hào)選出相應(yīng)線序組合;當(dāng)預(yù)估完成后進(jìn)入步驟四,否則,如果所有組合測(cè)試后均未發(fā)現(xiàn)可布通的線序組合則回退至步驟二重新分組;所述CLB1、CLB2、CLB3、CLB4分別指每個(gè)CLB分組的第一個(gè)CLB、第二個(gè)CLB、第三個(gè)CLB和第四個(gè)CLB ;
步驟四、二次過濾經(jīng)過步驟3預(yù)估過濾后,確定了所有關(guān)鍵布線CLB分組的起始連接點(diǎn)和所有可行的線序組合后,再做進(jìn)ー步進(jìn)行過濾排除從第一個(gè)CLB分組的CLBl和CLB2開始,依次選取相鄰下個(gè)分組的CLBl和CLB2,在選取CLBl和CLB2的過程中過濾水平六長(zhǎng)線的占用,并同時(shí)采用線序選優(yōu)的策略選取最優(yōu)線序組合,以降低CLBl和CLB2分別對(duì)CLB4和CLB3布線線網(wǎng)的影響;在選取CLB1、CLB2、CLB3和CLB4的過程中,考慮相互之間水平六長(zhǎng)線和行間單長(zhǎng)線的占用影響,當(dāng)過濾完成后進(jìn)入步驟五,否則失敗回退至步驟二重新分組;
步驟五、線序拼接在完成所有關(guān)鍵布線CLB分組的布線后,需要對(duì)相鄰關(guān)鍵布線CLB分組的布線進(jìn)行拼接來完成整個(gè)線網(wǎng)的布線,在拼接過程中, 依據(jù)單個(gè)CLB在線序預(yù)估階段選出的可行線序索引進(jìn)行,當(dāng)拼接成功則進(jìn)入步驟八,否則當(dāng)某個(gè)CLB在重試完所有的可行線序索引后均未拼接成功,則進(jìn)入步驟六進(jìn)行回退判定;
步驟六、回退判定在線序拼接失敗后,進(jìn)行布線CLB回退位置的選擇,首先選擇拼接失敗CLB的頂部CLB,調(diào)整頂部CLB選取的線序組合對(duì)底部CLB布線有影響的占用集合,同時(shí)測(cè)試底部CLB是否可以布通;如果可以則記錄該線序索引值,進(jìn)入步驟七進(jìn)行拆除重布;如果調(diào)整完所有線序索引仍未布通,則回退至該拼接失敗CLB的上一相鄰關(guān)鍵布線CLB分組內(nèi)具有相同組內(nèi)索引的CLB,同樣重試該CLB選出的可行線序索引進(jìn)行,同時(shí)測(cè)試是否可以布通,如是,則記錄該線序索引值,進(jìn)入步驟七進(jìn)行拆除重布,如果重試完所有的可行線序索引后仍未布通,則繼續(xù)按照上述方法循環(huán)回退,直至回退位置為首行的首個(gè)分組為止;如果仍未成功則回退至步驟二重新分組;
步驟七、拆除重布對(duì)已布線網(wǎng)進(jìn)行部分拆除,拆除部分為布線失敗CLB位置至回退CLB位置,拆除這之間所有已布的線網(wǎng),并在拆除過程中分析造成失敗的沖突占用點(diǎn)和線序索引,為回退重布提供依據(jù),拆除完成后根據(jù)回退CLB位置記錄的可行線序索引值進(jìn)行資源重建即重布,重建完成則回退至步驟五,從該回退CLB位置開始繼續(xù)未完成的線序拼接;步驟八、結(jié)果擴(kuò)展完成拼接后的鏈路即為完整鏈路,即已完成了輪回行布線,覆蓋了輪回行的所有CLB ;此時(shí)輪回行以外的CLB部分,將搜索到的鏈路中間結(jié)果按照行奇偶對(duì)應(yīng)的原則擴(kuò)展至整個(gè)芯片,在擴(kuò)展的過程中嚴(yán)格遵守XDL的描述規(guī)則;
步驟九、結(jié)果驗(yàn)證擴(kuò)展完成后,即實(shí)現(xiàn)了整個(gè)FPGA的布線,將此時(shí)的中間結(jié)果直接導(dǎo)出為XDL格式文件,然后利用XDL命令,將導(dǎo)出文件轉(zhuǎn)化為NCD網(wǎng)表進(jìn)行結(jié)果驗(yàn)證。具體的,步驟ニ中所述的CLB和單長(zhǎng)線分組方法,在型號(hào)為XCV1000的芯片上,其CLB分組、CLB分組大小、單長(zhǎng)線分組大小和單長(zhǎng)線分組計(jì)算方式分別為
CLB分組從公式
(列寬96X輪回行大小2) / (CLB分組大小+CLB被測(cè)分組大小)
得到分組數(shù)目,再根據(jù)輸入的分組偏移量分別獲取所有分組所包含的CLB的具體行列值,所有這些分組稱為關(guān)鍵布線CLB分組,每組又都包含CLBl、CLB2、CLB3、CLB4四個(gè)CLB ;將第一行的首個(gè)CLB分組作為第一個(gè)CLB分組,然后第一行按從左至右,第二行按從右至左的順序依次將所有分組編號(hào);而組序號(hào)從小到大相鄰的CLB分組中有相同組內(nèi)序號(hào)的CLB為起始和結(jié)束鏈路布線關(guān)系,第一組CLB的CLBl為第二組CLB的CLBl的起始鏈路布線CLB,第二組CLB的CLBl為第一組CLB的CLBl的結(jié)束鏈路布線CLB,同時(shí)第二組CLB的CLBl為第三組CLB的CLBl的起始鏈路布線CLB ;
CLB分組大小單長(zhǎng)線數(shù)目24 /輸入線序數(shù)目6 = 4;
單長(zhǎng)線分組大小單長(zhǎng)線數(shù)目24 /輸入線序數(shù)目6 = 4;
單長(zhǎng)線分組使用組合算法,將24根單長(zhǎng)線每次選出6根,分四次選出分成四組,每組包含6根單長(zhǎng)線起始連接點(diǎn),然后將選出的四個(gè)分組編號(hào),當(dāng)后續(xù)檢測(cè)到失敗回退需要重新分組時(shí),將當(dāng)前分組編號(hào)加I繼續(xù)選取下個(gè)分組;分組后的單長(zhǎng)線依次分別對(duì)應(yīng)到首個(gè)CLB分組的四個(gè)CLB上,作為相應(yīng)CLB布線起始連接點(diǎn)。步驟四所述的線序選優(yōu)的策略是依據(jù)單鏈長(zhǎng)最短、總鏈長(zhǎng)最短、稀缺資源占用最少、單長(zhǎng)線垂直底部占用連接點(diǎn)Sx或單長(zhǎng)線垂直頂部占用連接點(diǎn)Nx最少的原則判定最優(yōu);其中,在進(jìn)行第一行布線時(shí)考慮單長(zhǎng)線垂直底部占用連接點(diǎn)Sx,當(dāng)進(jìn)行第二行布線時(shí)考慮單長(zhǎng)線垂直頂部占用連接點(diǎn)Nx ;X為O 23的任意整數(shù)值。 步驟五所述對(duì)相鄰關(guān)鍵布線CLB分組的布線進(jìn)行拼接是將第一組的CLB1、第一組被測(cè)CLB分組和第二組的CLBl進(jìn)行拼接,第二組的CLBl、第二組被測(cè)CLB分組和第三組的CLBl相拼接,并依次完成所有相鄰CLB分組的CLBl的拼接,同理完成CLB2、CLB3和CLB4的拼接。步驟五所述的線序拼接是將相鄰關(guān)鍵布線CLB分組的鏈路頭、鏈路體和鏈路尾這三個(gè)部分依據(jù)連接對(duì)應(yīng)關(guān)系進(jìn)行對(duì)接,并最終形成完整的布線軌跡。本發(fā)明的優(yōu)點(diǎn)是本方法能快速進(jìn)行資源配置和有效配置資源圖的生成,對(duì)單長(zhǎng)線及連接開關(guān)的資源覆蓋率較高,且與具體硬件結(jié)構(gòu)無關(guān);本方法的實(shí)施能極大地增強(qiáng)FPGA的自動(dòng)化布線和測(cè)試能力,有效減少后期布線工作量,節(jié)約測(cè)試成本,提高測(cè)試效率,縮短測(cè)試周期,有一定的應(yīng)用和參考價(jià)值。


圖I是水平單長(zhǎng)線測(cè)試整體結(jié)構(gòu)示意圖。圖2是算法涉及基本概念不意圖。圖3是本發(fā)明的流程圖。圖4是CLB內(nèi)部連接關(guān)系圖。
具體實(shí)施例方式為了進(jìn)一步說明后續(xù)的實(shí)施步驟,這里結(jié)合附圖從資源的抽取抽象、模型的建立、到算法理論基礎(chǔ)、涉及的基本概念,再到算法流程所涉及的算法核心和布線策略,分別做簡(jiǎn)要陳述;涉及到的概念大致如下。I、資源等價(jià)描述
在設(shè)計(jì)FPGA布線算法前期,算法設(shè)計(jì)者需要從FPGA硬件設(shè)計(jì)者手中獲取該芯片的結(jié)構(gòu)描述文件,對(duì)文件中所描述的硬件結(jié)構(gòu)及連接關(guān)系進(jìn)行邏輯等價(jià)、邏輯抽象,并將中間結(jié)果存入數(shù)據(jù)庫,以便在后續(xù)搜索路徑的過程中依據(jù)該結(jié)果進(jìn)行FPGA結(jié)構(gòu)的重建,得到計(jì)算機(jī)可以識(shí)別的単元、圖或樹的結(jié)構(gòu),完成整個(gè)芯片的布線流程。這里需要進(jìn)行等價(jià)描述的邏輯資源有1) CLB (可配置邏輯模塊)、Ι0Β, BRAM等邏輯單元塊;2)各個(gè)邏輯塊的輸入輸出引腳連接度;3)連接線之間的驅(qū)動(dòng)方式;4)單長(zhǎng)線、六長(zhǎng)線、長(zhǎng)線等布線資源;5)其他相關(guān)布線資源。2、依據(jù)設(shè)計(jì)模型
本方法依據(jù)的設(shè)計(jì)模型和理論基礎(chǔ),即配置完成FPGA芯片單長(zhǎng)線及其直連開關(guān)的布線方法詳見專利文獻(xiàn)——ー種FPGA單長(zhǎng)線及直連開關(guān)的測(cè)試方法(專利申請(qǐng)?zhí)?01110125752. 7)。模型如圖I所示,包括CLB I ;Ι0Β 2 ,第一級(jí)CLB分組3 ;被測(cè)試的CLB 4 ;整張圖表示了水平單長(zhǎng)線的整體布線架構(gòu),為了測(cè)試單長(zhǎng)線及互連開關(guān)的連接情況,這里要求被測(cè)的CLB要么用直向單長(zhǎng)線互連要么用斜向單長(zhǎng)線互連,且每次布圖只允許用其中ー種連接方式。3、算法理論模型 在基礎(chǔ)數(shù)據(jù)庫搭建完成后,我們需要對(duì)搜索算法的基本概念作一了解,依據(jù)設(shè)計(jì)模型,在24根DO信號(hào)進(jìn)入第一組CLB后,需要分別連接到水平或者垂直的單長(zhǎng)線連接點(diǎn)上,接著CLB的輸出線通過GRM的內(nèi)部互連線連接到外部資源,然后通過下ー組的CLB的內(nèi)部互連線連接到CLB,形成完整的單條線網(wǎng);在整個(gè)過程中,最重要的有兩個(gè)環(huán)節(jié),一個(gè)是從CLB引出線網(wǎng)的過程,一個(gè)是在CLB中結(jié)束線網(wǎng)的過程;這兩個(gè)過程,這里我分別稱作為鏈路頭布線和鏈路尾布線,剩下的從CLB橫穿的部分我稱之為鏈路體布線,最后,我們將鏈路頭、鏈路體和鏈路尾拼接形成整條線網(wǎng);行首/尾采用蛇形或者反蛇形布線方式連接。如圖2所示,圖中序號(hào)分別代表的資源為輪回行5 (將在標(biāo)題4說明);鏈路頭6,鏈路的起始部分;第ー組CLB分組7 ;鏈路體8,鏈路的橫穿部分;鏈路尾9,鏈路的結(jié)束部分;第ニ組CLB分組10 ;行首/尾連接方式11,連接方式包括蛇形和反蛇形連接;第N-I組CLB分組12,第N組CLB分組13 (以下標(biāo)題8中將詳述分組目的和方法);橫穿CLB的單長(zhǎng)線互連方式14,橫穿的方式有直線和斜線兩種方式,分別為了測(cè)試直向和斜向開關(guān)。4、輪回行
輪回行即有一定輪回周期的行,連接點(diǎn)在從起始連接點(diǎn)經(jīng)過ー個(gè)輪回行周期的布線變換后,重又回到起始的連接點(diǎn),這里變換所需要經(jīng)過的行即為輪回行,為了規(guī)范期間,這里通過特殊變換使得輪回行大小為2,且連接起始點(diǎn)均從奇數(shù)行開始;至于輪回行大小設(shè)置為2的原因,見以下標(biāo)題7。5、最大搜索鏈長(zhǎng)
在依據(jù)寬度優(yōu)先算法對(duì)單線網(wǎng)布線的過程中,由于不考慮驅(qū)動(dòng)和時(shí)延等因素的影響,捜索鏈長(zhǎng)是無節(jié)制增長(zhǎng)的,為了控制增長(zhǎng),控制算法復(fù)雜度,這里需要引入最大鏈長(zhǎng)的概念,以限定單條鏈路的搜索長(zhǎng)度,即CLB內(nèi)部單鏈長(zhǎng)的最大長(zhǎng)度不能超過設(shè)置的最大鏈長(zhǎng)值,這里我們控制的最大鏈長(zhǎng)值為10,初始值為5,后期在搜索線網(wǎng)失敗的情況下將逐步放寬該初始化值至最大值,直至布線完成。6、算法流程
本方法的特色為采用了輪回行擴(kuò)展模式布線,下面將算法流程的核心大致做一描述,首先將整個(gè)芯片結(jié)構(gòu)按輪回行模式進(jìn)行劃分,接著按照一定算法完成輪回行布線,由于是多線網(wǎng)問題,所以輪回行布線實(shí)際包含兩個(gè)部分單線網(wǎng)布線和整體布線。前者采用寬度優(yōu)先搜索算法完成對(duì)單線網(wǎng)布線,后者在調(diào)用前者的基礎(chǔ)上通過綜合選優(yōu)完成所有線網(wǎng)布線。在整個(gè)布線過程中,我們采用快速分組、線序預(yù)估、多點(diǎn)布線、二次過濾、線序選優(yōu)、線序拼接、回退判定、拆除重布及結(jié)果擴(kuò)展等一整套布線方法和策略,有效降低后期布線資源的沖突和擁擠,并盡量避免線序?qū)Σ季€質(zhì)量的影響,充分保證布通率。在完成輪回行布線后,依據(jù)奇數(shù)行和偶數(shù)行相照應(yīng)的原則進(jìn)行擴(kuò)展,最終完成整個(gè)芯片的布線。如圖3算法流程圖所示,分別說明了算法的流程和關(guān)鍵步驟,由于只是為了說明算法的大致流程,故對(duì)其中某些步驟作了合并簡(jiǎn)化處理,對(duì)某些策略也未作標(biāo)示。7、設(shè)置輪回行
由于所實(shí)施的系列FPGA結(jié)構(gòu)和市面上大部分商用FPGA結(jié)構(gòu)均采用層次化對(duì)稱式結(jié)構(gòu),經(jīng)研究發(fā)現(xiàn),在該系列FPGA結(jié)構(gòu)下,前兩行已基本具備了整個(gè)FPGA結(jié)構(gòu)的特征,如CLB內(nèi)部布線,換行布線,鏈路體組裝,水平單長(zhǎng)/六長(zhǎng)線的占用排除等;唯一要解決的就是垂直六長(zhǎng)在后期布線的資源沖突問題(由于僅為了測(cè)試單長(zhǎng)線開關(guān)的連通性,所以排除了長(zhǎng)線資源),只要解決了該問題輪回行的條件就能滿足;辦法有兩種1)、后續(xù)行依次進(jìn)行組合調(diào)整;2)、在前兩行就排除掉可能引起沖突的占用點(diǎn);第一種方法可行但相對(duì)耗時(shí),第二種 方法在考慮到六長(zhǎng)線的隔6進(jìn)入CLB的特點(diǎn),那么可能引起沖突的后續(xù)奇數(shù)行仍然對(duì)應(yīng)奇數(shù)行,偶數(shù)行對(duì)應(yīng)偶數(shù)行,所以只要保證自身S、N的對(duì)應(yīng)數(shù)字不同時(shí)存在相同值就可以了。在分析完可行性之后,我們決定采用效率較高的第二種方法。8、快速分組
由于我們采用的是整組線序布線策略,那么在輪回行設(shè)定完成之后,首先要面對(duì)的就是分組;分組有兩種第一種是CLB分組,目的是為了便于組間回退、線網(wǎng)拼接及多點(diǎn)布線;第二種是水平單長(zhǎng)線分組,目的是為了便于控制線序和選取最優(yōu);CLB分組相對(duì)簡(jiǎn)單,分組的大小和個(gè)數(shù)依據(jù)芯片的寬度、輸入節(jié)點(diǎn)個(gè)數(shù)等通過一定的公式計(jì)算得來,以XCV1000為例(以下舉例均以該設(shè)備為例),這里我們要求輸入點(diǎn)的個(gè)數(shù)必須被24整除且商為偶數(shù),我以6作為輸入點(diǎn)個(gè)數(shù),那么其計(jì)算方式分別為
CLB分組從公式
(列寬96X輪回行大小2) / (CLB分組大小+CLB被測(cè)分組大小)
得到分組數(shù)目,再根據(jù)輸入的分組偏移量分別獲取所有分組所包含的CLB的具體行列值,所有這些分組稱為關(guān)鍵布線CLB分組,每組又都包含CLBl、CLB2、CLB3、CLB4四個(gè)CLB ;將第一行的首個(gè)CLB分組作為第一個(gè)CLB分組,然后第一行按從左至右,第二行按從右至左的順序依次將所有分組編號(hào);而組序號(hào)從小到大相鄰的CLB分組中有相同組內(nèi)序號(hào)的CLB為起始和結(jié)束鏈路布線關(guān)系,第一組CLB的CLBl為第二組CLB的CLBl的起始鏈路布線CLB,第二組CLB的CLBl為第一組CLB的CLBl的結(jié)束鏈路布線CLB,同時(shí)第二組CLB的CLBl為第三組CLB的CLBl的起始鏈路布線CLB ;
CLB分組大小單長(zhǎng)線數(shù)目24 /輸入線序數(shù)目6 = 4;
單長(zhǎng)線分組大小單長(zhǎng)線數(shù)目24 /輸入線序數(shù)目6 = 4;
單長(zhǎng)線分組使用組合算法,將24根單長(zhǎng)線每次選出6根,分四次選出分成四組,每組包含6根單長(zhǎng)線起始連接點(diǎn),然后將選出的四個(gè)分組編號(hào),當(dāng)后續(xù)檢測(cè)到失敗回退需要重新分組時(shí),將當(dāng)前分組編號(hào)加I繼續(xù)選取下個(gè)分組;分組后的單長(zhǎng)線依次分別對(duì)應(yīng)到首個(gè)CLB分組的四個(gè)CLB上,作為相應(yīng)CLB布線起始連接點(diǎn)。單長(zhǎng)線分組和CLB分組具有一定的內(nèi)在聯(lián)系,首先,它們的組大小相同,且單長(zhǎng)線的分組序號(hào)對(duì)應(yīng)CLB的組內(nèi)序號(hào);其次,每個(gè)關(guān)鍵布線CLB分組內(nèi)的CLB布線均是針對(duì)有對(duì)應(yīng)分組序號(hào)單長(zhǎng)線的初始或變化的線序進(jìn)行布線的。9、線序預(yù)估
在選取完第一組CLB分組連接點(diǎn)后,我們依據(jù)整體獲取輪回行所有關(guān)鍵布線CLB分組連接點(diǎn),獲取的方法如下(以第一個(gè)CLB分組的CLBl上的水平單長(zhǎng)線起始點(diǎn)WO為例)根據(jù)是測(cè)被測(cè)CLB的直向開關(guān)還是斜向開關(guān)分情況獲取,如果要測(cè)直向開關(guān)則只有橫穿CLB—種,如果要測(cè)斜向開關(guān)則分斜向上和斜向下兩種,一共分三種情況,這里的三種情況又都包含CLB內(nèi)部布線和CLB相鄰布線,由于CLB相鄰布線的連接關(guān)系無非是Ex->Wx或者WX->EX (X為O 23之間的可能值)的情況,三種情況的規(guī)律一致,不做過多講述。這里把重點(diǎn)放在CLB內(nèi)部布線上a、直向,這種情況和外部情況類似,WO到相鄰CLB分組的CLBl,連接起始點(diǎn)還為WO ;b、斜向上,EO在第一個(gè)CLB中的連接情況為W0->NX->Ey(X、y為O 23之間的整數(shù)值,該值取決與前面對(duì)單長(zhǎng)線內(nèi)部互連關(guān)系的抽象),到相鄰CLB分組中CLBl的起始點(diǎn)為上邊Ey經(jīng)CLB相鄰布線得到Wy (y值為O 23之間的整數(shù)值,該值為WO依據(jù)數(shù)據(jù)庫中的單長(zhǎng)線互連關(guān)系變換獲取);c、斜向下跟斜向上基本類似,不同的是CLB內(nèi)部W0->NX->Ey需要變?yōu)閃0->SX->Ey(X、y為O 23之間的整數(shù)值,該值取決與前面對(duì)單長(zhǎng) 線互連關(guān)系的抽象),其它同斜向上情形。其中,Ex (Ey)表示單長(zhǎng)線水平右邊占用的ー個(gè)連接點(diǎn),Wx (Wy )表示單長(zhǎng)線水平左邊占用的ー個(gè)連接點(diǎn),Sx表示單長(zhǎng)線垂直底部占用的一個(gè)連接點(diǎn),Nx表示單長(zhǎng)線垂直頂部占用的ー個(gè)連接點(diǎn)。通過上述方式可以獲取第一分組CLBl的WO經(jīng)過變換后到第二個(gè)分組的連接初始值,依次可以獲取第一分組CLBl的其它連接點(diǎn)到第二個(gè)分組的連接起始點(diǎn),通過相鄰獲取的方式獲取所有關(guān)鍵布線CLB分組中CLB1、CLB2、CLB3、CLB4的連接起始點(diǎn)。所以在確定是以上3種情況的任意一種時(shí),就可以獲取所有關(guān)鍵布線CLB分組下的所有起始連接點(diǎn)。然后進(jìn)行分組測(cè)試驗(yàn)證,測(cè)試該分組是否合適,是否可以選出最優(yōu)線序,如不合適則回退到第8步進(jìn)行快速分組調(diào)整;測(cè)試的方法就是搜索并選取最大鏈長(zhǎng)下的所有可能線網(wǎng),如能布通則表示該分組暫時(shí)可行,否則調(diào)整分組繼續(xù)測(cè)試直至可行,然后分別記錄第一組、第二組、第三組的組合序號(hào)以便在后續(xù)回退時(shí)調(diào)整該序號(hào)選出相應(yīng)分組。這個(gè)過程我稱之為布線預(yù)估階段。10、 多點(diǎn)布線
在線序預(yù)估階段我們依據(jù)CLB分組,獲取了所有關(guān)鍵布線CLB分組連接點(diǎn)線序,然后同時(shí)對(duì)多個(gè)分組關(guān)鍵點(diǎn)同時(shí)進(jìn)行預(yù)估和布線,這里提到的多點(diǎn)是輪回行在CLB分組后具有相同組內(nèi)序號(hào)的關(guān)鍵布線CLB分組;通過對(duì)這些關(guān)鍵布線CLB分組進(jìn)行同時(shí)布線預(yù)估可以更快速的判定劣質(zhì)線序并進(jìn)行淘汰,以便高效高質(zhì)量的進(jìn)行線序分組。后期同樣依據(jù)這些關(guān)鍵布線CLB分組進(jìn)行布線和拼接,提高布線效率。這里提及的多點(diǎn)預(yù)估和多點(diǎn)布線統(tǒng)稱為多點(diǎn)布線。11、 二次過濾
二次過濾是對(duì)線序預(yù)估后選取的線序進(jìn)行第二次過濾淘汰,即行間和CLB間占用沖突問題,包括水平六長(zhǎng)占用和垂直單長(zhǎng)占用等;由于沖突是相互的,那么調(diào)整誰改變誰呢?
在CLB分組后,每組的CLB我按照先后給定了序號(hào),第一行按從左至右排序,第二行從右至左排序,每組都從I開始。如分組大小為4,則第一行第一組為CLB1_R1C1、CLB2_R1C2、CLB3_R1C3、CLB4_R1C4,第ニ行最左邊ー組為 CLB4_R2C1、CLB3_R2C2、CLB2_R2C3、CLB 1_R2C4(注CLBm_RxCy,CLBm代表某個(gè)分組內(nèi)的第m個(gè)CLB,m為CLB組內(nèi)序號(hào),x和y分別代表行和列的序號(hào)),由于第一行的CLB1、CLB2、CLB3、CLB4分別和第二行的CLB4、CLB3、CLB2、CLB1——對(duì)應(yīng),這里我們固定CLBl和CLB2,分別調(diào)整CLB3和CLB4,在選取CLB3和CLB4的過程中過濾行間單長(zhǎng)線沖突;當(dāng)CLB的橫穿數(shù)目大于6吋,則不考慮水平六長(zhǎng)占用沖突,否則需要在排除完行間沖突后再進(jìn)行水平六長(zhǎng)占用的排除,如果在排除過程中發(fā)現(xiàn)有布不通的情況則同樣需要回退至快速分組階段重新選取線序;由于選取CLBl和CLB2的結(jié)果直接影響到CLB3和CLB4的分組和選優(yōu),所以在選取CLBl和CLB2過程中需要對(duì)結(jié)果進(jìn)行判優(yōu),那么如何選取最優(yōu)呢?
12、 線序選優(yōu)
在線序預(yù)估階段,為了判斷水平單長(zhǎng)線組合的可行性,我們采用了全排列算法依次對(duì)線序進(jìn)行預(yù)估,并依次記錄可行線序;前期線序的選取直接影響后續(xù)線序的選取,特別是 CLBl和CLB2分組的線序選取,為了給這些線序評(píng)優(yōu),這里我們引入評(píng)分選優(yōu)策略依據(jù)單鏈長(zhǎng)最短、總鏈長(zhǎng)最短、稀缺資源占用最少、單長(zhǎng)線垂直底部占用連接點(diǎn)Sx或單長(zhǎng)線垂直頂部占用連接點(diǎn)Nx最少的原則判定最優(yōu);其中,在進(jìn)行第一行布線時(shí)考慮單長(zhǎng)線垂直底部占用連接點(diǎn)Sx,當(dāng)進(jìn)行第二行布線時(shí)考慮單長(zhǎng)線垂直頂部占用連接點(diǎn)Nx。依據(jù)該策略分別對(duì)每組可行線序進(jìn)行打分,并按照分值越高越優(yōu)秀的原則對(duì)所有線網(wǎng)排序,這個(gè)綜合評(píng)優(yōu)的過程還要兼顧鏈路頭和鏈路尾的總分值進(jìn)行。13、 線序拼接
在完成連接點(diǎn)線序選優(yōu)、預(yù)估和二次過濾后,我們已對(duì)分組關(guān)鍵布線CLB分組下的單個(gè)CLB分別提取了所有可布通的線序集合,但單個(gè)CLB的布通不代表整個(gè)鏈路是可行的,這時(shí)的布線是不完整的,依據(jù)算法模型,完整的鏈路同時(shí)包括鏈路頭、鏈路體和鏈路尾,所以這時(shí)需要對(duì)相鄰關(guān)鍵布線CLB分組的組內(nèi)和組間的CLB進(jìn)行布線拼接,拼接的過程中隨時(shí)都有布不通的可能性,那么在這種情況發(fā)生吋,就需要考慮回退和拆除重布,把捜索節(jié)點(diǎn)從當(dāng)前點(diǎn)回退到回退點(diǎn),并拆除這之間的已布線網(wǎng)。線序拼接就是將相鄰關(guān)鍵布線CLB分組的鏈路頭、鏈路體和鏈路尾這三個(gè)部分依據(jù)連接對(duì)應(yīng)關(guān)系進(jìn)行對(duì)接,并最終形成完整的布線軌跡,其具體拼接方法為將第一組的CLB1、第一組被測(cè)CLB分組和第二組的CLBl進(jìn)行拼接,第二組的CLB1、第二組被測(cè)CLB分組和第三組的CLBl相拼接,并依次完成所有相鄰CLB分組的CLBl的拼接,同理完成CLB2、CLB3和CLB4的拼接。14、 回退判定
在線序預(yù)估階段,我們記錄了關(guān)鍵布線CLB分組內(nèi)的CLB下所有可行的排序索引值,當(dāng)在失敗CLB重試完所有的排序索引值都沒有完成拼接時(shí),我們即認(rèn)為需要回退;關(guān)于回退位置,我認(rèn)為有兩個(gè),第一個(gè)上級(jí)CLB,因?yàn)樯烯`個(gè)相鄰關(guān)鍵布線CLB分組內(nèi)具有相同組內(nèi)序號(hào)的CLB直接影響該失敗CLB的選取,比如第四組的CLBl受第三組的CLBl的影響。第ニ個(gè)頂部CLB,因?yàn)轫敳空加弥苯佑绊懥说撞緾LB的線序選?。辉诨赝说巾敳緾LB前,我們還需要記錄該失敗CLB的原始占用,在重新選取線序后,將更新過的占用與原始占用比對(duì),做出合理判斷,選擇影響最小的優(yōu)秀線序,使后布的線網(wǎng)更容易布通;回退到回退點(diǎn)后,我們調(diào)整回退點(diǎn)的CLB排序索引值并重試,若成功則從調(diào)整點(diǎn)順序布下去,若失敗則同樣先是回退到上級(jí)CLB,再回退到頂部CLB,依次循環(huán)直至第一行第一組的某個(gè)CLB,仍然失敗則對(duì)具有相同CLB組內(nèi)序號(hào)的CLB進(jìn)行分組調(diào)整并重試。當(dāng)重試完所有分組仍無法布通吋,我們則回退到8步重新進(jìn)行分組。15、 拆除重布
關(guān)于拆除和重布;在回退過程中,我們對(duì)部分已布線網(wǎng)采取拆除策略,這里講的拆除并非完全整個(gè)布線的拆除,僅是對(duì)從當(dāng)前CLB到回退CLB之間的已布線網(wǎng)進(jìn)行拆除;重布前,我們需要對(duì)因資源沖突造成布線失敗的原因進(jìn)行綜合分析;在重布的過程中,我們采用失敗的線網(wǎng)優(yōu)先,被拆線網(wǎng)靠后的原則進(jìn)行線網(wǎng)資源重建。由于拆除重布過程沒有拆掉所有線網(wǎng),所以能夠有效減少拆線資源量,節(jié)省運(yùn)行時(shí)間,提高整體布線效率。16、 結(jié)果擴(kuò)展
在前兩行布線成功的前提下,我們把前兩行搜索成功的經(jīng)驗(yàn)按奇數(shù)行和偶數(shù)行相照應(yīng)的原則擴(kuò)展至整個(gè)芯片,依次應(yīng)用到所有行和列。在擴(kuò)展的過程中我們嚴(yán)格遵循XDL描述 規(guī)則,依據(jù)XDL所規(guī)范要求的PIP、NET、INST、INPIN、OUTPIN等標(biāo)準(zhǔn)形式進(jìn)行格式化,PIP和NET依據(jù)實(shí)際搜索的器件間的連線而定,包括Slice、IOB, TBUF等各種形式的INST按布線中間結(jié)果和輸入輸出參數(shù)形成,INPIN和OUTPIN按實(shí)際的參數(shù)值進(jìn)行格式化,并最終形成具有標(biāo)準(zhǔn)規(guī)范的中間結(jié)果。17、 網(wǎng)表驗(yàn)證
擴(kuò)展完成后的數(shù)據(jù),其格式已經(jīng)完全符合了 XDL規(guī)則,故可直接將布線結(jié)果導(dǎo)出為XDL格式文件,再利用XDL命令,將已包含了布線所產(chǎn)生的資源配置信息和線網(wǎng)信息的XDL文件轉(zhuǎn)化為NCD網(wǎng)表,進(jìn)行驗(yàn)證。在簡(jiǎn)要說明了算法所涉及的概念、設(shè)計(jì)模型、算法核心及布線策略后,下面再結(jié)合具體的布線流程對(duì)本發(fā)明的實(shí)施步驟作更進(jìn)ー步說明,在實(shí)施過程中,確定完FPGA芯片的型號(hào)后,我們將該芯片的型號(hào)信息作為算法的輸入?yún)?shù)輸入,此外,還要選取的輸入?yún)?shù)包括鏈路起始點(diǎn)組合和鏈路結(jié)束點(diǎn)組合,這里我們分別選取Slicel的4根信號(hào),自左至右分別為{S1_Y/S1_YQ/S1_X/S1_XQ} ;SliceO的2根信號(hào),自左至右分別為{S0_X/S0_XQ}作為輸出;以及 6 根輸入信號(hào)自左至右為{S1_G_B1/S1_BY/S1_F_B1/S1_BX/S0_F_B1/S0_BX }。這里選取的輸入輸出信號(hào)應(yīng)一一對(duì)應(yīng)。關(guān)于輸入輸出對(duì)應(yīng)性的問題,在圖4所示的CLB內(nèi)部連接關(guān)系圖上有很好的體現(xiàn),每組CLB的輸出到下ー組的CLB輸入都有固定的對(duì)應(yīng)關(guān)系,如圖上所示的SliceO的兩組{S0_X/S0_XQ, S0_Y/S0_YQ1信號(hào),左側(cè)CLB在輸入右側(cè)CLB的過程中,X與XQ,Y與YQ應(yīng)——
對(duì)應(yīng)串聯(lián)。除以上的參數(shù)外,本算法還可靈活設(shè)置的附加條件包括最大捜索鏈長(zhǎng),被測(cè)CLB分組大小、鏈路體穿過的CLB數(shù),鏈路尾連接方式(蛇形和反蛇形),過濾管腳及偏移CLB數(shù)目等。在設(shè)置完參數(shù)及捜索條件后,本發(fā)明依據(jù)理論模型和一定步驟進(jìn)行鏈路搜索,步驟大致如下
步驟一、設(shè)置輪回行并初始化參數(shù)確定輪回行的數(shù)目為2,并為后續(xù)布線捜索到的鏈路中間結(jié)果準(zhǔn)備存儲(chǔ)空間,準(zhǔn)備完成后進(jìn)入步驟ニ ;
步驟ニ、快速分組依據(jù)分組算法依次將CLB和單長(zhǎng)線進(jìn)行分組,獲取輪回行所有CLB分組和第一組CLB分組對(duì)應(yīng)單長(zhǎng)線起始組合點(diǎn);分組完成后進(jìn)入步驟三,如果失敗則退出算法,返回失敗代碼;
步驟三、線序預(yù)估在選取完第一組CLB分組連接點(diǎn)后,通過獲取輪回行所有關(guān)鍵布線CLB分組連接點(diǎn)的方法獲取輪回行所有CLB分組的起始連接點(diǎn),然后分別對(duì)這些連接點(diǎn)進(jìn)行測(cè)試驗(yàn)證,測(cè)試該分組是否合適,是否可以選出最優(yōu)線序;測(cè)試的方法是依據(jù)寬度優(yōu)先算法搜索并選取該CLB布線在最大鏈長(zhǎng)下的所有可布通的線網(wǎng),如能布通則表示該分組暫時(shí)可行,井分別記錄CLB1、CLB2、CLB3、CLB4可布通的組合序號(hào)以便在后續(xù)回退時(shí)調(diào)整該組合序號(hào)選出相應(yīng)線序組合;當(dāng)預(yù)估完成后進(jìn)入步驟四,否則如果所有組合測(cè)試后均未發(fā)現(xiàn)可布通的線序組合則回退至步驟二重新分組;所述CLB1、CLB2、CLB3、CLB4分別指每個(gè)CLB分組的第一個(gè)CLB、第二個(gè)CLB、第三個(gè)CLB和第四個(gè)CLB ;
步驟四、二次過濾經(jīng)過步驟3預(yù)估過濾后,確定了所有關(guān)鍵布 線CLB分組的起始連接點(diǎn)和所有可行的線序組合后,再做進(jìn)ー步進(jìn)行過濾排除從第一個(gè)CLB分組的CLBl和CLB2開始,依次選取相鄰下個(gè)分組的CLBl和CLB2,在選取CLBl和CLB2的過程中過濾水平六長(zhǎng)線的占用,并同時(shí)采用線序選優(yōu)的策略選取最優(yōu)線序組合,以降低CLBl和CLB2分別對(duì)CLB4和CLB3布線線網(wǎng)的影響;在選取CLB1、CLB2、CLB3和CLB4的過程中,考慮相互之間水平六長(zhǎng)線和行間單長(zhǎng)線的占用影響,當(dāng)過濾完成后進(jìn)入步驟五,否則失敗回退至步驟二重新分組;
步驟五、線序拼接在完成所有關(guān)鍵布線CLB分組的布線后,需要對(duì)相鄰關(guān)鍵布線CLB分組的布線進(jìn)行拼接來完成整個(gè)線網(wǎng)的布線,在拼接過程中,依據(jù)單個(gè)CLB在線序預(yù)估階段選出的可行線序索引進(jìn)行,當(dāng)拼接成功則進(jìn)入步驟八,否則當(dāng)某個(gè)CLB在重試完所有的可行線序索引后均未拼接成功,則進(jìn)入步驟六進(jìn)行回退判定;
步驟六、回退判定在線序拼接失敗后,進(jìn)行布線CLB回退位置的選擇,首先選擇拼接失敗CLB的頂部CLB,調(diào)整頂部CLB選取的線序組合對(duì)底部CLB布線有影響的占用集合,同時(shí)測(cè)試底部CLB是否可以布通;如果可以則記錄該線序索引值,進(jìn)入步驟七進(jìn)行拆除重布;如果調(diào)整完所有線序索引仍未布通,則回退至該拼接失敗CLB的上一相鄰關(guān)鍵布線CLB分組內(nèi)具有相同組內(nèi)索引的CLB,同樣重試該CLB選出的可行線序索引進(jìn)行,同時(shí)測(cè)試是否可以布通,如是,則記錄該線序索引值,進(jìn)入步驟七進(jìn)行拆除重布,如果重試完所有的可行線序索引后仍未布通,則繼續(xù)按照上述方法循環(huán)回退,直至回退位置為首行的首個(gè)分組為止;如果仍未成功則回退至步驟二重新分組;
步驟七、拆除重布對(duì)已布線網(wǎng)進(jìn)行部分拆除,拆除部分為布線失敗CLB位置至回退CLB位置,拆除這之間所有已布的線網(wǎng),并在拆除過程中分析造成失敗的沖突占用點(diǎn)和線序索引,為回退重布提供依據(jù),拆除完成后根據(jù)回退CLB位置記錄的可行線序索引值進(jìn)行資源重建即重布,重建完成則回退至步驟五,從該回退CLB位置開始繼續(xù)未完成的線序拼接;步驟八、結(jié)果擴(kuò)展完成拼接后的鏈路即為完整鏈路,即已完成了輪回行布線,覆蓋了輪回行的所有CLB ;此時(shí)輪回行以外的CLB部分,將搜索到的鏈路中間結(jié)果按照行奇偶對(duì)應(yīng)的原則擴(kuò)展至整個(gè)芯片,在擴(kuò)展的過程中嚴(yán)格遵守XDL的描述規(guī)則,擴(kuò)展完成后進(jìn)入步驟九進(jìn)行結(jié)果驗(yàn)證;
步驟九、結(jié)果驗(yàn)證擴(kuò)展完成后,即實(shí)現(xiàn)了整個(gè)FPGA的布線,將此時(shí)的中間結(jié)果直接導(dǎo)出為XDL格式文件,然后利用XDL命令,將導(dǎo)出文件轉(zhuǎn)化為NCD網(wǎng)表進(jìn)行結(jié)果驗(yàn)證。本方法采用了輪回行布線、整體擴(kuò)展的模式進(jìn)行了 FPGA布線;在布線過程中,又利用整體分組、多點(diǎn)布線、綜合評(píng)優(yōu)等多套策略,有效降低了后期資源沖突幾率和回退率,極大地提高了布線質(zhì)量和布線效率;拆除重布的過程采用部分而非整體拆除的機(jī)制,大大 減少了拆線數(shù)量,顯著提高了運(yùn)行速度;實(shí)驗(yàn)結(jié)果表明,與其它相關(guān)算法相比本方法具有布線效率高、單長(zhǎng)線資源覆蓋率高、布通率高等優(yōu)勢(shì)。
權(quán)利要求
1.一種測(cè)試FPGA單長(zhǎng)線及連接開關(guān)的擴(kuò)展布線方法,其特征是,步驟如下 步驟一、設(shè)置輪回行并初始化參數(shù)確定輪回行的數(shù)目為2,并為后續(xù)布線搜索到的鏈路中間結(jié)果準(zhǔn)備存儲(chǔ)空間,準(zhǔn)備完成后進(jìn)入步驟二 ; 步驟二、快速分組依據(jù)分組算法依次將CLB和單長(zhǎng)線進(jìn)行分組,獲取輪回行所有CLB分組和第一組CLB分組對(duì)應(yīng)單長(zhǎng)線起始組合點(diǎn);分組完成后進(jìn)入步驟三,如果失敗則退出算法,返回失敗代碼; 步驟三、線序預(yù)估在選取完第一組CLB分組連接點(diǎn)后,通過獲取輪回行所有關(guān)鍵布線CLB分組連接點(diǎn)的方法獲取輪回行所有CLB分組的起始連接點(diǎn),然后分別對(duì)這些連接點(diǎn)進(jìn)行測(cè)試驗(yàn)證,測(cè)試該分組是否合適,是否可以選出最優(yōu)線序;測(cè)試的方法是依據(jù)寬度優(yōu)先算法搜索并選取該CLB布線在最大鏈長(zhǎng)下的所有可布通的線網(wǎng),如能布通則表示該分組暫時(shí)可行,并分別記錄CLB1、CLB2、CLB3、CLB4可布通的組合序號(hào)以便在后續(xù)回退時(shí)調(diào)整該組合序號(hào)選出相應(yīng)線序組合;當(dāng)預(yù)估完成后進(jìn)入步驟四,否則,如果所有組合測(cè)試后均未發(fā)現(xiàn)可布通的線序組合則回退至步驟二重新分組;所述CLB1、CLB2、CLB3、CLB4分別指每個(gè)CLB分組的第一個(gè)CLB、第二個(gè)CLB、第三個(gè)CLB和第四個(gè)CLB ; 步驟四、二次過濾經(jīng)過步驟3預(yù)估過濾后,確定了所有關(guān)鍵布線CLB分組的起始連接點(diǎn)和所有可行的線序組合后,再做進(jìn)一步進(jìn)行過濾排除從第一個(gè)CLB分組的CLBl和CLB2開始,依次選取相鄰下個(gè)分組的CLBl和CLB2,在選取CLBl和CLB2的過程中過濾水平六長(zhǎng)線的占用,并同時(shí)采用線序選優(yōu)的策略選取最優(yōu)線序組合,以降低CLBl和CLB2分別對(duì)CLB4和CLB3布線線網(wǎng)的影響;在選取CLB1、CLB2、CLB3和CLB4的過程中,考慮相互之間水平六長(zhǎng)線和行間單長(zhǎng)線的占用影響,當(dāng)過濾完成后進(jìn)入步驟五,否則失敗回退至步驟二重新分組; 步驟五、線序拼接在完成所有關(guān)鍵布線CLB分組的布線后,需要對(duì)相鄰關(guān)鍵布線CLB分組的布線進(jìn)行拼接來完成整個(gè)線網(wǎng)的布線,在拼接過程中,依據(jù)單個(gè)CLB在線序預(yù)估階段選出的可行線序索引進(jìn)行,當(dāng)拼接成功則進(jìn)入步驟八,否則當(dāng)某個(gè)CLB在重試完所有的可行線序索引后均未拼接成功,則進(jìn)入步驟六進(jìn)行回退判定; 步驟六、回退判定在線序拼接失敗后,進(jìn)行布線CLB回退位置的選擇,首先選擇拼接失敗CLB的頂部CLB,調(diào)整頂部CLB選取的線序組合對(duì)底部CLB布線有影響的占用集合,同時(shí)測(cè)試底部CLB是否可以布通;如果可以則記錄該線序索引值,進(jìn)入步驟七進(jìn)行拆除重布;如果調(diào)整完所有線序索引仍未布通,則回退至該拼接失敗CLB的上一相鄰關(guān)鍵布線CLB分組內(nèi)具有相同組內(nèi)索引的CLB,同樣重試該CLB選出的可行線序索引進(jìn)行,同時(shí)測(cè)試是否可以布通,如是,則記錄該線序索引值,進(jìn)入步驟七進(jìn)行拆除重布,如果重試完所有的可行線序索引后仍未布通,則繼續(xù)按照上述方法循環(huán)回退,直至回退位置為首行的首個(gè)分組為止;如果仍未成功則回退至步驟二重新分組; 步驟七、拆除重布對(duì)已布線網(wǎng)進(jìn)行部分拆除,拆除部分為布線失敗CLB位置至回退CLB位置,拆除這之間所有已布的線網(wǎng),并在拆除過程中分析造成失敗的沖突占用點(diǎn)和線序索引,為回退重布提供依據(jù),拆除完成后根據(jù)回退CLB位置記錄的可行線序索引值進(jìn)行資源重建即重布,重建完成則回退至步驟五,從該回退CLB位置開始繼續(xù)未完成的線序拼接;步驟八、結(jié)果擴(kuò)展完成拼接后的鏈路即為完整鏈路,即已完成了輪回行布線,覆蓋了輪回行的所有CLB ;此時(shí)輪回行以外的CLB部分,將搜索到的鏈路中間結(jié)果按照行奇偶對(duì)應(yīng)的原則擴(kuò)展至整個(gè)芯片,在擴(kuò)展的過程中嚴(yán)格遵守XDL的描述規(guī)則; 步驟九、結(jié)果驗(yàn)證擴(kuò)展完成后,即實(shí)現(xiàn)了整個(gè)FPGA的布線,將此時(shí)的中間結(jié)果直接導(dǎo)出為XDL格式文件,然后利用XDL命令,將導(dǎo)出文件轉(zhuǎn)化為NCD網(wǎng)表進(jìn)行結(jié)果驗(yàn)證。
2.如權(quán)利要求I所述的測(cè)試FPGA單長(zhǎng)線及連接開關(guān)的擴(kuò)展布線方法,其特征在于,步驟二中所述的CLB和單長(zhǎng)線分組方法,在型號(hào)為XCV1000的芯片上,其CLB分組、CLB分組大小、單長(zhǎng)線分組大小和單長(zhǎng)線分組計(jì)算方式分別為 CLB分組從公式 (列寬96X輪回行大小2) / (CLB分組大小+CLB被測(cè)分組大小) 得到分組數(shù)目,再根據(jù)輸入的分組偏移量分別獲取所有分組所包含的CLB的具體行列值,所有這些分組稱為關(guān)鍵布線CLB分組,每組又都包含CLBl、CLB2、CLB3、CLB4四個(gè)CLB ;將第一行的首個(gè)CLB分組作為第一個(gè)CLB分組,然后第一行按從左至右,第二行按從右至左的順序依次將所有分組編號(hào);而組序號(hào)從小到大相鄰的CLB分組中有相同組內(nèi)序號(hào)的CLB為起始和結(jié)束鏈路布線關(guān)系,第一組CLB的CLBl為第二組CLB的CLBl的起始鏈路布線CLB,第二組CLB的CLBl為第一組CLB的CLBl的結(jié)束鏈路布線CLB,同時(shí)第二組CLB的CLBl為第三組CLB的CLBl的起始鏈路布線CLB ; CLB分組大小單長(zhǎng)線數(shù)目24 /輸入線序數(shù)目6 = 4; 單長(zhǎng)線分組大小單長(zhǎng)線數(shù)目24 /輸入線序數(shù)目6 = 4; 單長(zhǎng)線分組使用組合算法,將24根單長(zhǎng)線每次選出6根,分四次選出分成四組,每組包含6根單長(zhǎng)線起始連接點(diǎn),然后將選出的四個(gè)分組編號(hào),當(dāng)后續(xù)檢測(cè)到失敗回退需要重新分組時(shí),將當(dāng)前分組編號(hào)加I繼續(xù)選取下個(gè)分組;分組后的單長(zhǎng)線依次分別對(duì)應(yīng)到首個(gè)CLB分組的四個(gè)CLB上,作為相應(yīng)CLB布線起始連接點(diǎn)。
3.如權(quán)利要求I所述的測(cè)試FPGA單長(zhǎng)線及連接開關(guān)的擴(kuò)展布線方法,其特征在于,步驟四所述的線序選優(yōu)的策略是依據(jù)單鏈長(zhǎng)最短、總鏈長(zhǎng)最短、稀缺資源占用最少、單長(zhǎng)線垂直底部占用連接點(diǎn)Sx或單長(zhǎng)線垂直頂部占用連接點(diǎn)Nx最少的原則判定最優(yōu);其中,在進(jìn)行第一行布線時(shí)考慮單長(zhǎng)線垂直底部占用連接點(diǎn)Sx,當(dāng)進(jìn)行第二行布線時(shí)考慮單長(zhǎng)線垂直頂部占用連接點(diǎn)Nx ;x為O 23的任意整數(shù)值。
4.如權(quán)利要求I所述的測(cè)試FPGA單長(zhǎng)線及連接開關(guān)的擴(kuò)展布線方法,其特征在于,步驟五所述對(duì)相鄰關(guān)鍵布線CLB分組的布線進(jìn)行拼接是將第一組的CLB1、第一組被測(cè)CLB分組和第二組的CLBl進(jìn)行拼接,第二組的CLB1、第二組被測(cè)CLB分組和第三組的CLBl相拼接,并依次完成所有相鄰CLB分組的CLBl的拼接,同理完成CLB2、CLB3和CLB4的拼接。
5.如權(quán)利要求I所述的測(cè)試FPGA單長(zhǎng)線及連接開關(guān)的擴(kuò)展布線方法,其特征是,所述線序拼接是將相鄰關(guān)鍵布線CLB分組的鏈路頭、鏈路體和鏈路尾這三個(gè)部分依據(jù)連接對(duì)應(yīng)關(guān)系進(jìn)行對(duì)接,并最終形成完整的布線軌跡。
全文摘要
本發(fā)明公開了一種測(cè)試FPGA單長(zhǎng)線及連接開關(guān)的擴(kuò)展布線方法,步驟包括設(shè)置輪回行并初始化參數(shù),快速分組,線序預(yù)估,二次過濾,線序拼接,回退判定,拆除重布,結(jié)果擴(kuò)展,結(jié)果驗(yàn)證。其優(yōu)點(diǎn)是依據(jù)層次式FPGA的結(jié)構(gòu)特點(diǎn),提出了一種基于布通率的高可靠、高適應(yīng)性、高效率的布線算法;該算法能快速進(jìn)行資源配置和有效配置資源圖的生成,對(duì)單長(zhǎng)線及連接開關(guān)的資源覆蓋率較高,且與具體硬件結(jié)構(gòu)無關(guān);該算法的實(shí)施極大地增強(qiáng)了自動(dòng)化布線和測(cè)試能力,有效減少后期布線工作量,節(jié)約測(cè)試成本,提高測(cè)試效率,縮短測(cè)試周期,降低開發(fā)風(fēng)險(xiǎn),有一定的應(yīng)用和參考價(jià)值。
文檔編號(hào)G01R31/02GK102809711SQ20121010800
公開日2012年12月5日 申請(qǐng)日期2012年4月13日 優(yōu)先權(quán)日2011年12月1日
發(fā)明者李曉磊, 徐彥峰, 于大鑫 申請(qǐng)人:中國(guó)電子科技集團(tuán)公司第五十八研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
建始县| 霸州市| 醴陵市| 大港区| 六盘水市| 民乐县| 罗江县| 九龙坡区| 吕梁市| 芮城县| 分宜县| 阜南县| 罗江县| 平潭县| 桓台县| 华宁县| 宝清县| 遵化市| 沂源县| 慈溪市| 达拉特旗| 上思县| 黑河市| 黄大仙区| 沁阳市| 金堂县| 合肥市| 神池县| 广东省| 城固县| 金沙县| 和政县| 沙湾县| 横山县| 黄梅县| 鄂伦春自治旗| 普陀区| 延津县| 潼关县| 涞源县| 乌苏市|