通常情況下,在設(shè)計(jì)基于FPGA的大型信號處理系統(tǒng)的時候,設(shè)計(jì)人員往往需要進(jìn)行費(fèi)時費(fèi)力的仿真。以Xilinx System Generator for DSP為代表的FPGA設(shè)計(jì)工具,通過提供可靠的硬件在環(huán)接口(該接口可以直接將FPGA硬件置入設(shè)計(jì)仿真),來解決這種問題。
通過在硬件上模擬部分設(shè)計(jì),這些接口可以大大提高仿真的速度——通常可以提高一個甚至多個數(shù)量級。使用硬件在環(huán)還可以讓設(shè)計(jì)人員實(shí)時進(jìn)行FPGA硬件調(diào)試和驗(yàn)證。
System Generator for DSP 可以為多類FPGA開發(fā)平臺提供硬件在環(huán)接口。這些平臺通常通過不同的物理接口和PC建立通信。舉例來說,一個JTAG協(xié)仿真接口可以允許任何一個具備 JTAG頭和Xilinx FPGA的FPGA板在System Generator for DSP內(nèi)部進(jìn)行協(xié)仿真。其它類型的板卡,比如XtremeDSPTM開發(fā)工具套件,是通過PCI總線進(jìn)行通信的。直到最近以來,具有高存儲帶寬和吞吐率要求的系統(tǒng)協(xié)仿真(例如視頻和圖像處理),還只能在那些通過PCI或者是PCMCIA接口直接與PC建立通信的開發(fā)板上進(jìn)行。
基于以太網(wǎng)的協(xié)仿真
System Generator for DSP 8.1內(nèi)含一個全新的以太網(wǎng)協(xié)仿真接口,該接口首次讓Xilinx ML402 *估平臺具備了高帶寬協(xié)仿真的能力。ML402開發(fā)板將直接通過標(biāo)準(zhǔn)以太網(wǎng)電纜或者通過網(wǎng)絡(luò)遠(yuǎn)程連接到計(jì)算機(jī)上。
接口的核心是Xilinx三態(tài)以太網(wǎng)MAC核,它可以支持10/100/1000 Mbps半雙工和全雙工操作模式。當(dāng)設(shè)計(jì)人員通過使用以太網(wǎng)硬件協(xié)仿真接口生成一個設(shè)計(jì)的時候,System Generator for DSP將自動在設(shè)計(jì)周圍建立必要的邏輯,從而在仿真的過程中,通過以太網(wǎng)連接與FPGA進(jìn)行通信(圖1)。你還可以雙擊任意一個設(shè)計(jì)的System Generator模塊打開它的參數(shù)配置對話框,從而生成一個用于以太網(wǎng)硬件協(xié)仿真的設(shè)計(jì)。在編譯菜單下,從硬件協(xié)仿真菜單中選擇 ML402/Ethernet編譯(參見圖2)。你可以在兩種不同的以太網(wǎng)協(xié)仿真模式中進(jìn)行選擇。
基于網(wǎng)絡(luò)的協(xié)仿真
基于網(wǎng)絡(luò)的接口可以讓開發(fā)人員對那些連至標(biāo)準(zhǔn)IPv4網(wǎng)絡(luò)的FPGA硬件進(jìn)行協(xié)仿真。由于IPv4這種網(wǎng)絡(luò)幾乎無處不在,基于網(wǎng)絡(luò)的接口,為與連接至有線或者無線網(wǎng)絡(luò)的遠(yuǎn)程FPGA開發(fā)板建立通信提供了一條便捷的途徑。該接口在后臺管理著通信細(xì)節(jié)和錯誤處理過程(在丟包后重新進(jìn)行傳送)。System Generator for DSP通過分析ML402板的IP地址來決定在協(xié)仿真過程中與哪個平臺進(jìn)行通信(圖3)。
點(diǎn)對點(diǎn)協(xié)仿真
第二種以太網(wǎng)協(xié)仿真的模式則是一種點(diǎn)對點(diǎn)接口,該接口使用原始的以太網(wǎng)幀,通過數(shù)據(jù)鏈路層與ML402板建立高帶寬通信。與基于網(wǎng)絡(luò)的模式不同的是,點(diǎn)對點(diǎn)接口側(cè)重于本地網(wǎng)段上的低層通信。協(xié)仿真的數(shù)據(jù)則通過連接ML402板和計(jì)算機(jī)的標(biāo)準(zhǔn)UTP以太網(wǎng)電纜進(jìn)行傳送。這意味著,你的計(jì)算機(jī)必須具備一個空閑的以太網(wǎng)插口以建立連接。
點(diǎn)對點(diǎn)接口可以支持千兆位級以太網(wǎng)標(biāo)準(zhǔn),如果該接口被配置為可以使用巨型幀,數(shù)據(jù)的傳送性能將大大提高。使用這種接口連接方式,你甚至可以對超帶寬應(yīng)用進(jìn)行協(xié)仿真。
器件配置
上述兩種以太網(wǎng)協(xié)仿真接口都支持一種新的器件配置方法,即利用Xilinx System A*M解決方案支持給予以太網(wǎng)的配置。這種配置過程可以在相同的用于協(xié)仿真的以太網(wǎng)連接上進(jìn)行,因此消除了對二次編程電纜(如Xilinx Parallel Cable IV或者Platform. Cable USB)的需求。ML402開發(fā)板還搭載了一個Compact Flash卡,它包含一個特殊的啟動加載程序映像,該映像在上電的時候會自動下載至FPGA。該映像可以利用在仿真開始時通過以太網(wǎng)電纜傳輸?shù)男碌腇PGA協(xié)仿真的數(shù)據(jù)位流對FPGA進(jìn)行重新配置。整個配置過程都由System Generator for DSP以透明方式進(jìn)行操控。
設(shè)計(jì)示例
一個命名為conv5x5_video_ex的5×5濾波器算子設(shè)計(jì)模型被包含在System Generator for DSP 8.1軟件工具當(dāng)中。該設(shè)計(jì)證明了使用n-抽頭MAC FIR濾波器可以有效地實(shí)現(xiàn)二維圖像濾波。圖4顯示了System Generator for DSP的頂層設(shè)計(jì)。
另外,該設(shè)計(jì)還包含一個硬件協(xié)仿真測試平臺,該平臺用來使循環(huán)視頻序列以實(shí)時幀速率流過5×5內(nèi)核。在每個仿真周期,視頻幀將被傳送到FPGA中進(jìn)行處理。一旦進(jìn)入FPGA,每個幀都會被5×5內(nèi)核進(jìn)行濾波,然后傳回計(jì)算機(jī)用Simulink進(jìn)行分析。仿真過程中,兩個Simulink矩陣指示器模塊分別顯示未經(jīng)濾波和經(jīng)過濾波后的圖像,圖5所示為通過測試平臺的數(shù)據(jù)流。
基準(zhǔn)測試
對5×5濾波器設(shè)計(jì)示例進(jìn)行了編譯以便實(shí)現(xiàn)點(diǎn)對點(diǎn)以太網(wǎng)硬件協(xié)仿真,并利用Xilinx ML402開發(fā)板對其進(jìn)行了協(xié)仿真。我們對硬件仿真速度與軟件仿真速度進(jìn)行了比較?;鶞?zhǔn)程序特別考慮了每秒被讀回的已處理幀的數(shù)目,并將結(jié)果同單個幀的濾波操作所耗費(fèi)的軟件仿真時間進(jìn)行了比較。
圖6總結(jié)了與純軟件仿真相比,以太網(wǎng)協(xié)仿真所實(shí)現(xiàn)的仿真加速。結(jié)果表明,仿真速度提高了大約50到1,000倍。在現(xiàn)實(shí)設(shè)計(jì)中,速度的提高幅度取決于多種因素,這些因素包括:設(shè)計(jì)的復(fù)雜程度、I/O端口的數(shù)目和I/O數(shù)據(jù)的流量等。圖6還顯示,和以太網(wǎng)設(shè)置有關(guān)的另外兩個重要因素——鏈路速度和可允許的最大幀尺寸——也能影響到協(xié)仿真的性能。
隨著鏈路速度的提高,我們發(fā)現(xiàn)仿真所用的時間大大縮短,這是因?yàn)橛懈嗟膸捒捎糜趨f(xié)仿真的數(shù)據(jù)。另外,如果開通千兆位級以太網(wǎng)的巨型幀支持功能(為保證突發(fā)數(shù)據(jù)傳輸?shù)男首畲蠡?,加大了可允許的最大幀尺寸),協(xié)仿真的性能可得到進(jìn)一步的提升。
結(jié)論
System Generator for DSP的以太網(wǎng)硬件協(xié)仿真接口,為在Xilinx ML402平臺上進(jìn)行視頻和圖像處理應(yīng)用仿真提供了一個便捷和高帶寬的解決方案。該類接口為對遠(yuǎn)程FPGA平臺進(jìn)行仿真,或者為了實(shí)現(xiàn)更高的性能,對那些直接通過以太網(wǎng)電纜連接主機(jī)的開發(fā)板進(jìn)行仿真創(chuàng)造了條件。借助System ACE解決方案,設(shè)計(jì)人員可以通過以太網(wǎng)完成器件配置,消除了對二次編程電纜的需求。正如基準(zhǔn)測試結(jié)果顯示的那樣,該接口能夠大幅度提高仿真速度。
Xilinx System Generator for DSP v8.1軟件工具內(nèi)含以太網(wǎng)協(xié)仿真接口和視頻處理參考設(shè)計(jì)。