《FPGA數(shù)字信號處理設(shè)計流程》課件第5章_第1頁
《FPGA數(shù)字信號處理設(shè)計流程》課件第5章_第2頁
《FPGA數(shù)字信號處理設(shè)計流程》課件第5章_第3頁
《FPGA數(shù)字信號處理設(shè)計流程》課件第5章_第4頁
《FPGA數(shù)字信號處理設(shè)計流程》課件第5章_第5頁
已閱讀5頁,還剩99頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第5章圖形化工程設(shè)計流程及實(shí)現(xiàn)5.1常規(guī)設(shè)計流程5.2使用XILINXSystemGenerator的FPGA開發(fā)流程5.3SystemGenerator的重要功能5.4本章小結(jié) 5.1常規(guī)設(shè)計流程

5.1.1使用硬件描述語言的FPGA開發(fā)流程

使用硬件描述語言的FPGA開發(fā)流程如圖5.1.1所示,分成代碼描述、綜合、執(zhí)行和下載四個步驟。

首先,使用硬件描述語言對系統(tǒng)功能進(jìn)行行為級的描述,可選擇的硬件描述語言通常為VHDL或Verilog,并使用相應(yīng)的仿真軟件進(jìn)行行為級仿真,如圖5.1.1所示。圖5.1.1硬件描述語言設(shè)計FPGA流程(一)

其次,對硬件描述語言代碼使用綜合工具進(jìn)行綜合,并生成相應(yīng)的FPGA網(wǎng)表文件。可選用的綜合工具比較多,比如XILINX公司提供的XST(XILINXSynthesisTechnology)和Synopsys以及Leonardo等。VHDL或Verilog或兩者的混合都可用于描述系統(tǒng)。對綜合后的結(jié)果進(jìn)行功能仿真后,如果仿真結(jié)果與系統(tǒng)要求一致,則進(jìn)行下一步驟;否則返回上一步,修改代碼后再進(jìn)行綜合和功能仿真,直至滿足設(shè)計要求,如圖5.1.2所示。圖5.1.2硬件描述語言設(shè)計FPGA流程(二)最后,根據(jù)綜合生成的網(wǎng)表文件以及FPGA的芯片資源分布進(jìn)行布局布線,在布局布線后進(jìn)行的時序仿真相對于之前的功能仿真多考慮了具體硬件帶來的時延。硬件時延會直接影響到信號的建立時間和保持時間,當(dāng)系統(tǒng)時鐘頻率較低時影響較?。划?dāng)系統(tǒng)時鐘頻率較高時,可能使得系統(tǒng)功能無法實(shí)現(xiàn),可以通過優(yōu)化代碼或使用較多的硬件資源來獲得高處理速度,從而滿足設(shè)計要求。此處以及前文提到的行為級仿真、功能仿真和時序仿真都可在相應(yīng)的仿真軟件中實(shí)現(xiàn),如ModelSim等。布局布線完成后可生成用于下載到FPGA芯片的位流文件,最后在具體的芯片上驗(yàn)證其是否滿足系統(tǒng)要求。如果不能滿足要求,同樣需要修改并優(yōu)化代碼或選用更高速的器件來實(shí)現(xiàn),如圖5.1.3所示。圖5.1.3硬件描述語言設(shè)計FPGA流程(三)

5.1.2使用XILINXCOREGenerator的FPGA開發(fā)流程

在FPGA的整個設(shè)計開發(fā)過程中,模塊化的設(shè)計貫穿始終。利用模塊的復(fù)用性可以簡化設(shè)計,在不同的系統(tǒng)中,通常都需要用到實(shí)現(xiàn)相同功能的模塊,比如FIFO、UART等。XILINX等眾多公司給FPGA用戶或開發(fā)商提供了大量參數(shù)化且經(jīng)優(yōu)化的IP(Intelligentproperty)核,可將其直接用于系統(tǒng)設(shè)計中,減少開發(fā)工作量,且在功能、速度和占用資源方面都有良好的性能。目前,提供的IP核已相當(dāng)全面,包括基本邏輯、工業(yè)自動化、通信及網(wǎng)絡(luò)、數(shù)字信號處理、FPGA特征設(shè)計、數(shù)學(xué)函數(shù)、存儲器、標(biāo)準(zhǔn)總線接口等。毫不夸張地說,一個系統(tǒng)完全可以用多個IP核的組合來實(shí)現(xiàn)。針對XILINX公司的FPGA可使用XILINXCOREGenerator生成針對根據(jù)具體器件進(jìn)行優(yōu)化的IP核,其開發(fā)設(shè)計流程如圖5.1.4所示。圖5.1.4使用COREGenerator設(shè)計FPGA流程(一)圖5.1.5使用COREGenerator設(shè)計FPGA流程(二)除此以外,還包括諸如CAST,Inc.、CheetahHi-Tech,Inc.、Synopsys、AvnetDesignServices、LynuxWorks,Inc.、PLDApplications、DigitalCoreDesign等眾多第三方公司提供的IP核。

