亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

基于圖編碼的組合邏輯電路的自動合成方法

文檔序號:7525665閱讀:236來源:國知局
專利名稱:基于圖編碼的組合邏輯電路的自動合成方法
技術(shù)領(lǐng)域
本發(fā)明屬于組合邏輯電路設(shè)計領(lǐng)域。具體涉及一種基于“圖”編碼的組合邏輯電路的自動合成方法。

背景技術(shù)
組合邏輯電路是一種輸出端子的值僅基于當(dāng)前輸入端子的值的邏輯電路。傳統(tǒng)的組合邏輯電路的合成主要靠設(shè)計者個人的知識和相關(guān)的經(jīng)驗人工設(shè)計。但人工設(shè)計往往得不到最優(yōu)的組合邏輯電路。
隨著進(jìn)化硬件(EHW)的迅速發(fā)展,大量的從生物學(xué)中借鑒過來的人工智能算法被成功地引入到數(shù)字電路自動設(shè)計領(lǐng)域。如GA算法,作為一種具有開創(chuàng)意義的尋找最優(yōu)解或近似最優(yōu)解的算法,已被應(yīng)用在組合邏輯電路設(shè)計中并成功實現(xiàn)了一些較小規(guī)模的組合邏輯電路的自動合成。GA將組合邏輯電路編碼成一個定長或變長的串結(jié)構(gòu),串中的每一位均表示電路中的某一元件或元件間的電氣連接。種群中的個體(組合邏輯電路)通過交叉、變異等算子進(jìn)行變異,并隨著遺傳代數(shù)的增加,逐步優(yōu)化至生成設(shè)計要求的目標(biāo)電路。組合邏輯電路自動合成領(lǐng)域另一重大的進(jìn)展是GP算法的發(fā)現(xiàn)及引入。GP與GA最大的不同之處在于GP采用樹形數(shù)據(jù)結(jié)構(gòu)表示組合邏輯電路。在GP算法中,樹型結(jié)構(gòu)中的葉子節(jié)點表示電路中的輸入端子,而樹型結(jié)構(gòu)中的父節(jié)點表示電路中的邏輯元件。電路亦通過交叉、變異等算子變異種群中的個體。相對于GA而言,GP表現(xiàn)出了更強(qiáng)的搜索能力和電路最優(yōu)化能力。一些其他的人工智能算法也相繼誕生并均被應(yīng)用于組合邏輯電路的設(shè)計中。例如蟻群算法、注入式的遺傳算法等等,但這些算法所采用的組合邏輯電路編碼方式與GA和GP相似。不可否認(rèn)的是,相對于傳統(tǒng)的人工設(shè)計而言,這些新穎的人工智能算法能遍歷更大的搜索空間,因此能生成更多的符合設(shè)計要求的目標(biāo)電路。
最近,一種新的基于進(jìn)化“圖”的人工智能算法(EGG)被提出。EGG使用“圖”結(jié)構(gòu)表示電路并通過交叉和變異兩種算子對“圖”直接進(jìn)行操作。盡管EGG能表示復(fù)雜的電路結(jié)構(gòu),但是EGG算法中的操作算子卻需要進(jìn)一步地優(yōu)化。首先,EGG的變異算子僅僅改變“圖”中部分頂點的值,因此變異算子并不涉及“圖”結(jié)構(gòu)的優(yōu)化;其次,EGG的交叉算子是對兩個已知圖形結(jié)構(gòu)的交換,因此這一算子也不能豐富某一種群中的圖形結(jié)構(gòu)多樣性。由于這兩種算子的局限性,EGG算法中種群多樣性僅僅決定于種群初始化過程,而非變異過程。
綜合分析目前組合邏輯電路的表示方法,主要有以下不足一是很多方法限制了電路結(jié)構(gòu)的多樣性,這些方法只能生成一些特定結(jié)構(gòu)的電路;二是很多方法有很復(fù)雜的映射規(guī)則,在從編碼映射到電路的過程中需要花費(fèi)很多運(yùn)算時間。


