張立寧 胡偉晨 王新安 崔小樂(lè)*②
①(北京大學(xué)深圳研究生院集成微系統(tǒng)重點(diǎn)實(shí)驗(yàn)室 深圳 518055)
②(鵬城實(shí)驗(yàn)室 深圳 518055)
隨著信息技術(shù)行業(yè)的高速發(fā)展,電子設(shè)備的功能日益復(fù)雜,對(duì)電路集成度的需求逐漸提升,集成電路(Integrated Circuit, IC)設(shè)計(jì)成本也會(huì)升高。為了解決這些問(wèn)題,基于知識(shí)產(chǎn)權(quán)(Intellectual Property, IP)復(fù)用的設(shè)計(jì)方法越來(lái)越多地被IC設(shè)計(jì)公司使用。芯片設(shè)計(jì)者只需修改IP核模塊中的部分參數(shù)即可將其重復(fù)應(yīng)用于大型電路設(shè)計(jì)中,從而大大降低了設(shè)計(jì)周期和設(shè)計(jì)成本。然而,基于IP核復(fù)用的設(shè)計(jì)方法也導(dǎo)致行業(yè)中出現(xiàn)了一些侵權(quán)行為,例如IP盜用、偽造等。為了解決IP核的版權(quán)問(wèn)題,業(yè)界提出了硬件偽裝、水印、指紋、邏輯鎖等硬件保護(hù)方案。通過(guò)在普通的電路模塊中嵌入僅設(shè)計(jì)者可知的水印、指紋等硬件模塊,當(dāng)IP核遭到盜版時(shí),IP設(shè)計(jì)者可以通過(guò)提取其中的水印和指紋信息來(lái)證明其原始版權(quán)。多功能電路是實(shí)現(xiàn)硬件水印、指紋、邏輯鎖的有效方法,因?yàn)樗鼈兛梢栽诒A綦娐纺K原始功能的同時(shí)擴(kuò)展新的功能,使硬件保護(hù)方案更加靈活。
傳統(tǒng)的多功能電路是通過(guò)開(kāi)關(guān)或多路選擇器在多個(gè)獨(dú)立的常規(guī)子電路之間進(jìn)行選擇來(lái)實(shí)現(xiàn)的,往往帶來(lái)較大的面積開(kāi)銷(xiāo)。2001年,Stoica等人[1]提出了多態(tài)電子學(xué),通過(guò)在同一個(gè)電路結(jié)構(gòu)中嵌入兩個(gè)或更多的內(nèi)置功能,實(shí)現(xiàn)利用如溫度、電源電壓、外部控制電壓等外部信號(hào)來(lái)完成不同邏輯功能的切換。與傳統(tǒng)可重構(gòu)電路相比,多態(tài)電路無(wú)需通過(guò)改變和重新配置電路結(jié)構(gòu)即可改變電路功能。在實(shí)現(xiàn)相同功能的情況下,多態(tài)電路使用的器件更少,具有更緊湊的電路結(jié)構(gòu)和更小的面積開(kāi)銷(xiāo)。目前,多態(tài)電路在電路自測(cè)試[2]、自適應(yīng)電路系統(tǒng)[3]等許多領(lǐng)域都有所應(yīng)用。
2008年,Ruzicka等人[2]基于AMIS 0.7μm CMOS工藝設(shè)計(jì)出電源電壓控制的多態(tài)門(mén)。同年Starecek等人[4]提出了外部信號(hào)電壓控制的多態(tài)門(mén)。2016年,Suarez等人[5]提出了一系列基于控制信號(hào)電壓的多態(tài)門(mén),包括NOR/AND門(mén)、OR/NAND門(mén)等。2018年,Wang等人[6]基于SMIC 130 nm CMOS工藝,提出了一系列基于溫度控制的多態(tài)門(mén)。同年Nevoral等人[7]利用進(jìn)化算法和Hspice仿真工具,基于45 nm CMOS工藝,生成了基于控制信號(hào)電壓控制的完整的兩功能多態(tài)門(mén)庫(kù)。這些基于CMOS器件設(shè)計(jì)的多態(tài)電路的結(jié)構(gòu)往往也比較復(fù)雜。新型器件,如雙極器件、納米電子結(jié)構(gòu)和阻變存儲(chǔ)器(Resistive Random Access Memory,RRAM)在設(shè)計(jì)多態(tài)電路方面的潛力也被研究人員廣泛探索。2014年,Bi等人[8]提出使用具有雙極性的硅納米線(xiàn)場(chǎng)效應(yīng)晶體管(SiNW FET)器件來(lái)設(shè)計(jì)多態(tài)門(mén)。2017年,Parveen等人[9]提出了使用5端口多層磁性疇壁運(yùn)動(dòng)(Domain Wall Motion, DWM)器件實(shí)現(xiàn)可重構(gòu)的兩輸入全功能數(shù)字邏輯門(mén)。2018年,Rezaei等人[10]提出通過(guò)改變電路中RRAM的電阻值來(lái)調(diào)整多態(tài)門(mén)的功能。同年,Macha等人[11]提出利用納米金屬線(xiàn)間的確定性串?dāng)_實(shí)現(xiàn)多態(tài)門(mén)。2022年,Macha等人[12]提出了一種基于串?dāng)_ (CrossTalk,CT) 計(jì)算的新型多態(tài)電路設(shè)計(jì)方法。2023年,Karempudi等人[13]提出基于電光效應(yīng)的多態(tài)邏輯門(mén),可以用于高速可重構(gòu)計(jì)算電路中。
鐵電場(chǎng)效應(yīng)晶體管(Ferroelectric Field-Effect Transistor, FeFET)是一種被廣泛研究的兼具存儲(chǔ)和計(jì)算功能的新型器件,文獻(xiàn)[14]提出一種基于FeFET的新型存儲(chǔ)器單元設(shè)計(jì),該設(shè)計(jì)可以在不同的操作模式下實(shí)現(xiàn)高性能的存儲(chǔ)和計(jì)算功能。FeFET近些年也常被當(dāng)作神經(jīng)網(wǎng)絡(luò)的突觸用于存內(nèi)計(jì)算中。例如文獻(xiàn)[15]就提出一種基于FeFET的1T1R陣列的模擬內(nèi)存計(jì)算方法,用于邊緣人工智能應(yīng)用。文獻(xiàn)[16]提出了鐵電電容的動(dòng)態(tài)緊湊模型。鐵電材料具有獨(dú)特的鐵電性質(zhì),可以在外加電場(chǎng)作用下改變其晶格結(jié)構(gòu)和電荷分布狀態(tài),從而實(shí)現(xiàn)電阻、電容等電學(xué)特性的可控調(diào)節(jié)。此外鐵電材料的極化強(qiáng)度和介電常數(shù)也會(huì)受到溫度的影響。當(dāng)溫度高于某一臨界溫度時(shí),晶體的鐵電性會(huì)消失。因此有學(xué)者提出可以將FeFET作為電路的基本單元來(lái)設(shè)計(jì)多態(tài)門(mén),但目前還沒(méi)有通用的設(shè)計(jì)方法以及較豐富的具體設(shè)計(jì)實(shí)例。因此本文將FeFET這一新器件用于多態(tài)電路的實(shí)現(xiàn)中,并基于文獻(xiàn)[16]提出的模型發(fā)展出一套基于免疫算法設(shè)計(jì)的完整的FeFET多態(tài)門(mén)的算法和流程。
FeFET的基本結(jié)構(gòu)和傳統(tǒng)的MOSFET類(lèi)似,包括源極、漏極、柵極等部分。其柵極處覆蓋了一層鐵電材料薄膜,可以通過(guò)調(diào)節(jié)鐵電材料的極化方向來(lái)改變柵極處的電勢(shì)分布,從而控制電流的流動(dòng)。它具有低功耗、非易失性、快速響應(yīng)、高密度、可重復(fù)寫(xiě)入、抗輻射性等優(yōu)點(diǎn)。FeFET的結(jié)構(gòu)與MOSFET很相似,也可以用于邏輯計(jì)算。在其柵端施加不同幅值或?qū)挾鹊拿}沖電壓可以實(shí)現(xiàn)對(duì)FeFET電導(dǎo)的調(diào)節(jié)。這一特性與多態(tài)電路的器件對(duì)于電壓的依賴(lài)性這一底層原理較為契合,因此本文選擇FeFET這一新器件作為多態(tài)電路的基本單元進(jìn)行研究。
免疫算法是一種基于人類(lèi)免疫系統(tǒng)原理的計(jì)算方法,其核心思想是通過(guò)模擬人類(lèi)免疫系統(tǒng)中抗體、克隆、選擇和進(jìn)化等基本機(jī)制來(lái)進(jìn)行計(jì)算,具有自適應(yīng)性、多樣性、局部搜索能力強(qiáng)以及適應(yīng)于多種問(wèn)題的特點(diǎn)。它是一種全局優(yōu)化算法,主要用于求解復(fù)雜的多目標(biāo)優(yōu)化問(wèn)題,例如文獻(xiàn)[17]提出基于免疫算法的多目標(biāo)優(yōu)化方法,該方法能夠有效地處理具有許多決策變量和目標(biāo)函數(shù)的復(fù)雜問(wèn)題。
數(shù)字邏輯電路的傳統(tǒng)設(shè)計(jì)方法在多態(tài)電路的設(shè)計(jì)上會(huì)受到限制。首先,多態(tài)電路和傳統(tǒng)數(shù)字電路對(duì)一些參數(shù)的考量不同,例如溫度的變化在傳統(tǒng)數(shù)字電路設(shè)計(jì)中通常會(huì)被忽略,而在多態(tài)電路的設(shè)計(jì)中,溫度可能會(huì)是一個(gè)重要的控制信號(hào)。其次,多態(tài)電路內(nèi)部器件單元間的拓?fù)浣Y(jié)構(gòu)和單元尺寸參數(shù)與傳統(tǒng)數(shù)字電路中規(guī)律性的參數(shù)有很大區(qū)別,通常很難靠人工設(shè)計(jì),因此需要采取其他設(shè)計(jì)方法生成多態(tài)電路。由于多態(tài)電路的設(shè)計(jì)可以在沒(méi)有設(shè)計(jì)規(guī)則的情況下進(jìn)行,只需要對(duì)生成的電路進(jìn)行評(píng)估和排序,若電路滿(mǎn)足需求即可視作設(shè)計(jì)成功。這種特性使得多態(tài)電路生成的問(wèn)題非常適合進(jìn)化算法。遺傳算法是進(jìn)化算法中常用的一種,算法的基本思想與進(jìn)化算法一致,常用來(lái)解決實(shí)際問(wèn)題的最優(yōu)解問(wèn)題,以往的多態(tài)門(mén)通常是由遺傳算法得到的。免疫算法和遺傳算法都是基于生物學(xué)的啟發(fā)式優(yōu)化算法,它相較于遺傳算法具有處理多峰優(yōu)化問(wèn)題更為有效、抗噪聲能力更強(qiáng)、搜索速度更快以及可以更好地處理離散問(wèn)題等優(yōu)勢(shì)。由于FeFET之前并沒(méi)有應(yīng)用于多態(tài)電路的設(shè)計(jì)中,缺乏一些先驗(yàn)條件,為了避免算法陷入局部最優(yōu)從而無(wú)法得到我們想要的多態(tài)門(mén),我們選擇免疫算法這樣一種全局尋優(yōu)能力更強(qiáng)的算法作為FeFET多態(tài)門(mén)的設(shè)計(jì)算法。
在使用免疫算法解決實(shí)際問(wèn)題之前,需要確定算法的設(shè)計(jì)目標(biāo)。針對(duì)多態(tài)門(mén)設(shè)計(jì)這個(gè)實(shí)際問(wèn)題,算法的設(shè)計(jì)目標(biāo)即為設(shè)計(jì)出滿(mǎn)足要求的數(shù)字邏輯功能的電路結(jié)構(gòu),如AND/OR多態(tài)門(mén)或XOR/NOR多態(tài)門(mén)等。此外,還可以考慮包括電路中使用的器件和工藝、結(jié)構(gòu)中包含的器件數(shù)量等其他要求。然后,需要將實(shí)際問(wèn)題中的信息與免疫算法能夠處理的字符串對(duì)應(yīng)起來(lái),這個(gè)對(duì)應(yīng)的過(guò)程稱(chēng)為編碼。在免疫算法中,選擇適當(dāng)?shù)木幋a方式非常重要,可以更方便地表示實(shí)際問(wèn)題的信息。
為了設(shè)計(jì)FeFET多態(tài)門(mén),每個(gè)電路結(jié)構(gòu)應(yīng)當(dāng)被編碼以包含源極、漏極和柵極的連接關(guān)系以及溝道的長(zhǎng)度和寬度,這些信息可以分為電路拓?fù)浣Y(jié)構(gòu)和器件參數(shù)兩個(gè)方面。本文采用浮點(diǎn)編碼方式進(jìn)行FeFET多態(tài)門(mén)的編碼。在這種編碼方式下,對(duì)于一個(gè)完整的電路拓?fù)浣Y(jié)構(gòu),每個(gè)端口都會(huì)與另一個(gè)或多個(gè)端口連接。如圖1(a)所示,為了簡(jiǎn)化表示,將每個(gè)端口編號(hào),并使用數(shù)組來(lái)存儲(chǔ)端口之間的連接關(guān)系。具體地,對(duì)于所有FeFET器件的源極、漏極、柵極以及輸入端、輸出端、電源端、接地端和控制電壓端(如果是外部控制條件下的多態(tài)門(mén)),依次進(jìn)行編號(hào),并建立一個(gè)數(shù)組,其大小為Fe-FET器件數(shù)量的3倍。通過(guò)數(shù)組的索引值和存儲(chǔ)值的對(duì)應(yīng)關(guān)系,可以表示電路中端口與端口之間的連接關(guān)系,例如,數(shù)組的索引1位置上存儲(chǔ)的數(shù)字為12,這代表編號(hào)1對(duì)應(yīng)的端口連接到編號(hào)12對(duì)應(yīng)的端口上。這樣,電路拓?fù)浣Y(jié)構(gòu)中各個(gè)端口的連接關(guān)系就被編碼完成了。為了提高效率,方便表達(dá),本文對(duì)于器件參數(shù)部分為每個(gè)晶體管的溝道寬度、長(zhǎng)度指定特定的取值范圍,使這些參數(shù)只能選取有限的分立取值,即特定工藝條件下最小尺寸的整數(shù)倍。如圖1(b)所示,建立這些分立取值與有限整數(shù)集合間的一一映射關(guān)系,可實(shí)現(xiàn)尺寸基因的整數(shù)編碼。最后將電路拓?fù)浣Y(jié)構(gòu)和器件參數(shù)編碼的字符串連在一起便是完整的抗體編碼。
圖1 FeFET多態(tài)門(mén)編碼方式
免疫算法的初始群體生成是其成功應(yīng)用的重要因素之一,通常有兩種主要的初始群體生成方式。第1種是隨機(jī)生成法,即通過(guò)完全隨機(jī)的方式生成一組字符串作為初始群體。這種方式不需要對(duì)初始群體施加太多的限制條件,也無(wú)需獲取先驗(yàn)結(jié)果,但是由于具有一定的隨機(jī)性,可能會(huì)導(dǎo)致需要進(jìn)化很多代才能出現(xiàn)滿(mǎn)足設(shè)計(jì)要求的個(gè)體。另一種是通過(guò)一些先驗(yàn)結(jié)果來(lái)設(shè)置初始群體生成的限制條件,從而獲得較小的解空間來(lái)搜索得到初始群體。這種方式得到的初始群體能夠更好地滿(mǎn)足設(shè)計(jì)目標(biāo)的要求,從而提高算法的收斂性,但是也可能導(dǎo)致算法運(yùn)行過(guò)程中易于陷入局部最優(yōu)。對(duì)于FeFET多態(tài)門(mén)設(shè)計(jì),由于缺乏先驗(yàn)條件,目前采用隨機(jī)生成法作為初始群體的生成方式。但是,在實(shí)驗(yàn)基礎(chǔ)逐漸積累的情況下,可以通過(guò)一些先驗(yàn)結(jié)果來(lái)對(duì)初始群體的生成方式進(jìn)行改進(jìn),提高算法的收斂性和效率。
親和度(affinity)是免疫細(xì)胞與抗原之間相互作用的強(qiáng)度,可以用來(lái)衡量個(gè)體(如電路結(jié)構(gòu))與目標(biāo)之間的匹配程度。在免疫算法中,通過(guò)親和度函數(shù)來(lái)計(jì)算個(gè)體與設(shè)計(jì)目標(biāo)之間的匹配程度。在FeFET多態(tài)門(mén)設(shè)計(jì)中,通過(guò)不同控制條件下的輸入輸出真值表來(lái)表示控制條件與數(shù)字邏輯功能之間的對(duì)應(yīng)關(guān)系,并使用親和度評(píng)價(jià)生成數(shù)字電路結(jié)構(gòu),以實(shí)現(xiàn)在不同控制條件下具有不同數(shù)字邏輯功能的電路結(jié)構(gòu)。數(shù)字電路的契合程度可以通過(guò)其滿(mǎn)足預(yù)期數(shù)字邏輯功能的程度來(lái)表示。對(duì)于一個(gè)n輸入的數(shù)字邏輯門(mén),每個(gè)數(shù)字邏輯功能包含2n個(gè)輸入輸出組合。為了滿(mǎn)足設(shè)計(jì)目標(biāo)中的m個(gè)數(shù)字邏輯功能,算法生成的多態(tài)門(mén)需要在m個(gè)不同的控制條件下,都有2n個(gè)輸入輸出組合與數(shù)字邏輯功能的真值表對(duì)應(yīng)。因此,親和度函數(shù)被設(shè)置與待選個(gè)體的真值表與設(shè)計(jì)目標(biāo)的真值表在不同控制條件下的漢明距離之和相關(guān)聯(lián)。親和度函數(shù)如式(1)所示,數(shù)值越大代表個(gè)體與預(yù)期設(shè)計(jì)目標(biāo)之間的契合程度越高
其中,fi為設(shè)計(jì)目標(biāo)在控制條件為i時(shí)的真值表,為此待選個(gè)體在控制條件為i時(shí)的真值表。
抗體濃度(density)是一個(gè)解與集合中其他所有的解當(dāng)中距離比較近(或者說(shuō)比較相似)的解的個(gè)數(shù),再除以集合中解的總數(shù),如式(2)所示
其中,N為種群規(guī)模,S(abi,abj)表示抗體間的相似度,可由式(3)表示
其中,a bi是 種群中的第i個(gè) 抗體,δs為相似度閾值,aff′(abi,abj)是 抗體i和 抗體j的親和度,要注意區(qū)分這里的親和度是抗體與抗體之間的,而前面的親和度是抗原與抗體之間的。本文使用浮點(diǎn)數(shù)編碼的方式,因此可通過(guò)抗體向量之間的歐氏距離來(lái)計(jì)算抗體間的親和度,公式如式(4)所示
其 中, a bi,k和a bj,k分 別 為 抗 體i的 第k位 和 抗 體j的第k位;L為抗體編碼長(zhǎng)度。
抗體激勵(lì)度是對(duì)抗體質(zhì)量的最終評(píng)價(jià)結(jié)果,需要綜合考慮抗體親和度和抗體濃度。親和度值大、濃度低的抗體會(huì)得到較大的激勵(lì)度。公式如式(5)所示
其中, a,b 為常數(shù),可以根據(jù)實(shí)際需要進(jìn)行調(diào)整。一個(gè)解的激勵(lì)度越大,那么就越優(yōu)先選。
免疫處理包括免疫選擇、克隆、變異和克隆抑制。具體內(nèi)容如下:
(1) 免疫選擇會(huì)根據(jù)抗體的激勵(lì)度確定選擇哪些抗體進(jìn)入克隆選擇操作,本文通過(guò)激勵(lì)度函數(shù)值對(duì)抗體進(jìn)行排序,然后根據(jù)排序結(jié)果選擇一定比例的抗體進(jìn)行克隆操作。
(2) 克隆操作會(huì)根據(jù)免疫選擇的排序選擇優(yōu)秀的抗體復(fù)制一定次數(shù),產(chǎn)生一批新的抗體??寺〉倪^(guò)程中,需要設(shè)置復(fù)制因子,即每個(gè)優(yōu)秀抗體被復(fù)制的次數(shù)。核心思想是基于優(yōu)秀抗體的多次復(fù)制,以提高種群中優(yōu)秀抗體的數(shù)量,并通過(guò)后續(xù)的進(jìn)化過(guò)程來(lái)進(jìn)一步優(yōu)化解的質(zhì)量。
(3) 變異操作對(duì)克隆得到的抗體進(jìn)行變異以產(chǎn)生新的解,從而增加種群的多樣性和搜索范圍。對(duì)于FeFET多態(tài)門(mén)設(shè)計(jì),由于抗體中同時(shí)包含電路拓?fù)浣Y(jié)構(gòu)和電路參數(shù)兩部分信息,因此分別對(duì)電路拓?fù)浣Y(jié)構(gòu)部分的染色體和電路參數(shù)部分的染色體進(jìn)行變異操作,以避免染色體不同部分的數(shù)據(jù)發(fā)生混淆。我們?cè)诳贵w中隨機(jī)選擇某一段并進(jìn)行隨機(jī)修改以生成新的個(gè)體,然后將生成的電路拓?fù)浣Y(jié)構(gòu)部分的染色體與電路參數(shù)部分的染色體整合即得到新個(gè)體的染色體串。
(4) 克隆抑制用于對(duì)經(jīng)過(guò)變異后的克隆體進(jìn)行再選擇。將克隆操作的源抗體與克隆體經(jīng)變異算子作用后得到的臨時(shí)抗體群共同組成一個(gè)集合,抑制親和度高的抗體,保留親和度低的抗體進(jìn)入新的抗體種群。由于克隆變異操作的源抗體是種群中的優(yōu)質(zhì)抗體,而克隆抑制操作的臨時(shí)抗體集合中又包含了父代的源抗體,因此在免疫操作中隱含了最優(yōu)個(gè)體保留機(jī)制。
種群刷新用于對(duì)免疫操作后新得到的抗體種群進(jìn)行刷新。對(duì)于實(shí)際的多態(tài)電路問(wèn)題,為了保證生成的每個(gè)電路拓?fù)浣Y(jié)構(gòu)都是完整且合理的數(shù)字邏輯門(mén),本文對(duì)新生成的電路的拓?fù)浣Y(jié)構(gòu)進(jìn)行特殊端口、路徑完整性和連接合理性3方面的檢測(cè)以進(jìn)行種群刷新。具體來(lái)說(shuō),需要檢測(cè)輸入端、輸出端、電源端和接地端這些特殊端口是否連接到電路中的器件上,以保證每個(gè)特殊端口都連接到電路中;檢測(cè)電路中的器件的每一個(gè)端口是否連接到電路中的其他端口上,以保證不存在懸空節(jié)點(diǎn)和連接不合理的情況;檢測(cè)每個(gè)電路器件的所有端口是否同時(shí)連接到同一個(gè)端口上,以及是否全部連接到特殊端口上,以確保每個(gè)電路器件都正常連接到電路中。通過(guò)這些檢測(cè)條件可以保證每個(gè)新生成的電路結(jié)構(gòu)都是完整且合理的數(shù)字邏輯門(mén),從而提高算法的效率和準(zhǔn)確性。
基于以上改進(jìn),使用C++語(yǔ)言和Hspice仿真工具實(shí)現(xiàn)了可以用于設(shè)計(jì)FeFET多態(tài)門(mén)的免疫算法。算法的基本流程如圖2所示。與一般的免疫算法流程相比,區(qū)別主要在于加入了電路模擬仿真和仿真數(shù)據(jù)提取過(guò)程,該過(guò)程利用Hspice仿真工具操作完成,其余步驟均為C++語(yǔ)言運(yùn)行。
圖2 適用于FeFET多態(tài)門(mén)設(shè)計(jì)的免疫算法流程
基于以上實(shí)現(xiàn)的FeFET多態(tài)門(mén)設(shè)計(jì)算法的偽代碼如算法1所示。算法的主要運(yùn)行步驟如下:
算法1 用于FeFET多態(tài)門(mén)設(shè)計(jì)的免疫算法
(1) 設(shè)置每個(gè)父代生成子代的數(shù)量、群體數(shù)量最大值、進(jìn)化代數(shù)的最大值、預(yù)期目標(biāo)在不同控制條件下的輸入輸出真值表、較寬松的親和度閾值、相似度閾值、變異率、克隆個(gè)數(shù)等算法初始參數(shù)。設(shè)置預(yù)期的FeFET器件個(gè)數(shù)和實(shí)現(xiàn)功能切換的控制條件等多態(tài)門(mén)初始參數(shù)。
(2) 將這些數(shù)字邏輯門(mén)的拓?fù)浣Y(jié)構(gòu)和電路參數(shù)進(jìn)行編碼,生成初始群體的抗體作為第1代父代。
(3) 在不同控制條件下,通過(guò)Hspice軟件對(duì)當(dāng)前父代的所有待選電路網(wǎng)表進(jìn)行仿真。通過(guò)Hspice的仿真結(jié)果提取每個(gè)電路網(wǎng)表在不同控制條件下的輸出電壓值,并判斷得到輸入輸出真值表。
(4) 計(jì)算當(dāng)前群體中的每個(gè)個(gè)體的親和度。
(5) 計(jì)算抗體濃度和激勵(lì)度。
(6) 進(jìn)行免疫處理,包括免疫選擇、克隆、變異和克隆抑制,之后生成新一代抗體。
(7) 通過(guò)電路結(jié)構(gòu)檢測(cè)的方式進(jìn)行種群刷新。
(8) 判斷是否達(dá)到算法停止條件。若已達(dá)到,則結(jié)束算法,并保留當(dāng)前幸存?zhèn)€體集合作為輸出結(jié)果;若仍未達(dá)到,則重復(fù)步驟(3)~(8),直到達(dá)到算法停止條件。
在0.13 μm CMOS工藝和鐵電電容模型下,以生成NAND/XOR門(mén)為例說(shuō)明改進(jìn)后的免疫算法的具體實(shí)驗(yàn)過(guò)程。該算法旨在生成一個(gè)FeFET多態(tài)門(mén),該門(mén)能夠在不同的溫度下切換其實(shí)現(xiàn)的功能,包括NAND邏輯和XOR邏輯。在實(shí)驗(yàn)中,使用了一個(gè)包含6個(gè)FeFET器件的隨機(jī)門(mén)電路結(jié)構(gòu)作為初始父代。本文設(shè)置了每代群體的個(gè)體數(shù)量最大值為10 000。在幸存?zhèn)€體數(shù)量Num_sur少于20個(gè)時(shí),為每個(gè)父代生成500個(gè)子代;在Num_sur多于20個(gè)時(shí),每個(gè)父代均攤生成floor(10 000/Num_sur)(floor()表示向下取整)個(gè)子代。本文將免疫算法的最大進(jìn)化代數(shù)設(shè)為10,將免疫算法的終止條件設(shè)置為兩個(gè)方面:當(dāng)進(jìn)化代數(shù)達(dá)到最大值10,或者待選電路能夠在兩個(gè)環(huán)境下實(shí)現(xiàn)NAND邏輯功能和XOR邏輯功能時(shí),算法結(jié)束運(yùn)行。首先通過(guò)編碼初始父代的拓?fù)浣Y(jié)構(gòu)和尺寸信息得到初始父代的抗體群。對(duì)群體中的所有抗體進(jìn)行解碼,得到每個(gè)抗體對(duì)應(yīng)的電路的拓?fù)浣Y(jié)構(gòu)和尺寸信息,并生成對(duì)應(yīng)的Hspice仿真軟件的仿真文件(.sp文件)。調(diào)用Hspice仿真軟件,利用Hspice仿真軟件的sweep語(yǔ)句,在一定的范圍內(nèi)掃描控制條件的值,對(duì)每個(gè)電路進(jìn)行仿真,并獲取存儲(chǔ)輸出結(jié)果的.lis文件。當(dāng)控制條件設(shè)定為溫度時(shí),設(shè)置掃描范圍為–25~150°C,間隔為25°C。由于輸出文件中只能獲取輸出端的具體電壓值,因此還需要利用C++語(yǔ)言讀取結(jié)果文件,并將輸出端的電壓值與電源電壓進(jìn)行比較得到輸出端的邏輯值。結(jié)合輸入端和輸出端的邏輯值,分別得到每個(gè)電路在不同控制條件下的真值表。將每個(gè)電路的全部真值表與預(yù)期目標(biāo)的真值表對(duì)比,計(jì)算出每個(gè)待選電路結(jié)構(gòu)與預(yù)期目標(biāo)之間的漢明距離,繼而得到每個(gè)待選抗體的親和度值。然后計(jì)算抗體濃度和激勵(lì)度,對(duì)群體中的抗體進(jìn)行免疫操作得到新的抗體群。之后對(duì)新生成的抗體群進(jìn)行電路結(jié)構(gòu)檢測(cè),這樣就得到了下一代的抗體群。接著繼續(xù)重復(fù)進(jìn)行以上過(guò)程,直到算法運(yùn)行結(jié)束。我們這里使用的硬件平臺(tái)參數(shù)為:CPU型號(hào):Intel Core i5-9500,頻率:3.00 GHz,內(nèi)存:16 GB。在這個(gè)硬件平臺(tái)下對(duì)于種群中的1個(gè)個(gè)體1次迭代的時(shí)長(zhǎng)約為0.48 s。當(dāng)設(shè)置種群規(guī)模為10 000時(shí),平均迭代次數(shù)為9.2次,總運(yùn)行時(shí)長(zhǎng)為44 160 s。圖3為生成的溫度控制的NAND/XOR門(mén),此多態(tài)門(mén)分別在溫度為0°C和75°C下實(shí)現(xiàn)NAND和XOR邏輯功能。
圖3 溫度控制的NAND/XOR多態(tài)門(mén)(0/75°C)的電路圖和仿真波形圖
同理,設(shè)置控制條件為電源電壓,利用Hspice仿真軟件在1.2 ~3.3 V電壓范圍內(nèi)以0.3 V為間隔掃描。利用FeFET多態(tài)門(mén)設(shè)計(jì)算法運(yùn)行得到AND/XNOR門(mén)如圖4所示,此多態(tài)門(mén)分別在電源電壓為1.5 V和2.1 V電壓下實(shí)現(xiàn)AND邏輯功能和XNOR邏輯功能。設(shè)置控制條件為control端的電壓值,利用Hspice仿真軟件在0~3.3 V電壓范圍內(nèi)以0.3 V為間隔掃描。運(yùn)行得到OR/XOR門(mén)如圖5所示,分別在外部信號(hào)端ctrl為0 V和0.6 V電壓下實(shí)現(xiàn)OR邏輯功能和XOR邏輯功能。此外,本文的設(shè)計(jì)方法不僅可以生成兩功能多態(tài)門(mén),對(duì)于多功能(功能數(shù)大于3)多態(tài)門(mén)也同樣適用。圖6為溫度控制的3功能FeFET多態(tài)門(mén)電路結(jié)構(gòu)圖和仿真波形圖,分別在溫度為–25°C, 75°C, 100°C下實(shí)現(xiàn)NOR, AND, XNOR邏輯功能。表1列出了利用該平臺(tái)生成的部分多態(tài)門(mén)實(shí)例,包括了這些多態(tài)門(mén)的功能、控制條件和包含的器件數(shù)量等信息。
表1 利用免疫算法得到的FeFET多態(tài)門(mén)
圖4 電源電壓控制的AND/XNOR多態(tài)門(mén)(1.5 V/2.4 V)的電路圖和仿真波形圖
圖5 外部信號(hào)控制的OR/XOR多態(tài)門(mén)(0 V/0.6 V)的電路圖和仿真波形圖
圖6 溫度控制的NOR/AND/XNOR多態(tài)門(mén)(–25°C/75°C/100°C)的電路圖和仿真波形圖
FeFET作為新型器件被認(rèn)為可用于多態(tài)電路的設(shè)計(jì),但缺少通用及完整的設(shè)計(jì)流程和方法。本文提出基于免疫算法的多態(tài)門(mén)設(shè)計(jì)流程,利用C++語(yǔ)言和Hspice仿真工具構(gòu)建了完整的FeFET多態(tài)門(mén)設(shè)計(jì)平臺(tái)。本文詳細(xì)說(shuō)明了該設(shè)計(jì)平臺(tái)的算法和設(shè)計(jì)流程,并運(yùn)用該流程實(shí)現(xiàn)了溫度、電源電壓和外部信號(hào)控制的FeFET多態(tài)門(mén)的具體實(shí)例。這些實(shí)驗(yàn)結(jié)果表明了本文提出的設(shè)計(jì)平臺(tái)的有效性,支持FeFET可作為新器件用于多態(tài)門(mén)的設(shè)計(jì)中。