使用IP核進(jìn)行FPGA的開發(fā)相對于用硬件描述語言進(jìn)行FPGA開發(fā)最大的優(yōu)點(diǎn)在于:IP核經(jīng)用戶定制參數(shù)并由COREGenerator導(dǎo)出的代碼是經(jīng)過優(yōu)化而且綜合考慮了處理速度和資源利用的。在硬件具體實(shí)現(xiàn)時,單個模塊在FPGA內(nèi)具有固定的布局,不會受到其他模塊的干擾,保證了本模塊的最優(yōu)性能,如圖5.1.6(a)所示。由于其固定的布局,保證了其布線也能夠做到相對固定,如圖5.1.6(b)所示,確定并減小信號在傳輸過程中的時延,使得該模塊內(nèi)信號的建立時間和保持時間也相對固定,有效提高了系統(tǒng)的處理速度和可靠性。圖5.1.6IP核布局布線特點(diǎn)

(a)固定的布局;(b)固定的布局布線5.2使用XILINXSystemGenerator的FPGA開發(fā)流程

傳統(tǒng)的FPGA開發(fā)流程需要編寫大量代碼,然后將代碼轉(zhuǎn)換成具體的硬件來實(shí)現(xiàn),工作量大。但FPGA芯片上的資源是有限的,要想設(shè)計出高速、可靠且占用較少資源的系統(tǒng),就要求開發(fā)人員對具體的FPGA芯片有一定的了解。雖然可以通過使用IP核來提高性能并降低開發(fā)難度,但在做系統(tǒng)設(shè)計時并不一定能獲得滿足功能要求的IP核,同時系統(tǒng)工程師難以面面俱到,這部分工作通常需要專業(yè)的硬件工程師來完成。SystemGenerator的出現(xiàn)旨在打破這樣的局面,讓對硬件不甚了解的系統(tǒng)工程師也可以進(jìn)行FPGA的設(shè)計開發(fā);讓不懂FPGA的人也可以使用FPGA。SystemGenerator的出現(xiàn)也順應(yīng)了當(dāng)代工業(yè)系統(tǒng)設(shè)計的發(fā)展潮流。集成電路技術(shù)的發(fā)展,給工業(yè)技術(shù)帶來了以下幾項(xiàng)新的發(fā)展趨勢:

功能強(qiáng)大的平臺化芯片成為主流,如FPGA、DSP。

系統(tǒng)具有高靈活性以應(yīng)對不斷提高的工業(yè)標(biāo)準(zhǔn)。

多種設(shè)計方法——區(qū)分控制流和數(shù)據(jù)流。

在單一平臺上進(jìn)行系統(tǒng)建模和實(shí)現(xiàn)。

通過半實(shí)物仿真來降低復(fù)雜系統(tǒng)的開發(fā)難度。在這些發(fā)展趨勢的推動下SystemGenerator應(yīng)運(yùn)而生。SystemGenerator模塊的參數(shù)化和設(shè)計的圖形化使得修改設(shè)計變得很方便;明確將控制流和數(shù)據(jù)流分開,使得設(shè)計結(jié)構(gòu)清晰,設(shè)計方法多樣化;可在MATLAB/Simulink軟件平臺上進(jìn)行系統(tǒng)建模和仿真,并直接導(dǎo)出硬件描述語言及位流文件下載FPGA;支持半實(shí)物仿真,可將整個系統(tǒng)或系統(tǒng)中的部分模塊下載到FPGA中,并在MATLAB/Simulink軟件平臺上進(jìn)行實(shí)時的半實(shí)物仿真。