發(fā)明內(nèi)容
本發(fā)明旨在克服上述技術(shù)不足,目的是提供一種可生成任意結(jié)構(gòu)形式、映射簡單和編碼效率高的基于“圖”編碼的組合邏輯電路的自動合成方法。
為實現(xiàn)上述發(fā)明目的,本發(fā)明采用的技術(shù)方案是 第一步用“有向圖”(簡稱“圖”)表示組合邏輯電路,“圖”G記作(V,E),V是“圖”的頂點的集合,E是“圖”的邊的集合。其中 “圖”的頂點分為輸入頂點、輸出頂點和中間頂點,輸入頂點、輸出頂點和中間頂點分別用VIN、VOUT和VMID表示;在進(jìn)化過程中,VMID允許添加、刪除或修改,VIN、VOUT禁止添加、刪除或修改;VIN、VOUT分別表示組合邏輯電路的輸入和輸出端子;VMID表示組合邏輯電路中邏輯門的類型;邏輯門包括與門、或門、非門和異或門四種基本的邏輯門,其中與門、或門和異或門是兩輸入一輸出的邏輯門,非門是一輸入一輸出的邏輯門。
“圖”的邊為有向邊,表示邏輯門之間的連接。一條有向邊e∈E僅能起始于某一頂點的輸出端子并終止于另一頂點的輸入端子,有向邊中箭頭表示信號流的方向,一條有向邊被描述為Name[A-B];其中A、B分別是起始點A和終止點B,符號Ei(v)和Eo(v)分別表示連接至頂點v的輸入端子的有向邊集和輸出端子的有向邊集。
第二步設(shè)定目標(biāo)組合邏輯電路的真值表和最大循環(huán)次數(shù)。
第三步模板組合邏輯電路是由一個兩輸入一輸出的邏輯門、兩個輸入端子和一個輸出端子組成的組合邏輯單元;種群中任意一個個體是一個組合邏輯電路的“圖”編碼形式,個體是在模板組合邏輯電路的基礎(chǔ)上隨機(jī)產(chǎn)生。個體產(chǎn)生的過程是向模板組合邏輯電路中隨機(jī)添加新頂點,添加新頂點的個數(shù)和位置是隨機(jī)的,在隨機(jī)添加的新頂點和模板組合邏輯電路中的頂點之間添加有向邊,直到該“圖”滿足規(guī)定的輸入輸出頂點數(shù)且不含環(huán)狀結(jié)構(gòu)為止。
個體產(chǎn)生的過程重復(fù)進(jìn)行N次,N是大于等于1的整數(shù),N個不同的個體表示N個不同的組合邏輯電路,從而形成種群P。
第四步評估種群P中所有個體所表示的組合邏輯電路的性能,即每個個體親和力的計算。每個個體的親和力等于它的功能親和力與性能親和力的和 Affinity=FV+PV(1) 式(1)中Fv是個體的功能親和力; Pv是個體的性能親和力。
功能親和力Fv的計算公式為 式(2)中M是組合邏輯電路輸入的個數(shù); N是組合邏輯電路輸出的個數(shù); fvij的定義如下
式(3)中fj(xi)表示當(dāng)輸入為真值表的第i行時組合邏輯電路第j個輸出端子的值; xi是真值表第i個變量; Pij表示真值表第i行第j個輸出值。
性能親和力Pv的計算公式為
式(4)中r表示組合邏輯電路的邏輯門數(shù)。
第五步將種群P中的N個體按照親和力的大小降序排列,親和力高的n(n<N)個個體被選中,形成臨時種群PS,臨時種群PS中的個體同樣按照親和力的大小降序排列。
第六步臨時種群PS被克隆(復(fù)制),克隆后的個體形成克隆種群PC,克隆種群PC中第i個個體被克隆的份數(shù)與第i個個體的親和力成正比 Ni=round(β*n/i)(5) 式(5)中Ni是第i個個體被克隆的份數(shù); β是克隆因子; n是臨時種群PS中的個體數(shù); i是該個體在臨時種群PS中的序號; round是四舍五入取整函數(shù)。
第七步克隆種群PC中的個體被隨機(jī)選中進(jìn)行變異操作,個體被選中的條件如下 if rand(1)<RM (6) 式(6)中RM是變異的概率,0<RM≤1; rand(1)隨機(jī)產(chǎn)生一個0~1范圍內(nèi)的實數(shù)。
選中的個體被隨機(jī)選中的操作算子所修改,選中的操作算子為以下待選的操作算子中的全部或部分 a、添加邊操作算子; b、刪除邊操作算子; c、修改邊操作算子; d、添加頂點操作算子; e、刪除頂點操作算子; f、串聯(lián)操作算子; g、反串聯(lián)操作算子。
選中的操作算子的個數(shù)由下式?jīng)Q定 No=RAND(L)(7) 式(7)中L是操作算子類型的總數(shù); RAND(x)返回一個整數(shù)r∈
。
對克隆種群PC中的個體修改后,形成變異種群PM,克隆種群PC和變異種群PM中的個體數(shù)目相同。
第八步評估變異種群PM中的個體,評估的過程與第四步相同。
第九步將評估后的變異種群PM中的個體首先按照親和力的大小降序排列,然后從中選出m(m<N)個親和力高的個體形成重選種群PR,若重選種群PR中的個體親和力高于種群P中的個體親和力,則種群P中的親和力低的個體將被替換,形成次新種群PN。
第十步按照第三步所述的產(chǎn)生新個體的過程,隨機(jī)產(chǎn)生d(d<N)個新個體,再替換次新種群PN中d個親和力低的個體,形成新種群PT;然后對新種群PT按照第四步所述的過程進(jìn)行評估。
重復(fù)執(zhí)行上述步驟中的第五步~第十步,依此循環(huán),直到達(dá)到最大的循環(huán)次數(shù);達(dá)到最大的循環(huán)次數(shù)稱為一次合成實驗,重復(fù)合成實驗M次,最后自動合成出一個滿足真值表要求的個體的“圖”編碼和對應(yīng)的組合邏輯電路。
在上述技術(shù)方案中 所述的添加邊操作算子的執(zhí)行過程是隨機(jī)選擇兩個不同的頂點,例如v1、v2∈V,在這兩個頂點之間增加一條有向邊,并修改頂點v1,v2的值。
所述的刪除邊操作算子的執(zhí)行過程是隨機(jī)選擇兩個不同的頂點,例如v3、v4∈V,在兩個頂點之間隨機(jī)刪除一條邊,例如e1∈Ei(v3)∩Eo(v4),并修改頂點v3、v4的值。
所述的修改邊操作算子的執(zhí)行過程是首先隨機(jī)選取三個頂點,例如v5、v6、v7∈V,然后隨機(jī)選取其中兩個頂點v5和v6之間的有向邊,例如e2,如果e2∈Ei(v5)∩Eo(v6),則將e2刪除,并新增加一有向邊e3[v7-v5],最后修改v6和v7的值。
所述的添加頂點操作算子的執(zhí)行過程是隨機(jī)選取一個頂點,例如v8∈V,然后添加一個新頂點,例如v9∈VMID,使v9的各個端子均與v8連接。
所述的刪除頂點操作算子的執(zhí)行過程是隨機(jī)選中一個頂點,例如v10∈VMID,同時刪除該頂點以及與該頂點相連接的所有有向邊,最后修改所有與頂點v10連接的頂點的值。
所述的串聯(lián)操作算子的執(zhí)行過程是隨機(jī)選中一條邊,例如e4[vstart-vend],添加一個新頂點,例如v11∈VMID,同時e4[vstart-vend]被刪除,兩個新的有向邊,例如e5[vstart-v11]∈Ei(v11)和e6[v11-vend]∈Eo(v11)被加入E。
所述的反串聯(lián)操作算子的執(zhí)行過程是隨機(jī)刪除一頂點v12及其Ei(v12)和Eo(v12),將一對有向邊e7[vstart-v12]∈Ei(v12)和e8[v12-vend]∈Eo(v12)合并為一條新的有向邊e9[vstart-vend]。
由于采用上述技術(shù)方案,本發(fā)明采用的基于“圖”編碼方法可以生成任意結(jié)構(gòu)的組合邏輯電路,編碼方便直接,并且將編碼映射到組合邏輯電路的過程非常簡單,因此編碼效率高。且采用的克隆選擇搜索算法,具有全局搜索的能力。此外,本發(fā)明設(shè)計了添加邊、刪除邊、修改邊、添加頂點、刪除頂點、串聯(lián)和反串聯(lián)七種用于改變組合邏輯電路結(jié)構(gòu)的操作算子,這些操作算子直接對“圖”進(jìn)行操作,具有保證不破壞電路連通性的特性。
因此,本發(fā)明具有高效自動生成任意組合邏輯電路、映射簡單、編碼效率高和能用“圖”的結(jié)構(gòu)表示組合邏輯電路的特點。



