Fpga芯片的局部布局的優(yōu)化方法
【技術領域】
[0001]本發(fā)明涉及微電子領域中的集成電路設計技術領域,特別是現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array, FPGA)芯片的局部布局的優(yōu)化方法。
【背景技術】
[0002]FPGA是一種具有豐富硬件資源、強大并行處理能力和靈活可重配置能力的邏輯器件。這些特征使得FPGA在數(shù)據(jù)處理、通信、網(wǎng)絡等很多領域得到了越來越多的廣泛應用。
[0003]隨著FPGA芯片規(guī)模的擴大,芯片的布局愈發(fā)顯得關鍵和重要,直接決定著芯片布線的復雜度和布線的成功率,并影響著芯片的面積、頻率等性能。因此在芯片布局上需要綜合考慮多方面的代價,在滿足多種約束的條件下,如何通過芯片布局,特別是局部布局的優(yōu)化,來保證FPGA芯片的面積、頻率和可布性,成為保證芯片質量的關鍵。對此,業(yè)界還沒有提出很好的解決方法。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是針對現(xiàn)有技術的缺陷,提供了一種FPGA芯片的局部布局的優(yōu)化方法,通過增量式的移動FPGA芯片中的基本單元,并對線網(wǎng)長度代價函數(shù)、邏輯單元密度代價函數(shù)和時間余量代價函數(shù)綜合計算得到當前布局下的綜合代價,通過判斷基本單元移動后綜合代價是否得到優(yōu)化而確定是否接受移動后的布局,從而確定了各基本單元在FPGA芯片中的最優(yōu)位置,實現(xiàn)了 FPGA布局的優(yōu)化,并通過增量式的方法兼顧了布局優(yōu)化的效率。
[0005]本發(fā)明實施例提供了一種FPGA芯片的局部布局的優(yōu)化方法,包括:
[0006]根據(jù)所述第一布局下的FPGA芯片的線網(wǎng)長度代價函數(shù)、邏輯單元密度代價函數(shù)和時間余量代價函數(shù)進行加權計算,得到第一布局下的綜合代價;
[0007]將所述第一布局下的綜合代價設定為基準綜合代價;
[0008]對所述第一布局下的一個基本單元的位置進行調(diào)整,得到第二布局;其中,所述基本單元包括查找表和/或寄存器;
[0009]根據(jù)所述第二布局下的FPGA芯片的線網(wǎng)長度代價函數(shù)、邏輯單元密度代價函數(shù)和時間余量代價函數(shù)進行加權計算,得到第二布局下的綜合代價;
[0010]當所述第二布局下的綜合代價小于基準綜合代價時,接受對所述一個基本單元位置的調(diào)整;
[0011]將所述第二布局下的綜合代價設為基準綜合代價;并對所述第一布局下的下一個基本單元的位置進行調(diào)整。
[0012]優(yōu)選的,在所述根據(jù)所述第一布局下的FPGA芯片的線網(wǎng)長度代價函數(shù)、邏輯單元密度代價函數(shù)和時間余量代價函數(shù)進行加權計算之前,所述方法還包括:
[0013]獲取全局布局后的基本單元的信息;
[0014]根據(jù)布局合法化約束條件對所述基本單元進行布局調(diào)整,得到所述第一布局;所述第一布局中,所述基本單元的布局位置滿足布局合法化約束條件。
[0015]優(yōu)選的,所述加權計算具體為:
[0016]C=a Xff+β XT+ (1-α - β ) XD
[0017]其中,C為綜合代價、α為線網(wǎng)長度代價函數(shù)的權重、β為時間余量代價函數(shù)的權重、W為線網(wǎng)長度代價函數(shù)、T為時間余量代價函數(shù)、D為邏輯單元密度代價函數(shù)。
[0018]進一步優(yōu)選的,所述線網(wǎng)長度代價函數(shù)W具體為:
[0019]W=總線網(wǎng)長度/基準總線網(wǎng)長度。
[0020]進一步優(yōu)選的,所述時間余量代價函數(shù)T具體為:
[0021]Τ=Δ時間余量/基準時間余量。
[0022]進一步優(yōu)選的,所述邏輯單元密度代價函數(shù)D具體為:
[0023]邏輯單元中,查找表和寄存器的使用百分比。
[0024]進一步優(yōu)選的,所述邏輯單元密度代價函數(shù)D具體為:
[0025]每個邏輯單元的輸入輸出線網(wǎng)的數(shù)量占芯片的每個邏輯單元的總的可用線網(wǎng)數(shù)量的百分比。
[0026]優(yōu)選的,所述對所述第一布局下的一個基本單元的位置進行調(diào)整具體為:
[0027]對所述第一布局的全部路徑中的所述一個基本單元的位置進行調(diào)整;或者
[0028]對所述第一布局的關鍵路徑中的所述一個基本單元的位置進行調(diào)整。
[0029]進一步優(yōu)選的,當所述第二布局下的綜合代價不小于基準綜合代價時,所述方法還包括:
[0030]對所述第一布局下的下一個基本單元的位置進行調(diào)整。
[0031]本發(fā)明實施例提供的FPGA芯片的局部布局的優(yōu)化方法,通過增量式的移動FPGA芯片中的基本單元,并對線網(wǎng)長度代價函數(shù)、邏輯單元密度代價函數(shù)和時間余量代價函數(shù)綜合計算得到當前布局下的綜合代價,通過判斷基本單元移動后綜合代價是否得到優(yōu)化而確定是否接受移動后的布局,從而確定了各基本單元在FPGA芯片中的最優(yōu)位置,實現(xiàn)了FPGA布局的優(yōu)化,并通過增量式的方法兼顧了布局優(yōu)化的效率。
【附圖說明】
[0032]圖1為本發(fā)明實施例提供的FPGA芯片的局部布局的優(yōu)化方法的流程圖;
[0033]圖2為本發(fā)明實施例提供的FPGA芯片中一個邏輯單元的結構示意圖;
[0034]圖3為本發(fā)明實施例提供的FPGA芯片中基本單兀移動的不意圖。
【具體實施方式】
[0035]下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
[0036]圖1為本發(fā)明實施例提供的FPGA芯片的局部布局的優(yōu)化方法的流程圖。如圖所示,所述方法包括如下步驟:
[0037]步驟110,獲取全局布局后的基本單元的信息;
[0038]具體的,根據(jù)用戶設計,對用戶設計進行電路綜合,以及庫映射,得到全局布局的基本單元。在一個例子中,基本單元可以包括:四輸入的查找表(LUT4、LUT4C)和寄存器(REG)、單獨的四輸入查找表、單獨的寄存器這三種基本形式。
[0039]在全局布局后,F(xiàn)PGA芯片內(nèi)部的邏輯單元(Logic Element, LE)之間、邏輯單元之內(nèi)的查找表和寄存器是允許存在重疊的。
[0040]步驟120,根據(jù)布局合法化約束條件對所述基本單元進行布局調(diào)整,得到所述第一布局;所述第一布局中,所述基本單元的布局位置滿足布局合法化約束條件;
[0041]具體的,布局合法化步驟是將各邏輯單元中的基本單元的重疊進行消除,并進行各種的約束檢查和邏輯單元位置的調(diào)整,然后得到滿足布局合法化約束條件的一個合法解布局,即為第一布局。
[0042]步驟130,根據(jù)所述第一布局下的FPGA芯片的線網(wǎng)長度代價函數(shù)、邏輯單元密度代價函數(shù)和時間余量代價函數(shù)進行加權計算,得到第一布局下的綜合代價;
[0043]具體的,綜合代價是用于評價FPGA設計的優(yōu)化程度的一個量化指標。
[0044]設定第一布局下的FPGA芯片的總線網(wǎng)長度為基準總線網(wǎng)長度、設定第一布局下的FPGA芯片的邏輯單元密度為基準邏輯單元密度、設定第一布局下的FPGA芯片的基本單元的時間余量(slack)為基準時間余量;則,第一布局下的綜合代價具體可以通過如下公式進行加權計算獲得:
[0045]C1=Q Xff1+^ XT1+ (1-α -β ) XD1 (公式 I)
[0046]其中,C1為第一布局下的綜合代價、α為線網(wǎng)長度代價函數(shù)的權重、β為時間余量代價函數(shù)的權重、W1為第一布局下的線網(wǎng)長度代價函數(shù)、T1為第一布局下的時間余量代價函數(shù)、D1為第一布局下的邏輯單元密度代價函數(shù);α、β分別為正數(shù),并且α+β <1。在一個例子中,α、β分別取值0.3。當然根據(jù)不同的芯片設計需求,本領域技術人員可以根據(jù)設計需求自行設定適合的權重。
[0047]進一步的,
[0048]第一布局下的線網(wǎng)長度代價函數(shù)D1具體可以通過以下方式來計算:
[0049]W1=第一布局下的總線網(wǎng)長度/基準總線網(wǎng)長度(公式2)
[0050]在第一布局下,總線網(wǎng)長度與基準總線長度相等,因此,第一布局下的W=l。
[0051]第一布局下的時間余量代價函數(shù)T1具體可以通過以下方式來計算:
[0052]T1=A時間余量/基準時間余量 (公式3)
[0053]在第一布局下,Λ時間余量為0,因此第一布局下的時間余量代價函數(shù)!\=0。
[0054]當時間余量(Slack)的值為正時,表示滿足約束延遲;當時間余量(Slack)的值為負時,表示不滿足約束延遲。因此在優(yōu)化時,需要對Slack最小的先進行優(yōu)化,使這個值盡量的大,最終滿足每個基本單元的端口相對于約束時序的Slack都大于等于O。
[0055]因為基準時間余量為負值,而當時序代價函數(shù)得到優(yōu)化時,Δ時間余量為正值,因此綜合代價會因為時序代價函數(shù)的優(yōu)化而減小。
[0056]第一布局下的邏輯單元密度代價函數(shù)D1具體可以通過以下兩種方式中的任意一種來計算:
[0057]計算方法1:通過第一布局下的邏輯單元中,查找表和寄存器的使用百分比。
[0058]具體的,在一個例子中,如圖2所示。一個LE由4個基本的可編程邏輯單元(LogicParcel, LP)、快速跳躍進位鏈輸入(Carry skip in)、快速跳躍進位鏈輸出(Carry skipout)及局部緩沖(LBUF)組成。每個LP中包括兩個LUT4、1個LUT4C (帶進位鏈的LUT4)和兩個寄存器。I個LE中共計有12個LUT4 (其中包括LUT4C)和8個寄存器,LUT4和寄存器的比例為3:2,快速跳躍進位鏈輸入和快速跳躍進位鏈輸出用于實現(xiàn)快速跳躍進位鏈功能,LBUF用于產(chǎn)生邏輯單元中寄存器的控制信號時鐘。
[0059]在圖2中,查找表的總數(shù)為12個,寄存器為8個,查找表LUT4和LUT4C被使用了10個,寄存器被使用了 8個。因此在這個邏輯單元中,邏輯單元密度代價函數(shù)D1S:
[0060]D1= (10+8)/(12+8)=90%
[0061]計算方法2:第一布局下的每個邏輯單元的輸入輸出線網(wǎng)的數(shù)量占芯片的每個邏輯單元的總的可用線網(wǎng)數(shù)量的百分比。
[0062]步驟140,對所述第一布局下的一個基本單元的位置進行調(diào)整,得到第二布局;
[0063]具體的,在第一布局中,選擇一個基本單元,對其位置進行調(diào)整。被調(diào)整的基本單元可以是在第一布局的關鍵路徑中的一個基本單元,或者也可以是在第一布局中任意選取一個基本單元對其位置進行調(diào)整。
[0064]優(yōu)選的,在局部布局優(yōu)化中,對于基本單元的調(diào)整,通常是在一定的范圍內(nèi)進行的。比如,在一個具體的例子中,基本單元的調(diào)整,是在與被調(diào)整基本單元周圍的三個同類型基本單元的位置上,尋找一個新的位置,將被調(diào)整的基本單元