SystemGenerator在生成硬件描述語言代碼過程中調(diào)用了大量的IP核,代碼具有很高的執(zhí)行效率;圖形化的開發(fā)方式使得從設(shè)計框圖上很容易區(qū)分控制流和數(shù)據(jù)流;SystemGenerator工具箱具有強(qiáng)大的功能,使得不具備硬件工程師專業(yè)知識的系統(tǒng)工程師同樣可以進(jìn)行FPGA開發(fā)。而消除系統(tǒng)工程師和FPGA開發(fā)人員之間的隔閡也是SystemGenerator的功能之一。傳統(tǒng)Simulink的FPGA開發(fā)流程如圖5.2.1所示。圖5.2.1傳統(tǒng)Simulink的FPGA開發(fā)流程

SystemGenerator為FPGA的開發(fā)提供了以下幾點(diǎn)優(yōu)勢:

為FPGA開發(fā)提供了系統(tǒng)級設(shè)計環(huán)境。從Simulink仿真到位流文件的生成具有集成的設(shè)計流程,并有MathWorks公司的MATLAB/Simulink軟件平臺、XILINX公司的FPGA執(zhí)行工具、硬件綜合語言綜合器以及龐大的IP核庫等眾多技術(shù)支持。

提供了豐富的算法、邏輯和數(shù)字信號處理函數(shù)(XILINXBlockset)庫。

高度算法提取,可配置任意精度的定點(diǎn)數(shù)包括數(shù)據(jù)的量化和飽和,在仿真時可選用雙精度的浮點(diǎn)數(shù)替代定點(diǎn)數(shù)。

半實(shí)物仿真以提高系統(tǒng)驗(yàn)證效率。目前支持SystemGenerator的器件有Virtex、Virtex-E、Virtex-2、Virtex-2Pro、Virtex-4、Virtex-5、Spartan-2、Spartan-2E、Spartan-3、Spartan-3E和Spartan-3A。使用SystemGenerator可以完成如下工作,從而減少FPGA開發(fā)工作量。

硬件布局布線。

模塊層次化的綜合硬件描述語言代碼。

自動使用COREGenerator工具來調(diào)用IP核。

生成ISE工程以簡化設(shè)計流程。

生成硬件描述語言的testbench測試文件和測試向量。

生成xcf約束文件和用于ModelSim仿真的do文件。

實(shí)現(xiàn)硬件描述語言和SystemGenerator模塊的協(xié)同仿真。使用SystemGenerator進(jìn)行FPGA的開發(fā)流程如圖5.2.2所示。首先使用MATLAB/Simulink進(jìn)行系統(tǒng)算法的建模仿真,產(chǎn)生后綴為mdl的Simulink文件;其次用SystemGenerator自動生成在ISE中進(jìn)一步處理的寄存器傳輸級(RegisterTransferLevel,RTL)和IP核代碼,同時生成在ModelSim中仿真用到的testbench測試文件;然后在ModelSim中驗(yàn)證系統(tǒng)是否滿足設(shè)計要求,在ISE軟件中完成XILINX執(zhí)行流程后生成位流文件,最后下載到FPGA完成整個設(shè)計流程。圖5.2.2SystemGenerator的FPGA開發(fā)流程(一)如前文所述,SystemGenerator的出現(xiàn)其目的之一就是消除系統(tǒng)工程師和FPGA開發(fā)人員之間的隔閡,讓系統(tǒng)工程師也可以開發(fā)FPGA,工程師不再需要自行編寫硬件描述語言代碼,改由SystemGenerator根據(jù)MATLAB/Simulink中的仿真模型自動生成。如圖5.2.3所示。圖5.2.3SystemGenerator的FPGA開發(fā)流程(二)圖5.2.4SystemGenerator的FPGA開發(fā)流程(三)圖5.2.5SystemGenerator的FPGA開發(fā)流程(四) 5.3SystemGenerator的重要功能

5.3.1硬件描述語言協(xié)同仿真

軟件支持將由硬件描述語言編寫的功能模塊導(dǎo)入到SystemGenerator,并以黑箱的形式出現(xiàn)在MATLAB/Simulink中,調(diào)用ModelSim或ISE進(jìn)行仿真,也可以將SystemGenerator導(dǎo)出的硬件描述語言作為組件例化到其他工程中。例1BlackBox的使用

本例將用VHDL語言編寫的轉(zhuǎn)置FIR濾波器導(dǎo)入到SystemGenerator中,并從SystemGenerator中啟動ModelSim進(jìn)行仿真。實(shí)驗(yàn)步驟如下:

