一種針對集成電路異質(zhì)型邏輯單元的重綜合方法【專利摘要】本發(fā)明公開了一種針對集成電路異質(zhì)型邏輯單元的重綜合方法,包括:逆拓撲序排列工藝映射后網(wǎng)表中所有節(jié)點;計算每個節(jié)點的cut;計算每個cut的函數(shù)f(X);對函數(shù)f(X)進行分解;用功能性等價的LUTs結構與函數(shù)f(X)進行布爾匹配。利用本發(fā)明,能充分利用異質(zhì)型邏輯單元中所有邏輯資源,從而減少所使用的LUT數(shù)。本發(fā)明能夠廣泛應用于工藝映射后重綜合,能夠在不損害電路延時的情況下去減小電路面積,降低設計成本,具有廣闊的市場前景和應用價值。【專利說明】一種針對集成電路異質(zhì)型邏輯單元的重綜合方法【
技術領域:
】[0001]本發(fā)明涉及微電子領域中的集成電路設計和電子設計自動化【
技術領域:
】,特別涉及一種針對集成電路異質(zhì)型邏輯單元的重綜合方法?!?br>背景技術:
】[0002]近年來,現(xiàn)場可編程門陣列(FieldProgrammableGateArray,FPGA)在速度、容量及功能性方面有顯著提升,因此在諸多應用領域逐漸取代專用集成電路(applicationspecificintegratedcircuit,ASIC),FPGA的應用和廣泛普及為數(shù)字系統(tǒng)的設計帶來極大的靈活性。當前大多數(shù)FPGA的邏輯塊結構(configurablelogicblock,CLB)基于查找表(lookuptable,LUT),一個k輸入LUT(k_LUT)包含有2k個靜態(tài)存儲器(staticrandomaccessmemory,SRAM)單元,可實現(xiàn)任意輸入數(shù)不大于k的邏輯。為進一步提高CLB的配置靈活性,目前商用FPGA的CLB結構增加了很多輔助單元用來更高效的實現(xiàn)各種功能。比如使用MUX和XOR來輔助實現(xiàn)快速進位鏈,使用MUX來組合寬輸入的LUT等。[0003]以Xilinx公司的CLB結構為例,I個CLB包含兩個邏輯片(SLICE),每個SLICE包含兩個基本邏輯單元(logiccell,LC),每個LC由一個k-LUT和一個時序元件組成,如圖1所示[I]。[0004]對于一個LUT基CLB結構,假如CLB/SLICE能實現(xiàn)任意k輸入函數(shù),那么定義k的最大值為CLB的特征數(shù)值。對于變量數(shù)大于特征數(shù)值k的函數(shù),定義該函數(shù)為相對于CLB/SLICE的寬函數(shù)(widefuntion)。[0005]以k-LUT的k值等于4為例,如圖1所示,每個SLICE中含有兩個LUT(F和G),I個2選IMUX(multiplexer,多路選擇器)H,用于將SLICE中的兩個4-LUT組合成5-LUT,則該SLICE的特征數(shù)值k為5,每個SLICE可實現(xiàn)輸入數(shù)不大于5的任意邏輯,或者I個4選IMUX,或者輸入數(shù)在6到9之間的部分邏輯(寬函數(shù))。類似的,2選IMUXI將兩個H的輸出組合,則CLB的特征數(shù)值k為6,使得I個CLB可以實現(xiàn)輸入數(shù)不大于6的任意邏輯,或者I個8選1MUX,或者輸入數(shù)介于7到19之間的部分寬函數(shù)。[0006]由幾個k-LUT組成的網(wǎng)表通常被稱作LUTs結構(LUTstructures),如圖2所示。從廣義上講,SLICE和CLB也屬于LUTs結構。有效地判斷完全定義的寬函數(shù)能否用LUTs結構實現(xiàn),即寬函數(shù)與LUTs結構之間的布爾匹配問題,是FPGA重綜合算法中的核心問題。[0007]目前國內(nèi)外學術界對FPGA工藝映射算法,大多集中在將一般的布爾邏輯網(wǎng)表映射為由k-LUT組成的網(wǎng)表,k的實際數(shù)值由實際的工藝庫決定。但是這些算法都無法有效地利用如圖1所示的現(xiàn)代FPGA芯片的異構特性,因此需要在已有基于LUT映射方法的基礎上進行擴充或改進。[0008]參考文獻:[0009]Xilinx.VirtexDataSheets[EB/0L].(2002-12-09)[2012-08-14].http://china,xilinx.com/support/documentation/data_sheets/ds003.pdf.【
發(fā)明內(nèi)容】[0010](一)要解決的技術問題[0011]有鑒于此,本發(fā)明的主要目的在于提供一種針對集成電路異質(zhì)型邏輯單元的重綜合方法,以解決工藝映射算法無法有效利用CLB結構里所有邏輯資源的問題。[0012](二)技術方案[0013]為達到上述目的,本發(fā)明提供了一種針對集成電路異質(zhì)型邏輯單元的重綜合方法,包括:[0014]步驟A,逆拓撲序排列工藝映射后網(wǎng)表中所有節(jié)點;[0015]步驟B,計算每個節(jié)點的cut;[0016]步驟C,計算每個cut的函數(shù)f(X);[0017]步驟D,對函數(shù)f(X)進行分解;[0018]步驟E,用功能性等價的LUTs結構與函數(shù)f(X)進行布爾匹配。[0019]上述方案中,所述步驟A包括:對工藝映射后的網(wǎng)表進行分析,將所有LUTs節(jié)點從輸出到輸入按逆拓撲順序排列,其中,所述輸出是原始輸出和觸發(fā)器的輸入,所述輸入是原始輸入和觸發(fā)器的輸出。[0020]上述方案中,步驟B中所述計算每個節(jié)點的cut包括:[0021]計算出每個節(jié)點只包含根節(jié)點的cut,然后新的cut的獲得方法是從當前存在的cut往原始輸入方向擴展;[0022]計算所有cut的權重cutWeight,計算方法是:[0023]cutffeight(c)=[numCovered(c)-numDups(c)]/numLuts(c)公式I[0024]其中:[0025]numLuts(c)=ceiling[(numLeaves(C)-1/(K-1)]公式2[0026]公式I中numCovered表示cut所覆蓋的所有節(jié)點的數(shù)量,numDups表示cut覆蓋但是不屬于根節(jié)點的最大扇出自由錐(Maximumfanoutfreecone,MFFC)的節(jié)點的數(shù)量;公式2中numLeaves表示cut的所有葉節(jié)點的數(shù)量;[0027]根據(jù)cutWeight對所有cut進行優(yōu)先級排序,并過濾掉對重綜合有益性小的cut。[0028]上述方案中,步驟C中所述計算每個cut的函數(shù)f(X)是計算每個cut的真值表。[0029]上述方案中,步驟D中所述對函數(shù)f(X)進行分解包括:[0030](a)支持集最小化,移除無意義的變量,并返回f(X)的新的支持集;[0031](b)基于MUX的分解;[0032](c)分析DSD的可能性,嘗試進行DSD,計算出所有k可行的約束集,從中選出最好的約束集,最后返回DSD樹;[0033](d)基于DSD的分解;[0034](e)重復上述步驟(a)到(d),直到f(X)分解完全。[0035]上述方案中,步驟(b)中所述基于MUX的分解,是對布爾函數(shù)和SLICE/CLB之間進行布爾匹配,由香農(nóng)展開式獲得,具體包括:[0036]定理1:1個SLICE能夠實現(xiàn)f(X),當且僅當存在相對于xHeX的香農(nóng)展開式/{Χ)=^^λ(Χ,..)+χπ因此,給定一個寬函數(shù),首先遍歷輸入集合中的每個信號,將其作為MUX的選擇信號,對該信號進行香農(nóng)展開,獲得兩個余因子的輸入集合數(shù);遍歷結束后將兩個余因子的輸入集合總數(shù)最小的信號作為選擇信號;如果香農(nóng)展開式中兩個余因子的輸入集合分別不大于IxfI和IxgI,則可獲得對于slice的一個匹配;如果遍歷輸入集合結束后,未獲得對于SLICE的一個匹配,則嘗試去尋求該寬函數(shù)對CLB的匹配;[0037]定理2:f(X)不能用I個SLICE實現(xiàn),而能用I個CLB實現(xiàn),當且僅當存在相對于xHeX的香農(nóng)展開式[0038]【權利要求】1.一種針對集成電路異質(zhì)型邏輯單元的重綜合方法,其特征在于,包括:步驟A,逆拓撲序排列工藝映射后網(wǎng)表中所有節(jié)點;步驟B,計算每個節(jié)點的cut;步驟C,計算每個cut的函數(shù)f(X);步驟D,對函數(shù)f(X)進行分解;步驟E,用功能性等價的LUTs結構與函數(shù)f(X)進行布爾匹配。2.根據(jù)權利要求1所述的針對集成電路異質(zhì)型邏輯單元的重綜合方法,其特征在于,所述步驟A包括:對工藝映射后的網(wǎng)表進行分析,將所有LUTs節(jié)點從輸出到輸入按逆拓撲順序排列,其中,所述輸出是原始輸出和觸發(fā)器的輸入,所述輸入是原始輸入和觸發(fā)器的輸出。3.根據(jù)權利要求1所述的針對集成電路異質(zhì)型邏輯單元的重綜合方法,其特征在于,步驟B中所述計算每個節(jié)點的cut包括:計算出每個節(jié)點只包含根節(jié)點的cut,然后新的cut的獲得方法是從當前存在的cut往原始輸入方向擴展;計算所有CUt的權重CUtWeight,計算方法是:cutffeight(c)=[numCovered(c)-numDups(c)]/numLuts(c)公式I其中:numLuts(c)=ceiling[(numLeaves(c)-1/(K-1)]公式2公式I中numCovered表示cut所覆蓋的所有節(jié)點的數(shù)量,numDups表示cut覆蓋但是不屬于根節(jié)點的最大扇出自由錐(Maximumfanoutfreecone,MFFC)的節(jié)點的數(shù)量;公式2中numLeaves表示cut的所有葉節(jié)點的數(shù)量;根據(jù)cutWeight對所有cut進行優(yōu)先級排序,并過濾掉對重綜合有益性小的cut。4.根據(jù)權利要求1所述的針對集成電路異質(zhì)型邏輯單元的重綜合方法,其特征在于,步驟C中所述計算每個cut的函數(shù)f(X)是計算每個cut的真值表。5.根據(jù)權利要求1所述的針對集成電路異質(zhì)型邏輯單元的重綜合方法,其特征在于,步驟D中所述對函數(shù)f(X)進行分解包括:(a)支持集最小化,移除無意義的變量,并返回f(X)的新的支持集;(b)基于MUX的分解;(c)分析DSD的可能性,嘗試進行DSD,計算出所有k可行的約束集,從中選出最好的約束集,最后返回DSD樹;(d)基于DSD的分解;(e)重復上述步驟(a)到(d),直到f(X)分解完全。6.根據(jù)權利要求5所述的針對集成電路異質(zhì)型邏輯單元的重綜合方法,其特征在于,步驟(b)中所述基于MUX的分解,是對布爾函數(shù)和SLICE/CLB之間進行布爾匹配,由香農(nóng)展開式獲得,具體包括:定理1:1個SLICE能夠實現(xiàn)f(X),當且僅當存在相對于xHeX的香農(nóng)展開式/(X卜.72(χ(?),因此,給定一個寬函數(shù),首先遍歷輸入集合中的每個信號,將其作為MUX的選擇信號,對該信號進行香農(nóng)展開,獲得兩個余因子的輸入集合數(shù);遍歷結束后將兩個余因子的輸入集合總數(shù)最小的信號作為選擇信號;如果香農(nóng)展開式中兩個余因子的輸入集合分別不大于IxfI和IXeI,則可獲得對于slice的一個匹配;如果遍歷輸入集合結束后,未獲得對于SLICE的一個匹配,則嘗試去尋求該寬函數(shù)對CLB的匹配;定理2:f(X)不能用I個SLICE實現(xiàn),而能用I個CLB實現(xiàn),當且僅當存在相對于xHeX的香農(nóng)展開式7.根據(jù)權利要求5所述的針對集成電路異質(zhì)型邏輯單元的重綜合方法,其特征在于,步驟(d)中所述的基于DSD的分解包括:如果步驟(c)得出的DSD樹不為空,并且得出的約束集大小為k或k-Ι,則對函數(shù)f(X)進行DSD分解,分解成約束集B-sets和自由集F_sets。8.根據(jù)權利要求7所述的針對集成電路異質(zhì)型邏輯單元的重綜合方法,其特征在于,在DSD分解過程中一次分解出多個大小為k的約束集。9.根據(jù)權利要求1所述的針對集成電路異質(zhì)型邏輯單元的重綜合方法,其特征在于,步驟E中所述用功能性等價的LUTs結構與函數(shù)f(X)進行布爾匹配,包括:將cut的根節(jié)點和葉節(jié)點之間形成的錐(cone),與步驟D中對函數(shù)f(X)成功進行分解后新的LUTs結構進行比較,如果新的LUTs結構比cone所包含的節(jié)點數(shù)目少,并且替換后網(wǎng)絡的關鍵路徑延時不會增加,則將cone替換成新的LUTs結構?!疚臋n編號】G06F17/50GK103886118SQ201210559839【公開日】2014年6月25日申請日期:2012年12月21日優(yōu)先權日:2012年12月21日【發(fā)明者】張峰,王作建,吳洋,于芳,劉忠立申請人:中國科學院微電子研究所,北京飄石科技有限公司