基于fpga二維小波變換核的實(shí)時(shí)可重構電路
1.硬件部分
本文引用地址:http://dyxdggzs.com/article/266432.htm可進(jìn)化IP核的實(shí)現
3.1 實(shí)現中的問(wèn)題
可復用的IP核通常有軟核、固核和硬核三種。本文討論的是軟核。本文的目標是,設計和實(shí)現以HDL源代碼(例如,VHDL)表示的可進(jìn)化IP核。其優(yōu)點(diǎn)是IP核的表示獨立于平臺,這樣它們就可以在各種不同的目標結構中運行。要解決的主要問(wèn)題是,可進(jìn)化的IP核的內部可重構電路的自動(dòng)重構(因為它們是可進(jìn)化的)。

圖 5 用vertex slice 實(shí)現的虛擬可重構電路
當一個(gè)可進(jìn)化IP核從一個(gè)組件庫中被下載到可重構器件的一個(gè)指定位置時(shí),它的內部可重構電路必須進(jìn)行重構。這就意味著(zhù)這個(gè)可重構器件中的一些可編程塊必須能配置這個(gè)可重構器件的其它內部可編程塊。另外,這個(gè)可進(jìn)化IP核(它的基因單元)能被放置于這個(gè)可編程陣列(即可重構器件)的任何位置,也就是說(shuō),這個(gè)可重構器件中必須支持內部重構。
FPGA以其動(dòng)態(tài)可重構的優(yōu)點(diǎn),無(wú)疑是可進(jìn)化IP核的最佳實(shí)現平臺。然而,通常的FPGA并不支持內部重構,而只允許通過(guò)一個(gè)特殊的配置接口外部重構(如圖5)。目前,只存在一種支持內部重構的平臺,就是單元陣列,但這種芯片目前還相當少。因此,為了在普通FPGA器件實(shí)現可進(jìn)化IP核,使之能在實(shí)際應用中發(fā)揮作用,必須采用其它的一些方法。硬件虛擬化是基于FPGA的系統常用的一種設計技術(shù)。從這個(gè)思想出發(fā),本文采用了一個(gè)被稱(chēng)為虛擬可重構電路的技術(shù)來(lái)實(shí)現可進(jìn)化硬件中的內部可重構電路。但文中對設計虛擬可重構電路的概念進(jìn)行了擴展。
3.2 虛擬可重構電路
一些FPGA芯片支持部分重構,也就是允許可重構系統的一部分重構,而不影響其余部分的運行。部分重構的優(yōu)點(diǎn)在于,其重構所花的時(shí)間比全部重構更少。本文以支持部分重構的Xilinx Virtex FPGA為例,來(lái)說(shuō)明虛擬可重構電路的實(shí)現。IP核可以動(dòng)態(tài)地下載到FPGA或從FPGA刪除。所有的操作都通過(guò)Virtex重構端口和Jbits接口來(lái)完成。當一個(gè)可進(jìn)化IP核被下載時(shí),它的重構位串在指定位置構靠下列單元;虛擬可重構電路、基因單元和控制器。
圖5表明,虛擬可重構電路實(shí)際上是一種在普通FPGA上實(shí)現的新的可重構電路。本例中由八個(gè)可編程元素構成,由Virtex單元(slice)實(shí)現。Virtex單元實(shí)現新的可編程元素陣列、新的布線(xiàn)電路和新的配置存儲器。虛擬電路能內部重構,但如果有其它新的配置存儲器與之連接,也可從FPGA的I/O引腳配置。
這種方法的優(yōu)點(diǎn)在于:可根據具體的應用需要準確地設計可編程元素陣列、布線(xiàn)電路和配置存儲器。虛擬可重構電路的重構方式和粒度能準確地反映具體應用的需要。通過(guò)虛擬可重構電路,很容易把領(lǐng)域知識插入到基因單元和可重構電路的體系結構中,從而獲得電路軟件模型的精確實(shí)現。
圖6給出了一個(gè)虛擬可編程元素的例子。這個(gè)虛擬可重構電路由8個(gè)這樣的元素構成,有4個(gè)輸入和2個(gè)輸出。這些虛擬可編程元素稱(chēng)為可重配置功能塊CFB(Configurable Functional Blocks)。每個(gè)CFB對應一個(gè)配置位串(這里的位串為6位),其中兩個(gè)配置位決定了CFB的功能,其它四位定義了輸入的連接信息。布線(xiàn)電路由多路器組成,它們由配置存儲器中的位串控制。配置存儲器由Virtex單元構成,一個(gè)Virtex單元包含兩個(gè)觸發(fā)器,用于存儲配置位串中的兩位。配置存儲器的所有位都連到多路器,多路器控制布線(xiàn)和CFB中功能的選擇。
虛擬可重構電路中CFB的數量由具體的應用決定。虛擬可重構電路用結構級VHDL語(yǔ)言來(lái)描述,但是一些基本的電路(例如“MAX”電路)用行為級來(lái)描述。虛擬可重構能在不同的目標器件下綜合,目標器件并不需要支持部分重構。

圖 6 虛擬可重構電路及其中一個(gè)CFB的實(shí)現
3.3 基因單元和控制器
基因單元和控制器的實(shí)現通常有兩種選擇:采用普通微處理器實(shí)現,或者設計一個(gè)專(zhuān)用的電路來(lái)實(shí)現。
專(zhuān)用的電路是指一種進(jìn)化算法的硬件實(shí)現,目前在可進(jìn)化硬件領(lǐng)域已經(jīng)開(kāi)發(fā)了很多這樣的實(shí)現。這種算法的優(yōu)點(diǎn)是電路的進(jìn)化速度快,適合于復雜的應用。
采用微處理器實(shí)現時(shí),可以購買(mǎi)或免費獲得現成的微處理器軟核,如Xilinx提供的MicroBlaze和PicoBlaze微控制器IP核,Altera生產(chǎn)Nios核,等等。此外,如果給出的目標可重構器件中有片上處理器,可以使用片上處理器,Xilinx Virtex II Pro XC2VP50芯片包含四個(gè)PowerPC處理器。處理器必須通過(guò)編程來(lái)執行程序,它們能和核周?chē)沫h(huán)境進(jìn)行通信并完成對染色體的基因操作。此外,處理器還負責內部虛擬可重構電路的重構。
評論