1)建立模型

將MATLAB的工作路徑改為C:\SG\exercise\black_box\。

打開C:\SG\exercise\black_box\blackbox.mdl。

將XILINXBlockset→BasicElements庫中的BlackBox模塊放到blackbox.mdl窗口中,如圖5.3.1所示。自動跳出如圖5.3.2所示對話框,打開頂層代碼transpose_fir.vhd,同時自動生成transpose_fir_config.m文件。mac.vhd為乘加計算功能模塊,可以在transpose_fir.vhd中被調(diào)用。

在transpose_fir_config.m中的第26行,將UFix_26_0改為Fix_26_13,將BlackBox模塊的輸出定為帶13位小數(shù)的26位定點(diǎn)數(shù)。

在第66行加入this_block.addFile('mac.vhd'),調(diào)用mac.vhd。

保持并關(guān)閉transpose_fir_config.m窗口。圖5.3.1BlackBox模塊圖5.3.2導(dǎo)入硬件描述語言圖5.3.3BlackBox模塊鏈接圖將XILINXBlockset→Tools庫中的ModelSim模塊放入blackbox.mdl窗口。

雙擊BlackBox模塊,將Simulationmode選為Externalco-simulator;在HDLco-simulatortouse(specifyhelperblockbyname)內(nèi)輸入ModelSim,指定使用ModelSim進(jìn)行仿真。BlackBox模塊參數(shù)設(shè)置如圖5.3.4所示。圖5.3.4BlackBox模塊參數(shù)設(shè)置

2)?ModelSim與Simulink協(xié)同仿真

單擊StartSimulation開始仿真,SG自動啟動ModelSim軟件對HDL代碼進(jìn)行仿真,并將仿真結(jié)果傳回MATLAB/Simulink,如圖5.3.5所示。圖5.3.5啟動ModelSim仿真雙擊Scope模塊,并單擊Autoscale查看仿真結(jié)果。InputSignal信號為BlackBox模塊的輸入信號,為兩個正弦信號的混疊;OutputSignal信號為BlackBox模塊的輸出信號。從仿真結(jié)果可見,BlackBox模塊亦即轉(zhuǎn)置FIR濾波器濾除了輸入信號中的高頻信號。BlackBox仿真結(jié)果如圖5.3.6所示。圖5.3.6BlackBox仿真結(jié)果例2將SystemGenerator的設(shè)計結(jié)果用于其他工程

本例將SystemGenerator中存有的正弦波ROM轉(zhuǎn)換成VHDL代碼,并將該代碼例化到另一VHDL代碼中,最后在ModelSim中進(jìn)行仿真。實(shí)驗(yàn)步驟如下:

1)?MATLAB/Simulink中仿真

將MATLAB的工作路徑改為C:\SG\exercise\component\。

打開C:\SG\exercise\component\comp.mdl。

單擊StartSimulink開始仿真。ROM模塊根據(jù)地址輸入(如圖5.3.7中的三角波),輸出對應(yīng)正弦波。圖5.3.7正弦波ROM仿真結(jié)果

2)導(dǎo)出網(wǎng)表文件,并例化設(shè)計模塊

雙擊comp.mdl窗口中的SystemGenerator模塊,設(shè)定Compilation為NGCNetlist。單擊Apply按鈕后再單擊Generate,SG開始編譯、綜合并生成相關(guān)文件,如圖5.3.8所示。

完成后單擊OK按鈕。

在地址C:\SG\exercise\component下生成ngc_netlist文件夾。

其中comp_cw.vho包括導(dǎo)出模型的組件聲明(COMPONENTDeclaration)和例化模板(INSTANTIATIONTemplate)。

將ngc_netlist文件夾中的所有以mif為后綴的文件復(fù)制到其父文件夾component下。

打開C:\SG\exercise\component\top.vhd文件。

將top.vhd中的第33~43行和第54~58行的說明符“--”刪去,保存并關(guān)閉。圖5.3.8生成VHDL代碼并編譯綜

3)在ModelSim中仿真

打開ModelSim,在Transcript窗口中輸入cdC:\SG\exercise\component,將當(dāng)前路徑改為C:/SG/exercise/component。

在Transcript窗口中輸入dosim.do,開始仿真,得到如圖5.3.9所示仿真結(jié)果。圖5.3.9ModelSim中的仿真結(jié)果5.3.2硬件驗(yàn)證

