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