日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 電源 > 功率器件
[導(dǎo)讀]基于FPGA基本數(shù)據(jù)流的下載控制方式,利用遺傳算法,通過單片機控制數(shù)據(jù)流的方式對FPGA進行編程配置,實現(xiàn)自身重構(gòu),使系統(tǒng)具有自適應(yīng)、自組織和自修復(fù)的特性。本文實現(xiàn)了基

基于FPGA基本數(shù)據(jù)流的下載控制方式,利用遺傳算法,通過單片機控制數(shù)據(jù)流的方式對FPGA進行編程配置,實現(xiàn)自身重構(gòu),使系統(tǒng)具有自適應(yīng)、自組織和自修復(fù)的特性。

本文實現(xiàn)了基于遺傳算法的硬件演化過程。通過Mcu隨機產(chǎn)生種群,選擇好的基因進行交叉變異產(chǎn)生后代,然后將合適的基因通過測試找到最佳重構(gòu)方案。選擇最佳方案應(yīng)用于硬件,實現(xiàn)自我修復(fù)和自適應(yīng)。

1 軟件算法

遺傳算法(GeneTIc Algorithm,GA)是由美國密執(zhí)安大學(xué)John Holland教授于20世紀(jì)70年代提出并逐步發(fā)展起來的一種自適應(yīng)全局優(yōu)化搜索算法。他模擬自然選擇和自然遺傳過程發(fā)生的繁殖,交叉和基因突變現(xiàn)象,在每次迭代中都保留一組候選解,并按某種指標(biāo)從群解中選取較優(yōu)個體,利用遺傳算子對這些個體進行組合,產(chǎn)生新一代的候選解群,直到滿足某種收斂指標(biāo),最終得到問題的最優(yōu)解或近似解。

基本遺傳算法由4部分組成:(1)編碼(產(chǎn)生初始種群)。(2)適應(yīng)度函數(shù)計算。(3)遺傳算子(選擇、交叉、變異)。(4)運行參數(shù)。

1.1 選擇

遺傳算法首先要產(chǎn)生初始種群,通常叫做染色體。染色體由基因組成,如11001,每位二進制數(shù)就是一個基因變量,然后通過適應(yīng)度函數(shù)檢測合格的染色體,選擇合格染色體進行下一步的交叉、變異,得到新個體。

遺傳算法中的適應(yīng)度,是表示某一個體對環(huán)境的適應(yīng)能力,也表示該個體繁殖后代的能力。遺傳算法的適應(yīng)度函數(shù)也叫評價函數(shù),是用以判斷群體中個體優(yōu)劣程度的指標(biāo),它是根據(jù)所求問題的目標(biāo)函數(shù)進行評估的。

此處適應(yīng)度選擇函數(shù)的模式通過一種反饋模式,將產(chǎn)生的個體經(jīng)過仿真檢測評估。如果達到要求,經(jīng)評估結(jié)果存入存儲模塊,然后以輪盤賭的方式對所有的函數(shù)結(jié)果加權(quán),判斷每個基因的適應(yīng)度與加權(quán)和的比值,即介于(0,1)的小數(shù),選擇大于—個值比如0.8為合格,當(dāng)評估完群體中所有個體的適應(yīng)度后,選擇適應(yīng)度大于0.8的個體存儲,然后等待由交叉變異模塊產(chǎn)生出的新個體。

1.2 交叉變異

交叉變異模塊得到來自選擇模塊的兩個個體,根據(jù)隨機數(shù)模塊產(chǎn)生的隨機數(shù)與交叉概率作比較,判斷是否進行交叉操作。交叉算子根據(jù)交叉率將種群中的兩個個體隨機交換某些基因,能夠產(chǎn)生新的基因組合,期望將有益基因組合在一起。

如找到兩個父代基因,需要進行交叉,找到基因的交叉點,將各個基因的交叉點交叉基因變量形成新的基因變量,變異就是每個基因找到基因變異點,試圖通過基因變異找到合適的方案,如圖1所示。

 

 

1.3 基因下載

得到的優(yōu)良基因就是所需的方案,將這個方案直接下載,最后實現(xiàn)可控制,可重構(gòu),自適應(yīng)。如圖2所示。

 

 

基本遺傳算法是通過某種編碼機制把對象抽象為由特定符號按一定順序排成的串,就像染色體都是由基因排成的串,此處是使用二進制編碼,得到的是5 bit二進制字符串。程序如下:

 

 

2 FPGA基本結(jié)構(gòu)