圖1是本發(fā)明中的一種自動合成步驟流程圖; 圖2是實施例1的真值表; 圖3是模板組合邏輯電路; 圖4是實施例1自動合成的一種“圖”的編碼形式; 圖5是圖4所示“圖”的編碼形式所對應(yīng)的組合邏輯電路圖; 圖6是實施例2的真值表; 圖7是實施例2自動合成的一種“圖”的編碼形式; 圖8是圖7所示“圖”的編碼形式所對應(yīng)的組合邏輯電路圖; 圖9是實施例3的真值表; 圖10是實施例3自動合成的一種“圖”的編碼形式; 圖11是圖10所示“圖”的編碼形式所對應(yīng)的組合邏輯電路圖。

具體實施例方式 下面結(jié)合附圖對本發(fā)明做進(jìn)一步的描述,并非對本發(fā)明保護(hù)范圍的限制。
實施例1一種基于“圖”編碼的三輸入一輸出組合邏輯電路的自動合成方法,該組合邏輯電路的自動合成步驟流程如圖1所示 第一步用“有向圖”(簡稱“圖”)表示組合邏輯電路,“圖”G記作(V,E),V是“圖”的頂點的集合,E是“圖”的邊的集合。其中 “圖”的頂點分為輸入頂點、輸出頂點和中間頂點,輸入頂點、輸出頂點和中間頂點分別用VIN、VOUT和VMID表示。在進(jìn)化過程中,VMID允許添加、刪除或修改;VIN、VOUT禁止添加、刪除或修改;VIN、VOUT分別表示組合邏輯電路的輸入和輸出端子;VMID表示組合邏輯電路中邏輯門的類型;邏輯門包括與門、或門、非門和異或門四種基本的邏輯門,其中與門、或門和異或門是兩輸入一輸出的邏輯門,非門是一輸入一輸出的邏輯門。
“圖”的邊為有向邊,表示邏輯門之間的連接,一條有向邊e∈E僅能起始于某一頂點的輸出端子并終止于另一頂點的輸入端子,有向邊中箭頭表示信號流的方向,一條有向邊被描述為Name[A-B]。其中A、B分別是起始點A和終止點B,符號Ei(v)和Eo(v)分別表示連接至頂點v的輸入端子的有向邊集和輸出端子的有向邊集。
第二步設(shè)定如圖2所示的目標(biāo)組合邏輯電路真值表和最大循環(huán)次數(shù)為100。
第三步模板組合邏輯電路如圖3所示,是由一個兩輸入一輸出的邏輯門、兩個輸入端子和一個輸出端子組成的組合邏輯單元;種群中任意一個個體是一個組合邏輯電路的“圖”編碼形式,個體是在模板組合邏輯電路的基礎(chǔ)上隨機(jī)產(chǎn)生。個體產(chǎn)生的過程是向模板組合邏輯電路中隨機(jī)添加新頂點,添加新頂點的個數(shù)和位置是隨機(jī)的,在隨機(jī)添加的新頂點和模板組合邏輯電路中的頂點之間添加有向邊,直到該“圖”滿足規(guī)定的輸入頂點數(shù)為3、輸出頂點數(shù)為1且不含環(huán)狀結(jié)構(gòu)的條件為止。
個體產(chǎn)生的過程重復(fù)進(jìn)行50次,在模板組合邏輯電路基礎(chǔ)上隨機(jī)產(chǎn)生50個不同的個體,50個不同的個體表示50個不同的三輸入一輸出組合邏輯電路,形成種群P。
第四步評估種群P中所有個體所表示的三輸入一輸出組合邏輯電路的性能,即每個個體親和力的計算。每個個體的親和力等于它的功能親和力與性能親和力的和 Affinity=FV+PV(1) 式(1)中Fv是個體的功能親和力; Pv是個體的性能親和力。
功能親和力Fv的計算公式為 式(2)中M是組合邏輯電路輸入的個數(shù),M=3; N是組合邏輯電路輸出的個數(shù),N=1; fvij的定義如下
式(3)中fi(xi)表示當(dāng)輸入為真值表的第i行時組合邏輯電路第j個輸出端子的值; xi是真值表第i個變量; Pij表示真值表第i行第j個輸出值。
性能親和力Pv的計算公式為
式(4)中r表示組合邏輯電路的邏輯門數(shù)。
第五步將種群P中的50個個體按照親和力的大小降序排列,親和力高的10個個體被選中,形成臨時種群PS,臨時種群PS中的個體同樣按照親和力的大小降序排列。
第六步臨時種群PS被克隆(復(fù)制),克隆后的個體形成克隆種群PC??寺》N群PC中第i個個體被克隆的份數(shù)與第i個個體的親和力成正比 Ni=round(β*n/i)(5) 式(5)中Ni是第i個個體被克隆的份數(shù); β是克隆因子,β=2; n是臨時種群PS中的個體數(shù),n=10; i是第i個個體在臨時種群PS中的序號; round是四舍五入取整函數(shù)。
克隆種群PC中個體的總個數(shù)為 第七步克隆種群PC中的個體被隨機(jī)選中進(jìn)行變異操作,個體被選中的條件如下 if rand(1)<RM(6) 式(6)中RM是變異的概率,RM=0.5; rand(1)隨機(jī)產(chǎn)生一個0~1范圍內(nèi)的實數(shù); 選中的個體被隨機(jī)選中的操作算子所修改,選中的操作算子為以下待選的操作算子中的全部或部分 a、添加邊操作算子,其執(zhí)行過程是隨機(jī)選擇兩個不同的頂點,例如v1、v2∈V,在這兩個頂點之間增加一條有向邊,并修改頂點v1,v2的值。
b、刪除邊操作算子,其執(zhí)行過程是隨機(jī)選擇兩個不同的頂點,例如v3、v4∈V,在兩個頂點之間隨機(jī)刪除一條邊,例如e1∈Ei(v3)∩Eo(v4),并修改頂點v3、v4的值。
c、修改邊操作算子,其執(zhí)行過程是首先隨機(jī)選取三個頂點,例如v5、v6、v7∈V,然后隨機(jī)選取其中兩個頂點v5和v6之間的有向邊,例如e2,如果e2∈Ei(v5)∩Eo(v6),則將e2刪除,并新增加一有向邊e3[v7-v5],最后修改v6和v7的值。
d、添加頂點操作算子,其執(zhí)行過程是隨機(jī)選取一個頂點,例如v8∈V,然后添加一個新頂點,例如v9∈VMID,使v9的各個端子均與v8連接。
e、刪除頂點操作算子,其執(zhí)行過程是隨機(jī)選中一個頂點,例如v10∈VMID,同時刪除該頂點以及與該頂點相連接的所有有向邊,最后修改所有與頂點v10連接的頂點的值。
f、串聯(lián)操作算子,其執(zhí)行過程是隨機(jī)選中一條邊,例如e4[vstart-vend],添加一個新頂點,例如v11∈VMID,同時e4[vstart-vend]被刪除,兩個新的有向邊,例如e5[vstart-v11]∈Ei(v11)和e6[v11-vend]∈Eo(v11)被加入E。
g、反串聯(lián)操作算子,其執(zhí)行過程是隨機(jī)刪除一頂點v12及其Ei(v12)和Eo(v12),將一對有向邊e7[vstart-v12]∈Ei(v12)和e8[v12-vend]∈Eo(v12)合并為一條新的有向邊e9[vstart-vend]。
選中的操作算子的個數(shù)由下式?jīng)Q定 No=RAND(L)(7) 式(7)中L是操作算子類型的總數(shù),L=7; RAND(x)返回一個整數(shù)r∈
。
對克隆種群PC中的個體修改后,形成變異種群PM,克隆種群PC和變異種群PM中的個體數(shù)目相同。
第八步評估變異種群PM中的59個個體,評估的過程與第四步相同。
第九步將評估后的變異種群PM中的59個個體首先按照親和力的大小降序排列,然后從中選出10個親和力高的個體形成重選種群PR,若重選種群PR中的個體親和力高于種群P中的個體親和力,則種群P中的親和力低的個體將被替換,形成次新種群PN。
第十步按照第三步所述的產(chǎn)生新個體的過程,隨機(jī)產(chǎn)生10個新個體,再替換次新種群PN中10個親和力低的個體,形成新種群PT;然后對新種群PT按照第四步所述的過程進(jìn)行評估。
重復(fù)執(zhí)行上述步驟中的第五步~第十步,依此循環(huán),直到達(dá)到最大的循環(huán)次數(shù)100次,以上步驟執(zhí)行完最大循環(huán)次數(shù)100次以后稱為一次合成實驗。
重復(fù)進(jìn)行1000次合成實驗,成功合成目標(biāo)電路613次,失敗387次;其中僅含有4個邏輯門的最優(yōu)組合邏輯電路238次;除此之外,在成功合成出目標(biāo)電路的實驗中,本方法平均只需要29.33代就能完成目標(biāo)電路的自動合成,成功概率為61.3%,獲得最優(yōu)組合邏輯電路的成功概率為23.8%。自動合成出一個滿足真值表要求的個體的“圖”編碼如圖4所示,對應(yīng)的組合邏輯電路如圖5所示。
實施例2一種基于“圖”編碼的四輸入一輸出組合邏輯電路的自動合成方法,該組合邏輯電路的自動合成步驟流程如圖1所示 第一步同實施例1第一步。
第二步設(shè)定如圖6所示的目標(biāo)組合邏輯電路真值表和最大循環(huán)次數(shù)為100。
第三步模板組合邏輯電路如圖3所示,是由一個兩輸入一輸出的邏輯門、兩個輸入端子和一個輸出端子組成的組合邏輯單元;種群中任意一個個體是一個組合邏輯電路的“圖”編碼形式,個體是在模板組合邏輯電路的基礎(chǔ)上隨機(jī)產(chǎn)生。個體產(chǎn)生的過程是向模板組合邏輯電路中隨機(jī)添加新頂點,添加新頂點的個數(shù)和位置是隨機(jī)的,在隨機(jī)添加的新頂點和模板組合邏輯電路中的頂點之間添加有向邊,直到該“圖”滿足規(guī)定的輸入頂點數(shù)為4、輸出頂點數(shù)為1且不含環(huán)狀結(jié)構(gòu)的條件為止。
個體產(chǎn)生的過程重復(fù)進(jìn)行200次,在模板組合邏輯電路基礎(chǔ)上則隨機(jī)產(chǎn)生200個不同的個體,200個不同的個體表示200個不同的四輸入一輸出組合邏輯電路,形成種群P。
第四步評估種群P中所有個體所表示的四輸入一輸出組合邏輯電路的性能,即每個個體親和力的計算。每個個體的親和力等于它的功能親和力與性能親和力的和 Affinity=FV+PV(1) 式(1)中Fv是個體的功能親和力; Pv是個體的性能親和力。
功能親和力Fv的計算公式為 式(2)中M是組合邏輯電路輸入的個數(shù),M=4; N是組合邏輯電路輸出的個數(shù),N=1; fvij的定義如下
式(3)中fi(xi)表示當(dāng)輸入為真值表的第i行時組合邏輯電路第j個輸出端子的值; xi是真值表第i個變量; Pij表示真值表第i行第j個輸出值。
性能親和力Pv的計算公式為
式(4)中r表示組合邏輯電路的邏輯門數(shù)。
第五步將種群P中的200個個體按照親和力的大小降序排列,親和力高的80個個體被選中,形成臨時種群PS,臨時種群PS中的個體同樣按照親和力的大小降序排列。
第六步臨時種群PS被克隆(復(fù)制),克隆后的個體形成克隆種群PC??寺》N群PC中第i個個體被克隆的份數(shù)與第i個個體的親和力成正比 Ni=round(β*n/i)(5) 式(5)中Ni是第i個個體被克隆的份數(shù); β是克隆因子,β=2; n是臨時種群PS中的個體數(shù),n=80; i是第i個個體在臨時種群PS中的序號; round是四舍五入取整函數(shù)。
克隆種群PC中個體的總個數(shù)為 第七步同實施例1第七步。
第八步評估變異種群PM中的793個個體,評估的過程與第四步相同。
第九步將評估后的變異種群PM中的793個個體首先按照親和力的大小降序排列,然后從中選出80個親和力高的個體形成重選種群PR,若重選種群PR中的個體親和力高于種群P中的個體親和力,則種群P中的親和力低的個體被替換,形成次新種群PN。
第十步按照第三步所述的產(chǎn)生新個體的過程,隨機(jī)產(chǎn)生80個新個體,再替換次新種群PN中80個親和力低的個體,形成新種群PT;然后對新種群PT按照第四步所述的過程進(jìn)行評估。
重復(fù)執(zhí)行上述步驟中的第五步~第十步,依此循環(huán),直到達(dá)到最大的循環(huán)次數(shù)100次,以上步驟執(zhí)行完最大循環(huán)次數(shù)100次以后稱為一次合成實驗。
重復(fù)進(jìn)行500次合成實驗,此方法成功合成目標(biāo)電路206次,失敗294次;其中僅含有7個邏輯門的最優(yōu)組合邏輯電路87次;除此之外,在成功合成出目標(biāo)電路的實驗中,本方法平均只需要48.95代就能完成目標(biāo)電路的自動合成,成功概率為41.2%,獲得最優(yōu)組合邏輯電路的成功概率為17.4%。自動合成出一個滿足目標(biāo)真值表要求的個體的“圖”編碼如圖7所示,對應(yīng)的組合邏輯電路圖如圖8所示。
實施例3一種基于“圖”編碼的四輸入三輸出組合邏輯電路的自動合成方法,該組合邏輯電路的自動合成步驟流程如圖1所示 第一步同實施例1第一步。
第二步設(shè)定如圖9所示的目標(biāo)組合邏輯電路真值表和最大循環(huán)次數(shù)為500。
第三步模板組合邏輯電路如圖3所示,是由一個兩輸入一輸出的邏輯門、兩個輸入端子和一個輸出端子組成的組合邏輯單元;種群中任意一個個體是一個組合邏輯電路的“圖”編碼形式,個體是在模板組合邏輯電路的基礎(chǔ)上隨機(jī)產(chǎn)生。個體產(chǎn)生的過程是向模板組合邏輯電路中隨機(jī)添加新頂點,添加新頂點的個數(shù)和位置是隨機(jī)的,在隨機(jī)添加的新頂點和模板組合邏輯電路中的頂點之間添加有向邊,直到該“圖”滿足規(guī)定的輸入頂點數(shù)為4、輸出頂點數(shù)為3且不含環(huán)狀結(jié)構(gòu)的條件為止。
個體產(chǎn)生的過程重復(fù)進(jìn)行500次,在模板組合邏輯電路基礎(chǔ)上則隨機(jī)產(chǎn)生500個不同的個體,500個不同的個體表示500個不同的四輸入三輸出組合邏輯電路,形成種群P。
第四步評估種群P中所有個體所表示的四輸入三輸出組合邏輯電路的性能,即每個個體親和力的計算。每個個體的親和力等于它的功能親和力與性能親和力的和 Affinity=FV+PV(1) 式(1)中Fv是個體的功能親和力; Pv是個體的性能親和力。
功能親和力Fv的計算公式為 式(2)中M是組合邏輯電路輸入的個數(shù),M=4; N是組合邏輯電路輸出的個數(shù),N=3; fvij的定義如下
式(3)中fi(xi)表示當(dāng)輸入為真值表的第i行時組合邏輯電路第j個輸出端子的值; xi是真值表第i個變量; Pij表示真值表第i行第j個輸出值。
性能親和力Pv的計算公式為
式(4)中r表示組合邏輯電路的邏輯門數(shù)。
第五步將種群P中的500個個體按照親和力的大小降序排列,親和力高的200個個體被選中,形成臨時種群PS,臨時種群PS中的個體同樣按照親和力的大小降序排列。
第六步臨時種群PS被克隆(復(fù)制),克隆后的個體形成克隆種群PC。克隆種群PC中第i個個體被克隆的份數(shù)與第i個個體的親和力成正比 Ni=round(β*n/i)(5) 式(5)中Ni是第i個個體被克隆的份數(shù); β是克隆因子,β=2; n是臨時種群PS中的個體數(shù),n=200; i是第i個個體在臨時種群PS中的序號; round是四舍五入取整函數(shù)。
克隆種群PC中個體的總個數(shù)為 第七步同實施例1第七步。
第八步評估變異種群PM中的2348個個體,評估的過程與第四步相同。
第九步將評估后的變異種群PM中的2348個個體首先按照親和力的大小降序排列,然后從中選出200個親和力高的個體形成重選種群PR,若重選種群PR中的個體親和力高于種群P中的個體親和力,則種群P中的親和力低的個體被替換,形成次新種群PN。
第十步按照第三步所述的產(chǎn)生新個體的過程,隨機(jī)產(chǎn)生200個新個體,再替換次新種群PN中200個親和力低的個體,形成新種群PT;然后對新種群PT按照第四步所述的過程進(jìn)行評估。
重復(fù)執(zhí)行上述步驟中的第五步~第十步,依此循環(huán),直到達(dá)到最大的循環(huán)次數(shù)500次,以上步驟執(zhí)行完最大循環(huán)次數(shù)500次以后稱為一次合成實驗。
重復(fù)進(jìn)行500次合成實驗,此方法成功合成目標(biāo)電路84次,失敗416次;其中僅含有10個邏輯門的最優(yōu)組合邏輯電路17次;除此之外,在成功合成出目標(biāo)電路的實驗中,本方法平均只需要196.50代就能完成目標(biāo)電路的自動合成,成功概率為16.8%,獲得最優(yōu)組合邏輯電路的成功概率為3.4%.。自動合成出一個滿足目標(biāo)真值表要求的個體的“圖”編碼如圖10所示,對應(yīng)的組合邏輯電路圖如圖11所示。
具體實施方式
采用的基于“圖”編碼方法可以生成任意結(jié)構(gòu)的組合邏輯電路,編碼方便直接,并且將編碼映射到組合邏輯電路的過程非常簡單,因此編碼效率高。且采用的克隆選擇搜索算法,具有全局搜索的能力,此外,本具體實施方式
設(shè)計了添加邊、刪除邊、修改邊、添加頂點、刪除頂點、串聯(lián)和反串聯(lián)七種用于改變組合邏輯電路結(jié)構(gòu)的操作算子,這些操作算子可以直接對“圖”進(jìn)行操作,具有不破壞電路連通性的特性。
因此,本具體實施方式
具有高效自動生成任意組合邏輯電路、映射簡單、編碼效率高和能用“圖”的結(jié)構(gòu)表示組合邏輯電路的特點。
權(quán)利要求
1、一種基于“圖”編碼的組合邏輯電路的自動合成方法,其特征在于該組合邏輯電路的自動合成步驟為
第一步用“有向圖”表示組合邏輯電路,“圖”G記作(V,E),V是“圖”的頂點的集合,E是“圖”的邊的集合;
第二步設(shè)定目標(biāo)組合邏輯電路的真值表和最大循環(huán)次數(shù);
第三步模板組合邏輯電路是由一個兩輸入一輸出的邏輯門、兩個輸入端子和一個輸出端子組成的組合邏輯單元;種群中任意一個個體是一個組合邏輯電路的“圖”編碼形式,個體是在模板組合邏輯電路的基礎(chǔ)上隨機(jī)產(chǎn)生;個體產(chǎn)生的過程是向模板組合邏輯電路中隨機(jī)添加新頂點,添加新頂點的個數(shù)和位置是隨機(jī)的;在隨機(jī)添加的新頂點和模板組合邏輯電路中的頂點之間添加有向邊,直到該“圖”滿足規(guī)定的輸入輸出頂點數(shù)且不含環(huán)狀結(jié)構(gòu)為止;
個體產(chǎn)生的過程重復(fù)進(jìn)行N次,N個不同的個體表示N個不同的組合邏輯電路,從而形成種群P;
第四步評估種群P中所有個體所表示的組合邏輯電路的性能,即每個個體親和力的計算,每個個體的親和力等于它的功能親和力與性能親和力的和
Affinity=FV+PV(1)
式(1)中Fv是個體的功能親和力;
Pv是個體的性能親和力;
功能親和力Fv的計算公式為
式(2)中M是組合邏輯電路輸入的個數(shù);
N是組合邏輯電路輸出的個數(shù);
fvij的定義如下
式(3)中fj(xi)表示當(dāng)輸入為真值表的第i行時組合邏輯電路第j個輸出端子的值;
xi是真值表第i個變量;
Pij表示真值表第i行第j個輸出值;
性能親和力Pv的計算公式為
式(4)中r表示組合邏輯電路的邏輯門數(shù);
第五步將種群P中的N個個體按照親和力的大小降序排列,親和力高的n(n<N)個個體被選中,形成臨時種群PS,臨時種群PS中的個體同樣按照親和力的大小降序排列;
第六步臨時種群PS被克隆,克隆后的個體形成克隆種群PC,克隆種群PC中第i個個體被克隆的份數(shù)與第i個個體的親和力成正比
Ni=round(β*n/i)(5)
式(5)中Ni是第i個個體被克隆的份數(shù);
β是克隆因子;
n是臨時種群PS中的個體數(shù);
i是該個體在臨時種群PS中的序號;
round是四舍五入取整函數(shù);
第七步克隆種群PC中的個體被隨機(jī)選中進(jìn)行變異操作,個體被選中的條件如下
if rand(1)<RM (6)
式(6)中RM是變異的概率,0<RM≤1;
rand(1)隨機(jī)產(chǎn)生一個0~1范圍內(nèi)的實數(shù);
選中的個體被隨機(jī)選中的操作算子所修改,選中的操作算子為以下待選的操作算子中的全部或部分
a、添加邊操作算子;
b、刪除邊操作算子;
c、修改邊操作算子;
d、添加頂點操作算子;
e、刪除頂點操作算子;
f、串聯(lián)操作算子;
g、反串聯(lián)操作算子;
選中的操作算子的個數(shù)由下式?jīng)Q定
No=RAND(L) (7)
式(7)中L是操作算子類型的總數(shù);
RAND(x)返回一個整數(shù)r∈

