一種基于NSGA-II用于不完全確定Reed-Muller電路功耗與面積優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及不完全確定Reed-Muller電路功耗與面積優(yōu)化方法,尤其涉及一種基 于NSGA-II用于不完全確定Reed-Muller電路功耗與面積優(yōu)化方法。屬于邏輯函數(shù)及邏輯 電路技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 邏輯函數(shù)既可用基于AND/0R/N0T運(yùn)算的Boolean邏輯實(shí)現(xiàn),也可用基于AND/X0R 或XN0R/0R運(yùn)算的Reed-Muller(RM)邏輯實(shí)現(xiàn)。對于異或運(yùn)算較為頻繁的算術(shù)電路、奇偶 校驗(yàn)電路和通信電路等部分電路而言,與Boolean邏輯實(shí)現(xiàn)形式相比,RM邏輯實(shí)現(xiàn)形式在 功耗、面積和速度等方面具有較大的優(yōu)勢。又由于異或門某一輸入的變化會(huì)直接引起其輸 出的變化,所以RM邏輯電路也具有較好的可測試性。因此,RM邏輯電路已引起人們的廣泛 關(guān)注,發(fā)展基于RM邏輯電路的優(yōu)化方法是對集成電路優(yōu)化方法的重要補(bǔ)充和完善。
[0003] 隨著集成電路集成度的越來越高,功耗也隨之增加??焖僭黾拥墓囊殉蔀橹萍s 集成電路發(fā)展的一大瓶頸。工業(yè)界對集成電路的設(shè)計(jì)約束已從單純追求高密度與高性能, 轉(zhuǎn)而進(jìn)入綜合考慮功耗與面積等方面的影響。特別是在便攜式設(shè)備中,功耗與面積約束已 經(jīng)成為芯片設(shè)計(jì)的首要約束。因此,集成電路的功耗與面積優(yōu)化已成為電路優(yōu)化的一個(gè)重 要方面。
[0004] 邏輯函數(shù)通常由最小項(xiàng)之和形式的布爾表達(dá)式表示。無關(guān)項(xiàng)是布爾表達(dá)式中一種 特殊的最小項(xiàng),該項(xiàng)在布爾表達(dá)式中出現(xiàn)與否均不會(huì)影響邏輯電路的功能,但會(huì)影響邏輯 電路的性能。包含無關(guān)項(xiàng)的邏輯函數(shù)稱為不完全確定邏輯函數(shù),其所對應(yīng)的RM邏輯電路稱 為不完全確定RM電路。對于一個(gè)包含m個(gè)無關(guān)項(xiàng)的布爾函數(shù),可用一組稱為"無關(guān)項(xiàng)取舍" 的二進(jìn)制數(shù)W1W2…WVWm來表征其相應(yīng)的無關(guān)項(xiàng)是否寫入邏輯函數(shù)。如果w;為0,表示其 對應(yīng)的無關(guān)項(xiàng)不寫入邏輯函數(shù);如果^為1,則表示其對應(yīng)的無關(guān)項(xiàng)寫入邏輯函數(shù)。確定無 關(guān)項(xiàng)取舍之后,不完全確定邏輯函數(shù)變?yōu)橥耆_定邏輯函數(shù),不完全確定RM電路變?yōu)橥耆?確定RM電路。可以得出,不同的無關(guān)項(xiàng)取舍,其對應(yīng)的RM電路結(jié)構(gòu)、功耗與面積等電路性 能不盡相同。研究表明,合理利用無關(guān)項(xiàng)可以簡化邏輯函數(shù)的表達(dá)式,進(jìn)而可以優(yōu)化電路的 功耗和面積。
[0005] 然而,現(xiàn)有針對RM邏輯電路的優(yōu)化方法絕大部分都沒有考慮無關(guān)項(xiàng)的影響,對包 含無關(guān)項(xiàng)的RM邏輯電路的優(yōu)化方法的研究相對匱乏。另外,對于考慮無關(guān)項(xiàng)的RM邏輯電路 優(yōu)化的研究主要集中于包含無關(guān)項(xiàng)RM表達(dá)式極性轉(zhuǎn)換,以及利用無關(guān)項(xiàng)進(jìn)行邏輯表達(dá)式 的化簡,很少有研究利用無關(guān)項(xiàng)對RM邏輯電路進(jìn)行功耗與面積同時(shí)優(yōu)化。此外,目前針對 RM邏輯電路功耗與面積同時(shí)優(yōu)化的研究,幾乎都使用傳統(tǒng)的加權(quán)求和方法來將功耗與面積 優(yōu)化這種多目標(biāo)優(yōu)化問題轉(zhuǎn)化為單目標(biāo)優(yōu)化問題進(jìn)行求解,系數(shù)由優(yōu)化設(shè)計(jì)人員決定,為 了獲得近似的Pareto最優(yōu)解集,需要使用不同的系數(shù)來實(shí)施動(dòng)態(tài)優(yōu)化。然而,傳統(tǒng)加權(quán)求 和方法在解決多目標(biāo)優(yōu)化問題時(shí),存在無法求解非凸Pareto前沿以及解的分布不夠均勻 等缺點(diǎn)。并且,需要人工設(shè)置多組不同的權(quán)值,運(yùn)算多次才能得到Pareto最優(yōu)解集,由于每 次優(yōu)化過程相互獨(dú)立,導(dǎo)致得到的結(jié)果很不一致,使優(yōu)化設(shè)計(jì)人員很難做出有效的決策。因 此,對于RM邏輯電路功耗與面積優(yōu)化這種多目標(biāo)優(yōu)化問題,需要尋找一種更加有效的智能 算法來獲得Pareto最優(yōu)解集。
[0006] 傳統(tǒng)的多目標(biāo)優(yōu)化方法在求解多目標(biāo)優(yōu)化問題時(shí),存在對Pareto最優(yōu)前端敏感、 無法獲得求解問題所需的啟發(fā)式知識以及必須運(yùn)行多次才能獲得Pareto最優(yōu)解集等缺 點(diǎn)。因此,近年來對多目標(biāo)優(yōu)化方法的研究主要集中在具有自身優(yōu)勢的進(jìn)化算法上,其中 采用精英策略的非支配排序遺傳算法NSGA-II在眾多進(jìn)化算法中已顯示出較大的優(yōu)勢。 目前,雖然有關(guān)NSGA-II的理論研究和應(yīng)用研究都已比較深入,但至今為止很少有研究將 NSGA-II算法應(yīng)用在RM邏輯電路的功耗與面積優(yōu)化上。
[0007] 綜上所述,現(xiàn)有針對RM邏輯電路的優(yōu)化研究存在以下一些問題:
[0008] (1)在對RM邏輯電路綜合優(yōu)化時(shí),沒有考慮無關(guān)項(xiàng)對電路性能的影響。實(shí)際上,考 慮無關(guān)項(xiàng)可使RM邏輯電路的優(yōu)化效果更佳。
[0009] (2)對于考慮無關(guān)項(xiàng)的RM邏輯電路優(yōu)化的研究主要集中在包含無關(guān)項(xiàng)RM表達(dá)式 極性轉(zhuǎn)換以及邏輯函數(shù)表達(dá)式的化簡,很少有研究利用無關(guān)項(xiàng)對RM邏輯電路進(jìn)行功耗與 面積同時(shí)優(yōu)化。
[0010] (3)RM邏輯電路的優(yōu)化本質(zhì)上是一個(gè)多目標(biāo)優(yōu)化問題,需要對多個(gè)性能目標(biāo)進(jìn)行 綜合考慮。然而,大部分針對RM邏輯電路優(yōu)化的研究只屬于單目標(biāo)優(yōu)化,即只對功耗進(jìn)行 優(yōu)化,或只對面積進(jìn)行優(yōu)化,沒有對RM邏輯電路進(jìn)行功耗和面積同時(shí)優(yōu)化。
[0011] ⑷現(xiàn)有針對RM邏輯電路的功耗與面積同時(shí)優(yōu)化的研究,幾乎都使用傳統(tǒng)加權(quán)求 和方法來將功耗與面積優(yōu)化這種多目標(biāo)優(yōu)化問題轉(zhuǎn)化為單目標(biāo)優(yōu)化問題進(jìn)行求解。然而, 由于傳統(tǒng)加權(quán)求和方法存在無法求解非凸Pareto前沿、解的分布不夠均勻、需要人工設(shè)置 多組不同的權(quán)值以及運(yùn)算多次才能得到Pareto最優(yōu)解集等種種缺陷,從而導(dǎo)致基于加權(quán) 求和方法的RM邏輯電路功耗與面積優(yōu)化方法的效果欠佳,在實(shí)際應(yīng)用中具有一定的局限 性。
【發(fā)明內(nèi)容】
[0012] 為解決上述問題,本發(fā)明提供了一種基于NSGA-II用于不完全確定Reed-Muller 電路的功耗與面積優(yōu)化方法。本發(fā)明首先將包含無關(guān)項(xiàng)的布爾邏輯函數(shù)轉(zhuǎn)換為零極性的不 完全確定的RM表達(dá)式,然后利用NSGA-II算法搜索同時(shí)具有較好功耗與面積性能的一組最 佳無關(guān)項(xiàng)取舍,最后根據(jù)搜索得到的最佳無關(guān)項(xiàng)取舍,獲得同時(shí)具有較好功耗與面積性能 的完全確定的RM表達(dá)式。本發(fā)明利用NSGA-II算法來搜索最佳無關(guān)項(xiàng)取舍,可快速、有效 的獲得同時(shí)具有較好功耗與面積性能的一組最佳無關(guān)項(xiàng)取舍,能夠很好地滿足不完全確定 RM邏輯電路實(shí)際優(yōu)化的需求。
[0013] 具體來說,本發(fā)明一種基于NSGA-II用于不完全確定Reed-Muller電路功耗與面 積優(yōu)化方法,該方法具體步驟包括:
[0014] 步驟1,利用列表技術(shù)將包含無關(guān)項(xiàng)的布爾邏輯函數(shù)(不完全確定布爾邏輯函數(shù)) 轉(zhuǎn)換為零極性的不完全確定RM表達(dá)式;
[0015] 步驟2,將不完全確定布爾邏輯函數(shù)的無關(guān)項(xiàng)取舍的二進(jìn)制數(shù)編碼為染色體;
[0016] 步驟3,根據(jù)RM邏輯電路的特點(diǎn),建立功耗模型與面積模型;
[0017] 步驟4,根據(jù)RM邏輯電路的功耗模型與面積模型,分別建立功耗目標(biāo)函數(shù)與面積 目標(biāo)函數(shù);
[0018] 步驟5,根據(jù)功耗目標(biāo)函數(shù)與面積目標(biāo)函數(shù),分別建立與功耗相關(guān)的適應(yīng)度函數(shù)以 及與面積相關(guān)的適應(yīng)度函數(shù);
[0019] 步驟6,根據(jù)RM邏輯電路功耗與面積優(yōu)化的需要,確定約束條件;
[0020] 步驟7,對參數(shù)進(jìn)行初始化操作,并初始化當(dāng)前進(jìn)化代數(shù)為1 ;
[0021] 步驟8,隨機(jī)產(chǎn)生初始種群,并對其執(zhí)行非支配排序;
[0022] 步驟9,執(zhí)行選擇、交叉和變異操作,得到子代種群,并對當(dāng)前進(jìn)化代數(shù)執(zhí)行加1操 作;
[0023] 步驟10,將父代種群與子代種群合并,并執(zhí)行快速非支配排序;
[0024] 步驟11,對每個(gè)非支配層中的個(gè)體進(jìn)行擁擠度計(jì)算,并根據(jù)非支配關(guān)系以及個(gè)體 的擁擠度來選擇一些個(gè)體組成新的父代種群;
[0025] 步驟12,對步驟11所述新的父代種群執(zhí)行選擇、交叉和變異操作,生成新的子代 種群,并對當(dāng)前進(jìn)化代數(shù)執(zhí)行加1操作;
[0026] 步驟13,若當(dāng)前進(jìn)化代數(shù)小于或等于最大進(jìn)化代數(shù),則返回步驟10 ;否則,輸出 Pareto最優(yōu)解集,S卩同時(shí)具有較好功耗與面積性能的一組最佳無關(guān)項(xiàng)取舍;
[0027] 步驟14,根據(jù)實(shí)際優(yōu)化需求,從Pareto最優(yōu)解集中選擇一個(gè)或多個(gè)無關(guān)項(xiàng)取舍, 得到與之對應(yīng)的具有較好功耗與面積性能的完全確定RM表達(dá)式。
[0028] 其中,步驟1包括:
[0029] 步驟1. 1,將n輸入變量并包含m個(gè)無關(guān)項(xiàng)