要進(jìn)行硬件協(xié)同仿真即半實(shí)物仿真,首先需要將FPGA芯片與PC機(jī)相連,然后實(shí)現(xiàn)軟硬件數(shù)據(jù)交換,XILINX公司提供的JTAG、USB、PCI和以太網(wǎng)多種方式可以實(shí)現(xiàn)軟硬件

互聯(lián)。

SystemGenerator中預(yù)置的硬件協(xié)同仿真的器件有:

XtremeDSP開發(fā)板(Virtex-4,Virtex-2Pro)

ML402開發(fā)板(Virtex-4)

多媒體開發(fā)板(Virtex-2)如果用到其他的FPGA芯片或開發(fā)板,需要用戶經(jīng)過一個簡單的向?qū)С绦?,將相?yīng)的芯片及開發(fā)板信息整合到SystemGenerator中。如果使用以太網(wǎng)接口,需要使用MicroBlaze和SystemACE配置以太網(wǎng)接口,EMACOPB外圍設(shè)備實(shí)現(xiàn)通信握手,并通過十兆或百兆以太網(wǎng)互聯(lián)。例3硬件協(xié)同仿真

本例使用CoreGenerator通過定制乘加FIR濾波器IP核生成VHDL代碼,并導(dǎo)入SystemGenerator中,通過USB數(shù)據(jù)線將Spartan-3E開發(fā)板與PC機(jī)相連,進(jìn)行硬件協(xié)同仿真。實(shí)驗(yàn)步驟如下:

1)生成MACFIRIP核

單擊開始→所有程序→XILINXISE8.2i→Accessories→CoreGenerator,打開CoreGenerator。

單擊Createnewproject,新建一個新工程。

將路徑改為C:\SG\exercise\hw_cosim,單擊OK按鈕確定,如圖5.3.10所示;然后會提示該地址不存在,單擊Yes按鈕進(jìn)行創(chuàng)建,如圖5.3.11所示。圖5.3.10CoreGenerator中新建工程圖5.3.11確認(rèn)創(chuàng)建文件夾選擇器件為Spartan-3E,xc3s500e,fg320,-4,單擊OK按鈕確定,如圖5.3.12所示。圖5.3.12器件選擇選擇MACFIRFilterIP核,并雙擊,打開配置對話框,如圖5.3.13所示。圖5.3.13IP核選擇

MACFIR的配置包括5頁,每頁的配置如下:

第一頁

在ComponentName中輸入fir

選擇SingleRateFIR

設(shè)定Channels為1

第二頁

設(shè)定Taps為92

ImpulseResponse類型選為Symmetric

設(shè)定CoefficientWidth為12

設(shè)定NumberofCoefficientSets為1

選定CoefficientType為Signed

選定CoefficientBufferType為BlockMemory第三頁

DataWidth設(shè)為8

DataType設(shè)為Signed

DataBufferType設(shè)為BlockRAM

單擊LoadCoefficients并選擇C:\SG\exercise\hw_cosim\coef.coe作為濾波器設(shè)計參數(shù)

第四頁

PerformanceOptimization設(shè)為Auto

SystemClockRate設(shè)為276MHz

InputSampleRate設(shè)為3MHz

RegisteredOutput設(shè)為Checked第五頁

顯示配置參數(shù),注意其中Width(=27)和Latency(=57),單擊Generate開始生成相關(guān)文件。

完成后跳出ReadmeFile窗口,顯示生成文件列表及其內(nèi)容,單擊OK按鈕確定。圖5.3.14導(dǎo)出文件列表其中fir.mif,COEF_BUFFER.mif,fir.edn,fir.vhd和fir.vho五個文件在以后步驟中需要使用。

關(guān)閉XILINXCOREGenerator。

打開C:\SG\exercise\hw_cosim\fir_blackbox.vhd。

刪除u1組件的注釋符,即37~43行的注釋符。保存后關(guān)閉文件。

2)完成MACFIR模型設(shè)計

將MATLAB工作路徑改為C:\SG\exercise\hw_cosim\。

打開C:\SG\exercise\hw_cosim\hdlcosim.mdl模型。

將XILINXBlockset→BasicElements庫中的BlackBox模塊放入hdlcosim.mdl,并打開fir_blackbox.vhd,如圖5.3.15所示連接模塊。