目前主流FPGA均采用基于SRAM工藝的查找表結(jié)構(gòu),也有些軍品和宇航級FPGA,采用Flash或熔絲與反熔絲工藝的查找表結(jié)構(gòu)。通過燒寫文件改變查找表內(nèi)容的方法來實現(xiàn)對FPGA的重復(fù)配置。

查找表(Look-Up-Table)簡稱為LUT,目前FPGA中多使用4輸入的LUT,所以每個LUT可以看成一個有4位地址線的RAM。這樣,每輸入一個信號進行邏輯運算就等于輸入一個地址進行查表,找出地址對應(yīng)的內(nèi)容,然后輸出。

2.1 多路復(fù)用器(MulTIplexer)

基于這種4輸入LUT結(jié)構(gòu)的原理,采用了4輸入的復(fù)用選擇器,在多路數(shù)據(jù)傳送過程中,能夠根據(jù)需要將其中任意一路選出,也稱多路選擇器或多路開關(guān)。本文將控制器產(chǎn)生的5位數(shù)據(jù)流通過移位寄存器來控制4個輸入端口的選擇,如圖3所示。

 

 

2.2 移位寄存器(Shift Register)

在數(shù)字電路中,通常會用寄存器存放二進制數(shù)據(jù)或代碼,如圖4所示。Mux的選擇位由控制器產(chǎn)生的數(shù)據(jù)流經(jīng)緩存后輸出,SelA[1,0],SelB[1,O]分別作用于兩個多路復(fù)用器。移位寄存器中輸出控制多路復(fù)用器的控制位如表1所示。

 

 

 

 

2.3 與非門

與非門是組成各種電路的基礎(chǔ)門,可根據(jù)需要,用與非門搭建不同的門,如圖5所示,將不同的與非門結(jié)構(gòu)實現(xiàn)與門或門等其他功能,實現(xiàn)動態(tài)可重構(gòu)。

3 可重構(gòu)系統(tǒng)的單元結(jié)構(gòu)搭建

根據(jù)4輸入LUT的結(jié)構(gòu)原理,本電路選用2個4輸入的MUX用來選擇與非門的輸入端口,然后用1個2輸入的MUX選擇數(shù)據(jù)的輸出,3個MUX的選擇位分別用SelB[1,0],SelA[1,0],Sel-out控制,移位寄存器作為5位串行二進制數(shù)的緩存,如圖6所示。可知,與非門可以通過東西南北4輸入的選擇組成各種數(shù)字電路,這種單元結(jié)構(gòu)可以繼續(xù)擴展為2&TImes;2或更多單元,實現(xiàn)復(fù)雜的數(shù)字電路。這里演示單元結(jié)構(gòu)形成的與門和或門的簡單結(jié)構(gòu),進一步說明可重構(gòu)的可實現(xiàn)性。

 

 

 

 

當(dāng)產(chǎn)生數(shù)據(jù)流經(jīng)過緩存進行重構(gòu)電路后,可以看到新的熟悉電路所實現(xiàn)的功能,如圖7所示。通過觀察輸入和輸出端的關(guān)系,測試得到所需電路的最佳方案,即可下載到硬件,完成所需任務(wù)。

 

 

4 硬件平臺結(jié)構(gòu)

硬件結(jié)構(gòu)是基于單片機與FPGA的通信。Mcu選擇MSP430,通過RS232和FPGA進行通信,PC機通過JTAG接口向中心芯片下載程序。外圍設(shè)備中,選擇2個8位LED,4位輸入按鍵,1個12864液晶顯示,預(yù)留32位的擴展接口。如圖8所示,F(xiàn)PGA選擇的是Ahera的EP1C16Q240C8。

5 小結(jié)

實施電路可重構(gòu)技術(shù),已成為計算系統(tǒng)研究中的新熱點,使硬件逐漸軟件化,通過微處理器結(jié)合多個FPGA對其進行配置,實現(xiàn)動態(tài)局部可重構(gòu),具有較強的通用性和自適應(yīng)性,適用于模塊化設(shè)計。本文基于5 bit數(shù)據(jù)流,實現(xiàn)了FPGA的部分動態(tài)可重構(gòu),可以實時生成所需要的硬件結(jié)構(gòu)。動態(tài)可重構(gòu)可以充分利用可重配置硬件,尤其是可重配置計算方面。該技術(shù)在理論上有較大發(fā)展,F(xiàn)PGA未來的發(fā)展方向之一就是做支持動態(tài)可配置的SOPC硬件。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