本發(fā)明涉及一種xnor/or電路面積優(yōu)化方法,尤其是涉及一種混合極性xnor/or電路面積優(yōu)化方法。
背景技術(shù):
數(shù)字邏輯電路既可以用基于and/or/not運(yùn)算的boolean邏輯,也可以用基于xor/and或xnor/or運(yùn)算的reed-muller(rm)邏輯來實(shí)現(xiàn)。目前,基于傳統(tǒng)boolean邏輯的電路面積優(yōu)化技術(shù)已經(jīng)相當(dāng)?shù)某墒?,建立了相?duì)系統(tǒng)的自動(dòng)設(shè)計(jì)方案,并且成功應(yīng)用于各種商業(yè)eda軟件,如synopsys、mentor和graphicscadence公司的產(chǎn)品等。研究表明采用或部分采用rm邏輯進(jìn)行設(shè)計(jì)可得到性能上的極大改進(jìn)與提升。與boolean邏輯實(shí)現(xiàn)的電路相比,用rm形式表示的部分電路具有更緊湊的結(jié)構(gòu),如:算術(shù)電路、奇偶校驗(yàn)電路和通信電路等;用rm形式實(shí)現(xiàn)的邏輯電路具有良好的可測(cè)試性,這尤其適合用于可測(cè)試性方面的設(shè)計(jì),從而為解決當(dāng)前ic測(cè)試驗(yàn)證難題提供了一套切實(shí)可行的方案。
對(duì)于采用rm邏輯設(shè)計(jì)的rm邏輯電路,其rm邏輯展開式通常包括固定極性rm(fixed-polarityreed-muller,fprm)展開式和混合極性rm(mixed-polarityreed-muller,mprm)展開式兩種。對(duì)于n輸入rm邏輯電路,fprm展開式的極性個(gè)數(shù)是mprm展開式的(2/3)n,且mprm展開式的極性包括fprm展開式的所有極性,mprm電路的巨大極性搜索空間也導(dǎo)致其電路性能優(yōu)化的時(shí)間和空間復(fù)雜度都高于fprm電路,因此,在mprm邏輯電路的優(yōu)化理論和求解方法上迫切需要新的突破。枚舉法和遺傳算法是目前mprm邏輯電路優(yōu)化中常用的兩種方法。但是,枚舉法對(duì)大規(guī)模mprm邏輯電路進(jìn)行優(yōu)化時(shí),在運(yùn)行時(shí)間上不可行,搜索效率較差;遺傳算法對(duì)大規(guī)模mprm邏輯電路進(jìn)行優(yōu)化時(shí),具有種群的多樣性保持機(jī)制差,收斂速度慢,且局部尋優(yōu)能力弱等方面的缺陷。
鑒此,設(shè)計(jì)一種搜索能力強(qiáng),搜索效率高的混合極性xnor/or電路面積優(yōu)化方法具有重要意義。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種搜索能力強(qiáng),搜索效率高的混合極性xnor/or電路面積優(yōu)化方法。
本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案為:一種混合極性xnor/or電路面積優(yōu)化方法,包括以下步驟:
(1)讀入pla格式的電路,該電路采用函數(shù)
(2)采用極性轉(zhuǎn)換方法將函數(shù)
(3)將混合極性xnor/or電路面積優(yōu)化各參數(shù)與三值多樣性粒子群算法的各參數(shù)進(jìn)行關(guān)聯(lián):將輸入變量數(shù)n定義成三值多樣性粒子群的搜索空間維數(shù),將混合極性定義為三值多樣性粒子群的粒子,將極性值p定義為粒子位置;設(shè)定三值多樣性粒子群中粒子的數(shù)量為m,m為正整數(shù),三值多樣性粒子群的總進(jìn)化代數(shù)為tmax;
(4)建立適應(yīng)度函數(shù):極性值p對(duì)應(yīng)的粒子位置的適應(yīng)度函數(shù)fitness(p)為:
fitness(p)=(1-w)*earea(p)/earea_max
其中,earea(p)為在極性p下混合極性xnor/or電路的面積估計(jì)值,earea(p)為極性p下混合極性xnor/or電路的表達(dá)式包含的同或項(xiàng)和或項(xiàng)的項(xiàng)數(shù)之和,earea_max為混合極性xnor/or電路的最大面積估計(jì)值,且earea_max=n*2n,n為輸入變量數(shù),w為大于等于0且小于等于1的系數(shù),*為乘運(yùn)算符號(hào),/為除運(yùn)算符號(hào);
(5)初始化粒子群:隨機(jī)初始化三值多樣性粒子群中各粒子的速度、位置、粒子的當(dāng)前個(gè)體最優(yōu)位置、三值多樣性粒子群的當(dāng)前全局最優(yōu)位置和各粒子位置的適應(yīng)度值;
(6)建立三值多樣性粒子群中粒子的運(yùn)動(dòng)方程式:
其中,t為三值多樣性粒子群的當(dāng)前進(jìn)化代數(shù),1≤t≤tmax,
(7)根據(jù)三值多樣性粒子群中粒子的運(yùn)動(dòng)方程式更新三值多樣性粒子群中各粒子的當(dāng)前位置和當(dāng)前速度,將粒子的最新速度作為該粒子的當(dāng)前速度,將粒子的最新位置作為該粒子的當(dāng)前位置;
(8)以概率pm對(duì)三值多樣性粒子群中各粒子的當(dāng)前位置進(jìn)行三值變異,pm的取值為0.1,具體過程為:產(chǎn)生一個(gè)大于等于0且小于等于1的隨機(jī)數(shù)b,如果b<pm,則將該粒子的當(dāng)前位置中的0變?yōu)?,2變?yōu)?,1變?yōu)?,將該粒子的當(dāng)前位置變異后的值作為該粒子的當(dāng)前位置;如果b≥pm,該粒子的當(dāng)前位置保持不變;
(9)根據(jù)適應(yīng)度函數(shù)計(jì)算當(dāng)前各個(gè)粒子的當(dāng)前位置對(duì)應(yīng)的適應(yīng)度值,將該粒子的當(dāng)前位置對(duì)應(yīng)的適應(yīng)度值與該粒子的當(dāng)前個(gè)體最優(yōu)位置對(duì)應(yīng)的適應(yīng)度值進(jìn)行比較,選擇適應(yīng)度值較小的作為該粒子新的當(dāng)前個(gè)體最優(yōu)位置,再比較所有粒子新的當(dāng)前個(gè)體最優(yōu)位置,將具有最小適應(yīng)度值的粒子新的當(dāng)前個(gè)體最優(yōu)位置作為三值多樣性粒子群的新的當(dāng)前全局最優(yōu)位置;
(10)判斷當(dāng)前進(jìn)化代數(shù)是否為最大進(jìn)化代數(shù),若不是,轉(zhuǎn)到步驟(7)開始下一輪的進(jìn)化,否則進(jìn)入步驟(11);
(11)將三值多樣性粒子群的新的當(dāng)前全局最優(yōu)位置作為最優(yōu)極性輸出,將該最優(yōu)極性對(duì)應(yīng)的混合極性xnor/or電路的面積作為最優(yōu)面積輸出。
所述的步驟(2)中采用極性轉(zhuǎn)換方法將函數(shù)
a.將f(xn-1,xn-2,…,xk,…,x0)中的最大項(xiàng)以二進(jìn)制形式表示;
b.將所需轉(zhuǎn)換的混合極性值p用三進(jìn)制形式表示;
c.若混合極性的第g位為1,則選擇第g位為1的最大項(xiàng),對(duì)該位進(jìn)行異或操作,得到新項(xiàng),若第g位為0或2,則不操作;
d.若混合極性的第g位為0或1時(shí),則選擇q個(gè)位的取值為1的新項(xiàng),以這些位為無關(guān)項(xiàng),再產(chǎn)生所有2q-1個(gè)新項(xiàng),并更新索引表中的項(xiàng)數(shù),若混合極性的第g位為2時(shí),則保持不變,0≤q≤n;
e.重復(fù)步驟d,直至操作完所有新項(xiàng),得到索引表中項(xiàng)序數(shù)為奇數(shù)的項(xiàng)即為該混合極性對(duì)應(yīng)的同或/或項(xiàng)。
所述的搜索空間的下限r(nóng)d的取值為0,所述的搜索空間的上限sd的取值為2,vmin,d的取值為-6,vmax,d的取值為6,總粒子數(shù)m為20-30,最大進(jìn)化代數(shù)tmax的取值為100以上。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于在采用三值多樣性粒子群算法對(duì)粒子速度和粒子位置進(jìn)行更新的過程中,增加了廣泛學(xué)習(xí)思想和三值變異操作,由此保持三值多樣性粒子群的種群多樣性策略,從而有效地克服傳統(tǒng)的三值多樣性粒子群算法的早熟收斂問題,快速準(zhǔn)確的搜索到最優(yōu)極性,搜索能力強(qiáng),搜索效率高;實(shí)驗(yàn)驗(yàn)證,采用本發(fā)明的方法進(jìn)行面積優(yōu)化時(shí),平均節(jié)省電路面積為15.1%。
附圖說明
圖1為本發(fā)明的方法和現(xiàn)有的方法對(duì)電路的面積性能進(jìn)行優(yōu)化的對(duì)比曲線圖。
具體實(shí)施方式
以下結(jié)合附圖實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
實(shí)施例一:一種混合極性xnor/or電路面積優(yōu)化方法,包括以下步驟:
(1)讀入pla格式的電路,該電路采用函數(shù)
(2)采用極性轉(zhuǎn)換方法將函數(shù)
(3)將混合極性xnor/or電路面積優(yōu)化各參數(shù)與三值多樣性粒子群算法的各參數(shù)進(jìn)行關(guān)聯(lián):將輸入變量數(shù)n定義成三值多樣性粒子群的搜索空間維數(shù),將混合極性定義為三值多樣性粒子群的粒子,將極性值p定義為粒子位置;設(shè)定三值多樣性粒子群中粒子的數(shù)量為m,m為正整數(shù),三值多樣性粒子群的總進(jìn)化代數(shù)為tmax;
(4)建立適應(yīng)度函數(shù):極性值p對(duì)應(yīng)的粒子位置的適應(yīng)度函數(shù)fitness(p)為:
fitness(p)=(1-w)*earea(p)/earea_max
其中,earea(p)為在極性p下混合極性xnor/or電路的面積估計(jì)值,earea(p)為
極性p下混合極性xnor/or電路的表達(dá)式包含的同或項(xiàng)和或項(xiàng)的項(xiàng)數(shù)之和,earea_max為混合極性xnor/or電路的最大面積估計(jì)值,且earea_max=n*2n,n為輸入變量數(shù),w為大于等于0且小于等于1的系數(shù),*為乘運(yùn)算符號(hào),/為除運(yùn)算符號(hào);
(5)初始化粒子群:隨機(jī)初始化三值多樣性粒子群中各粒子的速度、位置、粒子的當(dāng)前個(gè)體最優(yōu)位置、三值多樣性粒子群的當(dāng)前全局最優(yōu)位置和各粒子位置的適應(yīng)度值;
(6)建立三值多樣性粒子群中粒子的運(yùn)動(dòng)方程式:
其中,t為三值多樣性粒子群的當(dāng)前進(jìn)化代數(shù),1≤t≤tmax,
(7)根據(jù)三值多樣性粒子群中粒子的運(yùn)動(dòng)方程式更新三值多樣性粒子群中各粒子的當(dāng)前位置和當(dāng)前速度,將粒子的最新速度作為該粒子的當(dāng)前速度,將粒子的最新位置作為該粒子的當(dāng)前位置;
(8)以概率pm對(duì)三值多樣性粒子群中各粒子的當(dāng)前位置進(jìn)行三值變異,pm的取值為0.1,具體過程為:產(chǎn)生一個(gè)大于等于0且小于等于1的隨機(jī)數(shù)b,如果b<pm,則將該粒子的當(dāng)前位置中的0變?yōu)?,2變?yōu)?,1變?yōu)?,將該粒子的當(dāng)前位置變異后的值作為該粒子的當(dāng)前位置;如果b≥pm,該粒子的當(dāng)前位置保持不變;
(9)根據(jù)適應(yīng)度函數(shù)計(jì)算當(dāng)前各個(gè)粒子的當(dāng)前位置對(duì)應(yīng)的適應(yīng)度值,將該粒子的當(dāng)前位置對(duì)應(yīng)的適應(yīng)度值與該粒子的當(dāng)前個(gè)體最優(yōu)位置對(duì)應(yīng)的適應(yīng)度值進(jìn)行比較,選擇適應(yīng)度值較小的作為該粒子新的當(dāng)前個(gè)體最優(yōu)位置,再比較所有粒子新的當(dāng)前個(gè)體最優(yōu)位置,將具有最小適應(yīng)度值的粒子新的當(dāng)前個(gè)體最優(yōu)位置作為三值多樣性粒子群的新的當(dāng)前全局最優(yōu)位置;
(10)判斷當(dāng)前進(jìn)化代數(shù)是否為最大進(jìn)化代數(shù),若不是,轉(zhuǎn)到步驟(7)開始下一輪的進(jìn)化,否則進(jìn)入步驟(11);
(11)將三值多樣性粒子群的新的當(dāng)前全局最優(yōu)位置作為最優(yōu)極性輸出,將該最優(yōu)極性對(duì)應(yīng)的混合極性xnor/or電路的面積作為最優(yōu)面積輸出。
實(shí)施例二:一種混合極性xnor/or電路面積優(yōu)化方法,包括以下步驟:
(1)讀入pla格式的電路,該電路采用函數(shù)
(2)采用極性轉(zhuǎn)換方法將函數(shù)
(3)將混合極性xnor/or電路面積優(yōu)化各參數(shù)與三值多樣性粒子群算法的各參數(shù)進(jìn)行關(guān)聯(lián):將輸入變量數(shù)n定義成三值多樣性粒子群的搜索空間維數(shù),將混合極性定義為三值多樣性粒子群的粒子,將極性值p定義為粒子位置;設(shè)定三值多樣性粒子群中粒子的數(shù)量為m,m為正整數(shù),三值多樣性粒子群的總進(jìn)化代數(shù)為tmax;
(4)建立適應(yīng)度函數(shù):極性值p對(duì)應(yīng)的粒子位置的適應(yīng)度函數(shù)fitness(p)為:
fitness(p)=(1-w)*earea(p)/earea_max
其中,earea(p)為在極性p下混合極性xnor/or電路的面積估計(jì)值,earea(p)為極性p下混合極性xnor/or電路的表達(dá)式包含的同或項(xiàng)和或項(xiàng)的項(xiàng)數(shù)之和,earea_max為混合極性xnor/or電路的最大面積估計(jì)值,且earea_max=n*2n,n為輸入變量數(shù),w為大于等于0且小于等于1的系數(shù),*為乘運(yùn)算符號(hào),/為除運(yùn)算符號(hào);
(5)初始化粒子群:隨機(jī)初始化三值多樣性粒子群中各粒子的速度、位置、粒子的當(dāng)前個(gè)體最優(yōu)位置、三值多樣性粒子群的當(dāng)前全局最優(yōu)位置和各粒子位置的適應(yīng)度值;
(6)建立三值多樣性粒子群中粒子的運(yùn)動(dòng)方程式:
其中,t為三值多樣性粒子群的當(dāng)前進(jìn)化代數(shù),1≤t≤tmax,
0<r1≤1,0<r2≤1,0<r3≤1,h為慣性權(quán)重,且
(7)根據(jù)三值多樣性粒子群中粒子的運(yùn)動(dòng)方程式更新三值多樣性粒子群中各粒子的當(dāng)前位置和當(dāng)前速度,將粒子的最新速度作為該粒子的當(dāng)前速度,將粒子的最新位置作為該粒子的當(dāng)前位置;
(8)以概率pm對(duì)三值多樣性粒子群中各粒子的當(dāng)前位置進(jìn)行三值變異,pm的取值為0.1,具體過程為:產(chǎn)生一個(gè)大于等于0且小于等于1的隨機(jī)數(shù)b,如果b<pm,則將該粒子的當(dāng)前位置中的0變?yōu)?,2變?yōu)?,1變?yōu)?,將該粒子的當(dāng)前位置變異后的值作為該粒子的當(dāng)前位置;如果b≥pm,該粒子的當(dāng)前位置保持不變;
(9)根據(jù)適應(yīng)度函數(shù)計(jì)算當(dāng)前各個(gè)粒子的當(dāng)前位置對(duì)應(yīng)的適應(yīng)度值,將該粒子的當(dāng)前位置對(duì)應(yīng)的適應(yīng)度值與該粒子的當(dāng)前個(gè)體最優(yōu)位置對(duì)應(yīng)的適應(yīng)度值進(jìn)行比較,選擇適應(yīng)度值較小的作為該粒子新的當(dāng)前個(gè)體最優(yōu)位置,再比較所有粒子新的當(dāng)前個(gè)體最優(yōu)位置,將具有最小適應(yīng)度值的粒子新的當(dāng)前個(gè)體最優(yōu)位置作為三值多樣性粒子群的新的當(dāng)前全局最優(yōu)位置;
(10)判斷當(dāng)前進(jìn)化代數(shù)是否為最大進(jìn)化代數(shù),若不是,轉(zhuǎn)到步驟(7)開始下一輪的進(jìn)化,否則進(jìn)入步驟(11);
(11)將三值多樣性粒子群的新的當(dāng)前全局最優(yōu)位置作為最優(yōu)極性輸出,將該最優(yōu)極性對(duì)應(yīng)的混合極性xnor/or電路的面積作為最優(yōu)面積輸出。
本實(shí)施例中,步驟(2)中采用極性轉(zhuǎn)換方法將函數(shù)
a.將f(xn-1,xn-2,…,xk,…,x0)中的最大項(xiàng)以二進(jìn)制形式表示;
b.將所需轉(zhuǎn)換的混合極性值p用三進(jìn)制形式表示;
c.若混合極性的第g位為1,則選擇第g位為1的最大項(xiàng),對(duì)該位進(jìn)行異或操作,得到新項(xiàng),若第g位為0或2,則不操作;
d.若混合極性的第g位為0或1時(shí),則選擇q個(gè)位的取值為1的新項(xiàng),以這些位為無關(guān)項(xiàng),再產(chǎn)生所有2q-1個(gè)新項(xiàng),并更新索引表中的項(xiàng)數(shù),若混合極性的第g位為2時(shí),則保持不變,0≤q≤n;
e.重復(fù)步驟d,直至操作完所有新項(xiàng),得到索引表中項(xiàng)序數(shù)為奇數(shù)的項(xiàng)即為該混合極性對(duì)應(yīng)的同或/或項(xiàng)。
本實(shí)施例中,搜索空間的下限r(nóng)d的取值為0,搜索空間的上限sd的取值為2,vmin,d的取值為-6,vmax,d的取值為6,總粒子數(shù)m為20-30,最大進(jìn)化代數(shù)tmax的取值為100以上。
為了驗(yàn)證本發(fā)明的方法在混合極性xnor/or電路面積優(yōu)化上的優(yōu)越性,使用文獻(xiàn)yuhai-zhen,wangpeng-jun,wangdi-shen.discreteternaryparticleswarmoptimizationforareaoptimizationofmprmcircuits[j].journalofsemiconductors,2013,34(2):025011-1-025011-6.與所提出算法進(jìn)行比較。在實(shí)驗(yàn)中,本發(fā)明的參數(shù)設(shè)置為:初始慣性權(quán)重hstart=0.9,終止慣性權(quán)重hend=0.4,線性遞減策略,學(xué)習(xí)因子c1=c2=c3=1.8,σ=0.2,vmax=6.0,總粒子數(shù)m為20-30,最大進(jìn)化代數(shù)tmax為200。其優(yōu)化結(jié)果如下表1所示,其中“benchmark”表示測(cè)試電路的名稱,“inputs”表示測(cè)試電路的輸入變量個(gè)數(shù);“dtpso”表示用離散三值粒子群算法進(jìn)行電路面積優(yōu)化的結(jié)果;“tdpso”表示本發(fā)明進(jìn)行電路面積優(yōu)化的結(jié)果;系數(shù)w取值為0.0,0.25,0.5,0.75,1.0。
本發(fā)明的方法和現(xiàn)有的方法對(duì)電路的面積性能進(jìn)行優(yōu)化的對(duì)比曲線如圖1所示。圖1中,橫坐標(biāo)為系數(shù)w,縱坐標(biāo)為10個(gè)電路面積的平均值。由圖1可知,本發(fā)明的方法顯著優(yōu)于現(xiàn)有方法,平均節(jié)省電路面積為15.1%。