姚茂群,馮杰,劉志強(qiáng),李聰輝
(杭州師范大學(xué)信息科學(xué)與技術(shù)學(xué)院,浙江 杭州 311121)
共振隧穿二極管(resonant tunneling diode,RTD)是一種比較成熟的量子器件,可用來(lái)解決傳統(tǒng)CMOS電路因工藝尺寸逼近物理極限而出現(xiàn)的熱耗散、短溝道效應(yīng)和量子力學(xué)效應(yīng)等一系列問(wèn)題[1-4]。RTD具有工作頻率高、功耗低、能自鎖和負(fù)內(nèi)阻等特性,非常適合數(shù)字集成電路設(shè)計(jì)[5-6],特別是其負(fù)內(nèi)阻特性,在閾值邏輯電路設(shè)計(jì)中具有顯著優(yōu)勢(shì)[7-8]。RTD可編程邏輯門(mén)是一類(lèi)特殊的閾值電路,通過(guò)該邏輯門(mén)可實(shí)現(xiàn)任意的n變量邏輯函數(shù)[9]。RTD可編程邏輯門(mén)由單雙穩(wěn)態(tài)轉(zhuǎn)換邏輯單元(monostable bistable transition logic element,MOBILE)、n個(gè)正輸入分支以及n個(gè)負(fù)輸入分支組成,其中MOBILE利用RTD設(shè)計(jì),是閾值電路的重要邏輯單元[10-13]。由于二進(jìn)制神經(jīng)元模型與閾值邏輯門(mén)具有一定的相似性,因此可利用二進(jìn)制神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)任意n變量邏輯函數(shù)[14-15]。二進(jìn)制神經(jīng)網(wǎng)絡(luò)由輸入層、隱層和輸出層三層網(wǎng)絡(luò)結(jié)構(gòu)組成[16]。文獻(xiàn)[9]和文獻(xiàn)[17]均基于三層網(wǎng)絡(luò)結(jié)構(gòu),提出RTD可編程邏輯門(mén)的函數(shù)綜合算法,且文獻(xiàn)[17]算法較文獻(xiàn)[9]算法的效率更高、設(shè)計(jì)的電路更簡(jiǎn)單,但仍存在不足。本文將基于新的定理,提出一種n變量函數(shù)實(shí)現(xiàn)算法,能有效解決文獻(xiàn)[17]算法的不足,且算法準(zhǔn)確性更高、設(shè)計(jì)的電路更簡(jiǎn)單。
基于RTD的閾值電路結(jié)構(gòu)通常由MOBILE和輸入分支組成[11-12]。MOBILE可由2個(gè)RTD串聯(lián)得到,電路圖如圖1所示。在圖1中,位于上方的RTD為負(fù)載管,位于下方的RTD為驅(qū)動(dòng)管,Vclk為時(shí)鐘電壓[19],y為輸出端。由于當(dāng)RTD的電流密度一定時(shí),RTD的波峰電流與其面積成正比,且波峰電流較小的RTD先進(jìn)入負(fù)阻區(qū),呈現(xiàn)的阻抗較大,故電路的輸出y取決于負(fù)載管和驅(qū)動(dòng)管的面積[6]。當(dāng)負(fù)載管的面積比驅(qū)動(dòng)管的面積小時(shí),y輸出低電平;反之,y輸出高電平。當(dāng)MOBILE加入輸入分支時(shí),便可實(shí)現(xiàn)閾值電路。輸入分支由RTD和HFET的串聯(lián)結(jié)構(gòu)組成[20]。當(dāng)輸入分支與負(fù)載管并聯(lián)時(shí),稱(chēng)為正輸入分支;當(dāng)輸入分支與驅(qū)動(dòng)管并聯(lián)時(shí),稱(chēng)為負(fù)輸入分支。RTD可編程邏輯門(mén)電路如圖2所示,其中A表示RTD的單位面積,c1~c2n表示輸入端信號(hào)。該RTD由n個(gè)正輸入分支、n個(gè)負(fù)輸入分支和MOBILE組成,稱(chēng)其為n輸入RTD可編程邏輯門(mén)[21],其輸入輸出關(guān)系可表示為
圖1 MOBILE電路圖Fig.1 The circuit of MOBILE
圖2 RTD可編程邏輯門(mén)及其電路符號(hào)Fig.2 RTD programmable logic gate and its circuit symbols
采用如圖2所示的RTD可編程邏輯門(mén)可實(shí)現(xiàn)任意n變量函數(shù)[9]。同時(shí)采用定理1和定理2方法,可提高算法的準(zhǔn)確性,且電路更簡(jiǎn)單。
二進(jìn)制神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)分為輸入層、隱層和輸出層3層[16,21]。其中,輸入層的作用是對(duì)輸入信號(hào)進(jìn)行整形,以保證輸入信號(hào)時(shí)序一致;隱層是網(wǎng)絡(luò)的核心,實(shí)現(xiàn)所需的邏輯功能;輸出層用于處理隱層結(jié)果,以得到正確的輸出。目前,已有不少實(shí)現(xiàn)邏輯函數(shù)的3層網(wǎng)絡(luò)結(jié)構(gòu)算法[14-15],但得到的邏輯函數(shù)其閾值和權(quán)值的取值范圍過(guò)大,不利于電路設(shè)計(jì)。
由于利用一個(gè)n輸入RTD可編程邏輯門(mén)能實(shí)現(xiàn)符合定理1的任意n變量函數(shù)[9],可在隱層中對(duì)輸入向量的真假性進(jìn)行變換,并在輸出層中進(jìn)行糾錯(cuò)處理。文獻(xiàn)[9]采用定理1提出的隱層及輸出層算法,雖然可實(shí)現(xiàn)任意n變量函數(shù),且能用RTD可編程邏輯門(mén)設(shè)計(jì)電路,但效率較低,設(shè)計(jì)的電路也較復(fù)雜。文獻(xiàn)[17]對(duì)文獻(xiàn)[9]的算法進(jìn)行了改進(jìn),使設(shè)計(jì)的電路較簡(jiǎn)單,但算法尚存在以下不足:
(1)由于假向量對(duì)隱層函數(shù)的權(quán)重?zé)o影響,若將輸入向量真假性變換次數(shù)均加1,可能導(dǎo)致算法出錯(cuò)。
(2)在被覆蓋的所有真向量中,未考慮真假性變換次數(shù)的奇偶性。
本文提出的n變量函數(shù)實(shí)現(xiàn)算法,能較好地解決文獻(xiàn)[17]算法的不足,且準(zhǔn)確性更高,設(shè)計(jì)的電路更簡(jiǎn)單。
算法基本框架:在隱層中,產(chǎn)生隱層函數(shù),實(shí)現(xiàn)所需的邏輯功能;在輸出層中,產(chǎn)生輸出層函數(shù),調(diào)整隱層的結(jié)果,得到正確的輸出[21]。隱層函數(shù)的產(chǎn)生是算法的關(guān)鍵,可采用定理1及定理2方法實(shí)現(xiàn),但需將某些假向量臨時(shí)看作真向量,其核心向量可為真向量,也可為假向量。產(chǎn)生隱層函數(shù)后,被覆蓋的向量需根據(jù)真假性變換情況對(duì)其復(fù)原。
按照漢明距離從大到小搜索所有輸入向量。當(dāng)漢明距離不為1和0,且滿(mǎn)足可產(chǎn)生隱層函數(shù)的條件時(shí),采用定理1方法產(chǎn)生隱層函數(shù);當(dāng)漢明距離為1,且滿(mǎn)足可產(chǎn)生隱層函數(shù)的條件時(shí),采用定理2方法產(chǎn)生隱層函數(shù)。由于定理2中的閾值函數(shù)出現(xiàn)了權(quán)值為±2的項(xiàng),為防止RTD可編程邏輯門(mén)中出現(xiàn)較多無(wú)實(shí)際作用的輸入端,需判斷該隱層函數(shù)能否使用n+1輸入的RTD可編程邏輯門(mén)。
算法中的記號(hào)如下:
chi表示輸入向量Xi的變換次數(shù);
d表示漢明距離;
si表示將輸入向量Xi當(dāng)作核心向量進(jìn)行覆蓋時(shí),被覆蓋的向量中chi為正的向量數(shù);
ti表示將輸入向量Xi當(dāng)作核心向量進(jìn)行覆蓋時(shí),被覆蓋的向量中chi為負(fù)的向量數(shù);
li表示將輸入向量Xi當(dāng)作核心向量進(jìn)行覆蓋時(shí),被覆蓋的向量數(shù);
g表示隱層函數(shù);
k表示某隱層函數(shù)在輸出層中的權(quán)重,簡(jiǎn)稱(chēng)為隱層函數(shù)權(quán)重;
f表示輸出層函數(shù);
best_vector 1表示最優(yōu)輸入向量,且用該最優(yōu)向量判斷其能否作為定理1中的核心向量;
best_vector 2表示最優(yōu)輸入向量,且用該最優(yōu)向量判斷其能否作為定理2中的核心向量。
首先,對(duì)所有真向量的chi標(biāo)記為+1,對(duì)所有假向量的chi標(biāo)記為0。在采用定理1方法產(chǎn)生隱層函數(shù)時(shí),若該隱層函數(shù)的權(quán)重為+1,則對(duì)所有被其覆蓋的向量的chi-1;若該隱層函數(shù)權(quán)重為 -1,則對(duì)所有被其覆蓋的向量的chi+1。當(dāng)采用定理2方法產(chǎn)生隱層函數(shù)時(shí),若該隱層函數(shù)的權(quán)重為+1,則對(duì)所有被其覆蓋的真向量(不包括核心向量)及核心向量(不管真假)的chi-1;若該隱層函數(shù)的權(quán)重為-1,則對(duì)所有被其覆蓋的真向量(不包括核心向量)及核心向量(不管真假)的chi+1。
輸入向量的真假性可由chi確定:若chi為0,則為假向量;若chi非0,則為真向量。
當(dāng)以某個(gè)漢明距離搜索所有向量時(shí),由于可能需同時(shí)判斷多個(gè)輸入向量能否作為核心向量,因此需選擇其中最優(yōu)的輸入向量。在判斷能否作為定理1中的核心向量時(shí),選擇其中被覆蓋的假向量最多的為最優(yōu)輸入向量。如果仍存在多個(gè),則選擇chi絕對(duì)值最小的為最優(yōu)輸入向量,記為best_vector 1。在判斷能否作為定理2中的核心向量時(shí),選擇其中被覆蓋的假向量最多的為最優(yōu)輸入向量。如果仍存在多個(gè),則選擇ωi最小、且chi不為0的為最優(yōu)輸入向量;若chi均為0,則選擇ωi最小的為最優(yōu)輸入向量,記為best_vector 2。其中,
在被覆蓋的向量中,若chi為正的向量比為負(fù)的多,則隱層函數(shù)權(quán)重+1;若chi為負(fù)的向量比為正的多,則隱層函數(shù)權(quán)重-1;若chi為正的向量與為負(fù)的一樣多,則對(duì)這些向量的chi求和,若求和后的值為負(fù),則隱層函數(shù)權(quán)重-1,若求和后的值為正或0,則隱層函數(shù)權(quán)重+1。
例 1若四變量函數(shù)f(x1,x2,x3,x4)的卡諾圖如圖3所示,試通過(guò)算法實(shí)現(xiàn)該四變量函數(shù)。
圖3 四變量函數(shù) f(x1,x2,x3,x4)的卡諾圖Fig.3 Karnaugh map of four-variable function
將所有輸入向量Xi中真向量的chi設(shè)為+1,假向量的chi設(shè)為0。由于變量數(shù)大于2,先執(zhí)行步驟(3)~步驟(8)的循環(huán)。以d1=[(n+1)/2]=2作為漢明距離,將每個(gè)輸入向量Xi依次作為核心向量,得到的|max{si,ti}|為6。該值對(duì)應(yīng)的輸入向量有X1,X5,X8,X9和X13,可選X5或X8作為 best_vector 1。將X5作為核心向量,由于|2max{s5,t5}|=12>l5=11,因此采用定理1方法產(chǎn)生隱層函數(shù)g1,隱層函數(shù)權(quán)重為k1=+1。更改向量的 chi:向量X0,X5,X6,X7和X15的 chi減 1 后變?yōu)椋?,向量X1,X3,X4,X9,X12和X13的chi減1后變?yōu)?。同理,此時(shí)d2=[(n+1)/2]=2,可 得 到 最 優(yōu) 向 量X9,X10或X12。 由 于|2max{s9,t9}|=10<l9=11,故以 1作為漢明距離,將每個(gè)輸入向量Xi依次作為核心向量,得到|max{si,ti}|=4。該值對(duì)應(yīng)的輸入向量為X7,并將X7作為 best_vector 2。由于|max{s7,t7}|>1,因此執(zhí)行步驟(13)~步驟(20)的循環(huán)。以X7作為核心向量,用定理2方法產(chǎn)生函數(shù)y。由于函數(shù)y可用(4+1)輸入的RTD可編程邏輯門(mén)實(shí)現(xiàn),故可產(chǎn)生隱層函數(shù)g2,隱層函數(shù)權(quán)重k2=-1。更改向量的chi:向量X5,X6,X7和X15的 chi加 1 后變?yōu)?0,此時(shí),|max{si,ti}|=1,執(zhí)行步驟(22),可得到隱層函數(shù)g3,g4及隱層函數(shù)權(quán)重k3=-1,k4=+1。
得到的隱層函數(shù)為:
輸出層函數(shù)為
采用本文算法得到的隱層函數(shù)和輸出層函數(shù)電路如圖4所示。在圖4中,隱層函數(shù)g1,g2,g3和g4的電路用時(shí)鐘信號(hào)Vclk1實(shí)現(xiàn),輸出層函數(shù)f的電路用時(shí)鐘信號(hào)Vclk2實(shí)現(xiàn)。當(dāng)時(shí)鐘信號(hào)Vclk1處于上升沿時(shí),電路輸出隱層函數(shù)g1,g2,g3和g4的結(jié)果;當(dāng)時(shí)鐘信號(hào)Vclk2處于上升沿時(shí),電路輸出輸出層函數(shù)f的結(jié)果。對(duì)圖4所示的電路進(jìn)行HSPICE仿真,結(jié)果如圖5所示。可知,用本文算法設(shè)計(jì)的電路輸出結(jié)果正確,該電路共用了5個(gè)RTD可編程邏輯門(mén),其中,2個(gè)為三輸入RTD可編程邏輯門(mén)、1個(gè)為二輸入RTD可編程邏輯門(mén)、2個(gè)為四輸入RTD可編程邏輯門(mén)。而文獻(xiàn)[17]算法在漢明距離為1時(shí),由于存在多個(gè)可選的輸入向量,若選擇不同的輸入向量作為核心向量,則得到不同的結(jié)果,且設(shè)計(jì)的最優(yōu)電路需要6個(gè)RTD可編程邏輯門(mén),其中,5個(gè)為三輸入RTD可編程邏輯門(mén)、1個(gè)為四輸入RTD可編程邏輯門(mén)。采用本文算法得到的電路較文獻(xiàn)[17]方法少用了1個(gè)RTD可編程邏輯門(mén),電路更簡(jiǎn)單。
圖4 四變量函數(shù)實(shí)現(xiàn)電路Fig.4 Realization circuit of four-variable function
圖5 四變量函數(shù)實(shí)現(xiàn)電路的HSPICE仿真Fig.5 HSPICE simulation of realization circuit of four-variable function
例 2若五變量函數(shù)f(x1,x2,x3,x4,x5)的卡諾圖如圖6所示,試通過(guò)算法實(shí)現(xiàn)該五變量函數(shù)。
圖6 五變量函數(shù) f(x1,x2,x3,x4,x5)的卡諾圖Fig.6 Karnaugh map of five-variable function
將所有輸入向量Xi中真向量的chi設(shè)為 +1,假向量的chi設(shè)為0,d1=[(n+1)/2]=3。執(zhí)行步驟(4)和步驟(5),可找到 best_vector 1為X18。由于|2max{s18,t18}|=34>l8=26,可產(chǎn)生隱層函數(shù)g1,隱層函數(shù)權(quán)重k1=+1。更改相應(yīng)向量的chi后,由于max{si,ti}=9,d2=d2-1=2,再執(zhí)行步驟(4),可找到 best_vector 1為X18。由于|2max{s18,t18}|=14<l18=16,d2=d2-1=1。執(zhí)行步驟(11)和步驟(12),可得|max{si,ti}|=4,對(duì)應(yīng)的輸入向量為X16和X19;由于ω19=1<ω16=3,故選擇X19作 為best_vector 2。再執(zhí)行步驟(14)~步驟(16),可得隱層函數(shù)g2,隱層函數(shù)權(quán)重k2=-1。更改相應(yīng)向量的 chi后 ,再執(zhí)行步驟(17)和步驟(18),可得best_vector 2 為X20。由于|max{s20,t20}|=3,執(zhí)行步驟(14)~步驟(16),可得隱層函數(shù)g3,隱層函數(shù)權(quán)重k3=-1。更改相應(yīng)向量的 chi,此時(shí),|max{si,ti}|=1,執(zhí)行步驟(22),可得隱層函數(shù)g4,g5和g6,隱層函數(shù)權(quán)重k4=-1,k5=-1,k6=+1。
得到的隱層函數(shù)為:
輸出層函數(shù)為
由隱層函數(shù)和輸出層函數(shù)設(shè)計(jì)的電路如圖7所示。在圖7中,利用時(shí)鐘信號(hào)Vclk1實(shí)現(xiàn)隱層函數(shù)g1,g2,g3,g4,g5和g6,利用時(shí)鐘信號(hào)Vclk2實(shí)現(xiàn)輸出層函數(shù)f。當(dāng)時(shí)鐘信號(hào)Vclk1處于上升沿時(shí),輸出隱層函數(shù)g1,g2,g3,g4,g5和g6的結(jié)果;當(dāng)時(shí)鐘信號(hào)Vclk2處于上升沿時(shí),輸出輸出層函數(shù)f的結(jié)果。對(duì)圖7所示電路進(jìn)行HSPICE仿真,其結(jié)果如圖8所示??芍?,采用本文算法設(shè)計(jì)的電路具有正確的輸出結(jié)果,用7個(gè)RTD可編程邏輯門(mén)即可實(shí)現(xiàn),即1個(gè)六輸入RTD可編程邏輯門(mén)、4個(gè)四輸入RTD可編程邏輯門(mén)和2個(gè)五輸入RTD可編程邏輯門(mén);采用文獻(xiàn)[17]算法設(shè)計(jì)的最優(yōu)電路需要11個(gè)RTD可編程邏輯門(mén):1個(gè)五輸入RTD可編程邏輯門(mén)和10個(gè)四輸入RTD可編程邏輯門(mén)[21]。采用本文算法設(shè)計(jì)的電路較文獻(xiàn)[17]算法少用了4個(gè)RTD可編程邏輯門(mén),電路更簡(jiǎn)單。
圖7 五變量函數(shù)實(shí)現(xiàn)電路Fig.7 Realization circuit of five-variable function
圖8 五變量函數(shù)實(shí)現(xiàn)電路的HSPICE仿真Fig.8 HSPICE simulation of realization circuit of five-variable function
基于二進(jìn)制神經(jīng)元模型中的三層網(wǎng)絡(luò)結(jié)構(gòu)及相關(guān)定理,提出了基于RTD可編程邏輯門(mén)的n變量函數(shù)實(shí)現(xiàn)算法,很好地解決了文獻(xiàn)[17]算法的不足,且準(zhǔn)確性更高,設(shè)計(jì)的電路也更簡(jiǎn)單,特別是當(dāng)變量數(shù)較多時(shí),優(yōu)勢(shì)更明顯。