本發(fā)明涉及一種fpga布局布線方法,具體涉及一種基于多層次方法和賦權(quán)超圖的層次式fpga布局布線方法。
背景技術(shù):
隨著超大規(guī)模集成電路(vlsi)技術(shù)的發(fā)展,vlsi的制造工藝已從深亞微米工藝時(shí)代進(jìn)入納米工藝時(shí)代。國(guó)際半導(dǎo)體技術(shù)藍(lán)圖報(bào)告預(yù)測(cè),2020年vlsi特征尺寸將減少到5nm,現(xiàn)場(chǎng)可編程門陣列(fpga)規(guī)模膨脹化和結(jié)構(gòu)復(fù)雜化將給fpga物理設(shè)計(jì)帶來新的挑戰(zhàn)。布局布線作為fpga物理設(shè)計(jì)的關(guān)鍵環(huán)節(jié),決定著邏輯網(wǎng)表與物理器件的映射關(guān)系和拓?fù)溥B接關(guān)系,布局布線質(zhì)量的好壞直接影響著fpga電路最終的性能、功耗和可靠性。然而,超大規(guī)模集成電路制造技術(shù)的特征尺寸正在以指數(shù)級(jí)速度不斷地減少,fpga向著高性能、高集成度方向發(fā)展,其邏輯資源和布線資源將變得非常復(fù)雜且難以管理,與之相應(yīng)的布局和布線方法運(yùn)行時(shí)間呈指數(shù)倍數(shù)增加,導(dǎo)致無法在可接受的運(yùn)行時(shí)間范圍內(nèi)求出可行解。因此,平面均勻分布模式的孤島式和行陣式結(jié)構(gòu)難以滿足fpga資源管理和設(shè)計(jì)周期等方面的需求。
本發(fā)明涉及的層次式fpga,采用基于完全k叉樹的新型獨(dú)特的布局和布線資源組織架構(gòu),借助高層次的布線資源來實(shí)現(xiàn)低層次各個(gè)子區(qū)域之間的互連,在保證同一層次各個(gè)子區(qū)域之間相對(duì)獨(dú)立的同時(shí),有效地將較大區(qū)域的布局布線問題分割為多個(gè)子區(qū)域的布局布線問題。層次式fpga將邏輯資源分層和分組地管理,布線資源細(xì)分為高層次的全局互連線和低層次的局部互連線,不僅具備了更優(yōu)的組織結(jié)構(gòu)和集成能力,而且能有效地減少布線面積和信號(hào)時(shí)延,更好地適應(yīng)fpga邏輯容量迅速增加的需要。和傳統(tǒng)的孤島式、行陣式等結(jié)構(gòu)的fpga相比,層次式fpga已被證明在相同布通率的情況下可有效地減少布線面積和信號(hào)時(shí)延。
因此,研究適用于層次式fpga的資源模型和與之配套的高效快速布局布線方法是當(dāng)前學(xué)術(shù)界和工業(yè)界亟待解決的問題,該問題的解決將有效地提高fpga設(shè)計(jì)能力和性能,促進(jìn)fpga產(chǎn)業(yè)的迅速發(fā)展。
為解決上述問題,本發(fā)明基于賦權(quán)超圖和多層次方法進(jìn)行層次式fpga布局布線。
一、本發(fā)明采用賦權(quán)超圖來構(gòu)造層次式fpga布局布線過程中邏輯網(wǎng)表的數(shù)學(xué)模型,其中電路邏輯單元表示為賦權(quán)超圖中的結(jié)點(diǎn),電路單元間的連線表示為賦權(quán)超圖中的超邊。相比賦權(quán)無向圖而言,賦權(quán)超圖的多對(duì)多關(guān)系提供了精確描述邏輯網(wǎng)表的手段:每條超邊可以連接兩個(gè)以上的結(jié)點(diǎn),對(duì)應(yīng)于邏輯網(wǎng)表中的互連線可以連接兩個(gè)以上的邏輯單元。
二、本發(fā)明采用多層次方法作為層次式fpga布局和布線的方法,以有效滿足vlsi對(duì)運(yùn)行效率和處理能力更高的要求。它既可通過自底向上的結(jié)群階段逐步縮小問題的規(guī)模、降低方法的時(shí)間復(fù)雜度,又可借助自頂向下的投影優(yōu)化階段逐層處理問題的細(xì)節(jié)、提高方法的求解準(zhǔn)確性,與研究對(duì)象的層次特性自然地結(jié)合在一起。
多層次方法的概念。karypis針對(duì)結(jié)點(diǎn)規(guī)模達(dá)到幾百萬的劃分問題,提出了多層次方法的概念,在相對(duì)較短的時(shí)間內(nèi)可以得到高質(zhì)量的劃分。該方法包含粗化、初始劃分和遷移優(yōu)化三個(gè)階段。首先,它采用隨機(jī)匹配策略將某些結(jié)點(diǎn)結(jié)合在一起,得到下一水平層的粗化圖,重復(fù)此過程直到粗化圖足夠小為止,即得到一個(gè)最小圖。然后,采用劃分方法對(duì)最小圖進(jìn)行對(duì)分,得到一個(gè)初始劃分。之后,將最小圖投影回初始圖,在每一水平層的細(xì)化劃分中,按照貪心原則選擇收益值最大的結(jié)點(diǎn)進(jìn)行遷移優(yōu)化,得到最后的結(jié)點(diǎn)劃分結(jié)果。
多層次方法在電路劃分和云計(jì)算任務(wù)調(diào)度中的應(yīng)用。自多層次方法的概念提出以來,得到了廣泛地重視,并應(yīng)用在電路劃分和云計(jì)算任務(wù)調(diào)度等多個(gè)研究領(lǐng)域。
2008年中國(guó)專利局公告的由冷明、郁松年和孫凌宇申報(bào),中國(guó)專利號(hào)為200710043765.3號(hào)《基于多水平方法的大規(guī)模集成電路劃分方法》的發(fā)明專利,針對(duì)現(xiàn)有技術(shù)方案中因采用隨機(jī)策略進(jìn)行匹配和貪心原則進(jìn)行遷移優(yōu)化,導(dǎo)致無法逃離局部最優(yōu)的劃分,提供了一種改進(jìn)的基于多水平方法的大規(guī)模集成電路劃分方法,有效地提高了大規(guī)模集成電路劃分的效率和性能。該發(fā)明專利在多水平劃分方法的粗化階段,通過對(duì)結(jié)點(diǎn)屬性進(jìn)行賦權(quán)無向圖中所有結(jié)點(diǎn)的核值求解排序,按照基于結(jié)點(diǎn)核值的非嚴(yán)格降序訪問處于未匹配狀態(tài)的結(jié)點(diǎn),依據(jù)一定規(guī)則對(duì)其進(jìn)行匹配,從而將連接性好的結(jié)點(diǎn)合并在一起;在多水平劃分方法的優(yōu)化階段,采用免疫克隆優(yōu)化程序改進(jìn)貪心原則的局部搜索方法,對(duì)在每一水平層投影的劃分進(jìn)行優(yōu)化,借助克隆操作、克隆變異操作、接種免疫疫苗操作和克隆選擇操作,使得改進(jìn)后的方法在利用啟發(fā)信息搜索局部最優(yōu)解的同時(shí),能更自由地對(duì)具有潛力的解空間進(jìn)行搜索,增加全局搜索能力。
2012年中國(guó)專利局公告的由孫凌宇、冷明和冷子陽申報(bào),中國(guó)專利號(hào)為201210155738.6號(hào)《基于多水平方法和賦權(quán)超圖的大規(guī)模集成電路劃分方法》的發(fā)明專利,針對(duì)采用賦權(quán)無向圖作為大規(guī)模集成電路劃分問題的數(shù)學(xué)模型,存在著賦權(quán)無向圖最優(yōu)劃分和大規(guī)模集成電路最優(yōu)劃分的不一致性,提供了一種基于多水平方法和賦權(quán)無向超圖的大規(guī)模集成電路劃分方法,進(jìn)一步提高了大規(guī)模集成電路劃分的效率和性能。該發(fā)明采用賦權(quán)無向超圖對(duì)電路劃分問題進(jìn)行數(shù)學(xué)建模,其中電路邏輯單元表示為賦權(quán)無向超圖中的結(jié)點(diǎn),電路單元間的連線表示為賦權(quán)無向超圖中的超邊。相比賦權(quán)無向圖而言,賦權(quán)無向超圖為電路提供了更為精確的模型:每條超邊可以連接兩個(gè)以上的結(jié)點(diǎn),對(duì)應(yīng)于電路單元間的信號(hào)可以連接兩個(gè)以上的電路邏輯單元。該發(fā)明將大規(guī)模集成電路劃分問題轉(zhuǎn)換為賦權(quán)無向超圖劃分問題,其中大規(guī)模集成電路劃分問題要求每個(gè)電路子集所包含的電路邏輯單元數(shù)目相等,對(duì)應(yīng)于賦權(quán)無向超圖劃分問題的平衡約束條件,劃分結(jié)果使得這些電路子集之間的內(nèi)連線數(shù)據(jù)達(dá)到最小,對(duì)應(yīng)于賦權(quán)無向超圖劃分問題的最小化總割切。
2014年中國(guó)專利局公告的由孫凌宇、冷明和冷子陽申報(bào),中國(guó)專利號(hào)為201410136320.x號(hào)《基于多水平方法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法》的發(fā)明專利,提供了一種基于多水平方法和賦權(quán)有向超圖的云計(jì)算任務(wù)調(diào)度方法,進(jìn)一步提高了任務(wù)調(diào)度的效率和性能。該發(fā)明采用賦權(quán)有向超圖來構(gòu)造任務(wù)劃分問題的數(shù)學(xué)模型,描述任務(wù)的資源需求及依賴關(guān)系,其中任務(wù)表示為賦權(quán)有向超圖的結(jié)點(diǎn),任務(wù)結(jié)點(diǎn)間的先后依賴關(guān)系表示為賦權(quán)有向超圖中的有向超邊,并生成相應(yīng)的賦權(quán)有向超圖文件;然后啟動(dòng)基于多水平劃分方法的賦權(quán)有向超圖劃分程序,對(duì)生成的賦權(quán)有向超圖進(jìn)行劃分;最后依據(jù)賦權(quán)有向超圖的劃分結(jié)果構(gòu)造任務(wù)子集,通過mapreduce任務(wù)調(diào)度模型對(duì)其進(jìn)行映射和調(diào)度。
2015年中國(guó)專利局公告的由孫凌宇、冷明和冷子陽申報(bào),中國(guó)專利號(hào)為201510135672.8號(hào)《基于多層次方法和離散粒子群的賦權(quán)超圖優(yōu)化劃分方法》的發(fā)明專利,提供了一種基于多層次方法和離散粒子群的賦權(quán)超圖優(yōu)化劃分方法,進(jìn)一步有效地縮短了劃分所需的運(yùn)行時(shí)間,減少了劃分所需的存儲(chǔ)空間。該發(fā)明在多層次方法的粗化階段,通過對(duì)賦權(quán)超圖中所有結(jié)點(diǎn)進(jìn)行基于結(jié)點(diǎn)屬性函數(shù)的核值求解排序,進(jìn)而基于結(jié)點(diǎn)核值的非嚴(yán)格降序訪問處于未匹配狀態(tài)的結(jié)點(diǎn),依據(jù)一定規(guī)則對(duì)其進(jìn)行匹配,從而將連接性好的結(jié)點(diǎn)合并在一起,為多層次劃分的后續(xù)階段提供更優(yōu)的粗化賦權(quán)超圖。在多層次方法的優(yōu)化階段,采用多目標(biāo)的離散粒子群搜索程序改進(jìn)貪心原則的局部搜索方法,對(duì)在每一水平層粗化賦權(quán)超圖投影的劃分進(jìn)行優(yōu)化,其中粒子所處|v|維空間位置對(duì)應(yīng)于一個(gè)劃分方案,即粒子在每個(gè)維度空間的位置代表該維度空間對(duì)應(yīng)結(jié)點(diǎn)所處劃分的結(jié)點(diǎn)子集;伴隨著優(yōu)化階段的細(xì)化過程,每個(gè)粒子解決方案代表的劃分投影到當(dāng)前水平層的細(xì)化賦權(quán)超圖上,且粒子的自由度隨著空間維度|v|的增加而增大;粒子之間進(jìn)行直接通信或者間接通信,利用它們聚集協(xié)同表現(xiàn)出的智能行為,有效地搜索多約束條件下、多目標(biāo)組合的pareto有效解,使非劣遷移優(yōu)化解向著pareto-最優(yōu)面逼近,增強(qiáng)遷移優(yōu)化方法的多目標(biāo)搜索能力。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明涉及的層次式fpga布局布線方法,是將邏輯網(wǎng)表映射到樹狀架構(gòu)的fpga器件資源中,并合理正確地選擇布線資源連接各個(gè)器件及i/o模塊。
本發(fā)明的目的在于針對(duì)已有技術(shù)存在的不足,提供一種基于多層次方法和賦權(quán)超圖的層次式fpga布局布線方法,有效地降低fpga物理設(shè)計(jì)的時(shí)間復(fù)雜度,提高fpga設(shè)計(jì)能力和性能。為達(dá)到上述目的,本發(fā)明的構(gòu)思如下。
一、邏輯網(wǎng)表到賦權(quán)超圖的轉(zhuǎn)換;首先,對(duì)網(wǎng)表文件進(jìn)行相應(yīng)編譯器的詞法分析、語法分析和中間代碼生成;進(jìn)而,依據(jù)中間代碼構(gòu)造基于賦權(quán)超圖的邏輯網(wǎng)表,實(shí)現(xiàn)邏輯網(wǎng)表在物理存儲(chǔ)空間中的賦權(quán)超圖表示;最后,啟動(dòng)基于多層次方法的布局布線程序,對(duì)生成的賦權(quán)超圖進(jìn)行布局布線。
二、多層次方法的結(jié)群階段,通過對(duì)賦權(quán)超圖中所有結(jié)點(diǎn)進(jìn)行基于結(jié)點(diǎn)屬性函數(shù)的核值求解排序,進(jìn)而基于結(jié)點(diǎn)核值的非嚴(yán)格降序訪問處于未匹配狀態(tài)的結(jié)點(diǎn),依據(jù)一定規(guī)則對(duì)其進(jìn)行匹配,從而將連接性好的結(jié)點(diǎn)合并在一起,從而更好地優(yōu)化低層次的局部互連線,以獲得更優(yōu)的結(jié)群效果。
三、多層次方法的初始布局布線階段,采用譜方法對(duì)最高層次邏輯網(wǎng)表對(duì)應(yīng)的最小結(jié)群超圖進(jìn)行劃分,基于其特征向量刻畫結(jié)點(diǎn)間相對(duì)距離的思想,為初始布局布線階段提供最小割的劃分;進(jìn)而依據(jù)最高層次邏輯網(wǎng)表的最小割劃分,在最高層次布線資源圖的資源約束條件下,進(jìn)行布局和全局布線,從而有效地減少高層次的全局互連線。
四、多層次方法的優(yōu)化階段,采用多目標(biāo)的離散群智能方法進(jìn)行結(jié)群?jiǎn)卧嗄繕?biāo)遷移優(yōu)化技術(shù)及局部拆線重布,其中個(gè)體所處|v|維空間位置(v代表當(dāng)前層次的結(jié)群?jiǎn)卧?對(duì)應(yīng)于當(dāng)前層次邏輯網(wǎng)表的布局布線,即個(gè)體在每個(gè)維度空間的位置代表該維度空間對(duì)應(yīng)結(jié)群?jiǎn)卧幉季€資源圖的子區(qū)域位置及拓?fù)溥B接關(guān)系;伴隨著自頂向下、逐步細(xì)化的投影優(yōu)化過程,每個(gè)個(gè)體解決方案代表的布局布線投影到低層次的邏輯網(wǎng)表上,個(gè)體的自由度隨著結(jié)群?jiǎn)卧姆蛛x(即空間維度|v|的增加)而增大;進(jìn)而基于結(jié)群?jiǎn)卧w移的線長(zhǎng)收益值等啟發(fā)式信息,利用個(gè)體聚集協(xié)同表現(xiàn)出的智能行為,有效地搜索多約束條件下、多目標(biāo)組合的pareto有效解,使非劣遷移優(yōu)化解向著pareto-最優(yōu)面逼近,實(shí)現(xiàn)對(duì)結(jié)群?jiǎn)卧羞x擇性的遷移優(yōu)化,并對(duì)相應(yīng)線網(wǎng)進(jìn)行拆線重布,避免布局布線陷入局部最優(yōu)解。
根據(jù)上述的發(fā)明構(gòu)思,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:一種基于多層次方法和賦權(quán)超圖的層次式fpga布局布線方法,其特征在于,具體步驟如下。
步驟1,用硬件描述語言描述該fpga設(shè)計(jì),綜合生成該fpga設(shè)計(jì)的網(wǎng)表文件。
步驟2,網(wǎng)表文件的詞法分析,從左到右一個(gè)個(gè)讀入該fpga設(shè)計(jì)的網(wǎng)表文件,對(duì)構(gòu)成源代碼的字符流進(jìn)行掃描和分解,從而識(shí)別出一個(gè)個(gè)單詞。
步驟3,網(wǎng)表文件的語法分析,在詞法分析的基礎(chǔ)上將單詞序列分解成各類語法短語,依據(jù)網(wǎng)表文件的語法規(guī)則,確定整個(gè)字符流是否構(gòu)成一個(gè)語法上正確的網(wǎng)表文件。
步驟4,網(wǎng)表文件的語義分析,在語法分析的基礎(chǔ)上審核源代碼有無語義錯(cuò)誤,為中間代碼生成階段收集類型信息。
步驟5,網(wǎng)表文件的中間代碼生成,在語法分析和語義分析的基礎(chǔ)上,將源代碼生成中間代碼,用內(nèi)部中間格式表示。
步驟6,構(gòu)造網(wǎng)表文件對(duì)應(yīng)的賦權(quán)超圖,基于中間代碼構(gòu)造文本描述的電路對(duì)應(yīng)的邏輯網(wǎng)表,經(jīng)過邏輯網(wǎng)表到賦權(quán)超圖的轉(zhuǎn)換之后,采用改進(jìn)壓縮的內(nèi)存存儲(chǔ)格式在物理存儲(chǔ)空間表示賦權(quán)超圖。
步驟7,用xml語言描述該fpga芯片的版圖和布線結(jié)構(gòu),得到該fpga的“.xml”格式的結(jié)構(gòu)描述文件。
步驟8,結(jié)構(gòu)描述文件的詞法分析,從左到右一個(gè)個(gè)讀入該fpga的結(jié)構(gòu)描述文件,對(duì)構(gòu)成源代碼的字符流進(jìn)行掃描和分解,從而識(shí)別出一個(gè)個(gè)單詞。
步驟9,結(jié)構(gòu)描述文件的語法分析,在詞法分析的基礎(chǔ)上將單詞序列分解成各類語法短語,依據(jù)結(jié)構(gòu)描述文件的語法規(guī)則,確定整個(gè)字符流是否構(gòu)成一個(gè)語法上正確的結(jié)構(gòu)描述文件。
步驟10,結(jié)構(gòu)描述文件的語義分析,在語法分析的基礎(chǔ)上審核源代碼有無語義錯(cuò)誤,為中間代碼生成階段收集類型信息。
步驟11,結(jié)構(gòu)描述文件的中間代碼生成,在語法分析和語義分析的基礎(chǔ)上,將源代碼生成中間代碼,用內(nèi)部中間格式表示。
步驟12,構(gòu)造結(jié)構(gòu)描述文件對(duì)應(yīng)fpga的多層次布線資源圖,基于中間代碼構(gòu)造以<architecture>為根結(jié)點(diǎn)的樹狀結(jié)構(gòu),對(duì)樹狀結(jié)構(gòu)的<complexblocklist>邏輯復(fù)合塊對(duì)應(yīng)的子樹進(jìn)行遞歸遍歷,構(gòu)建結(jié)構(gòu)描述文件對(duì)應(yīng)fpga的多層次布線資源圖。
步驟13,啟動(dòng)基于多層次方法的層次式fpga布局布線程序,輸入在物理存儲(chǔ)空間中表示的賦權(quán)超圖和多層次布線資源圖,進(jìn)行基于多層次方法和賦權(quán)超圖的層次式fpga布局布線,輸出層次式fpga的布局布線結(jié)果。
上述的步驟6中,所述的賦權(quán)超圖的改進(jìn)壓縮的內(nèi)存存儲(chǔ)格式如下。
步驟6.1,使用vwgts數(shù)組存儲(chǔ)賦權(quán)超圖中結(jié)點(diǎn)的權(quán)值信息,且vwgts數(shù)組的大小為賦權(quán)超圖中的結(jié)點(diǎn)個(gè)數(shù)。
步驟6.2,使用xadj數(shù)組存儲(chǔ)每個(gè)結(jié)點(diǎn)所有鄰接賦權(quán)超邊列表的起始位置信息,即第i個(gè)結(jié)點(diǎn)的終止位置為第i+1個(gè)結(jié)點(diǎn)的起始位置減1,且xadj數(shù)組的大小為賦權(quán)超圖中的結(jié)點(diǎn)個(gè)數(shù)加1,xadj數(shù)組最后一個(gè)元素用于存放最后一個(gè)結(jié)點(diǎn)的終止位置。
步驟6.3,使用adjncy數(shù)組存儲(chǔ)每個(gè)結(jié)點(diǎn)所有鄰接賦權(quán)超邊的列表信息,第i個(gè)結(jié)點(diǎn)的鄰接賦權(quán)超邊列表存儲(chǔ)在adjncy數(shù)組中,從adjncy[xadj[i]]到adjncy[xadj[i+1]-1]。
步驟6.4,使用eptr數(shù)組存儲(chǔ)每條賦權(quán)超邊所包含的結(jié)點(diǎn)列表的起始位置信息,即第j條賦權(quán)超邊的終止位置為第j+1條賦權(quán)超邊的起始位置減1,且eptr數(shù)組的大小為賦權(quán)超圖中的賦權(quán)超邊條數(shù)加1,eptr數(shù)組最后一個(gè)元素用于存放最后一條賦權(quán)超邊的終止位置。
步驟6.5,使用eind數(shù)組存儲(chǔ)每條賦權(quán)超邊所包含結(jié)點(diǎn)的列表信息,其中每條賦權(quán)超邊的尾端結(jié)點(diǎn)只有1個(gè),且每條賦權(quán)超邊尾端結(jié)點(diǎn)的所有直接前驅(qū)結(jié)點(diǎn)都包含在該賦權(quán)超邊的源端子集中;第j條賦權(quán)超邊的結(jié)點(diǎn)列表存儲(chǔ)在eind數(shù)組中,從eind[eptr[j]]到eind[eptr[j+1]-1],其中第j條賦權(quán)超邊的源端結(jié)點(diǎn)為eind[eptr[j]]到eind[eptr[j+1]-2],第j條賦權(quán)超邊的尾端結(jié)點(diǎn)為eind[eptr[j+1]-1]。
步驟6.6,使用hewgts數(shù)組存儲(chǔ)賦權(quán)超邊的權(quán)值信息,且hewgts數(shù)組的大小為賦權(quán)超圖中的賦權(quán)超邊數(shù)目。
上述的步驟13中,所述的基于多層次方法的層次式fpga布局布線程序的步驟如下。
步驟13.1,進(jìn)入到多層次方法的結(jié)群階段,在多層次布線資源圖的布線通道容量約束條件下,逐層對(duì)邏輯網(wǎng)表進(jìn)行結(jié)群,采用賦權(quán)超圖的結(jié)點(diǎn)結(jié)群程序?qū)?dāng)前水平層結(jié)群賦權(quán)超圖的某些結(jié)點(diǎn)結(jié)合在一起,得到下一水平層的結(jié)群賦權(quán)超圖,重復(fù)此過程直到結(jié)群賦權(quán)超圖足夠小為止,即得到一個(gè)最小結(jié)群超圖。
步驟13.2,進(jìn)入到多層次方法的在初始布局布線階段,基于其特征向量刻畫結(jié)點(diǎn)間相對(duì)距離的思想,采用譜方法對(duì)最高層次邏輯網(wǎng)表對(duì)應(yīng)的最小結(jié)群超圖進(jìn)行劃分,計(jì)算得到最高層次邏輯網(wǎng)表的最小割劃分,進(jìn)而基于最高層次邏輯網(wǎng)表的最小割劃分,在最高層次布線資源圖的資源約束條件下,完成布局與全局布線。
步驟13.3,進(jìn)入到多層次方法的投影優(yōu)化階段,隨著高層次的布局布線自頂向下地逐層投影到低層次的邏輯網(wǎng)表上,得到每一層次超圖的近似非劣最優(yōu)布局布線,在相應(yīng)層次布線資源圖的資源約束條件下,利用結(jié)群?jiǎn)卧w移的線長(zhǎng)收益值等啟發(fā)式信息,采用多目標(biāo)的離散群智能方法進(jìn)行結(jié)群?jiǎn)卧倪w移優(yōu)化及相應(yīng)線網(wǎng)的拆線重布,直至最高層次邏輯網(wǎng)表的布局布線最終投影到原始邏輯網(wǎng)表上,在完成結(jié)群?jiǎn)卧倪w移優(yōu)化及相應(yīng)線網(wǎng)的拆線重布后,輸出層次式fpga的布局布線。
上述的步驟13.1中,所述的結(jié)點(diǎn)結(jié)群程序的步驟如下。
步驟13.1.1,標(biāo)注當(dāng)前水平層結(jié)群賦權(quán)超圖中所有結(jié)點(diǎn)處于未匹配狀態(tài)。
步驟13.1.2,運(yùn)行賦權(quán)超圖的結(jié)點(diǎn)核值計(jì)算程序,基于結(jié)點(diǎn)屬性函數(shù)值進(jìn)行當(dāng)前水平層結(jié)群賦權(quán)超圖中所有結(jié)點(diǎn)的核值求解,并按照結(jié)點(diǎn)的核值進(jìn)行非嚴(yán)格降序排序。
步驟13.1.3,基于結(jié)點(diǎn)核值的非嚴(yán)格降序訪問處于未結(jié)群狀態(tài)的結(jié)點(diǎn),依據(jù)結(jié)群結(jié)果可布性的規(guī)則對(duì)其進(jìn)行結(jié)群,從而將連接性好的結(jié)點(diǎn)合并在一起,從而更好地優(yōu)化低層次的局部互連線,以獲得更優(yōu)的結(jié)群效果。
步驟13.1.4,重復(fù)步驟13.1.3,直至所有結(jié)點(diǎn)訪問結(jié)束。
上述的步驟13.1.2中,所述的賦權(quán)超圖的結(jié)點(diǎn)核值計(jì)算程序的步驟如下。
步驟13.1.2.1,計(jì)算出所有結(jié)點(diǎn)的屬性函數(shù)值。
步驟13.1.2.2,對(duì)所有結(jié)點(diǎn)的屬性函數(shù)值進(jìn)行非嚴(yán)格降序排序。
步驟13.1.2.3,按照結(jié)點(diǎn)屬性函數(shù)值的非嚴(yán)格降序次序訪問每個(gè)結(jié)點(diǎn),計(jì)算每個(gè)結(jié)點(diǎn)的核值。
上述的步驟13.1.2.2中,所述的對(duì)所有結(jié)點(diǎn)的屬性函數(shù)值進(jìn)行非嚴(yán)格降序排序的步驟如下。
步驟13.1.2.2.1,根據(jù)結(jié)點(diǎn)的屬性函數(shù)值屬于在一定范圍內(nèi)的整數(shù)的特點(diǎn),掃描所有結(jié)點(diǎn)的屬性函數(shù)值,統(tǒng)計(jì)每一種屬性函數(shù)值的結(jié)點(diǎn)個(gè)數(shù),存儲(chǔ)在計(jì)數(shù)輔助數(shù)組bin中。
步驟13.1.2.2.2,針對(duì)每一種屬性函數(shù)值,借助計(jì)數(shù)輔助數(shù)組bin,計(jì)算出在所有結(jié)點(diǎn)的屬性函數(shù)值中,小于該屬性函數(shù)值的結(jié)點(diǎn)個(gè)數(shù),存儲(chǔ)在位置輔助數(shù)組pos中。
步驟13.1.2.2.3,掃描所有結(jié)點(diǎn)的屬性函數(shù)值,針對(duì)每一個(gè)結(jié)點(diǎn)的屬性函數(shù)值,借助位置輔助數(shù)組pos,得到該結(jié)點(diǎn)的屬性函數(shù)值在非嚴(yán)格降序排序的次序,并將該次序存儲(chǔ)在次序輔助數(shù)組vert中。
上述的步驟13.1.2.3中,所述的計(jì)算結(jié)點(diǎn)v的核值的步驟如下。
步驟13.1.2.3.1,將結(jié)點(diǎn)v的屬性函數(shù)值作為核值輸出。
步驟13.1.2.3.2,標(biāo)記結(jié)點(diǎn)v從所在的超邊e中刪除。
步驟13.1.2.3.3,如果超邊e刪除結(jié)點(diǎn)v后,仍包含兩個(gè)及以上未被標(biāo)記刪除的結(jié)點(diǎn),則超邊e仍然存在,否則刪除超邊e。
步驟13.1.2.3.4,重新計(jì)算結(jié)點(diǎn)v的鄰接結(jié)點(diǎn)u的屬性函數(shù)值。
步驟13.1.2.3.5,如果鄰接結(jié)點(diǎn)u的屬性函數(shù)值大于結(jié)點(diǎn)v的屬性函數(shù)值,更新鄰接結(jié)點(diǎn)u的屬性函數(shù)值為結(jié)點(diǎn)v的屬性函數(shù)值,并且借助計(jì)數(shù)輔助數(shù)組bin、位置輔助數(shù)組pos和次序輔助數(shù)組vert的信息,快速更新鄰接結(jié)點(diǎn)u在所有結(jié)點(diǎn)的屬性函數(shù)值非嚴(yán)格降序排序的次序;否則不更新鄰接結(jié)點(diǎn)u的屬性函數(shù)值及其排序的次序。
上述的步驟13.1.3中,所述的結(jié)群結(jié)果可布性的規(guī)則的步驟如下。
步驟13.1.3.1,在候選結(jié)群子群的搜索過程中,使用面向結(jié)群的布線算法檢驗(yàn)候選結(jié)群子群的內(nèi)部線網(wǎng)和外部線網(wǎng)是否滿足相應(yīng)層次布線資源圖的布線通道容量約束條件。
步驟13.1.3.2,如果滿足條件,則意味著結(jié)群結(jié)果可布線,且可避免布局與布線之間的不匹配,則進(jìn)行結(jié)群;否則檢驗(yàn)下一個(gè)候選結(jié)群子群。
上述的步驟13.3中,所述的采用多目標(biāo)的離散群智能方法進(jìn)行結(jié)群?jiǎn)卧倪w移優(yōu)化及相應(yīng)線網(wǎng)的拆線重布程序的步驟如下。
步驟13.3.1,結(jié)群?jiǎn)卧成涞诫x散群智能的初始化,針對(duì)每個(gè)結(jié)群?jiǎn)卧O(shè)定一一對(duì)應(yīng)的粒子,并依據(jù)結(jié)群?jiǎn)卧幉季€資源圖的子區(qū)域位置及拓?fù)溥B接關(guān)系,初始化對(duì)應(yīng)粒子的自身位置向量、自身速度向量、自身歷史最優(yōu)位置向量,進(jìn)而初始化全體粒子的全局歷史最優(yōu)位置向量。
步驟13.3.2,遍歷每個(gè)粒子,并依據(jù)每個(gè)粒子的上一水平層結(jié)群賦權(quán)超圖的自身位置向量投影到當(dāng)前水平層的細(xì)化賦權(quán)超圖上,得到每個(gè)粒子在當(dāng)前水平層細(xì)化賦權(quán)超圖的自身位置向量。粒子在當(dāng)前水平層的細(xì)化賦權(quán)超圖的每個(gè)維度空間的位置代表著該維度空間對(duì)應(yīng)的當(dāng)前層次邏輯網(wǎng)表的布局布線,即個(gè)體在每個(gè)維度空間的位置代表該維度空間對(duì)應(yīng)結(jié)群?jiǎn)卧幉季€資源圖的子區(qū)域位置及拓?fù)溥B接關(guān)系。
步驟13.3.3,遍歷每個(gè)粒子,并依據(jù)每個(gè)粒子的上一水平層結(jié)群賦權(quán)超圖的自身速度向量投影到當(dāng)前水平層的細(xì)化賦權(quán)超圖上,得到每個(gè)粒子在當(dāng)前水平層細(xì)化賦權(quán)超圖的自身速度向量,即粒子在當(dāng)前水平層細(xì)化賦權(quán)超圖的每個(gè)維度空間的速度。
步驟13.3.4,遍歷每個(gè)粒子,并依據(jù)每個(gè)粒子的當(dāng)前水平層細(xì)化賦權(quán)超圖的自身位置向量,計(jì)算每個(gè)粒子遷移的線長(zhǎng)收益值。
步驟13.3.5,遍歷每個(gè)粒子,并依據(jù)每個(gè)粒子遷移的線長(zhǎng)收益值,快速計(jì)算每個(gè)粒子在當(dāng)前水平層的細(xì)化賦權(quán)超圖的自身位置向量的總線長(zhǎng)。
步驟13.3.6,循環(huán)初始化,初始化循環(huán)計(jì)數(shù)器count為0。
步驟13.3.7,遍歷每個(gè)粒子在當(dāng)前水平層的細(xì)化賦權(quán)超圖的所有維度,基于結(jié)群?jiǎn)卧w移的線長(zhǎng)收益值等啟發(fā)式信息,更新每個(gè)粒子在每個(gè)維度的自身速度、自身位置,進(jìn)而得到每個(gè)粒子的自身速度向量和自身位置向量。
步驟13.3.8,依據(jù)粒子的自身位置向量更新計(jì)算粒子的遷移的線長(zhǎng)收益值。
步驟13.3.9,基于粒子遷移的線長(zhǎng)收益值等啟發(fā)式信息,利用個(gè)體聚集協(xié)同表現(xiàn)出的智能行為,搜索多約束條件下、多目標(biāo)組合的pareto有效解,使非劣遷移優(yōu)化解向著pareto-最優(yōu)面逼近,實(shí)現(xiàn)對(duì)粒子有選擇性的遷移優(yōu)化,并對(duì)相應(yīng)線網(wǎng)進(jìn)行拆線重布。
步驟13.3.10,遍歷每個(gè)粒子,并依據(jù)每個(gè)粒子的自身位置向量和遷移的線長(zhǎng)收益值,快速計(jì)算每個(gè)粒子的當(dāng)前水平層細(xì)化賦權(quán)超圖的自身位置向量的總線長(zhǎng);如果該粒子的自身位置向量的總線長(zhǎng)小于自身歷史最優(yōu)位置向量的總線長(zhǎng),則更新該粒子的歷史最優(yōu)位置向量為當(dāng)前的自身位置向量;如果該粒子的自身位置向量的總線長(zhǎng)小于全體粒子的全局歷史最優(yōu)位置向量的總線長(zhǎng),則更新全體粒子的全局歷史最優(yōu)位置向量為該粒子當(dāng)前的自身位置向量。
步驟13.3.11,重復(fù)步驟13.3.7、13.3.8、13.3.9、13.3.10和循環(huán)計(jì)數(shù)器count加1,直至循環(huán)計(jì)數(shù)器count到達(dá)給定的上限。
本發(fā)明與現(xiàn)有技術(shù)相比較,具有如下顯而易見的突出實(shí)質(zhì)性特點(diǎn)和顯著優(yōu)點(diǎn)。
1、結(jié)群階段,在保證結(jié)群結(jié)果可布性的同時(shí),有效地減少布局與布線之間的不匹配性。
本發(fā)明基于多層次方法和賦權(quán)超圖的層次式fpga布局布線方法在結(jié)群階段,對(duì)于宏單元面積和位置的fpga硬件固有約束,將宏單元視為粒度較大的結(jié)群?jiǎn)卧?,在相同粒度?jí)別的結(jié)群層次上進(jìn)行匹配,無縫地嵌入到自底向上的多層次結(jié)群過程中。此外,借助多層次優(yōu)化方法的結(jié)群階段,既能極大地提高布局布線問題的求解速度,又能有效地優(yōu)化低層次的局部互連線。
2、初始布局布線階段,有效地減少高層次的全局互連線。
本發(fā)明基于多層次方法和賦權(quán)超圖的層次式fpga布局布線方法在初始布局布線階段,基于最高層次邏輯網(wǎng)表的最小割劃分進(jìn)行布局和全局布線,通過將連接性好的結(jié)群?jiǎn)卧季衷谕粋€(gè)子區(qū)域中,不僅有效地抑制了子區(qū)域之間的互連需求,更好地優(yōu)化了高層次的全局互連線,而且將結(jié)群與劃分算法自然地融合在多層次優(yōu)化方法中,充分地發(fā)揮了各自算法的優(yōu)勢(shì)。
3、投影優(yōu)化階段,避免布局布線陷入局部最優(yōu)解。
本發(fā)明基于多層次方法和賦權(quán)超圖的層次式fpga布局布線方法在投影優(yōu)化階段,隨著高層次的布局布線自頂向下地逐層投影到低層次的邏輯網(wǎng)表上,通過部分結(jié)群?jiǎn)卧倪w移優(yōu)化及相應(yīng)線網(wǎng)的拆線重布,不僅逐層地優(yōu)化了互連線的總線長(zhǎng),而且有效地解決了布局與布線之間、全局布線與詳細(xì)布線之間的匹配問題。
附圖說明
通過以下對(duì)本發(fā)明基于多層次方法和賦權(quán)超圖的層次式fpga布局布線方法的實(shí)例結(jié)合其附圖的描述,可以進(jìn)一步理解本發(fā)明的目的、具體結(jié)構(gòu)特征和優(yōu)點(diǎn)。
圖1是本發(fā)明基于多層次方法和賦權(quán)超圖的層次式fpga布局布線方法的流程圖。
圖2是本發(fā)明的賦權(quán)超圖的改進(jìn)壓縮的內(nèi)存存儲(chǔ)格式。
圖3是基于多層次方法和賦權(quán)超圖的層次式fpga布局布線過程中投影優(yōu)化階段,多目標(biāo)的離散群智能方法結(jié)群?jiǎn)卧倪w移優(yōu)化及相應(yīng)線網(wǎng)的拆線重布程序的流程圖。
具體實(shí)施方式
為了能夠更清楚地理解本發(fā)明基于多層次方法和賦權(quán)超圖的層次式fpga布局布線方法的技術(shù)內(nèi)容,特舉以下實(shí)例詳細(xì)說明。
本實(shí)施例的基于多層次方法和賦權(quán)超圖的層次式fpga布局布線方法的流程圖如圖1所示,用硬件描述語言描述該fpga設(shè)計(jì)101,綜合生成該fpga設(shè)計(jì)的網(wǎng)表文件103;網(wǎng)表文件的詞法分析,從左到右一個(gè)個(gè)讀入該fpga設(shè)計(jì)的網(wǎng)表文件,對(duì)構(gòu)成源代碼的字符流進(jìn)行掃描和分解,從而識(shí)別出一個(gè)個(gè)單詞104;網(wǎng)表文件的語法分析,在詞法分析的基礎(chǔ)上將單詞序列分解成各類語法短語105,依據(jù)網(wǎng)表文件的語法規(guī)則,確定整個(gè)字符流是否構(gòu)成一個(gè)語法上正確的網(wǎng)表文件;網(wǎng)表文件的語義分析,在語法分析的基礎(chǔ)上審核源代碼有無語義錯(cuò)誤,為中間代碼生成階段收集類型信息;網(wǎng)表文件的中間代碼生成,在語法分析和語義分析的基礎(chǔ)上,將源代碼生成中間代碼106,用內(nèi)部中間格式表示;構(gòu)造網(wǎng)表文件對(duì)應(yīng)的賦權(quán)超圖,基于中間代碼構(gòu)造文本描述的電路對(duì)應(yīng)的邏輯網(wǎng)表111,經(jīng)過邏輯網(wǎng)表到賦權(quán)超圖的轉(zhuǎn)換之后,采用改進(jìn)壓縮的內(nèi)存存儲(chǔ)格式在物理存儲(chǔ)空間表示賦權(quán)超圖115;用xml語言描述該fpga芯片結(jié)構(gòu)102的版圖和布線結(jié)構(gòu),得到該fpga的“.xml”格式的結(jié)構(gòu)描述文件源代碼107;結(jié)構(gòu)描述文件的詞法分析,從左到右一個(gè)個(gè)讀入該fpga的結(jié)構(gòu)描述文件,對(duì)構(gòu)成源代碼107的字符流進(jìn)行掃描和分解,從而識(shí)別出一個(gè)個(gè)單詞108;結(jié)構(gòu)描述文件的語法分析,在詞法分析的基礎(chǔ)上將單詞序列分解成各類語法短語109,依據(jù)結(jié)構(gòu)描述文件的語法規(guī)則,確定整個(gè)字符流是否構(gòu)成一個(gè)語法上正確的結(jié)構(gòu)描述文件;結(jié)構(gòu)描述文件的語義分析,在語法分析的基礎(chǔ)上審核源代碼有無語義錯(cuò)誤,為中間代碼生成階段收集類型信息;,結(jié)構(gòu)描述文件的中間代碼生成,在語法分析和語義分析的基礎(chǔ)上,將源代碼生成中間代碼110,用內(nèi)部中間格式表示;構(gòu)造結(jié)構(gòu)描述文件對(duì)應(yīng)fpga的多層次布線資源圖,基于中間代碼構(gòu)造以<architecture>為根結(jié)點(diǎn)的樹狀結(jié)構(gòu),對(duì)樹狀結(jié)構(gòu)的<complexblocklist>邏輯復(fù)合塊對(duì)應(yīng)的子樹進(jìn)行遞歸遍歷,構(gòu)建結(jié)構(gòu)描述文件對(duì)應(yīng)fpga的多層次布線資源圖119;啟動(dòng)基于多層次方法的層次式fpga布局布線程序,輸入在物理存儲(chǔ)空間中表示的賦權(quán)超圖115和多層次布線資源圖119,進(jìn)行基于多層次方法和賦權(quán)超圖的層次式fpga布局布線,輸出層次式fpga的布局布線結(jié)果123。其中,本實(shí)施例的基于多層次方法的層次式fpga布局布線程序的流程圖如圖1所示,進(jìn)入到多層次方法的結(jié)群階段,在多層次布線資源圖120的布線通道容量約束條件下,逐層對(duì)邏輯網(wǎng)表進(jìn)行結(jié)群,采用賦權(quán)超圖的結(jié)點(diǎn)結(jié)群程序?qū)?dāng)前水平層結(jié)群賦權(quán)超圖的某些結(jié)點(diǎn)結(jié)合在一起,得到下一水平層的結(jié)群賦權(quán)超圖116,重復(fù)此過程直到結(jié)群賦權(quán)超圖足夠小為止,即得到一個(gè)最小結(jié)群超圖117;進(jìn)入到多層次方法的在初始布局布線階段,基于其特征向量刻畫結(jié)點(diǎn)間相對(duì)距離的思想,采用譜方法對(duì)最高層次邏輯網(wǎng)表對(duì)應(yīng)的最小結(jié)群超圖進(jìn)行劃分,計(jì)算得到最高層次邏輯網(wǎng)表的最小割劃分,進(jìn)而基于最高層次邏輯網(wǎng)表的最小割劃分,在最高層次布線資源圖121的資源約束條件下,完成布局與全局布線。進(jìn)入到多層次方法的投影優(yōu)化階段,隨著高層次的布局布線自頂向下地逐層投影到低層次的邏輯網(wǎng)表上,得到每一層次超圖的近似非劣最優(yōu)布局布線118,在相應(yīng)層次布線資源圖122的資源約束條件下,利用結(jié)群?jiǎn)卧w移的線長(zhǎng)收益值等啟發(fā)式信息,采用多目標(biāo)的離散群智能方法進(jìn)行結(jié)群?jiǎn)卧倪w移優(yōu)化及相應(yīng)線網(wǎng)的拆線重布,直至最高層次邏輯網(wǎng)表的布局布線最終投影到原始邏輯網(wǎng)表上,在完成結(jié)群?jiǎn)卧倪w移優(yōu)化及相應(yīng)線網(wǎng)的拆線重布后,輸出層次式fpga的布局布線123。
本實(shí)施例的賦權(quán)超圖的改進(jìn)壓縮的內(nèi)存存儲(chǔ)格式如圖2所示。存儲(chǔ)結(jié)構(gòu)使用adjncy數(shù)組204存儲(chǔ)每個(gè)結(jié)點(diǎn)所有鄰接超邊的列表信息。使用xadj數(shù)組203存儲(chǔ)每個(gè)結(jié)點(diǎn)所有鄰接超邊列表的起始位置信息,即第i條結(jié)點(diǎn)的終止位置為第i+1條結(jié)點(diǎn)的起始位置減1,且xadj數(shù)組203的大小為賦權(quán)超圖中的結(jié)點(diǎn)個(gè)數(shù)加1,xadj數(shù)組203最后一個(gè)元素用于存放最后一條結(jié)點(diǎn)的終止位置。使用eind數(shù)組207存儲(chǔ)每條超邊所包含結(jié)點(diǎn)的列表信息。使用eptr數(shù)組206存儲(chǔ)每條超邊所包含的結(jié)點(diǎn)列表的起始位置信息,即第j條超邊的終止位置為第j+1條超邊的起始位置減1,且eptr數(shù)組206的大小為賦權(quán)超圖中的超邊個(gè)數(shù)加1,eptr數(shù)組206最后一個(gè)元素用于存放最后一條超邊的終止位置。使用vwgts數(shù)組202存儲(chǔ)結(jié)點(diǎn)的權(quán)值信息,且vwgts數(shù)組202的大小為賦權(quán)超圖中的結(jié)點(diǎn)個(gè)數(shù)。使用hewgts數(shù)組205存儲(chǔ)超邊的權(quán)值信息,且hewgts數(shù)組205的大小為賦權(quán)超圖中的超邊個(gè)數(shù)。假設(shè)數(shù)組地址從零開始,結(jié)點(diǎn)編號(hào)從零開始,則第i條結(jié)點(diǎn)的鄰接超邊列表存儲(chǔ)在adjncy數(shù)組204中,從adjncy[xadj[i]]到adjncy[xadj[i+1]-1];第j條超邊的鄰接結(jié)點(diǎn)列表存儲(chǔ)在eind數(shù)組207中,從eind[eptr[j]]到eind[eptr[j+1]-1]。圖例201包含總共7個(gè)結(jié)點(diǎn)和8條超邊,其中第6個(gè)結(jié)點(diǎn)的權(quán)值為7,有2條鄰接超邊f(xié)、h,對(duì)應(yīng)的權(quán)值為4、1,且相應(yīng)的鄰接結(jié)點(diǎn)分別為結(jié)點(diǎn)7、3、6和結(jié)點(diǎn)4、6。
本實(shí)施例的賦權(quán)超圖的結(jié)點(diǎn)核值計(jì)算程序參見在先技術(shù)[1]“孫凌宇,冷明,冷子陽.基于結(jié)點(diǎn)屬性函數(shù)的大規(guī)模集成電路的核值計(jì)算方法[p].2012.發(fā)明專利申請(qǐng)?zhí)?01210150329.7.”。
本實(shí)施例的基于多層次方法和賦權(quán)超圖的層次式fpga布局布線過程中投影優(yōu)化階段,多目標(biāo)的離散群智能方法進(jìn)行結(jié)群?jiǎn)卧倪w移優(yōu)化及相應(yīng)線網(wǎng)的拆線重布程序的流程圖如圖3所示,步驟如下。
a01,結(jié)群?jiǎn)卧成涞诫x散群智能的初始化,針對(duì)每個(gè)結(jié)群?jiǎn)卧O(shè)定一一對(duì)應(yīng)的粒子,并依據(jù)結(jié)群?jiǎn)卧幉季€資源圖的子區(qū)域位置及拓?fù)溥B接關(guān)系,初始化對(duì)應(yīng)粒子的自身位置向量、自身速度向量、自身歷史最優(yōu)位置向量,進(jìn)而初始化全體粒子的全局歷史最優(yōu)位置向量。
a02,遍歷每個(gè)粒子,并依據(jù)每個(gè)粒子的上一水平層結(jié)群賦權(quán)超圖的自身位置向量投影到當(dāng)前水平層的細(xì)化賦權(quán)超圖上,得到每個(gè)粒子在當(dāng)前水平層細(xì)化賦權(quán)超圖的自身位置向量。粒子在當(dāng)前水平層的細(xì)化賦權(quán)超圖的每個(gè)維度空間的位置代表著該維度空間對(duì)應(yīng)的當(dāng)前層次邏輯網(wǎng)表的布局布線,即個(gè)體在每個(gè)維度空間的位置代表該維度空間對(duì)應(yīng)結(jié)群?jiǎn)卧幉季€資源圖的子區(qū)域位置及拓?fù)溥B接關(guān)系。
a03,遍歷每個(gè)粒子,并依據(jù)每個(gè)粒子的上一水平層結(jié)群賦權(quán)超圖的自身速度向量投影到當(dāng)前水平層的細(xì)化賦權(quán)超圖上,得到每個(gè)粒子在當(dāng)前水平層細(xì)化賦權(quán)超圖的自身速度向量,即粒子在當(dāng)前水平層細(xì)化賦權(quán)超圖的每個(gè)維度空間的速度。
a04,遍歷每個(gè)粒子,并依據(jù)每個(gè)粒子的當(dāng)前水平層細(xì)化賦權(quán)超圖的自身位置向量,計(jì)算每個(gè)粒子遷移的線長(zhǎng)收益值。
a05,遍歷每個(gè)粒子,并依據(jù)每個(gè)粒子遷移的線長(zhǎng)收益值,快速計(jì)算每個(gè)粒子在當(dāng)前水平層的細(xì)化賦權(quán)超圖的自身位置向量的總線長(zhǎng)。
a06,循環(huán)初始化,初始化循環(huán)計(jì)數(shù)器count為0。
a07,遍歷每個(gè)粒子在當(dāng)前水平層的細(xì)化賦權(quán)超圖的所有維度,基于結(jié)群?jiǎn)卧w移的線長(zhǎng)收益值等啟發(fā)式信息,更新每個(gè)粒子在每個(gè)維度的自身速度、自身位置,進(jìn)而得到每個(gè)粒子的自身速度向量和自身位置向量。
a08,依據(jù)粒子的自身位置向量更新計(jì)算粒子的遷移的線長(zhǎng)收益值。
a09,基于粒子遷移的線長(zhǎng)收益值等啟發(fā)式信息,利用個(gè)體聚集協(xié)同表現(xiàn)出的智能行為,搜索多約束條件下、多目標(biāo)組合的pareto有效解,使非劣遷移優(yōu)化解向著pareto-最優(yōu)面逼近,實(shí)現(xiàn)對(duì)粒子有選擇性的遷移優(yōu)化,并對(duì)相應(yīng)線網(wǎng)進(jìn)行拆線重布。
a10,遍歷每個(gè)粒子,并依據(jù)每個(gè)粒子的自身位置向量和遷移的線長(zhǎng)收益值,快速計(jì)算每個(gè)粒子的當(dāng)前水平層細(xì)化賦權(quán)超圖的自身位置向量的總線長(zhǎng);如果該粒子的自身位置向量的總線長(zhǎng)小于自身歷史最優(yōu)位置向量的總線長(zhǎng),則更新該粒子的歷史最優(yōu)位置向量為當(dāng)前的自身位置向量;如果該粒子的自身位置向量的總線長(zhǎng)小于全體粒子的全局歷史最優(yōu)位置向量的總線長(zhǎng),則更新全體粒子的全局歷史最優(yōu)位置向量為該粒子當(dāng)前的自身位置向量。
a11,重復(fù)a07、a08、a09、a010和循環(huán)計(jì)數(shù)器count加1,直至循環(huán)計(jì)數(shù)器count到達(dá)給定的上限。