4節(jié)基于SystemGenerator的硬件協(xié)仿真_第1頁
4節(jié)基于SystemGenerator的硬件協(xié)仿真_第2頁
4節(jié)基于SystemGenerator的硬件協(xié)仿真_第3頁
4節(jié)基于SystemGenerator的硬件協(xié)仿真_第4頁
4節(jié)基于SystemGenerator的硬件協(xié)仿真_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第4節(jié)基于SystemGenerator的硬件協(xié)仿真HYPERLINK”http:///search/?keyword=硬件協(xié)仿真&searchselect=article"硬件協(xié)仿真7。4.1硬件協(xié)仿真平臺(tái)的介紹與平臺(tái)安裝1.硬件協(xié)仿真介紹

通常情況下,在設(shè)計(jì)基于FPGA的大型信號(hào)處理系統(tǒng)的時(shí)候,設(shè)計(jì)人員往往需要進(jìn)行費(fèi)時(shí)費(fèi)力的仿真。以XilinxSystemGeneratorforDSP為代表的FPGA設(shè)計(jì)工具,通過提供可靠的硬件在環(huán)接口(該接口可以直接將FPGA硬件置入設(shè)計(jì)仿真),來解決這種問題。通過在硬件上模擬部分設(shè)計(jì),這些接口可以大大提高仿真的速度——通??梢蕴岣咭粋€(gè)甚至多個(gè)數(shù)量級(jí)。使用硬件在環(huán)還可以讓設(shè)計(jì)人員實(shí)時(shí)進(jìn)行FPGA硬件調(diào)試和驗(yàn)證.

SystemGeneratorforDSP可以為多類FPGA開發(fā)平臺(tái)提供硬件在環(huán)接口.這些平臺(tái)通常通過不同的物理接口和PC建立通信.舉例來說,一個(gè)JTAG協(xié)仿真接口可以允許任何一個(gè)具備JTAG頭和XilinxFPGA的FPGA板在SystemGeneratorforDSP內(nèi)部進(jìn)行協(xié)仿真。其它類型的板卡,比如XtremeDSP開發(fā)工具套件,是通過PCI總線進(jìn)行通信的。目前,具有高存儲(chǔ)帶寬和吞吐率要求的系統(tǒng)協(xié)仿真(例如視頻和圖像處理),還只能在那些通過PCI或者是PCMCIA接口直接與PC建立通信的開發(fā)板上進(jìn)行。

2.硬件協(xié)仿真平臺(tái)的安裝

1)安裝必備條件

在安裝前要確保具備以下硬件:電路板和PC機(jī)的以太網(wǎng)接口、并口PC4下載線或USB下載線以及14腳的帶狀電纜。同時(shí),要安裝以下軟件:ISE、SystemGenerator以及WinPcap4.0版。

2)基于以太網(wǎng)接口協(xié)仿真平臺(tái)的安裝打開PC“網(wǎng)絡(luò)鄰居”中的“網(wǎng)絡(luò)連接”,在“本地連接"圖標(biāo)上單擊右鍵,選擇“屬性”命令,雙擊“Internet協(xié)議(TCP/IP)”,將IP地址設(shè)為192。168.8。2,子網(wǎng)掩碼設(shè)為255.255。255.0.單擊屬性頁面的“配置”按鍵,在彈出的對(duì)話框中選擇“高級(jí)”頁面,將屬性“FlowControl”和“Speed&Duplex"的值都設(shè)為Auto。通過以太網(wǎng)連線將電路板和PC機(jī)通過以太網(wǎng)接口連接起來.3)基于JTAG接口協(xié)仿真平臺(tái)的安裝

基于JTAG接口協(xié)仿真平臺(tái)不需要特殊安裝,只要將JTAG接口通過PC4/USB下載線連接到PC即可。

7。4。2硬件協(xié)仿真的基本操作1.編譯硬件模型

一旦安裝了硬件協(xié)仿真平臺(tái),接下來的基本操作就是建立能在硬件板中實(shí)際運(yùn)行的SystemGenerator模型或子系統(tǒng).能進(jìn)行協(xié)仿真的模型必須要包括一個(gè)SystemGenerator模塊,該模塊定義了如何將模型編譯成硬件。其制作的典型步驟如下:

1)選擇編譯目標(biāo)

在設(shè)計(jì)中雙擊打開SystemGenerator模塊,在“Compilation”欄單擊,選擇“HardwareCo—Simulation”命令,如果用戶使用Xilinx相關(guān)的開發(fā)板(ML402、ML506),可直接選擇;若使用用戶板,則選擇“NewCompilationTarget。.”,如圖7—36所示.