在生成的fir_blackbox_config.m文件中的第26行,將“UFix_27_0”改為“Fix_27_0”;第66行后插入:

this_block.addFile('coregen\fir.edn');

this_block.addFile('coregen\COEF_BUFFER.mif');

this_block.addFile('coregen\fir.mif');

this_block.addFile('coregen\fir.vhd');圖5.3.15硬件描述語言協(xié)同仿真模塊圖保存并關(guān)閉文件。

雙擊BlackBox模塊,將Simulationmode設(shè)為ISESimulator。

單擊Startsimulation開始仿真,會提示有如下警告(如圖5.3.16所示),并不影響仿真進(jìn)行。圖5.3.16硬件描述語言協(xié)同仿真警告圖5.3.17硬件描述語言協(xié)同仿真結(jié)果

3)硬件協(xié)同仿真

將hdlcosim.mdl在相同路徑下另存為hwcosim.mdl,雙擊SystemGenerator模塊,打開NewCompilationTarget…對話框,如圖5.3.18所示。圖5.3.18配置新硬件協(xié)同仿真器件單擊圖5.3.19中的Load按鈕。圖5.3.19導(dǎo)入新器件參數(shù)導(dǎo)入C:\SG\compilation\sp3e_starter_kit\spartan_3e_starter_kit.xml文件。

單擊SaveZip按鈕,保存當(dāng)前設(shè)置,如圖5.3.20所示,保存到C:\SG\exercise\hw_cosim\spartan_3e_starter_kit.zip。如果使用其他開發(fā)板,相應(yīng)的zip文件可從網(wǎng)站上下載。圖5.3.20導(dǎo)出新器件配置文件確認(rèn)MATLAB的當(dāng)前工作路徑和spartan_3e_starter_kit.zip文件所在路徑一致,在MATLAB的CommandWindow中輸入xlInstallPlugin('spartan_3e_starter_kit.zip'),單擊OK按鈕確定,如圖5.3.21所示。圖5.3.21更新SystemGenerator預(yù)置器件庫設(shè)定Compilation為HardwareCo-Simulation→Spartan-3EStarterKit,如圖5.3.22所示。

將TargetDirectory改為?./netlist_hw,并單擊Generate開始生成相關(guān)文件。

生成hwcosim模塊,如圖5.3.23所示。圖5.3.22啟用新器件參數(shù)配置圖5.3.23硬件協(xié)同仿真模塊將hwcosim模塊拷貝至hwcosim.mdl,如圖5.3.24所示連接模塊。圖5.3.24硬件協(xié)同仿真模塊連接圖給FPGA開發(fā)板上電,并用USB與PC機(jī)相連。

單擊Startsimulation開始仿真,SystemGenerator自動將位流文件下載到FPGA中,如圖5.3.25所示。

雙擊Scope模塊查看仿真結(jié)果。SystemGenerator仿真結(jié)果和硬件協(xié)同仿真結(jié)果幾乎完全一致,如圖5.3.26所示。圖5.3.25位流文件下載圖5.3.26硬件協(xié)同仿真結(jié)果5.3.3系統(tǒng)在線調(diào)試

SystemGenerator提供了使用ChipScopePro或共享存儲器(SharedMemory)兩種方法實(shí)現(xiàn)系統(tǒng)在線調(diào)試,這兩種方法可以利用各自的調(diào)試工具來獲得可視化的測試信號,可以模擬量(analog)或邏輯量(Logic)兩種模式顯示信號,并支持十六進(jìn)制,十進(jìn)制和二進(jìn)制數(shù),允許在模型中與參考信號進(jìn)行比較。

使用ChipScopePro進(jìn)行在線調(diào)試需要在Simulink模型設(shè)計中插入ChipScopePro模塊,在FPGA中插入ChipScope探頭,通過JTAG接口實(shí)時地進(jìn)行芯片內(nèi)部信號檢測。如果使用共享存儲器的方式,需要由FPGA硬件、Simulink模塊、MATLAB控制臺或命令提示符工具提供一個獨(dú)立的共享地址空間,將FPGA芯片中的數(shù)據(jù)實(shí)時地存儲到這一空間中,然后再讀到Simulink中,簡化系統(tǒng)在線調(diào)試。例4ChipScope系統(tǒng)在線調(diào)試

