基于FPGA數(shù)據(jù)流控制動(dòng)態(tài)可重構(gòu)的實(shí)現(xiàn)
基本遺傳算法是通過(guò)某種編碼機(jī)制把對(duì)象抽象為由特定符號(hào)按一定順序排成的串,就像染色體都是由基因排成的串,此處是使用二進(jìn)制編碼,得到的是5 bit二進(jìn)制字符串。程序如下:
2 FPGA基本結(jié)構(gòu)
目前主流FPGA均采用基于SRAM工藝的查找表結(jié)構(gòu),也有些軍品和宇航級(jí)FPGA,采用Flash或熔絲與反熔絲工藝的查找表結(jié)構(gòu)。通過(guò)燒寫(xiě)文件改變查找表內(nèi)容的方法來(lái)實(shí)現(xiàn)對(duì)FPGA的重復(fù)配置。
查找表(Look-Up-Table)簡(jiǎn)稱(chēng)為L(zhǎng)UT,目前FPGA中多使用4輸入的LUT,所以每個(gè)LUT可以看成一個(gè)有4位地址線的RAM。這樣,每輸入一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算就等于輸入一個(gè)地址進(jìn)行查表,找出地址對(duì)應(yīng)的內(nèi)容,然后輸出。
2.1 多路復(fù)用器(Multiplexer)
基于這種4輸入LUT結(jié)構(gòu)的原理,采用了4輸入的復(fù)用選擇器,在多路數(shù)據(jù)傳送過(guò)程中,能夠根據(jù)需要將其中任意一路選出,也稱(chēng)多路選擇器或多路開(kāi)關(guān)。本文將控制器產(chǎn)生的5位數(shù)據(jù)流通過(guò)移位寄存器來(lái)控制4個(gè)輸入端口的選擇,如圖3所示。本文引用地址:http://m.butianyuan.cn/article/191232.htm
2.2 移位寄存器(Shift Register)
在數(shù)字電路中,通常會(huì)用寄存器存放二進(jìn)制數(shù)據(jù)或代碼,如圖4所示。Mux的選擇位由控制器產(chǎn)生的數(shù)據(jù)流經(jīng)緩存后輸出,SelA[1,0],SelB[1,O]分別作用于兩個(gè)多路復(fù)用器。移位寄存器中輸出控制多路復(fù)用器的控制位如表1所示。
2.3 與非門(mén)
與非門(mén)是組成各種電路的基礎(chǔ)門(mén),可根據(jù)需要,用與非門(mén)搭建不同的門(mén),如圖5所示,將不同的與非門(mén)結(jié)構(gòu)實(shí)現(xiàn)與門(mén)或門(mén)等其他功能,實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)。
評(píng)論