圖7-36硬件協(xié)仿真編譯目標(biāo)選擇界面選擇了“NewCompilationTarget.?!泵詈螅瑫?huì)彈出開發(fā)板參數(shù)配置界面。需要填入開發(fā)板的名稱、系統(tǒng)時(shí)鐘的頻域與管腳約束、JTAG選項(xiàng)、開發(fā)板上FPGA芯片的型號(hào)以及非存儲(chǔ)器映射端口;如果用戶已具有電路板的SBDBuilder描述文件(后綴為.xml),則直接點(diǎn)擊“Load”鍵加載即可.輸入電路板信息后,點(diǎn)擊“SaveZip"按鍵,保存當(dāng)前設(shè)置到相關(guān)目錄,且后綴為.zip。需要注意的是:要保證.zip的存放路徑和MATLAB的當(dāng)前路徑一致。如加載了Spartan3E開發(fā)板的。xml文件后,配置頁面如圖7-37所示。

圖7—37目標(biāo)板配置界面示意圖完成上述步驟后,SystemGenerator會(huì)提示用戶安裝Plugin,也可取消后在MATLAB命令行輸入xlInstallPlugin(’s3e_starter。zip’),會(huì)自動(dòng)彈出圖7—38所示的提示界面,單擊“OK”確認(rèn)。

圖7-38用戶板安裝完成提示界面2)調(diào)用代碼生成器

在編譯過程中,SystemGenerator不僅生成了HDL代碼和網(wǎng)表,還運(yùn)行了下載工具將網(wǎng)表轉(zhuǎn)化成可配置比特文件。因此,點(diǎn)擊圖8-13中的“Generator”按鍵,即可調(diào)用代碼生成器生成適合硬件協(xié)仿真的配置比特流文件。該文件不僅包含了模型設(shè)計(jì)的硬件代碼,還包括附加的額外邏輯,在PC和硬件平臺(tái)之間建立一個(gè)物理接口,保障SystemGenerator和平臺(tái)之間的雙向通信。此外,設(shè)計(jì)中的特殊電路也包含在其中,如DCM模塊、外部讀寫組件等.

2.硬件協(xié)仿真模塊

硬件協(xié)仿真模塊也是一類專用模塊,一旦將設(shè)計(jì)編譯成FPGA比特流文件,SystemGenerator會(huì)自動(dòng)創(chuàng)建一個(gè)新的硬件協(xié)仿真模塊,同時(shí)還會(huì)生成一個(gè)Simulink庫來存儲(chǔ)生成的模塊。此外,用戶可將該模塊從庫中復(fù)制到其余的Simulink設(shè)計(jì)中使用。硬件協(xié)仿真模塊會(huì)自動(dòng)指定驅(qū)動(dòng)其模塊或子系統(tǒng)的外部端口,而且它的端口名和類型都與原始設(shè)計(jì)的端口一致,其原理如圖7-39、7-40所示.

圖7—39硬件協(xié)仿真PC端網(wǎng)絡(luò)配置界面示意圖

圖7—40PC屬性值選擇界面示意圖硬件協(xié)仿真模塊在Simulink設(shè)計(jì)中和普通模塊的使用方法一樣的。在仿真期間,該模塊和所使用的FPGA平臺(tái)交互,自動(dòng)完成芯片配置、數(shù)據(jù)傳輸和時(shí)鐘等任務(wù).一旦輸入端口寫入數(shù)據(jù),協(xié)仿真模塊會(huì)自動(dòng)將相應(yīng)的數(shù)據(jù)發(fā)送到硬件中合適的位置.同樣,如果數(shù)據(jù)輸出端口有變化,模塊自動(dòng)將數(shù)據(jù)從硬件中取回。

協(xié)仿真模塊可以被Xilinx定點(diǎn)信號(hào)類型、Simulink定點(diǎn)信號(hào)類型以及Simulink雙精度類型驅(qū)動(dòng)。輸出信號(hào)類型則取決于和其級(jí)聯(lián)的模塊,如果輸出端口驅(qū)動(dòng)了SystemGenerator模塊,則其輸出數(shù)據(jù)為Xilinx定點(diǎn)信號(hào)類型;如果輸出端口驅(qū)動(dòng)了Simulink模塊,則輸出數(shù)據(jù)為Simulink數(shù)據(jù)類型。需要注意的是:一旦輸入、輸出數(shù)據(jù)為Simulink類型,則所有數(shù)據(jù)通過四舍五入的方法來量化,溢出則采用飽和處理。

同樣,協(xié)仿真模塊也可具備參數(shù)化配置的能力,這是由FPGA平臺(tái)決定的,不同的平臺(tái)提供不同的參數(shù)化模型.

