本發(fā)明涉及微電子領(lǐng)域中的集成電路設(shè)計技術(shù)領(lǐng)域,尤其涉及一種基于白盒的工藝映射方法及裝置。
背景技術(shù):
現(xiàn)場可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)是一種具有豐富硬件資源、強大并行處理能力和靈活可重配置能力的邏輯器件。而工藝映射(Technology Mapping)作為FPGA設(shè)計過程中的一個重要步驟,將與工藝無關(guān)的結(jié)構(gòu)描述映射為工藝相關(guān)的物理實現(xiàn),使得各級綜合系統(tǒng)抽象的綜合結(jié)果能夠轉(zhuǎn)化為一種具體的工藝實現(xiàn)。
傳統(tǒng)的工藝映射方法只能將單純的組合邏輯(與、或、非邏輯等)映射到查找表上,隨著FPGA芯片的不斷發(fā)展,越來越多的特殊功能單元(如加法器、DSP等)出現(xiàn)在了FPGA芯片當(dāng)中。因此,在工藝映射過程中,尋找一種通用的可以處理此類特殊功能單元模塊的方法,是亟待解決的問題。
技術(shù)實現(xiàn)要素:
一方面,本發(fā)明實施例提供了一種基于白盒的工藝映射方法,該方法包括:將RTL級網(wǎng)表邏輯綜合成結(jié)構(gòu)化門級網(wǎng)表;遍歷門級網(wǎng)表,獲取門級網(wǎng)表中所包含的多個白盒;為每個白盒添加門級網(wǎng)表的實現(xiàn),并為每個白盒生成時延表;根據(jù)門級網(wǎng)表、多個白盒以及分別對應(yīng)多個白盒的多個時延表進行工藝映射,并計算工藝映射后的門級網(wǎng)表的邏輯時延和關(guān)鍵路徑。
可選地,在上述方法中,在進行工藝映射時,根據(jù)白盒以及白盒的的周邊邏輯進行邏輯優(yōu)化,且不改變白盒的內(nèi)部邏輯。
可選地,在上述方法中,時延表包括對應(yīng)白盒的輸入信號、對應(yīng)白盒的輸出信號以及輸入信號與輸出信號之間的時延。
可選地,在上述方法中,白盒為門級網(wǎng)表中的特殊邏輯功能模塊,包括算術(shù)運算功能模塊。
另一方面,本發(fā)明實施例提供一種基于白盒的工藝映射裝置,該裝置包括:網(wǎng)表生成單元用于將接收到的RTL級網(wǎng)表邏輯綜合成結(jié)構(gòu)化門級網(wǎng)表;白盒查找單元用于遍歷門級網(wǎng)表,查找門級網(wǎng)表中所包含的多個白盒;白盒實現(xiàn)單元用于為每個白盒添加門級網(wǎng)表的實現(xiàn),并為每個白盒生成時延表;工藝映射單元用于根據(jù)門級網(wǎng)表、多個白盒以及分別對應(yīng)多個白盒的多個時延表進行工藝映射,并計算工藝映射后的門級網(wǎng)表的邏輯時延和關(guān)鍵路徑。
本發(fā)明實施例所提供的基于白盒的工藝映射方法及裝置,將門級網(wǎng)表中的算術(shù)邏輯單元識別為白盒,并用標(biāo)準(zhǔn)的組合邏輯門電路進行表示,而后對整個網(wǎng)表進行工藝映射,提供了一種在工藝映射過程中通用的處理特殊功能模塊的方法。
附圖說明
圖1為本發(fā)明實施例提供的基于白盒的工藝映射方法流程示意圖;
圖2為本發(fā)明實施例所提供的基于白盒的工藝映射裝置結(jié)構(gòu)示意圖;
圖3為實施例一所提供的門級網(wǎng)表結(jié)構(gòu)示意圖;
圖4為本發(fā)明實施例一全加器的組合邏輯電路結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例一所提供的由標(biāo)準(zhǔn)邏輯電路組成的門級網(wǎng)表;
圖6為本發(fā)明實施例一所提供的工藝映射后的網(wǎng)表。
具體實施方式
下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細(xì)描述。
在現(xiàn)有技術(shù)中,工藝映射方法只能處理基于標(biāo)準(zhǔn)單元庫的純組合邏輯,并將上述組合邏輯映射到查找表中,但對于具有特殊功能的單元模塊,如具有算術(shù)運算功能的加法器、減法器、DSP等只能采用將其從網(wǎng)表中暫時切除,同時將該單元模塊的輸入映射到整個網(wǎng)表的輸出以及將該模塊的輸出映射到整個網(wǎng)表的輸入進行妥協(xié)處理。顯然,隨著FPGA技術(shù)的發(fā)展,在FPGA芯片中,越來越多的加入了完成高速運算的加法器等算術(shù)運算功能模塊,采用先切除再加入的方式進行工藝映射方法,失去了在工藝映射過程中對算術(shù)運算單元模塊的邏輯優(yōu)化過程。
本發(fā)明實施例提供一種基于白盒的工藝映射方法,圖1為本發(fā)明實施例提供的基于白盒的工藝映射方法流程示意圖,如圖1所示,該方法包括:
步驟S101,將RTL(Register Transfer Level)級網(wǎng)表邏輯綜合成結(jié)構(gòu)化門級網(wǎng)表。
步驟S102,遍歷門級網(wǎng)表,獲取門級網(wǎng)表中所包含的多個白盒。
需要說明的是,在門級網(wǎng)表中將一些特殊邏輯功能模塊作為白盒進行識別,如將進行算術(shù)運算的加法器、全加器、DSP(Digital Signal Process)等邏輯單元作為白盒,上述特殊邏輯功能模塊指在傳統(tǒng)工藝映射過程中需采用先切除后添加的無法與其他邏輯資源進行統(tǒng)一邏輯優(yōu)化的功能模塊,并不限于本發(fā)明實施例所提供的算術(shù)運算功能模塊。
在上述步驟中,白盒內(nèi)部的邏輯單元在下述工藝映射的過程中可以清晰“看見”,且白盒內(nèi)部的邏輯單元在下述工藝映射過程中保持不變。提出白盒的概念,主要是為了在工藝映射過程中,保持白盒內(nèi)部邏輯相對穩(wěn)定的同時,又能保證白盒周圍的邏輯依然可以“穿過”白盒完成優(yōu)化,比如常數(shù)傳播(constant propagation)。
步驟S103,為每個白盒添加門級網(wǎng)表的實現(xiàn),并為每個白盒生成時延表。
需要說明的是,為每個白盒添加門級網(wǎng)表的實現(xiàn)即為將白盒所識別的邏輯單元用標(biāo)準(zhǔn)的組合邏輯門電路表示;在為白盒添加實現(xiàn)后,計算白盒當(dāng)前表示中所有輸入到輸出的延時值,并將其以表格的形式進行記錄(如表1)。
步驟S104,根據(jù)門級網(wǎng)表及其對應(yīng)的多個白盒以及每個白盒的時延表進行邏輯優(yōu)化完成工藝映射過程,并計算工藝映射后的門級網(wǎng)表的邏輯時延和關(guān)鍵路徑。
根據(jù)上述方法,本發(fā)明實施例還提供一種基于白盒的工藝映射裝置,圖2為本發(fā)明實施例所提供的基于白盒的工藝映射裝置結(jié)構(gòu)示意圖,如圖2所示,該裝置包括:
網(wǎng)表生成單元10,用于將接收到的RTL級網(wǎng)表邏輯綜合成結(jié)構(gòu)化門級網(wǎng)表。
白盒查找單元20,用于遍歷所述門級網(wǎng)表,查找所述門級網(wǎng)表中所包含的多個白盒。
白盒實現(xiàn)單元30,用于為每個所述白盒添加所述門級網(wǎng)表的實現(xiàn),并為每個所述白盒生成時延表。
工藝映射單元40,用于根據(jù)所述門級網(wǎng)表、所述多個白盒以及分別對應(yīng)所述多個白盒的多個所述時延表進行工藝映射,并計算工藝映射后的所述門級網(wǎng)表的邏輯時延和關(guān)鍵路徑。
為了更清楚的表達(dá)本發(fā)明實施例所提供的技術(shù)方案,下面通過具體的實施例進一步進行描述。
實施例一
以某FPGA設(shè)計過程中所產(chǎn)生的門級網(wǎng)表的部分邏輯部分為例,圖3為實施例一所提供的門級網(wǎng)表結(jié)構(gòu)示意圖,如圖3所示,網(wǎng)表中包含與門01、全加器02和異或門03,根據(jù)本發(fā)明實施例所提供的方法具體工藝映射的過程為:
步驟一,在獲得圖3所示的門級網(wǎng)表后,將全加器02識別為白盒,并將白盒用標(biāo)準(zhǔn)的組合邏輯電路進行表示,并最終獲得全部由標(biāo)準(zhǔn)的邏輯電路組成的門級網(wǎng)表(如圖5所示)。圖4為本發(fā)明實施例一全加器的組合邏輯電路結(jié)構(gòu)示意圖,如圖4所示,對全加器02添加門級網(wǎng)表的實現(xiàn)后,所獲得的邏輯電路由一個數(shù)據(jù)選擇器(multiplexer,簡稱MUX)和兩個異或門組成。圖5為本發(fā)明實施例一所提供的由標(biāo)準(zhǔn)邏輯電路組成的門級網(wǎng)表。
步驟二,計算圖4所示邏輯電路的延時值,記錄白盒中每個輸入到輸出的延時值,表1即為獲得的延時表。
表1延時表
步驟三,對步驟二獲得的門級網(wǎng)表進行邏輯優(yōu)化,完成工藝映射,圖6為本發(fā)明實施例一所提供的工藝映射后的網(wǎng)表,如圖6所示,該網(wǎng)表由一個LUT、兩個異或門以及一個MUX組成。計算網(wǎng)表的延時以及關(guān)鍵路徑此處不予贅述。
如若上述工藝映射過程采用傳統(tǒng)方法進行,便不能對全加器進行邏輯優(yōu)化(最終獲得的工藝映射后的網(wǎng)表即為圖5所示),造成邏輯資源浪費。
專業(yè)人員應(yīng)該還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
以上所述的具體實施方式,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施方式而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。