專利名稱:應(yīng)用于fpga測試的導(dǎo)航布局布線方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微電子領(lǐng)域中的集成電路設(shè)計和電子設(shè)計自動化領(lǐng)域,特別涉及一種應(yīng)用于FPGA測試的導(dǎo)航布局布線方法。
背景技術(shù):
FPGA是目前市場上廣泛使用的可編程器件,具有開發(fā)周期短和成本低等優(yōu)點。FPGA可以實現(xiàn)各種各樣的應(yīng)用,在FPGA設(shè)計的CAD軟件流程中,布局布線是至關(guān)重要的一歩。布局算法確定了實現(xiàn)電路功能需要的各邏輯單元塊在FPGA中的位置,它的優(yōu)化目標(biāo)是把相連的邏輯單元塊靠近放置以最大限度地減少所需要的布線資源,但有時也要平衡FPGA 中所需要的布線密度或者最大限度提高電路速度。一旦確定了電路中所有邏輯單元塊的位置,布線器就可打通合適的可編程開關(guān)以連接電路需要的所有邏輯單元塊的輸入和輸出引腳。絕大多數(shù)FPGA的布線器有一套避免擁擠的策略以解決布線資源競爭問題。然而,用戶不能輕易的控制以上傳統(tǒng)布局布線算法的具體執(zhí)行過程,這導(dǎo)致了布局布線結(jié)果具有一定的不可控性和不可預(yù)知性。為了測試抗輻射的基于0.5微米SOI的FPGA芯片,應(yīng)用于驗證與測試的碼流文件需要由CAD軟件生成。然而現(xiàn)有的FPGA CADエ具,比如Xilinx ISE和Altera Quartus II,不能滿足需求。這些FPGA CAD工具不僅不能應(yīng)用于我們的FPGA芯片,而且不能生成用于驗證與測試的碼流文件。執(zhí)行布局布線之前,用戶不知道FPGA芯片結(jié)構(gòu)中的哪些邏輯單元塊和布線資源將會被使用。為了測試基于SOI的FPGA芯片,用戶必須在布局布線執(zhí)行之前指定將要使用邏輯單元塊和布線資源,以達(dá)到測試FPGA芯片結(jié)構(gòu)中這些邏輯資源塊和布線資源的目的。
發(fā)明內(nèi)容
本發(fā)明的目的之ー是提供ー種為抗輻射的基于0. 5微米SOI的FPGA芯片產(chǎn)生用于驗證與測試的布局布線結(jié)果的導(dǎo)航布局布線方法。根據(jù)本發(fā)明提供的ー種應(yīng)用于FPGA測試的導(dǎo)航布局布線方法包括
讀取FPGA芯片結(jié)構(gòu)信息;
讀取打包之后生成的網(wǎng)表信息;
讀取邏輯單元塊位置及線網(wǎng)位置的用戶約束條件;
根據(jù)描述用戶約束文件進(jìn)行布局及布線。本發(fā)明提供的應(yīng)用于FPGA測試的導(dǎo)航布局布線方法可以使用戶決定使用哪些布局布線資源,從而產(chǎn)生用于驗證和測試FPGA芯片的布局布線結(jié)果。
圖I是本發(fā)明實施例提供的應(yīng)用于FPGA測試的導(dǎo)航布局布線方法的流程示意 圖2是本發(fā)明實施例提供的指定位置的線網(wǎng)描述示意圖;圖3是本發(fā)明實施例提供的一開關(guān)盒布線規(guī)則示意 圖4是本發(fā)明實施例提供的另一開關(guān)盒布線規(guī)則示意 圖5是本發(fā)明實施例提供的另一開關(guān)盒布線規(guī)則示意 圖6是本發(fā)明實施例提供的另一開關(guān)盒布線規(guī)則示意 圖7是本發(fā)明實施例提供的一種指定路徑線網(wǎng)示意 圖8是本發(fā)明實施例提供的另一種指定路徑線網(wǎng)示意 圖9是本發(fā)明實施例提供的另一種指定路徑線網(wǎng)示意圖;
圖10本發(fā)明實施例提供的測試長度為I的互連線段的布局布線結(jié)果。
具體實施例方式如圖I所示,本發(fā)明實施例提供的一種應(yīng)用于FPGA測試的導(dǎo)航布局布線方法包括
步驟SI、讀取FPGA芯片結(jié)構(gòu)信息。FPGA芯片結(jié)構(gòu)信息通常包括芯片中各種類型的邏輯單元塊的位置、邏輯單元塊的引腳名稱、引腳位置、邏輯單元塊輸入引腳到輸出引腳的延時、布線通道的寬度、互連線段的分布和延時及布線開關(guān)的位置、類型、延時等等。步驟S2、讀取打包之后生成的網(wǎng)表信息。網(wǎng)表信息包括打包之后生成的邏輯單元塊的名稱和類型,使用到的邏輯單元塊的引腳,所有線網(wǎng)的源端和漏端。步驟S3、讀取邏輯單元塊位置及線網(wǎng)位置的用戶約束條件。網(wǎng)表信息是即將要布局布線到FPGA中的邏輯單元塊和線網(wǎng)。用戶約束條件是具體約束對邏輯單元塊的布局和對線網(wǎng)的布線。導(dǎo)航布局布線可以根據(jù)用戶的約束進(jìn)行布局布線。這些布局布線的約束是由用戶寫在用戶約束文件中。導(dǎo)航布局布線工具讀取用戶約束文件獲得約束信息,然后根據(jù)約束執(zhí)行布局布線。用戶約束文件包含兩部分布局約束和布線約束。其中,布局約束描述邏輯單元塊的位置,也就是打包過程輸出的網(wǎng)表文件中指定的邏輯單元塊應(yīng)該放置在FPGA結(jié)構(gòu)中的位置坐標(biāo)(列號,行號)。這些指定的位置坐標(biāo)(列號,行號)必須合法,位置坐標(biāo)不能超過FPGA結(jié)構(gòu)的范圍。同時,網(wǎng)表文件中被指定的邏輯單元塊的類型必須與FPGA結(jié)構(gòu)中指定位置處的邏輯單元塊類型相匹配。如果用戶指定的位置坐標(biāo)不合法,該程序會報錯,并且終止程序,提示用戶重新指定位置坐標(biāo)。布線約束描述線網(wǎng)的位置。如圖I所示,每個指定位置的線網(wǎng)是按照信號的走向依次描述每一個經(jīng)過的結(jié)點。每個線網(wǎng)上的信號都是從源端(source node)出發(fā),依次經(jīng)過邏輯單元塊輸出引腳結(jié)點,互連線段結(jié)點,邏輯單元塊輸入引腳結(jié)點,最終到達(dá)漏端(sinknode)。這些結(jié)點必須事先已經(jīng)被建立在布線資源圖中。每個結(jié)點的信息包括該結(jié)點的列號、行號、類型及序號部分。然而,用戶列出所有指定路徑線網(wǎng)上的所有結(jié)點是非常困難的。開關(guān)盒布線規(guī)則可以解決這個問題。用戶只需要寫出開關(guān)盒布線規(guī)則,導(dǎo)航布局布線工具就可以根據(jù)開關(guān)盒布線規(guī)則自動地選擇互連線段結(jié)點。圖2-圖5列舉了一些開關(guān)盒布線規(guī)則的例子,但不限于此。如圖2所示,根據(jù)信號的方向,如果信號從左邊進(jìn)入開關(guān)盒,那么信號從開關(guān)盒上邊穿出(圖2);如果信號從右邊進(jìn)入開關(guān)盒,那么信號從開關(guān)盒左邊穿出(圖3);如果信號從上邊進(jìn)入開關(guān)盒,那么信號從開關(guān)盒右邊穿出(圖4);如果信號從下邊進(jìn)入開關(guān)盒,那么信號從開關(guān)盒右邊穿出(圖5)。用戶可以根據(jù)自己的需要指定開關(guān)盒布線規(guī)則。根據(jù)開關(guān)盒布線規(guī)則,大量的互連線段結(jié)點不用羅列在用戶約束文件中。結(jié)點與結(jié)點之間的選擇要符合FPGA結(jié)構(gòu)的約束,如源端與邏輯單元塊輸出引腳結(jié)點的選擇要符合局部布線結(jié)構(gòu),互連線段結(jié)點之間的選擇要符合開關(guān)盒結(jié)構(gòu)等等。讀取用戶約束文件具體包括
(I)、把布局約束中描述的邏輯單元塊的位置信息存儲在數(shù)據(jù)結(jié)構(gòu)中,并且檢查位置坐標(biāo)是否合法。如果不合法,則程序停止并提示用戶修改。(2)、把布線約束中描述的線網(wǎng)的位置信息存儲在數(shù)據(jù)結(jié)構(gòu)中,并且檢查結(jié)點的信息是否合法。如果不合法,則程序停止并提示用戶修改。(3)、如果約束文件中含有開關(guān)盒布線規(guī)則,則該規(guī)則信息存儲在數(shù)據(jù)結(jié)構(gòu)中。
步驟S4、根據(jù)用戶約束文件進(jìn)行布局及布線。其中,執(zhí)行布局是對于布局約束中指定的邏輯單元塊,按照用戶約束文件的要求把他們放置在約束的位置。其余沒有被指定的邏輯單元塊應(yīng)用現(xiàn)有的布局算法進(jìn)行布局。其中,執(zhí)行布線是對于布線約束中指定的線網(wǎng),按照用戶約束文件的要求把線網(wǎng)放置在約束的位置。其余沒有被指定的線網(wǎng)應(yīng)用現(xiàn)有的布線算法進(jìn)行布線。打包之后輸出網(wǎng)表文件中的所有的線網(wǎng)都需要布線。一個線網(wǎng)只有ー個源端,但是漏端的數(shù)量可能是ー個,也可能是多個。在用戶約束文件中,用戶可以指定一個線網(wǎng)中一個源端到該線網(wǎng)的所有或者部分漏端的路徑。因此,網(wǎng)表中的線網(wǎng)可以分為3類無指定路徑的線網(wǎng),全部指定路徑的線網(wǎng),部分指定路徑的線網(wǎng)。對于無指定路徑線網(wǎng)這種線網(wǎng)的源端到其所有漏端的路徑都是沒有被用戶約束文件指定的。如圖6所示,該線網(wǎng)有3個漏端,源端到這3個漏端的路徑都沒有被指定。這種線網(wǎng)由布線算法來布線。對于全部指定路徑線網(wǎng)這種線網(wǎng)的源端到其所有漏端的路徑都是被用戶約束文件指定的。如圖7所示,該線網(wǎng)有3個漏端,源端到這3個漏端的路徑都是被指定的。這種線網(wǎng)不需要由布線算法來布線。但是如果用戶需要,這種線網(wǎng)的時序分析還是需要執(zhí)行。對于部分指定路徑線網(wǎng)這種線網(wǎng)的源端到其一部分漏端的路徑是被用戶約束文件指定的,到另一部分漏端的路徑是沒有被指定的。如圖8所示,該線網(wǎng)有3個漏端,源端到其中ー個漏端的路徑是被指定的,到另外兩個漏端的路徑?jīng)]有被指定。被指定的路徑不需要由算法來布線,沒有被指定的路徑由布線算法來布線。在對這種路徑布線時,需要考慮固定路徑的時序,以達(dá)到布線的最優(yōu)結(jié)果。步驟S5、生成布局布線結(jié)果。配置碼流生成工具讀取該結(jié)果后生成的碼流文件即可應(yīng)用于FPGA測試。圖9是為了測試FPGA芯片中長度為I的互連線段的布局布線結(jié)果。本發(fā)明實施例提供的應(yīng)用于FPGA測試的導(dǎo)航布局布線方法具有以下有益效果(I)為FPGA芯片測試碼流的生成提供布局布線結(jié)果,使用戶可以達(dá)到測試FPGA芯片中指定結(jié)構(gòu)的目的。(2)可以由用戶來指定布局過程中使用的邏輯單元塊,以達(dá)到測試這些邏輯単元塊的目的。(3)可以由用戶來指定布線過程中使用的布線資源,以達(dá)到測試這些布線資源的目的。(4)通過應(yīng)用導(dǎo)航布局布線方法來測試FPGA芯片,可以達(dá)到比較高的測試覆蓋率。( 5)可以通過寫出開關(guān)盒布線規(guī)則的方法來減少用戶寫入約束文件結(jié)點的數(shù)量。(6)可以對無指定路徑線網(wǎng),全部指定路徑線網(wǎng)和部分指定路徑線網(wǎng)三種類型的線網(wǎng)進(jìn)行布線。
上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種應(yīng)用于FPGA測試的導(dǎo)航布局布線方法,其特征在于,包括 讀取FPGA芯片結(jié)構(gòu)信息; 讀取打包之后生成的網(wǎng)表信息; 讀取邏輯單元塊位置及線網(wǎng)位置的用戶約束條件; 根據(jù)用戶約束文件進(jìn)行布局及布線。
2.根據(jù)權(quán)利要求I所述的布線方法,其特征在于,所述讀取邏輯單元塊位置及線網(wǎng)位置的用戶約束條件包括 將描述邏輯單元塊的位置信息存儲在數(shù)據(jù)結(jié)構(gòu)中,并且檢查位置坐標(biāo)是否合法; 將描述線網(wǎng)的位置信息存儲在數(shù)據(jù)結(jié)構(gòu)中,并且檢查結(jié)點的信息是否合法; 當(dāng)用戶約束文件中含有開關(guān)盒布線規(guī)則,則該規(guī)則信息存儲在數(shù)據(jù)結(jié)構(gòu)中。
3.根據(jù)權(quán)利要求2所述的布線方法,其特征在于,所述檢查位置坐標(biāo)是否合法包括 檢查所述邏輯單元塊的位置在FPGA結(jié)構(gòu)中的位置坐標(biāo)是否在FPGA結(jié)構(gòu)的范圍; 檢查所述邏輯單元塊的類型是否與FPGA結(jié)構(gòu)中指定位置處的邏輯單元塊類型相匹配。
4.根據(jù)權(quán)利要求2所述的布線方法,其特征在于,所述開關(guān)盒布線規(guī)則包括 根據(jù)信號的方向,當(dāng)信號從左邊進(jìn)入開關(guān)盒,則信號從開關(guān)盒上邊穿出; 當(dāng)信號從右邊進(jìn)入開關(guān)盒,則信號從開關(guān)盒左邊穿出; 當(dāng)信號從上邊進(jìn)入開關(guān)盒,則信號從開關(guān)盒右邊穿出; 當(dāng)信號從下邊進(jìn)入開關(guān)盒,則信號從開關(guān)盒右邊穿出。
5.根據(jù)權(quán)利要求1-4任一項所述的布線方法,其特征在于 所述邏輯單元塊位置是打包過程輸出的網(wǎng)表信息中指定的邏輯單元塊放置在FPGA結(jié)構(gòu)中的位置坐標(biāo)。
6.根據(jù)權(quán)利要求1-4任一項所述的布線方法,其特征在于 所述線網(wǎng)是按照信號的走向依次描述每一個經(jīng)過的結(jié)點;所述結(jié)點的信息包括該結(jié)點的列號、行號、類型及序號。
7.根據(jù)權(quán)利要求1-4任一項所述的布線方法,其特征在于 所述線網(wǎng)包括無指定路徑的線網(wǎng)、全部指定路徑的線網(wǎng)及部分指定路徑的線網(wǎng)。
8.根據(jù)權(quán)利要求7所述的布線方法,其特征在于 所述無指定路徑的線網(wǎng)是源端到其所有漏端的路徑都是沒有被用戶約束文件指定的。
9.根據(jù)權(quán)利要求7所述的布線方法,其特征在于 所述全部指定路徑的線網(wǎng)是源端到其所有漏端的路徑都是被用戶約束文件指定的。
10.根據(jù)權(quán)利要求7所述的布線方法,其特征在于 所述部分指定路徑的線網(wǎng)是源端到其一部分漏端的路徑是被用戶約束文件指定的,到另一部分漏端的路徑是沒有被指定的。
全文摘要
本發(fā)明公開了一種應(yīng)用于FPGA測試的導(dǎo)航布局布線方法包括讀取FPGA芯片結(jié)構(gòu)信息;讀取打包之后生成的網(wǎng)表信息;讀取邏輯單元塊位置及線網(wǎng)位置的用戶約束條件;及根據(jù)用戶約束文件進(jìn)行布局及布線。本發(fā)明提供的應(yīng)用于FPGA測試的導(dǎo)航布局布線方法可以使用戶決定使用哪些布局布線資源,從而產(chǎn)生用于驗證和測試FPGA芯片的布局布線結(jié)果。
文檔編號G06F17/50GK102768692SQ201110116730
公開日2012年11月7日 申請日期2011年5月6日 優(yōu)先權(quán)日2011年5月6日
發(fā)明者于芳, 李艷, 陳亮 申請人:中國科學(xué)院微電子研究所