基于FPGA數據流控制動(dòng)態(tài)可重構的實(shí)現
摘要 基于FPGA基本數據流的下載控制方式,利用遺傳算法,通過(guò)單片機控制數據流的方式對FPGA進(jìn)行編程配置,實(shí)現自身重構,使系統具有自適應、自組織和自修復的特性。
關(guān)鍵詞 FPGA;遺傳算法;動(dòng)態(tài)重構;單片機
可重構計算的概念是在20世紀60年代由美國加利福尼亞大學(xué)的Geraid Estrin提出,并研制了系統原型。70年代末,Suetlana P Kartas-hev和Steven I.Kartashev博士提出了動(dòng)態(tài)可重構系統的概念。進(jìn)入90年代,可重構技術(shù)成為了研究熱點(diǎn),近幾年,可重構計算和軟硬件協(xié)同設計,是當前計算機科研領(lǐng)域的兩大核心,其任務(wù)建模平臺大多是基于FPGA的動(dòng)態(tài)可重構系統,是最近幾年該領(lǐng)域研究的熱點(diǎn)話(huà)題,并在多領(lǐng)域得到廣泛應用。
本文實(shí)現了基于遺傳算法的硬件演化過(guò)程。通過(guò)Mcu隨機產(chǎn)生種群,選擇好的基因進(jìn)行交叉變異產(chǎn)生后代,然后將合適的基因通過(guò)測試找到最佳重構方案。選擇最佳方案應用于硬件,實(shí)現自我修復和自適應。
1 軟件算法
遺傳算法(Genetic Algorithm,GA)是由美國密執安大學(xué)John Holland教授于20世紀70年代提出并逐步發(fā)展起來(lái)的一種自適應全局優(yōu)化搜索算法。他模擬自然選擇和自然遺傳過(guò)程發(fā)生的繁殖,交叉和基因突變現象,在每次迭代中都保留一組候選解,并按某種指標從群解中選取較優(yōu)個(gè)體,利用遺傳算子對這些個(gè)體進(jìn)行組合,產(chǎn)生新一代的候選解群,直到滿(mǎn)足某種收斂指標,最終得到問(wèn)題的最優(yōu)解或近似解。
基本遺傳算法由4部分組成:(1)編碼(產(chǎn)生初始種群)。(2)適應度函數計算。(3)遺傳算子(選擇、交叉、變異)。(4)運行參數。
1.1 選擇
遺傳算法首先要產(chǎn)生初始種群,通常叫做染色體。染色體由基因組成,如11001,每位二進(jìn)制數就是一個(gè)基因變量,然后通過(guò)適應度函數檢測合格的染色體,選擇合格染色體進(jìn)行下一步的交叉、變異,得到新個(gè)體。
遺傳算法中的適應度,是表示某一個(gè)體對環(huán)境的適應能力,也表示該個(gè)體繁殖后代的能力。遺傳算法的適應度函數也叫評價(jià)函數,是用以判斷群體中個(gè)體優(yōu)劣程度的指標,它是根據所求問(wèn)題的目標函數進(jìn)行評估的。
此處適應度選擇函數的模式通過(guò)一種反饋模式,將產(chǎn)生的個(gè)體經(jīng)過(guò)仿真檢測評估。如果達到要求,經(jīng)評估結果存入存儲模塊,然后以輪盤(pán)賭的方式對所有的函數結果加權,判斷每個(gè)基因的適應度與加權和的比值,即介于(0,1)的小數,選擇大于—個(gè)值比如0.8為合格,當評估完群體中所有個(gè)體的適應度后,選擇適應度大于0.8的個(gè)體存儲,然后等待由交叉變異模塊產(chǎn)生出的新個(gè)體。
1.2 交叉變異
交叉變異模塊得到來(lái)自選擇模塊的兩個(gè)個(gè)體,根據隨機數模塊產(chǎn)生的隨機數與交叉概率作比較,判斷是否進(jìn)行交叉操作。交叉算子根據交叉率將種群中的兩個(gè)個(gè)體隨機交換某些基因,能夠產(chǎn)生新的基因組合,期望將有益基因組合在一起。
如找到兩個(gè)父代基因,需要進(jìn)行交叉,找到基因的交叉點(diǎn),將各個(gè)基因的交叉點(diǎn)交叉基因變量形成新的基因變量,變異就是每個(gè)基因找到基因變異點(diǎn),試圖通過(guò)基因變異找到合適的方案,如圖1所示。
1.3 基因下載
得到的優(yōu)良基因就是所需的方案,將這個(gè)方案直接下載,最后實(shí)現可控制,可重構,自適應。如圖2所示。
評論