3.硬件協(xié)仿真時(shí)鐘

1)確定目標(biāo)板時(shí)鐘頻率

在電路板上,一般只有單一系統(tǒng)時(shí)鐘,到了FPGA內(nèi)部,可通過DCM模塊得到不同的頻率,但是在協(xié)仿真中只能使用不高于系統(tǒng)時(shí)鐘的某些特定頻率值。例如Xilinx公司的ML402開發(fā)板,系統(tǒng)時(shí)鐘為100MHz,但可用的硬件協(xié)仿真頻率只能為100MHz、66.7MHz、50MHz以及33.3MHz.

在SystemGenerator中,點(diǎn)擊協(xié)仿真模塊的“Settings…”按鍵,在彈出配置對(duì)話框的“ClockFrequency"欄的下拉框中選擇相應(yīng)的頻率,如圖8-41所示。

圖7—41用戶板安裝完成提示界面2)時(shí)鐘模式

協(xié)仿真模塊和相關(guān)聯(lián)的FPGA芯片建立同步時(shí)鐘的方法有兩種:單步時(shí)鐘(Signal-StepClock)和自由運(yùn)行時(shí)鐘(Free—RunningClock)。在前一種模式下,F(xiàn)PGA的時(shí)鐘受Simulink控制,數(shù)據(jù)是同步采樣的;在后一種模式下,F(xiàn)PGA由自身內(nèi)部提供時(shí)鐘,當(dāng)Simulink啟動(dòng)硬件仿真時(shí),數(shù)據(jù)是通過異步采樣得到的。其時(shí)鐘模式配置界面如圖8—42所示.

圖7—42協(xié)仿真模塊的時(shí)鐘模式配置界面在單步時(shí)鐘模式下,硬件通過一個(gè)時(shí)鐘脈沖在每個(gè)仿真階段和軟件同步,從而保證了硬件協(xié)仿真模塊和原始模型是真正意義上的比特一致或周期一致.但由于硬件協(xié)仿真模塊只在Simulink調(diào)用它時(shí),才產(chǎn)生硬件工作所需的時(shí)鐘信號(hào),因此它與Simulink模塊的通信開銷以及FPGA芯片和Simulink的開銷是比較大的,在一定程度上限制了硬件的性能。從經(jīng)驗(yàn)上來講,只要FPGA內(nèi)部的計(jì)算量遠(yuǎn)大于通信開銷時(shí),就能明顯起到硬件加速的功能.

和單步時(shí)鐘模式不同的是,在自由運(yùn)行模式中,硬件運(yùn)行和軟件仿真是異步的,且不受軟件控制,其時(shí)鐘是連續(xù)運(yùn)行的。這樣,F(xiàn)PGA的端口不再同步于Simulink仿真端口的事件,協(xié)仿真模塊和原始模型就不是比特一致的。例如,當(dāng)Simulink端口有事件發(fā)生時(shí),需要硬件平臺(tái)在此時(shí)將數(shù)據(jù)讀進(jìn)或?qū)懗龅较鄳?yīng)的端口上,但是由于延遲了未知的時(shí)鐘周期后,硬件的狀態(tài)已不能接收或發(fā)送數(shù)據(jù),就會(huì)造成仿真出錯(cuò)。因此,在自由運(yùn)行模式中,必須在原始模型中就加入嚴(yán)格的同步機(jī)制。

4.指定板級(jí)IO端口

在實(shí)際的電路板中,一般都有多個(gè)芯片和FPGA通信,如外部存儲(chǔ)器、ADC以及DAC等。如果在協(xié)仿真中直接利用這類硬件資源,將會(huì)得到更高的仿真性能。在SystemGenerator中可通過指定板級(jí)IO(board—specificI/O)端口來實(shí)現(xiàn)與FPGA外部芯片交互的功能。板級(jí)特殊IO端口在編譯時(shí)將被指定到FPGA的端口上,它與標(biāo)準(zhǔn)的硬件協(xié)仿真端口是不同的,是通過特殊的non-memorymappedgateway模塊來實(shí)現(xiàn)的.non—memorymappedgateway模塊在Simulink中常用來描述被包括在Simulink子系統(tǒng)或庫中的器件,包括LED、按鍵以及外部存儲(chǔ)器等。

當(dāng)SystemGenerator將板級(jí)IO模塊編譯成硬件代碼時(shí),IO端口將通過外部器件接口模塊連接到FPGA管腳上。常見的接口模塊如圖8-43所示。

圖7—43協(xié)仿真模塊板級(jí)IO接口示意圖注意:如果使用了“GatewayIn"或“GatewayOut”模塊,在編譯時(shí),不會(huì)將信號(hào)連接到FPGA管腳上,而是相應(yīng)的Simulink端口上.5.硬件協(xié)仿真示例

