基于生物學(xué)的電子電路設(shè)計(jì) 作者: 時(shí)間:2007-03-09 來源:網(wǎng)絡(luò) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對(duì)面交流海量資料庫(kù)查詢 收藏 摘要:介紹了可進(jìn)化硬件的機(jī)理和相關(guān)技術(shù),著重闡述了一種基于進(jìn)化論中遺傳算法的大規(guī)模電子電路設(shè)計(jì)方法,分析了如何通過可進(jìn)化硬件的機(jī)理來實(shí)現(xiàn)復(fù)雜系統(tǒng)的高容錯(cuò)性設(shè)計(jì)。介紹了進(jìn)化電子電路設(shè)計(jì)的設(shè)計(jì)架構(gòu)及基本設(shè)計(jì)步驟實(shí)現(xiàn)進(jìn)化電子電路設(shè)計(jì)的設(shè)計(jì)環(huán)境。展望了基于可進(jìn)化硬件思想的電子電路設(shè)計(jì)的發(fā)展前景。 關(guān)鍵詞:可進(jìn)化硬件 遺傳算法 電子電路設(shè)計(jì) 現(xiàn)場(chǎng)可編程門陣列 在人類的科學(xué)研究中,有不少研究成果得益于大自然的啟發(fā),例如仿生學(xué)技術(shù)。隨著計(jì)算機(jī)技術(shù)和電子技術(shù)的發(fā)展,許多的科學(xué)研究越來越與生物學(xué)緊密相聯(lián)。在人工智能方面,已經(jīng)實(shí)現(xiàn)了能用計(jì)算機(jī)和電子設(shè)備模仿人類生物體的看、聽、和思維等能力;另一方面,受進(jìn)化論的啟發(fā),科學(xué)家們提出了基于生物學(xué)的電子電路設(shè)計(jì)技術(shù),將進(jìn)化理論的方法應(yīng)用于電子電路的設(shè)計(jì)中,使得新的電子電路能像生物一樣具有對(duì)環(huán)境變化的適應(yīng)、免疫、自我進(jìn)化及自我復(fù)制等特性,用來實(shí)現(xiàn)高適應(yīng)、高可靠的電子系統(tǒng)。這類電子電路常稱為可進(jìn)化硬件(EHW, Evolvable HardWare)。本文主要介紹可進(jìn)化硬件EHW的機(jī)理及其相關(guān)技術(shù)并根據(jù)這種機(jī)理對(duì)高可靠性電子電路的設(shè)計(jì)進(jìn)行討論。 1 EHW的機(jī)理及相關(guān)技術(shù) 計(jì)算機(jī)系統(tǒng)所要求解決的問題日趨復(fù)雜,與此同時(shí),計(jì)算機(jī)系統(tǒng)本身的結(jié)構(gòu)也越來越復(fù)雜。而復(fù)雜性的提高就意味著可靠性的降低,實(shí)踐經(jīng)驗(yàn)表明,要想使如此復(fù)雜的實(shí)時(shí)系統(tǒng)實(shí)現(xiàn)零出錯(cuò)率幾乎是不可能的,因此人們寄希望于系統(tǒng)的容錯(cuò)性能:即系統(tǒng)在出現(xiàn)錯(cuò)誤的情況下的適應(yīng)能力。對(duì)于如何同時(shí)實(shí)現(xiàn)系統(tǒng)的復(fù)雜性和可靠性,大自然給了我們近乎完美的藍(lán)本。人體是迄今為止我們所知道的最復(fù)雜的生物系統(tǒng),通過千萬年基因進(jìn)化,使得人體可以在某些細(xì)胞發(fā)生病變的情況下,不斷地進(jìn)行自我診斷,并最終自愈。因此借用這一機(jī)理,科學(xué)家們研究出可進(jìn)化硬件(EHW,Evolvable HardWare),理想的可進(jìn)化硬件不但同樣具有自我診斷能力,能夠通過自我重構(gòu)消除錯(cuò)誤,而且可以在設(shè)計(jì)要求或系統(tǒng)工作環(huán)境發(fā)生變化的情況下,通過自我重構(gòu)來使電路適應(yīng)這種變化而繼續(xù)正常工作。嚴(yán)格地說,EHW具有兩個(gè)方面的目的,一方面是把進(jìn)化算法應(yīng)用于電子電路的設(shè)計(jì)中;另一方面是硬件具有通過動(dòng)態(tài)地、自主地重構(gòu)自己實(shí)現(xiàn)在線適應(yīng)變化的能力。前者強(qiáng)調(diào)的是進(jìn)化算法在電子設(shè)計(jì)中可替代傳統(tǒng)基于規(guī)范的設(shè)計(jì)方法;后者強(qiáng)調(diào)的是硬件的可適應(yīng)機(jī)理。當(dāng)然二者的區(qū)別也是很模糊的。本文主要討論的是EHW在第一個(gè)方面的問題。 對(duì)EHW的研究主要采用了進(jìn)化理論中的進(jìn)化計(jì)算(Evolutionary Computing)算法,特別是遺傳算法(GA)為設(shè)計(jì)算法,在數(shù)字電路中以現(xiàn)場(chǎng)可編程門陣列(FPGA)為媒介,在模擬電路設(shè)計(jì)中以現(xiàn)場(chǎng)可編程模擬陣列(FPAA)為媒介來進(jìn)行的。此外還有建立在晶體管級(jí)的現(xiàn)場(chǎng)可編程晶體管陣列(FPTA),它為同時(shí)設(shè)計(jì)數(shù)字電路和和模擬電路提供了一個(gè)可靠的平臺(tái)。下面主要介紹一下遺傳算法和現(xiàn)場(chǎng)可編程門陣列的相關(guān)知識(shí),并以數(shù)字電路為例介紹可進(jìn)化硬件設(shè)計(jì)方法。 1.1 遺傳算法 遺傳算法是模擬生物在自然環(huán)境中的遺傳和進(jìn)化過程的一種自適應(yīng)全局優(yōu)化算法,它借鑒了物種進(jìn)化的思想,將欲求解問題編碼,把可行解表示成字符串形式,稱為染色體或個(gè)體。先通過初始化隨機(jī)產(chǎn)生一群個(gè)體,稱為種群,它們都是假設(shè)解。然后把這些假設(shè)解置于問題的“環(huán)境”中,根據(jù)適應(yīng)值或某種競(jìng)爭(zhēng)機(jī)制選擇個(gè)體(適應(yīng)值就是解的滿意程度),使用各種遺傳操作算子(包括選擇,變異,交叉等等)產(chǎn)生下一代(下一代可以完全替代原種群,即非重疊種群;也可以部分替代原種群中一些較差的個(gè)體,即重疊種群),如此進(jìn)化下去,直到滿足期望的終止條件,得到問題的最優(yōu)解為止。 1.2 現(xiàn)場(chǎng)可編程邏輯陣列(FPGA) 現(xiàn)場(chǎng)可編程邏輯陣列是一種基于查找表(LUT, Lookup Table)結(jié)構(gòu)的可在線編程的邏輯電路。它由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài),工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程。當(dāng)用戶通過原理圖或硬件描述語言(HDL)描述了一個(gè)邏輯電路以后, FPGA開發(fā)軟件會(huì)把設(shè)計(jì)方案通過編譯形成數(shù)據(jù)流,并將數(shù)據(jù)流下載至RAM中。這些RAM中的數(shù)據(jù)流決定電路的邏輯關(guān)系。掉電后,FPGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,FPGA能夠反復(fù)使用,灌入不同的數(shù)據(jù)流就會(huì)獲得不同的硬件系統(tǒng),這就是可編程特性。這一特性是實(shí)現(xiàn)EHW的重要特性。目前在可進(jìn)化電子電路的設(shè)計(jì)中,用得最多得是Xilinx 公司的Virtex系列 FPGA芯片。 2 進(jìn)化電子電路設(shè)計(jì)架構(gòu) 本節(jié)以設(shè)計(jì)高容錯(cuò)性的數(shù)字電路設(shè)計(jì)為例來闡述EHW的設(shè)計(jì)架構(gòu)及主要設(shè)計(jì)步驟。對(duì)于通過進(jìn)化理論的遺傳算法來產(chǎn)生容錯(cuò)性,所設(shè)計(jì)的電路系統(tǒng)可以看作一個(gè)具有持續(xù)性地、實(shí)時(shí)地適應(yīng)變化的硬件系統(tǒng)。對(duì)于電子電路來說,所謂的變化的來源很多,如硬件故障導(dǎo)致的錯(cuò)誤,設(shè)計(jì)要求和規(guī)則的改變,環(huán)境的改變(各種干擾的出現(xiàn))等。 從進(jìn)化論的角度來看,當(dāng)這些變化發(fā)生時(shí),個(gè)體的適應(yīng)度會(huì)作相應(yīng)的改變。當(dāng)進(jìn)化進(jìn)行時(shí),個(gè)體會(huì)適應(yīng)這些變化重新獲得高的適應(yīng)度。基于進(jìn)化論的電子電路設(shè)計(jì)就是利用這種原理,通過對(duì)設(shè)計(jì)結(jié)果進(jìn)行多次地進(jìn)化來提高其適應(yīng)變化的能力。 電子電路進(jìn)化設(shè)計(jì)架構(gòu)如圖1所示。圖中給出了電子電路的設(shè)計(jì)的兩種進(jìn)化,分別是內(nèi)部進(jìn)化和外部進(jìn)化。其中內(nèi)部進(jìn)化是指硬件內(nèi)部結(jié)構(gòu)的進(jìn)化,而外部進(jìn)化是指軟件模擬的電路的進(jìn)化。這兩種進(jìn)化是相互獨(dú)立的,當(dāng)然通過外部進(jìn)化得到的最終設(shè)計(jì)結(jié)果還是要由硬件結(jié)構(gòu)的變化來實(shí)際體現(xiàn)。從圖中可以看出,進(jìn)化過程是一個(gè)循環(huán)往復(fù)的過程,其中是根據(jù)進(jìn)化算法(遺傳算法)的計(jì)算結(jié)果來進(jìn)行的。整個(gè)進(jìn)化設(shè)計(jì)包括以下步驟: (1)根據(jù)設(shè)計(jì)的目的,產(chǎn)生初步的方案,并把初步方案用一組染色體(一組“0”和“1”表示的數(shù)據(jù)串)來表示,其中每個(gè)個(gè)體表示的是設(shè)計(jì)的一部分。染色體轉(zhuǎn)化成控制數(shù)據(jù)流下載到FPGA上,用來定義FPGA的開關(guān)狀態(tài),從而確定可重構(gòu)硬件內(nèi)部各單元的聯(lián)結(jié),形成了初步的硬件系統(tǒng)。用來設(shè)計(jì)進(jìn)化硬件的FPGA器件可以接受任意組合的數(shù)據(jù)流下載,而不會(huì)導(dǎo)致器件的損害。 (2)將設(shè)計(jì)結(jié)果與目標(biāo)要求進(jìn)行比較,并用某種誤差表示作為描述系統(tǒng)適應(yīng)度的衡量準(zhǔn)則。這需要一定的檢測(cè)手段和評(píng)估軟件的支持。對(duì)不同的個(gè)體,根據(jù)適應(yīng)度進(jìn)行排序,下一代的個(gè)體將由最優(yōu)的個(gè)體來產(chǎn)生。 (3)根據(jù)適應(yīng)度再對(duì)新的個(gè)體組進(jìn)行統(tǒng)計(jì),并根據(jù)統(tǒng)計(jì)結(jié)果挑選一些個(gè)體。一部分被選個(gè)體保持原樣,另一部分個(gè)體根據(jù)遺傳算法進(jìn)行修改,如進(jìn)行交叉和變異,而這種交叉和變異的目的是為了產(chǎn)生更具適應(yīng)性的下一代。把新一代染色體轉(zhuǎn)化成控制數(shù)據(jù)流下載到FPGA中對(duì)硬件進(jìn)行進(jìn)化。 (4)重復(fù)上述步驟,產(chǎn)生新的數(shù)代個(gè)體,直到新的個(gè)體表示的設(shè)計(jì)方案表現(xiàn)出接近要求的適應(yīng)能力為止。 一般來說通過遺傳算法最后會(huì)得到一個(gè)或數(shù)個(gè)設(shè)計(jì)結(jié)果,最后設(shè)計(jì)方案具有對(duì)設(shè)計(jì)要求和系統(tǒng)工作環(huán)境的最佳適應(yīng)性。這一過程又叫內(nèi)部進(jìn)化或硬件進(jìn)化。 圖中的右邊展示了另一種設(shè)計(jì)可進(jìn)化電路的方法,即用模擬軟件來代替可重構(gòu)器件,染色體每一位確定的是軟件模擬電路的連接方式,而不是可重構(gòu)器件各單元的連接方式。這一方法叫外部進(jìn)化或軟件進(jìn)化。這種方法中進(jìn)化過程完全模擬進(jìn)行,只有最后的結(jié)果才在器件上實(shí)施。 進(jìn)化電子電路設(shè)計(jì)中,最關(guān)鍵的是遺傳算法的應(yīng)用。在遺傳算法的應(yīng)用過程中,變異因子的確定是需要慎重考慮的,它的大小既關(guān)系到個(gè)體變異的程度,也關(guān)系到個(gè)體對(duì)環(huán)境變化做出反應(yīng)的能力,而這兩個(gè)因素相互抵觸。變異因子越大,個(gè)體更容易適應(yīng)環(huán)境變化,對(duì)系統(tǒng)出現(xiàn)的錯(cuò)誤做出快速反應(yīng),但個(gè)體更容易發(fā)生突變。而變異因子較小時(shí),系統(tǒng)的反應(yīng)力變差,但系統(tǒng)一旦獲得高適應(yīng)度的設(shè)計(jì)方案時(shí)可以保持穩(wěn)定。 對(duì)于可進(jìn)化數(shù)字電路的設(shè)計(jì),可以在兩個(gè)層面上進(jìn)行。一個(gè)是在基本的“與”、“或”、“非”門的基礎(chǔ)上進(jìn)行進(jìn)化設(shè)計(jì),一個(gè)是在功能塊如觸發(fā)器、加法器和多路選擇器的基礎(chǔ)上進(jìn)行。前一種方法更為靈活,而后一種更適于工業(yè)應(yīng)用。有人提出了一種基于進(jìn)化細(xì)胞機(jī)(Cellular Automaton)的神經(jīng)網(wǎng)絡(luò)模塊設(shè)計(jì)架構(gòu)。采用這一結(jié)構(gòu)設(shè)計(jì)時(shí),只需要定義整個(gè)模塊的適應(yīng)度,而對(duì)于每一模塊如何實(shí)現(xiàn)它復(fù)雜的功能可以不予理睬,對(duì)于超大規(guī)模線路的設(shè)計(jì)可以采用這一方法來將電路進(jìn)行整體優(yōu)化設(shè)計(jì)。 3 可進(jìn)化電路設(shè)計(jì)環(huán)境 上面描述的軟硬件進(jìn)化電子電路設(shè)計(jì)可在圖2所示的設(shè)計(jì)系統(tǒng)環(huán)境下進(jìn)行。這一設(shè)計(jì)系統(tǒng)環(huán)境對(duì)于測(cè)試可重構(gòu)硬件的構(gòu)架及展示在FPGA可重構(gòu)硬件上的進(jìn)化設(shè)計(jì)很有用處。該設(shè)計(jì)系統(tǒng)環(huán)境包括遺傳算法軟件包、FPGA開發(fā)系統(tǒng)板、數(shù)據(jù)采集軟硬件、適應(yīng)度評(píng)估軟件、用戶接口程序及電路模擬仿真軟件。 遺傳算法由計(jì)算機(jī)上運(yùn)行的一個(gè)程序包實(shí)現(xiàn)。由它來實(shí)現(xiàn)進(jìn)化計(jì)算并產(chǎn)生染色體組。表示硬件描述的染色體通過通信電纜由計(jì)算機(jī)下載到有FPGA器件的實(shí)驗(yàn)板上。然后通過接口將布線結(jié)果傳回計(jì)算機(jī)。適應(yīng)度評(píng)估建立在儀器數(shù)據(jù)采集硬件及軟件上,一個(gè)接口碼將GA與硬件連接起來,可能的設(shè)計(jì)方案在此得到評(píng)估。同時(shí)還有一個(gè)圖形用戶接口以便于設(shè)計(jì)結(jié)果的可視化和將問題形式化。通過執(zhí)行遺傳算法在每一代染色體組都會(huì)產(chǎn)生新的染色體群組,并被轉(zhuǎn)化為數(shù)據(jù)流傳入實(shí)驗(yàn)板上。至于通過軟件進(jìn)化的電子電路設(shè)計(jì),可采用Spice軟件作為線路模擬仿真軟件,把染色體變成模擬電路并通過仿真軟件來仿真電路的運(yùn)行情況,通過相應(yīng)軟件來評(píng)估設(shè)計(jì)結(jié)果。 4 結(jié)論與展望 進(jìn)化過程廣義上可以看作是一個(gè)復(fù)雜的動(dòng)態(tài)系統(tǒng)的狀態(tài)變化。在這個(gè)意義上,可以將“可進(jìn)化”這一特性運(yùn)用到無數(shù)的人工系統(tǒng)中,只要這些系統(tǒng)的性能會(huì)受到環(huán)境的影響。不僅是遺傳算法,神經(jīng)網(wǎng)絡(luò)、人工智能工程以及胚胎學(xué)都可以應(yīng)用到可進(jìn)化系統(tǒng)中。雖然目前設(shè)計(jì)出的可進(jìn)化硬件還存在著許多需要解決的問題,如系統(tǒng)的魯棒性等。但在未來的發(fā)展中,電子電路可進(jìn)化的設(shè)計(jì)方法將不可避免的取代傳統(tǒng)的自頂向下設(shè)計(jì)方法,系統(tǒng)的復(fù)雜性將不再成為系統(tǒng)設(shè)計(jì)的障礙。另一方面,硬件本身的自我重構(gòu)能力對(duì)于那些在復(fù)雜多變的環(huán)境,特別是人不能直接參與的環(huán)境工作的系統(tǒng)來說將帶來極大的影響。因此可進(jìn)化硬件的研究將會(huì)進(jìn)一步深入并會(huì)得到廣泛的應(yīng)用而造福人類。
評(píng)論