本例在Simulink模型中插入一個ChipScope模塊,設(shè)定好FPGA具體管腳功能,直接生成位流文件。然后使用ChipScopePro軟件將位流文件下載到FPGA芯片,并將檢測到的信號反饋給開發(fā)人員。實(shí)驗(yàn)步驟如下:

1)建立模型

將MATLAB工作路徑設(shè)為C:\SG\exercise\chipscope\。

打開C:\SG\exercise\chipscope\chipscope.mdl。

將XILINXBlockset→BasicElements庫中的Slice模塊、XILINXBlockset→Math庫中的SineCosine模塊和XILINXBlockset→Tools庫中的ChipScope模塊放入chipscope.mdl窗口中。雙擊SineCosine模塊,選定Function為SineandCosine。

雙擊ChipScope模塊,在Triggers欄中選擇Numberoftriggerports為1;TriggerSettings欄中設(shè)定Matchtype為Extended;Numberofdataports設(shè)定為2。

雙擊GatewayOut模塊,選中SpecifyIOBlocationconstraints,在IOBpadlocation(cellarry{'MSB',…,'LSB'})中輸入“{'F12'}”,對應(yīng)Spartan-3E開發(fā)板上右下角一排LED中最右邊的LD0。

將GatewayOut1、GatewayOut2和GatewayOut3模塊的Translateintooutputport項(xiàng)取消。

如圖5.3.27所示連接各模塊。圖5.3.27使用ChipScope模塊的模型連接圖

2)?Simulink中仿真

單擊Startsimulation開始仿真,仿真結(jié)果如圖5.3.28所示。圖5.3.28Simulink中的仿真結(jié)果

3)生成位流文件

雙擊SystemGenerator模塊,選擇Compilation為Bitstream;Part為Spartan3exc3s500e-4fg320。FPGAclockperiod(ns)為20;Clockpinlocation為C9。Spartan-3E的開發(fā)板FPGA芯片外部晶振接C9管腳,頻率為50MHz。如圖5.3.29所示。圖5.3.29選擇所用芯片單擊Generate開始生成相關(guān)文件,如圖5.3.30所示。圖5.3.30導(dǎo)出相關(guān)文件

4)下載程序到FPGA并用ChipScope軟件查看FPGA內(nèi)部信號

給Spartan-3E開發(fā)板上電,并通過USB連接PC機(jī)。

打開ChipScopeProAnalyzer,如圖5.3.31所示。圖5.3.31打開ChipScopeProAnalyzer單擊OpenCable/SearchJTAGChain,開始搜索支持的可編程器件,如圖5.3.32所示。圖5.3.32搜索器件搜索到如圖5.3.33所示的三個器件,單擊OK按鈕確定。圖5.3.33器件列表圖5.3.34配置器件單擊SelectNewFile,選擇C:\SG\exercise\chipscope\netlist\chipscope_cw.bit位流文件并打開,單擊OK按鈕確定,如圖5.3.35所示。圖5.3.35選擇下載位流文件此時開始將程序下載到FPGA芯片,完成后可以看到LD0被點(diǎn)亮。其信號應(yīng)為占空比為50%的方波信號,即為圖5.3.28中最上方的信號,但由于頻率較高,人眼觀察到的LD0為保持點(diǎn)亮狀態(tài)。

展開ChipScopeProAnalyzer左側(cè)Signals:DEV:0UNIT:0欄中的DataPort,如圖5.3.36所示。

將CH:0DataPort[0]~CH:7DataPort[7]設(shè)為總線,命名為sin。

將CH:8DataPort[8]~CH:15DataPort[15]設(shè)為總線,命名為cos。圖5.3.36多路信號合成總線單擊上步建立的cos總線,選擇BusRadix→SignedDecimal,對sin總線作同樣處理,如圖5.3.37所示。圖5.3.37選擇顯示碼制出現(xiàn)如圖5.3.38所示對話框后單擊OK按鈕確定。圖5.3.38十進(jìn)制顯示參數(shù)選擇將ChipScopeProAnalyzer右側(cè)TriggerSetup欄中Value值設(shè)為0000_0000,如圖5.3.39所示。圖5.3.39設(shè)定信號捕獲觸發(fā)條件雙擊ChipScopeProAnalyzer左側(cè)NewProject欄中BusPlot項(xiàng),如圖5.3.40所示。圖5.3.40選擇捕獲信號顯示方式在新打開的BusPlot窗口中的

溫馨提示

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

評論

0/150

提交評論