本章7。7節(jié)將結(jié)合FIR濾波器給出硬件協(xié)仿真的具體示例,這里就不再介紹.

7。4.3共享存儲(chǔ)器的操作

SystemGenerator硬件協(xié)仿真接口允許將共享存儲(chǔ)器以及相關(guān)模塊(共享FIFO以及共享寄存器等)編譯到FPGA中完成協(xié)仿真。這些接口使得基于硬件的共享存儲(chǔ)資源映射到PC機(jī)的通用地址空間.共享存儲(chǔ)單元有助于在PC機(jī)和FPGA之間完成高速的數(shù)據(jù)傳輸,以及實(shí)時(shí)的硬件協(xié)仿真。本節(jié)以共享FIFO模塊為例,介紹共享存儲(chǔ)器在協(xié)仿真中的使用方法。其余類型共享存儲(chǔ)器的操作步驟是類似的。

1.編譯共享存儲(chǔ)器

包含共享存儲(chǔ)器設(shè)計(jì)的硬件協(xié)仿真和普通協(xié)仿真設(shè)計(jì)的編譯過程是一樣的,選擇編譯目標(biāo),并在SystemGenerator對(duì)話框上點(diǎn)擊“Generater"按鍵。在協(xié)仿真中被編譯的共享存儲(chǔ)器都會(huì)在硬件中通過IPCore或者HDL單元來實(shí)現(xiàn)。表8—11給出了共享存儲(chǔ)單元和硬件實(shí)現(xiàn)的映射關(guān)系。表7—11共享存儲(chǔ)器模塊列表

2.含有FIFO的協(xié)仿真

在硬件協(xié)仿真中,可以生成ToFIFO模塊、FromFIFO模塊以及共享FIFO對(duì)模塊,其中共享FIFO對(duì)模塊由一個(gè)命名相同的ToFIFO模塊和FromFIFO模塊組成,To/FromFIFO可通過CoreGenerator配置成獨(dú)立時(shí)鐘。

異步FIFO在多時(shí)鐘應(yīng)用中是最安全的交換時(shí)鐘的方法。如果選擇自由運(yùn)行時(shí)鐘模式,則FPGA和Simulink仿真是異步的,也就是二者沒有保持同步鎖相,必然會(huì)建立兩個(gè)時(shí)鐘域:Simulink仿真時(shí)鐘域和FPGA自由運(yùn)行時(shí)鐘域。此時(shí),共享FIFO提供了最可信、最安全的方式來完成PC和FPGA芯片的數(shù)據(jù)交互。此外,共享FIFO還在協(xié)仿真期間支持突發(fā)傳送數(shù)據(jù)的能力,使得單次傳送一個(gè)矢量或數(shù)據(jù)幀成為可能.

在協(xié)仿真中生成一個(gè)共享FIFO對(duì),則仿真中的兩個(gè)FIFO模塊會(huì)被一個(gè)獨(dú)立的異步FIFO代替。如圖8—44所示,FIFO的讀、寫端全部連接到用戶設(shè)計(jì)邏輯(用戶邏輯由原始Simulink設(shè)計(jì)驅(qū)動(dòng)).同時(shí),由于FIFO的兩端全部連接到用戶邏輯,PC端就不能在設(shè)計(jì)中控制FIFO。

圖7—44共享FIFO對(duì)的典型連接示意圖從圖8—44中可以看出,雖然異步FIFO的兩個(gè)時(shí)鐘全部預(yù)留了,但是其時(shí)鐘源來源于同一信號(hào),和多時(shí)鐘域工作還是不同的。單個(gè)共享FIFO和共享FIFO對(duì)的使用是有所不同的.FIFO的一端連接到PC接口邏輯上,另一端連接到原始的To/FromFIFO模塊上,這樣控制邏輯就分布在PC和FPGA之間。如圖8—45所示,當(dāng)一個(gè)ToFIFO模塊編譯成硬件后,F(xiàn)IFO的寫控制端連接到用戶邏輯上,讀控制端連接到PC接口上,允許PC在仿真期間從FIFO接口讀數(shù)。

圖7-45單個(gè)寫FIFO的典型連接示意圖如圖8—46所示的應(yīng)用中,F(xiàn)IFO的讀控制端連接到和用戶設(shè)計(jì)中,寫控制端被連接到PC接口上,允許PC在仿真期間向FIFO中寫數(shù)。

圖7—46單個(gè)讀FIFO的典型連接示意圖在硬件協(xié)仿真系統(tǒng)中,共享FIF

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論