專利名稱:在根據高級綜合的蟻群優(yōu)化電路設計中使用熵的方法和裝置的制作方法
技術領域:
所公開的實施方式涉及電路設計,尤其涉及為電路設計選擇用于操作的時間約束調度的解決方案。
背景技術:
對于數(shù)字電路(例如,超大規(guī)模集成(VLSI)技術的規(guī)模)的設計而言,設計者通常采用計算機輔助技術。已經開發(fā)了描述數(shù)字電路的標準語言(諸如硬件描述語言(HDL))來幫助設計和模擬復雜的數(shù)字電路。若干硬件描述語言(例如,VHDL(非常高速集成電路HDL)和Verilog HDL)已經演進為工業(yè)標準。VHDL和Verilog HDL是通用硬件描述語言,其允許通過使用抽象數(shù)據類型來定義門級、寄存器傳輸級(RTL)或者行為級的硬件模型。隨著器件技術的持續(xù)發(fā)展,已經開發(fā)了各種產品設計工具來使HDL適用于與更新的器件和設計風格一起使用。在用HDL碼設計集成電路時,HDL源碼描述了電路元件,而且綜合過程根據該源碼來產生RTL網表。該RTL網表典型地是獨立于工藝的網表,因為其獨立于特定銷售商的集成電路(諸如現(xiàn)場可編程門陣列(FPGA)或專用集成電路(ASIC))的工藝/架構。RTL網表對應于電路元件的示意性表示(與行為表示相反)。然后,執(zhí)行映射操作以從獨立于工藝的RTL網表轉換成工藝專用網表,該工藝專用網表能夠用于創(chuàng)建銷售商的工藝/架構中的電路。現(xiàn)場可編程門陣列(FPGA)銷售商使用不同的工藝和架構在他們的集成電路中實現(xiàn)邏輯電路。這產生了最終的網表,該最終的網表專用于特定銷售商的工藝和架構。高級綜合(HLS)是將HLD (高級描述)的行為描述轉換成寄存器傳輸級(RTL)描述的過程。HLS典型地用一組設計目標和約束來完成。因此,雖然可能存在著許多不同的方式來實現(xiàn)HLD的行為,但是HLS尋求在最小化特別定義的成本的同時來完成該行為。所定義的成本是典型的事情,諸如循環(huán)時間、元件數(shù)、硅面積、功率、互連、引腳數(shù)等。這些約束典型地受到形態(tài)因數(shù)、封裝約束、互操作性和類似因素的驅動。HLS能夠被描述為編譯用高級語言(HLL)所寫的規(guī)范、向規(guī)范中的操作分配硬件資源并且之后生成RTL描述。為了生成RTL描述,HLS對操作進行調度、向特定功能硬件單元分配操作、向存儲元件分配任意變量、以及向將功能單元連接到存儲寄存器和輸入/輸出接口的通信總線分配任意數(shù)據傳輸。在包括數(shù)字信號處理器(DSP)在內的許多設備中,RTL描述提供了系統(tǒng)的輸入和輸出以及將被執(zhí)行的算法。這些被描述為幀。基于幀的算法通過使用幀數(shù)據來描述。輸入數(shù)據在幀中被接收,而且輸出數(shù)據在幀中被產生。基于幀的算法典型地在HLS中被如下綜合:首先,器件從輸入流中收集幀數(shù)據;之后,器件對幀數(shù)據進行處理;以及最后,器件將輸出幀作為輸出流進行發(fā)送。該幀綜合包括操作的調度以及將操作綁定到硬件上以獲得優(yōu)化的器件設計。該方法的吞吐量(throughput)低。蟻群優(yōu)化(ACO)是近來的一種優(yōu)化方法,其已經被應用到許多不同的問題上。在ACO中,每個螞蟻都構建候選解決方案,并根據與其所構建的每個解決方案相關聯(lián)的成本來留下信息素。ACO允許找到若干個不同的解決方案。之后,可以將這些解決方案進行相互比較,以找到最佳解決方案。然而,ACO的明顯局限在于,ACO不能被直接應用到現(xiàn)有解決方案方法中。
發(fā)明內容
描述了一種在根據高級綜合的蟻群優(yōu)化電路設計中使用熵的方法和裝置。在一個示例中,選擇將由電路執(zhí)行的操作。用于執(zhí)行操作的多個硬件部件用具有邊沿和節(jié)點的數(shù)據流圖來表示。用于執(zhí)行操作的多個解決方案被模擬為被表示為數(shù)據流圖上的路徑的硬件部件組合。確定每個解決方案的成本,該成本包括在數(shù)據流圖上被遍歷的邊沿和節(jié)點的數(shù)量以及補充子整數(shù)(sub-1nteger)成本。具有最低成本的解決方案被選為用于電路的硬件部件組合。
通過示例的方式示出所公開的實施方式,并且所公開的實施方式不受附圖中的圖形的限制,其中,類似的標號指代類似的元件。圖1是用于基于高級描述來執(zhí)行電路設計的高級綜合的過程流程圖的示例。圖2是電路設計的數(shù)據流圖的示例性表示。圖3是圖2的數(shù)據流圖的可替換示例性表示。圖4是針對使用輸入和輸出數(shù)據幀來進行電路設計的流水線操作的一個實施方式的過程流程圖。圖5示出了用于實施圖4的過程的系統(tǒng)的一個實施方式。圖6是用于使用蟻群優(yōu)化來解決電路設計的過程流程圖的示例。圖7示出了用于實施圖6的過程的系統(tǒng)的一個實施方式。圖8是用于確定在圖6的過程中使用的電路設計的補充成本的過程流程圖的示例。圖9是用于估計在圖6的過程中使用的互連成本的過程流程圖的示例。圖10是用于確定在圖6的過程中使用的用于選擇解決方案的引導函數(shù)(guidingfunction)的過程流程圖的示例。圖11是用于確定在圖6的過程中使用的用于在局部搜索中選擇鄰居的函數(shù)的過程流程圖的示例。圖12是被配置成用于與所公開的實施方式一起使用的數(shù)據處理系統(tǒng)的框圖示例。
具體實施例方式所公開的實施方式中的至少一個實施方式尋求使用蟻群優(yōu)化(ACO)方法來改善集成電路的設計。在一個實施方式中,附加成本被增加到候選解決方案的成本中,以改善附加候選解決方案的選擇。高級綜合(HLS)是用于將復雜集成電路系統(tǒng)的行為描述轉換成能夠被用于構建該系統(tǒng)的RTL描述的過程。一些行為描述可以包括巾貞綜合,在該巾貞綜合中描述了輸入巾貞和相應的輸出幀。在圖1的上下文中示出了用于采用HLS來設計電路的基本過程。圖1的過程從例如在步驟102中在HLD中建立高級描述開始。該描述將提供將由電路執(zhí)行的操作,在一個實施方式中,所述操作可以包括一種或多種類型的局部操作。局部操作是更大操作的一部分,該局部操作被執(zhí)行以完成該更大操作。對于乘法操作,局部操作可以包括加法和寄存器移位。實施方式能夠被應用于任意類型的操作(無論是完整的還是局部的)。所有的操作(無論是全部的還是局部的)將在本文中被簡稱為操作。在步驟104中識別HLD中的操作,以及在步驟106中將變量分配給這些操作?;趯⒈皇褂玫臅r間順序對用于這些操作的變量進行識別和排序。在步驟108,基于該相同的時間來對操作進行排序。在一個實施方式中,能夠在步驟110中對用于執(zhí)行這些操作的硬件部件進行定義。存在著不同的方式來確定執(zhí)行所有操作所需的硬件部件的最佳組合。在一個實施方式中,在步驟114,將用于執(zhí)行操作的不同解決方案模擬為硬件部件組合。在步驟112向每個解決方案分配成本,而且在步驟116中將具有最低成本的解決方案選為用于最終電路設計的硬件部件組合。成本的選擇和計算成為找到解決方案的重要部分?;诮碡懙妮斎?輸出當HLD至RTL的系統(tǒng)被應用到輸入和輸出數(shù)據幀時,變量向硬件部件的分配變得更為復雜。如果幀被單獨處理,則由寄存器傳輸級描述所描述的結果器件將比所需的更慢。能夠通過使用流水線結構處理幀來增加器件的效率和速度。在流水線結構中,對處理元件進行布置,以便每個元件的輸出是下一元件的輸入,以及以便每個周期執(zhí)行一個操作。對于全流水線架構而言,幀綜合的特定難點在于將幀數(shù)據映射或綁定到存儲寄存器。存儲器映射的設計大大地影響了支持流水線架構所需的多路復用邏輯和控制邏輯的成本。如果存儲器映射首先被執(zhí)行,則必須存在著關于操作序列的假設。這些假設在調度算法完成之后會是錯誤的。另一方面,如果首先執(zhí)行調度,則調度算法會產生使其難以將變量映射到至少一些存儲塊的解決方案。因此,在一個實施方式中,將用于支持流水線的調度算法鏈接到相應的綁定算法,而且存儲器映射作為調度的一部分而被執(zhí)行。通過將幀綜合與調度和綁定算法相集成,輸入/輸出幀綜合能夠在調度階段被考慮到(accommodated)。另外,以預定順序到來的輸入幀數(shù)據以及沒有所確定順序的輸入幀數(shù)據都能夠被考慮到。能夠使用圖結構或數(shù)據流圖來定義調度和綁定算法。這種圖結構能夠被表示為(V,E,W)。V是操作V的集合。每個操作都具有操作類型,其提供了能夠在其上執(zhí)行相應操作的硬件單元類型。如上所述,術語“操作”包括局部操作。E是邊沿e的集合,其中邊沿e是從一個操作到另一操作的連接。W是給出邊沿的寄存器數(shù)w的函數(shù)。數(shù)據流圖能夠由節(jié)點和邊緣構成,其中節(jié)點表示組合計算單元,邊緣則將節(jié)點互連。延遲(例如,寄存器)被表示為邊沿上的權重(W)。每個節(jié)點都具有與其相關聯(lián)的執(zhí)行時間。在圖2和圖3中示出了數(shù)據流圖的示例,其示出了用于構建數(shù)據流圖以用于重定時的方法。圖2和圖3是相同圖的兩種不同表不,從而例如加法器205和225是相同的加法器。圖2中的組合計算單元(例如,加法器205、乘法器207和209)被表示為計算節(jié)點(例如,圖3中的節(jié)點225、227和229)。圖2具有輸入201和輸出203。相同的路徑應用于圖3。組合計算單元的執(zhí)行時間能夠由相關聯(lián)節(jié)點的計算時間來表示。例如,節(jié)點225可以具有2ns的計算時間,這是由加法器205所要求的;以及節(jié)點227和229中的每個節(jié)點可以具有4ns (納秒)的計算時間,這是由乘法器(例如,209或者207)所要求的。邊沿表示計算單元之間的連接。邊沿231表示乘法器207與加法器205之間的連接。邊沿231具有權重1,從而表示寄存器217 (或者因寄存器217導致的一個時鐘周期的等待時間)。類似地,邊沿233因寄存器215而具有一個時鐘周期的等待時間。邊沿235表示乘法器209與207之間的連接;而且不存在與邊沿235相關聯(lián)的延遲。數(shù)據流圖能夠用于對路徑和等待時間進行比較。例如,在圖3中,從節(jié)點229到節(jié)點227的路徑包含具有零延遲的邊沿235 ;以及從節(jié)點229到節(jié)點227的路徑花費了最長的計算時間(例如,8ns,其中4ns是用于節(jié)點229的,以及4ns是用于節(jié)點227的)。因此,圖2中的電路的最小時鐘周期是8ns。在圖3中,邊沿233上的延遲能夠被移動到邊沿235上,從而關鍵路徑變成節(jié)點225與229之間的路徑,該路徑花費了僅6ns的計算時間。因此,將延遲從邊沿233移動到邊沿235(其能夠通過將寄存器215從位于加法器205與乘法器209之間移動到位于乘法器209與207之間來實施)允許修改后(重定時后)的電路以6ns的縮減延遲進行操作。用于電路模塊的定時模型能夠通過將該模塊分解成寄存器和組合計算元件并將每個節(jié)點分配給每個組合計算元件來構建。每個硬件模塊的定時模型是組合計算單元、延遲和互連的定時模型的組合。在轉換特定硬件模塊時使用的節(jié)點和邊沿集的聚集實際上是該硬件模塊的定時模型(數(shù)據流圖)。雖然數(shù)據流圖能夠由圖2和圖3所示類型的圖來表示,但是數(shù)據流圖還能夠用其他方式來表示,包括表格、具有元數(shù)據的文本以及數(shù)學方程式。在上面的示例中,V值的集合V由節(jié)點表示,e值的集合E由節(jié)點之間的邊沿表示,以及w值的集合W由一些邊沿上的寄存器表不。輸入和輸出幀數(shù)據表示使用幀數(shù)據的電路的輸入和輸出數(shù)據。數(shù)據幀可以是一維的或者多維的。在一維幀的上下文中描述了實施方式。然而,相同的原理能夠被用于將這些原理擴展到多維。一維幀(F)能夠被表示為變量集Iv1, v2,vn},其中,η是幀(|F|)的大小。用于生成針對給定數(shù)據流圖(V,Ε, W)的RTL規(guī)范的變換算法的偽代碼能夠被如下表不:
權利要求
1.一種方法,該方法包括: 選擇將由電路執(zhí)行的操作; 通過具有邊沿和節(jié)點的數(shù)據流圖來表示用于執(zhí)行所述操作的多個硬件部件; 對用于執(zhí)行所述操作的多個解決方案進行模擬,每個解決方案對應于被表示為所述數(shù)據流圖上的路徑的硬件部件組合; 確定所述多個解決方案中的每個解決方案的成本,該成本包括在所述數(shù)據流圖上被遍歷的邊沿和節(jié)點的數(shù)量以及補充子整數(shù)成本;以及 從所述多個解決方案中選擇解決方案,所選擇的解決方案具有最低被確定的成本。
2.根據權利要求1所述的方法,其中,所述補充子整數(shù)成本是虛擬成本。
3.根據權利要求1所述的方法,其中,所述補充成本是用于完成各個解決方案的多個步驟的熵的歸一化值。
4.根據權利要求1所述的方法,其中,所述補充子整數(shù)成本基于操作的柱狀圖的熵的值。
5.根據權利要求1所述的方法,其中,確定成本包括創(chuàng)建每個被模擬的解決方案的多個步驟的柱狀圖陣列。
6.根據權利要求5所述的方法,其中,步驟的數(shù)量包括針對每個解決方案而言在所述數(shù)據流圖上被遍歷的邊沿的數(shù)量。
7.根據權利要求6所述的方法,該方法還包括基于各個解決方案的柱狀圖值和操作數(shù)量來確定每個被模擬的解決方案的幾率,以及其中所述補充子整數(shù)成本是所述幾率的函數(shù)。
8.根據權利要求1所述的方法,其中,模擬多個解決方案包括對于每個解決方案而言通過所述數(shù)據流圖來模擬每個步驟,每個步驟包括遍歷位于所述數(shù)據流圖的兩個節(jié)點之間的邊沿。
9.根據權利要求8所述的方法,該方法還包括將信息素軌跡與每個被遍歷的邊沿相關聯(lián)。
10.根據權利要求1所述的方法,其中,模擬多個解決方案包括探試性地搜索局部解決方案。
11.根據權利要求1所述的方法,其中,模擬多個解決方案包括執(zhí)行蟻群優(yōu)化,以及其中確定成本進一步包括應用成本以遞增所述數(shù)據流圖中的邊沿的信息素值。
12.一種用于在其上存儲指令的非臨時性計算機可讀介質,當所述指令被處理器執(zhí)行時促使該處理器執(zhí)行: 選擇將由電路執(zhí)行的操作; 通過具有邊沿和節(jié)點的數(shù)據流圖來表示用于執(zhí)行所述操作的多個硬件部件; 對用于執(zhí)行所述操作的多個解決方案進行模擬,每個解決方案對應于被表示為所述數(shù)據流圖上的路徑的硬件部件組合; 確定所述多個解決方案中的每個解決方案的成本,該成本包括在所述數(shù)據流圖上被遍歷的邊沿和節(jié)點的數(shù)量以及補充子整數(shù)成本;以及 從所述多個解決方案中選擇解決方案,所選擇的解決方案具有最低被確定的成本。
13.根據權利要求12所述的計算機可讀介質,其中,確定成本包括創(chuàng)建每個被模擬的解決方案的多個步驟的柱狀圖陣列。
14.根據權利要求13所述的計算機可讀介質,其中,步驟的數(shù)量包括針對每個解決方案而言在所述數(shù)據流圖上被遍歷的邊沿的數(shù)量。
15.根據權利要求14所述的計算機可讀介質,該計算機可讀介質還包括基于柱狀圖值和各個解決方案的操作數(shù)量來確定每個被模擬的解決方案的幾率,以及其中所述補充子整數(shù)成本是所述幾率的函數(shù)。
16.根據權利要求12所述的計算機可讀介質,其中,模擬多個解決方案包括對于每個解決方案而言通過所述數(shù)據流圖來模擬每個步驟,每個步驟包括遍歷位于所述數(shù)據流圖的兩個節(jié)點之間的邊沿。
17.根據權利要求16所述的計算機可讀介質,該計算機可讀介質還包括將信息素軌跡與每個被遍歷的邊沿相關聯(lián)。
18.一種數(shù)字處理系統(tǒng),該數(shù)字處理系統(tǒng)包括: 選擇將由電路執(zhí)行的操作的裝置; 通過具有邊沿和節(jié)點的數(shù)據流圖來表示用于執(zhí)行所述操作的多個硬件部件的裝置; 對用于執(zhí)行所述操作的多個解決方案進行模擬的裝置,每個解決方案對應于被表示為所述數(shù)據流圖上的路徑的硬件部件組合; 確定所述多個解決方案中的每個解決方案的成本的裝置,該成本包括在所述數(shù)據流圖上被遍歷的邊沿和節(jié)點的數(shù)量以及補充子整數(shù)成本;以及 從所述多個解決方案中選擇解決方案的裝置,所選擇的解決方案具有最低的成本。
19.根據權利要求18所述的系統(tǒng),其中,所述補充子整數(shù)成本是用于完成各個解決方案的多個步驟的熵的歸一化值。
20.根據權利要求18所述的系統(tǒng),其中,所述補充子整數(shù)成本基于操作的柱狀圖的熵的值。
21.一種裝置,該裝置包括: 存儲器,該存儲器用于存儲表示用于執(zhí)行至少一個操作的多個硬件部件的數(shù)據流圖,所述數(shù)據流圖具有邊沿和節(jié)點; 解決方案模擬器,該解決方案模擬器被耦合到所述存儲器,以接收所述數(shù)據流圖并將用于執(zhí)行所述操作的多個解決方案模擬為被表示為所述數(shù)據流圖上的路徑的硬件部件組合; 成本評估器,該成本評估器被耦合到所述解決方案模擬器,以接收所述解決方案并確定每個解決方案的成本,該成本包括在所述數(shù)據流圖上被遍歷的邊沿和節(jié)點的數(shù)量以及補充子整數(shù)成本;以及 解決方案選擇器,該解決方案選擇器被耦合到所述成本評估器,以接收被評估的成本并選擇具有最低成本的解決方案作為電路的硬件部件組合。
22.根據權利要求21所述的裝置,該裝置還包括操作與變量綁定器,用于在向所述解決方案模擬器提供所述數(shù)據流圖之前將變量綁定到所述操作上。
23.根據權利要求21所述的裝置,其中,所述補充成本基于操作的柱狀圖的熵的值。
24.一種用于調度電路的方法,該方法包括: 選擇將由電路執(zhí)行的操作;用具有邊沿和節(jié)點的數(shù)據流圖來表示用于執(zhí)行所述操作的多個硬件部件; 對用于執(zhí)行所述操作的多個解決方案進行模擬,每個解決方案對應于被表示為所述數(shù)據流圖上的路徑的硬件部件和調度組合; 確定每個解決方案的成本,該成本包括在所述數(shù)據流圖上被遍歷的邊沿和節(jié)點的數(shù)量以及與所述數(shù)據流圖上的路徑中不同硬件部件的數(shù)量有關的互連成本; 將信息素軌跡與每個路徑相關聯(lián),該信息素軌跡包括各個解決方案的成本;以及 選擇具有最高值信息素軌跡的解決方案作為電路的硬件部件與調度組合。
25.根據權利要求24所述的方法,其中,針對解決方案的所述數(shù)據流圖上的路徑中多個不同硬件部件中的硬件部件具有不同的類型,以及其中所述互連成本與所述路徑中不同類型的硬件部件的數(shù)量有關。
26.根據權利要求25所述的方法,該方法還包括為每個解決方案的步驟確定候選折疊邊沿,每個候選折疊邊沿具有與目標硬件類型相配對的源硬件類型,所述硬件類型標識所述硬件連接的類型。
27.根據權利要求24所述的方法,其中,針對解決方案的所述數(shù)據流圖上的路徑中多個不同硬件部件中的硬件部件具有不同的類型,以及其中所述互連成本由所述解決方案所使用的不同類型的硬件部件的數(shù)量與在所述數(shù)據流圖中所表示的不同類型的所有硬件部件的總數(shù)量的比率進行加權。
28.根據權利要 求27所述的方法,其中,所述互連成本通過由表示硬件資源的再用的折疊權重作為因素計入的用來執(zhí)行被模擬的解決方案的寄存器的數(shù)量進行加權。
29.根據權利要求28所述的方法,其中,用于執(zhí)行被模擬的解決方案的時步的數(shù)量被添加到所述折疊權重中。
30.一種用于在其上存儲指令的非臨時性計算機可讀介質,當所述指令被處理器執(zhí)行時促使該處理器執(zhí)行: 選擇將由電路執(zhí)行的操作; 用具有邊沿和節(jié)點的數(shù)據流圖來表示用于執(zhí)行所述操作的多個硬件部件; 對用于執(zhí)行所述操作的多個解決方案進行模擬,每個解決方案對應于被表示為所述數(shù)據流圖上的路徑的硬件部件和調度組合; 確定每個解決方案的成本,該成本包括在所述數(shù)據流圖上被遍歷的邊沿和節(jié)點的數(shù)量以及與所述數(shù)據流圖上的路徑中不同硬件部件的數(shù)量有關的互連成本; 將信息素軌跡與每個路徑相關聯(lián),該信息素軌跡包括各個解決方案的成本;以及 選擇具有最高值信息素軌跡的解決方案作為電路的硬件部件與調度組合。
31.根據權利要求30所述的機器可讀介質,其中,針對解決方案的所述數(shù)據流圖上的路徑中多個不同硬件部件中的硬件部件具有不同的類型,以及其中所述互連成本與所述路徑中不同類型的硬件部件的數(shù)量有關。
32.根據權利要求30所述的機器可讀介質,其中,針對解決方案的所述數(shù)據流圖上的路徑中多個不同硬件部件中的硬件部件具有不同的類型,以及其中所述互連成本由所述解決方案所使用的不同類型的硬件部件的數(shù)量與在所述數(shù)據流圖中所表示的不同類型的所有硬件部件的總數(shù)量的比率進行加權。
33.根據權利要求32所述的機器可讀介質,其中,所述互連成本通過由表示硬件資源的再用的折疊權重作為因素計入的用來執(zhí)行被模擬的解決方案的寄存器的數(shù)量進行加權。
34.一種數(shù)字處理系統(tǒng),該數(shù)字處理系統(tǒng)包括: 選擇將由電路執(zhí)行的操作的裝置; 用具有邊沿和節(jié)點的數(shù)據流圖來表示用于執(zhí)行所述操作的多個硬件部件的裝置;將用于執(zhí)行所述操作的多個解決方案模擬為被表示為所述數(shù)據流圖上的路徑的硬件部件和調度組合的裝置; 確定每個解決方案的成本的裝置,該成本包括在所述數(shù)據流圖上被遍歷的邊沿和節(jié)點的數(shù)量以及與所述路徑中不同硬件部件的數(shù)量有關的互連成本; 將信息素軌跡與每個路徑相關聯(lián)的裝置,該信息素軌跡包括各個調度解決方案的成本;以及選擇具有最高值信息素軌跡的解決方案作為電路的硬件部件與調度組合的裝置。
35.根據權利要求34所述的系統(tǒng),其中,所述互連成本通過下述之一進行加權:由所述解決方案所使用的不同類型的硬件單元的數(shù)量與在所述數(shù)據流圖中表示的不同類型的硬件單元的總數(shù)量之間的比率,由表示硬件資源的再用的折疊權重當做因素計入的用于執(zhí)行被模擬的解決方案的寄存器的數(shù)量,以及用于執(zhí)行被模擬的解決方案的時步的數(shù)量被添加到所述折疊權重中。
36.一種用于調度電路的方法,該方法包括: 選擇將由電路執(zhí)行的操作; 用具有邊沿和節(jié)點的數(shù)據流圖來表示用于執(zhí)行所述操作的多個硬件部件; 將用于執(zhí)行所述操作的多個解決方案模擬為被表示為所述數(shù)據流圖上的路徑的硬件部件和調度組合; 確定每個解決方案的成本,該成本包括在數(shù)據流圖上被遍歷的邊沿和節(jié)點的數(shù)量以及補充子整數(shù)成本; 將信息素軌跡與每個路徑相關聯(lián),該信息素軌跡包括各個調度解決方案的成本; 對與之前被模擬的解決方案相鄰近的其他解決方案進行模擬,所述相鄰近的解決方案基于由與由解決方案所使用的所述硬件單元相鄰近的硬件部件所執(zhí)行的操作的數(shù)量通過使用鄰居選擇函數(shù)來選擇;以及 選擇具有最低成本的解決方案作為用于電路的硬件部件組合。
37.根據權利要求36所述的方法,其中,所述鄰居選擇函數(shù)對在所述數(shù)據流圖上的不同邊沿處開始的可替換調度中執(zhí)行的多個操作進行比較。
38.根據權利要求36所述的方法,其中,所述鄰居選擇函數(shù)是與各個解決方案的初始邊沿相鄰近的每個邊沿的折疊操作的密度的函數(shù)。
39.根據權利要求36所述的方法,其中,所述鄰居選擇函數(shù)包括:使用操作的數(shù)量和針對每個邊沿的折疊量來確定針對所述數(shù)據流圖的每個邊沿的索引。
40.根據權利要求39所述的方法,其中,選擇鄰近解決方案包括選擇具有更高索引的解決方案。
41.一種用于調度電路的方法,該方法包括: 選擇將由電路執(zhí)行的操作; 用具有邊沿和節(jié)點的數(shù)據流圖來表示用于執(zhí)行所述操作的多個硬件部件;確定用于沿著所述數(shù)據流圖的邊沿來模擬解決方案的引導函數(shù); 通過使用所述引導函數(shù)選擇和模擬用于執(zhí)行所述操作的多個解決方案,所述解決方案被模擬為被表示為所述數(shù)據流圖上的路徑的硬件部件和調度組合; 確定每個解決方案的成本,該成本包括在數(shù)據流圖上被遍歷的邊沿和節(jié)點的數(shù)量;以及 選擇具有最高值信息素軌跡的解決方案作為電路的硬件部件與調度組合。
42.根據權利要求41所述的方法,其中,所述引導函數(shù)與所述數(shù)據流圖的邊沿上的硬件再用量有關。
43.根據權利要求41所述的方法,該方法還包括將信息素軌跡與每條路徑相關聯(lián),該信息素軌跡包括各個調度解決方案的成本,以及其中所述引導函數(shù)與所述信息素軌跡進行組合以選擇并模擬用于執(zhí)行所述操作的另外的解決方案,該解決方案被模擬為硬件與調度組合。
44.根據權利要求41所述的方法,其中,所述引導函數(shù)與針對所述解決方案的所述硬件部件的再用相關。
45.根據權利要求41所述的方法,其中,確定所述引導函數(shù)包括下述之一:通過使用時步的柱狀圖來確定解決方案的最大和最小可行調度值,以及將所確定的最大和最小可行調度值進行比較。
46.—種方法,該方法包括: 選擇將由電路執(zhí)行的操作,所述操作包括不同類型的多個局部操作; 識別將由所述多個局部操作所使用的變量; 基于所述變量由所述多個局部操作使用的時間順序對所述變量進行排序; 基于所述變量的排序對所述多個局部操作進行排序; 用具有邊沿和節(jié)點的數(shù)據流圖來表示用于執(zhí)行所述操作的多個硬件部件,所述邊沿和節(jié)點基于所述多個局部操作的排序進行連接; 對用于執(zhí)行所述操作的多個解決方案進行模擬,每個解決方案對應于被表示為所述數(shù)據流圖上的路徑的硬件部件組合; 確定每個解決方案的成本,每個成本包括對于對應于各個解決方案的路徑而言在所述數(shù)據流圖上被遍歷的邊沿和節(jié)點的數(shù)量;以及 選擇具有最低成本的解決方案作為用于電路的硬件部件組合。
47.根據權利要求46所述的方法,其中,對所述局部操作進行排序還包括將產生變量的局部操作排在消費所述變量的局部操作之后。
48.根據權利要求47所述的方法,其中,表示包括在所述數(shù)據流圖中在產生所述變量的局部操作與消費所述變量的局部操作之間創(chuàng)建邊沿。
49.根據權利要求46所述的方法,其中,表示包括將每個類型的局部操作與一類能夠執(zhí)行所述局部操作的硬件部件相關聯(lián),并用對應于所關聯(lián)類型的硬件部件的節(jié)點來錨定局部操作。
50.根據權利要求46所述的方法,其中,識別包括為每個變量創(chuàng)建局部操作。
51.一種用于在其上存儲指令的非臨時性計算機可讀介質,當所述指令被處理器執(zhí)行時促使該處理器執(zhí)行:選擇將由電路執(zhí)行的操作,所述操作包括不同類型的多個局部操作; 識別將由所述多個局部操作所使用的變量; 基于所述變量由所述多個局部操作使用的時間順序對所述變量進行排序; 基于所述變量的排序對所述多個局部操作進行排序; 用具有邊沿和節(jié)點的數(shù)據流圖來表示用于執(zhí)行所述操作的多個硬件部件,所述邊沿和節(jié)點基于所述多個局部操作的排序進行連接; 將用于執(zhí)行所述操作的多個解決方案模擬為被表示為所述數(shù)據流圖上的路徑的硬件部件組合; 確定每個解決方案的成本,每個成本包括對于對應于各個解決方案的路徑而言在數(shù)據流圖上被遍歷的邊沿和節(jié)點的數(shù)量;以及 選擇具有最低成本的解決方案作為用于電路的硬件部件組合。
52.根據權利要求51所述的計算機可讀介質,其中,對所述局部操作進行排序還包括將產生變量的局部操作排在消費所述變量的局部操作之后。
53.根據權利要求52所述的計算機可讀介質,其中,表示包括在所述數(shù)據流圖中在產生所述變量的局部操作與消費所述變量的局部操作之間創(chuàng)建邊沿。
54.根據權利要求51所述的計算機可讀介質,其中,表示包括將每個類型的局部操作與一類能夠執(zhí)行所述局部操作的硬件部件相關聯(lián),并用對應于所關聯(lián)類型的硬件部件的節(jié)點來錨定局部操作。
55.根據權 利要求51所述的計算機可讀介質,其中,識別包括為每個變量創(chuàng)建局部操作。
56.一種數(shù)字處理系統(tǒng),該數(shù)字處理系統(tǒng)包括: 選擇將由電路執(zhí)行的操作的裝置,所述操作包括不同類型的多個局部操作; 識別將由所述多個局部操作所使用的變量的裝置; 基于所述變量由所述多個局部操作使用的時間順序對所述變量進行排序的裝置; 基于所述變量的排序對所述多個局部操作進行排序的裝置; 用具有邊沿和節(jié)點的數(shù)據流圖來表示用于執(zhí)行所述操作的多個硬件部件的裝置,所述邊沿和節(jié)點基于所述多個局部操作的排序進行連接; 對用于執(zhí)行所述操作的多個解決方案進行模擬的裝置,每個解決方案對應于被表示為所述數(shù)據流圖上的路徑的硬件部件組合; 確定每個解決方案的成本的裝置,該成本包括對于對應于各個解決方案的路徑而言在數(shù)據流圖上被遍歷的邊沿和節(jié)點的數(shù)量;以及 選擇具有最低成本的解決方案作為用于電路的硬件部件組合的裝置。
57.根據權利要求56所述的系統(tǒng),其中,用于對所述多個局部操作進行排序的裝置還包括用于將產生變量的局部操作排在消費所述變量的局部操作之后的裝置。
58.根據權利要求57所述的系統(tǒng),其中,用于表示的裝置包括用于在所述數(shù)據流圖中在產生所述變量的局部操作與消費所述變量的局部操作之間創(chuàng)建邊沿的裝置。
59.根據權利要求56所述的系統(tǒng),其中,用于表示包括用于將每個類型的局部操作與一類能夠執(zhí)行所述局部操作的硬件部件相關聯(lián),并用對應于所關聯(lián)類型的硬件部件的節(jié)點來錨定局部操作的裝置。
60.根據 權利要求56所述的系統(tǒng),其中,用于識別的裝置包括用于為每個變量創(chuàng)建局部操作的裝置。
全文摘要
描述了一種在根據高級綜合的蟻群優(yōu)化電路設計中使用熵的方法和裝置。在一個示例中,選擇將由電路執(zhí)行的操作。用于執(zhí)行操作的多個硬件部件用具有邊沿和節(jié)點的數(shù)據流圖來表示。用于執(zhí)行操作的多個解決方案被模擬為被表示為數(shù)據流圖上的路徑的硬件部件組合。對于每個解決方案,包括在數(shù)據流圖上被遍歷的邊沿和節(jié)點的數(shù)量以及補充子整數(shù)成本的成本被確定,并且具有最低成本的解決方案被選為用于電路的硬件部件組合。
文檔編號G06F17/50GK103140853SQ201180047603
公開日2013年6月5日 申請日期2011年8月31日 優(yōu)先權日2010年9月30日
發(fā)明者M·伊斯皮爾, L·厄克泰姆 申請人:新思公司