對克隆種群PC中的個體修改后,形成變異種群PM,克隆種群PC和變異種群PM中的個體數(shù)目相同;
第八步評估變異種群PM中的個體,評估的過程與第四步相同;
第九步將評估后的變異種群PM中的個體首先按照親和力的大小降序排列,然后從中選出m(m<N)個親和力高的個體形成重選種群PR,若重選種群PR中的個體親和力高于種群P中的個體親和力,則種群P中的親和力低的個體將被替換,形成次新種群PN;
第十步按照第三步所述的產(chǎn)生新個體的過程,隨機(jī)產(chǎn)生d(d<N)個新個體,再替換次新種群PN中d個親和力低的個體,形成新種群PT,然后對新種群PT按照第四步所述的過程進(jìn)行評估;
重復(fù)執(zhí)行上述步驟中的第五步~第十步,依此循環(huán),直到達(dá)到最大的循環(huán)次數(shù);以上步驟執(zhí)行完最大循環(huán)次數(shù)以后稱為一次合成實驗,重復(fù)上述合成實驗M次,最后自動合成出一個滿足真值表要求的個體的“圖”編碼和對應(yīng)的組合邏輯電路。
2、根據(jù)權(quán)利要求1所述的基于“圖”編碼的組合邏輯電路的自動合成方法,其特征在于所述的“圖”的頂點分為輸入頂點、輸出頂點和中間頂點,輸入頂點、輸出頂點和中間頂點分別用VIN、VOUT和VMID表示;在進(jìn)化過程中,VMID允許添加、刪除或修改,VIN、VOUT禁止添加、刪除或修改,VIN、VOUT分別表示組合邏輯電路的輸入和輸出端子,VMID表示組合邏輯電路中邏輯門的類型;邏輯門包括與門、或門、非門和異或門四種基本的邏輯門,其中與門、或門和異或門是兩輸入一輸出的邏輯門,非門是一輸入一輸出的邏輯門。
3、根據(jù)權(quán)利要求1所述的基于“圖”編碼的組合邏輯電路的自動合成方法,其特征在于所述的“圖”的邊為有向邊,表示邏輯門之間的連接,一條有向邊e∈E僅能起始于某一頂點的輸出端子并終止于另一頂點的輸入端子,有向邊中箭頭表示信號流的方向,一條有向邊被描述為Name[A-B];其中A、B分別是起始點A和終止點B,符號Ei(v)和Eo(v)分別表示連接至頂點v的輸入端子的有向邊集和輸出端子的有向邊集。
4、根據(jù)權(quán)利要求1所述的基于“圖”編碼的組合邏輯電路的自動合成方法,其特征在于所述的添加邊操作算子的執(zhí)行過程是隨機(jī)選擇兩個不同的頂點v1、v2∈V,在這兩個頂點之間增加一條有向邊,并修改頂點v1,v2的值。
5、根據(jù)權(quán)利要求1所述的基于“圖”編碼的組合邏輯電路的自動合成方法,其特征在于所述的刪除邊操作算子的執(zhí)行過程是隨機(jī)選擇兩個不同的頂點v3、v4∈V,在兩個頂點之間隨機(jī)刪除一條邊e1∈Ei(v3)∩Eo(v4),并修改頂點v3、v4的值。
6、根據(jù)權(quán)利要求1所述的基于“圖”編碼的組合邏輯電路的自動合成方法,其特征在于所述的修改邊操作算子的執(zhí)行過程是首先隨機(jī)選取三個頂點v5、v6、v7∈V,然后隨機(jī)選取其中兩個頂點v5和v6之間的有向邊e2,如果e2∈Ei(v5)∩Eo(v6),則將e2刪除,并新增加一有向邊e3[v7-v5],最后修改v6和v7的值。
7、根據(jù)權(quán)利要求1所述的基于“圖”編碼的組合邏輯電路的自動合成方法,其特征在于所述的添加頂點操作算子的執(zhí)行過程是隨機(jī)選取一個頂點v8∈V,然后添加一個新頂點v9∈VMID,使v9的各個端子均與v8連接。
8、根據(jù)權(quán)利要求1所述的基于“圖”編碼的組合邏輯電路的自動合成方法,其特征在于所述的刪除頂點操作算子的執(zhí)行過程是首先隨機(jī)選中一個頂點v10∈VMID,同時刪除該頂點以及與該頂點相連接的所有有向邊,最后修改所有與頂點v10連接的頂點的值。
9、根據(jù)權(quán)利要求1所述的基于“圖”編碼的組合邏輯電路的自動合成方法,其特征在于所述的串聯(lián)操作算子的執(zhí)行過程是隨機(jī)選中一條邊e4[vstart-vend],添加一個新頂點v11∈VMID,同時e4[vstart-vend]被刪除,兩個新的有向邊e5[vstart-v11]∈Ei(v11)和e6[v11-vend]∈Eo(v11)被加入E。
10、根據(jù)權(quán)利要求1所述的基于“圖”編碼的組合邏輯電路的自動合成方法,其特征在于所述的反串聯(lián)操作算子的執(zhí)行過程是隨機(jī)刪除一頂點v12及其Ei(v12)和Eo(v12),將一對有向邊e7[vstart-v12]∈Ei(v12)和e8[v12-vend]∈Eo(v12)合并為一條新的有向邊e9[vstart-vend]。
全文摘要
本發(fā)明涉及一種基于“圖”編碼的組合邏輯電路的自動合成方法。其方案是用“有向圖”表示組合邏輯電路,設(shè)定組合邏輯電路的真值表和最大循環(huán)次數(shù),隨機(jī)產(chǎn)生N個個體形成種群P,評估種群P中所有個體的性能,選親和力高的n個個體形成臨時種群PS,對臨時種群PS克隆形成克隆種群PC,對克隆種群PC修改形成變異種群PM,評估變異種群PM,選出m個親和力高的個體形成重選種群PR,替換種群P中親和力低的個體形成次新種群PN,隨機(jī)產(chǎn)生d個新個體替換次新種群PN中親和力低的個體形成新種群PT;對新種群PT按種群P的評估方法進(jìn)行評估,依此循環(huán),直到最大循環(huán)次數(shù)為止。本發(fā)明具有高效自動生成任意組合邏輯電路和編碼效率高的特點。
文檔編號H03K19/00GK101576735SQ20091006198
公開日2009年11月11日 申請日期2009年5月5日 優(yōu)先權(quán)日2009年5月5日
發(fā)明者甘朝暉, 綱 史, 濤 尚, 旻 蔣, 朱平平, 蔣戀華 申請人:武漢科技大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1