MULTLABDSPbuilder硬件模塊設(shè)計_第1頁
MULTLABDSPbuilder硬件模塊設(shè)計_第2頁
MULTLABDSPbuilder硬件模塊設(shè)計_第3頁
MULTLABDSPbuilder硬件模塊設(shè)計_第4頁
MULTLABDSPbuilder硬件模塊設(shè)計_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-.z.第六章Matlab/Dspbuilder硬件模塊設(shè)計Matlab是國強大的數(shù)學分析工具,廣泛用于科學計算和工程計算,還可以進行復雜的數(shù)字信號處理系統(tǒng)的建模、參數(shù)估計及性能分析。Simulink是Matlab的一個組成部分,用于圖形化建模仿真。DSPBuilder是Altera公司推出的一個面向DSP開發(fā)的系統(tǒng)級工具,它構(gòu)架在多個軟件工具之上,并把系統(tǒng)級(算法級建模)和RTL級(硬件實現(xiàn))兩個設(shè)計領(lǐng)域的設(shè)計工具連接起來放在Matlab/Simulink平臺上,而將QuartrsⅡ作為底層設(shè)計工具置于后臺,從而最大程度地發(fā)揮了這三種工具的優(yōu)勢。DSPBuilder作為Simulink中的一個工具箱,使得用FPGA設(shè)計DSP系統(tǒng)完全可以通過Simulink的圖形化界面進行,只要簡單地進行DSPBuilder工具箱中的模塊調(diào)用即可。Matlab/DSPBuilder尤其適用于一些在QuartusⅡ上不方便完成或不能完成的設(shè)計項目(如涉及算法類及模擬信號處理與生產(chǎn)方面的系統(tǒng)處理)。DSPBuilder還可以自動完成大部分的設(shè)計過程和仿真,直到把設(shè)計文件下載到FPGA中。DSPBuilder提供了Quartus?II軟件和MATLAB/Simulink工具之間的接口。其具有如下特性:1.用于連接Mathwork的MATLAB(信號處理工具箱和濾波器設(shè)計工具箱),Simulink環(huán)境和Altera?的QuartusII設(shè)計軟件環(huán)境。2.支持Altera的DSP核,這些核均可以從Altera的上下載(例如:FIRpiler、Reed-Solomonpiler等等)。3.可以利用Altera的DSP開發(fā)板來快速的實現(xiàn)設(shè)計的原型。4.支持SignalTap?II邏輯分析儀(一種嵌入式的信號分析儀,它可以探測到DSP開發(fā)板上Altera器件部的信號,并把數(shù)據(jù)引入到MATLAB的工作區(qū)以便于進行可視化的分析)。5.包括了用戶可以創(chuàng)建的定制的邏輯,用于配合SOPCBuilder和Nios?II嵌入式處理器設(shè)計。6.包括了PLL塊,用于多時鐘設(shè)計。7.包括了狀態(tài)機塊。8.針對DSP系統(tǒng)的算法和實現(xiàn),支持統(tǒng)一的表示方法。9.根據(jù)MATLAB和Simulink的測試矢量,可以自動生成VHDL測試激勵或QuartusII矢量文件(.vec)。10.自動調(diào)用VHDL綜合器和QuartusII編譯器。11.仿真可以設(shè)定為比特或周期精度。12.提供多種的定點運算和邏輯操作,用于配合使用Simulink軟件。13.支持多種Altera的器件:Strati*、Strati*II和Strati*G*器件;Cyclone和CycloneII器件;APE*II、APE*20KC和APE*20KE器件;Mercury器件;ACE*?1K器件;FLE*?10K和FLE*6000器件。利用Matlab和DSPBuilder進行模塊設(shè)計也是SOPC技術(shù)的一個組成部分。這是由于利用Matlab/DSPBuilder/QuartrsⅡ可完成純硬件的DSP算法模型及實現(xiàn),從而構(gòu)成嵌入式系統(tǒng)外圍接口的協(xié)處理模塊,再進一步構(gòu)成軟件程序中的精簡指令,DSP模塊或其他功能模塊可以成為單片F(xiàn)PGA電路系統(tǒng)中的一個組成部分,而且通過Matlab/DSPBuilder,可以直接為Nios嵌入式處理器設(shè)計各類加速器,并以指令的形式加入到Nios的指令系統(tǒng),從而成為Nios系統(tǒng)的一個接口設(shè)備,與整個片嵌入式系統(tǒng)融為一體。即利用DSPBuilder和基本的NiosCPU,用戶可以根據(jù)項目的要求,自己構(gòu)建自己需要的DSP處理系統(tǒng)。本章主要介紹利用Matlab/DSPBuilder/QuartrsⅡ三個工具軟件聯(lián)合開發(fā)的設(shè)計流程。圖6—1為Matlab/DSPBuilder/QuartrsⅡ聯(lián)合應(yīng)用框圖。由圖6—1可見,設(shè)計流程從利用建立DSP電路模型開始,電路模型的建立可以是圖形化的,利用Simulink和DSPBuilder中提供的豐富的功能模塊和IP核進行設(shè)計。DSPBuilder中包含了算術(shù)和存儲功能等設(shè)計模塊以及IP庫中的許多復雜功能模塊。電路中的功能模塊和IP的技術(shù)參數(shù)、數(shù)據(jù)格式、數(shù)據(jù)類型和總線寬度等都可以直接設(shè)置。電路模型設(shè)計完成后,可以進行系統(tǒng)級的模型仿真,這與目標器件和硬件系統(tǒng)沒有關(guān)系,是基于算法的仿真。下個步驟是利用置于Simulink電路模型界面的DSPBuilder的Signalpiler,將電路模型文件,即Simulink電路模塊文件(.mdl)轉(zhuǎn)換成RTL級的VHDL代碼表述和工具命令語言(Tcl)腳本。一旦獲得轉(zhuǎn)換好的VHDL描述,在Simulink中即可調(diào)用VHDL綜合器了,目前可選用的綜合器有QuartrsⅡ、LeonardoSpectru、和Synplify。由它們生成底層網(wǎng)表文件。在QuartrsⅡ進行編譯優(yōu)化的過程中,會產(chǎn)生兩種詳細記錄電路硬件特點和優(yōu)化方式的底層電路描述的中間網(wǎng)表文件,即ATOMNetlist。然后調(diào)用QuartrsⅡ中的編譯器,根據(jù)網(wǎng)表文件及設(shè)置的優(yōu)化約束條件進行布線布局和優(yōu)化設(shè)計的適配操作,最后生成編程文件和仿真文件(.pdf和.sof),它們可用于對目標器件的編程配置和硬件實現(xiàn);與此同時可生成分別用于QuartrsⅡ的門級仿真文件和ModelSim的VHDL時序仿真文件,以及相應(yīng)的VHDL仿真激勵文件,以用于實時測試DSP系統(tǒng)的工作性能。圖6-1基于Matlab/Dspbuilder/QuartrsⅡ等工具6.1DSPBuilder元件庫簡介打開Matlab環(huán)境。可以看到Matlab的主窗口界面被分割成三個窗口:命令窗口(mandWindow)、工作區(qū)(Workspace)、命令歷史(mandHistory)。使Matlab的CurrentDirectory指向所安裝的DSPBuilder的Altlib文件夾,點擊旁邊的simulink圖標打開simulink庫,如下圖6-2所示。圖6-2Matlab的CurrentDirectory在SimulinkLibraryBrowser的左面展開AlteraDSPBuilder可以看見DSPBuilder的元件庫如圖6-3所示,元件庫可以分為若干部分。其中有主控元件庫(AltLab)、算術(shù)元件庫(Arithmetic)、開發(fā)板庫(Boards)、復元件庫(ple*Type)、組合元件庫(Gate&Control)、總線元件庫(IO&Bus)、時鐘元件庫(RateChange)、SOPC元件庫(SOPCBuilderLinks)、狀態(tài)機功能元件庫(StateMachineFunctions)、時序元件和存儲器元件庫(Storage)、IP核元件庫(MegaCoreFunction)、視頻和圖象處理元件庫(VideoandImageProcessing)圖6-3DSPBuilder元件庫1、主控元件庫(AltLab),包含一些用于控制的模塊。主要有:數(shù)據(jù)觀察窗(BP)、FPGA編程器(Deviceprogrammer)、HDL引入模塊(HDLImport)、HDL子系統(tǒng)元件模塊(HDLSubSystem)、HIL硬件環(huán)境模塊(HIL)、邏輯分析儀探頭(Node)、硬件工程參數(shù)設(shè)置模塊(QuartusⅡGlobalProjectAssignment)、FPGA引腳鎖定模塊(QuartusⅡPoinoutAssignment)、MatLab模型至VHDL轉(zhuǎn)換器(Signalpiler)、邏輯分析儀(SignalTapⅡAnalysis)。2、算術(shù)元件庫(Arithmetic),包含一些與運算相關(guān)聯(lián)的器件。主要有比較器(parator)、計數(shù)器(Counter)、差分器(Differentiator)、除法器(Divider)、增益乘法器(Gain)、地址發(fā)生器(IncerementDecrement)、積分器(Integrator)、乘法器(Multiplier)、乘法累加器(MultiplyAccumulate)。如圖6-4所示。圖6-4算術(shù)元件庫3、SOPC元件庫(SOPCBuilderLinks),在左側(cè)展開加號分別是SOPCAVALON總線模塊、SOPCAVALON總線端口模塊和SOPC用戶自定制指令端口。如圖6-5。圖6-5SOPC元件庫4、IP核元件庫(MegaCoreFunction),包含Altera公司設(shè)計好的IP核??梢允挂话愕脑O(shè)計者在不用全面了解所用IP核相關(guān)技術(shù)過多細節(jié)的情況下,在短期設(shè)計符合要求的系統(tǒng)。MegaCore是Altera的IPCore計劃中的一個組成部分,IP核元件庫所包含的IP核不附帶在DSPBuilder和QuartusⅡ中,需要單獨購買。如圖6-6所示,IP核元件庫主要有CICIP核(cic)、FFTIP核(fft)、FIRIP核(fir)、NCOIP核(noc)、RSIP核、VITERBIIP核(viterbi)。圖6-6MegaCoreFunction元件庫6.2FSK調(diào)制器設(shè)計二進制頻率調(diào)制(2FSK),是利用二進制數(shù)字基帶信號控制載波進行頻譜變換的過程。在發(fā)送端產(chǎn)生不同頻率的載波震蕩來傳輸數(shù)字信號“0”、“1FSK調(diào)制的方法有兩種:直接調(diào)頻法用數(shù)字基帶矩形脈沖控制一個振蕩器的*些參數(shù),直接改變振蕩頻率,輸出不同的頻率信號。頻率鍵控法用數(shù)字矩形脈沖控制電子開關(guān)在兩個振蕩器之間進行轉(zhuǎn)換,從而輸出不同頻率的信號。建立設(shè)計模型1、們需要建立一個工作庫,所以先新建一個文件夾FSK。2、使Matlab的CurrentDirectory指向所安裝的DSPBuilder的Altlib文件夾點擊上方的simulink圖標打開simulink庫,如下圖6-7所示。圖6-7Matlab的CurrentDirectory3、在SimulinkLibraryBrowser窗口中選擇File菜單,在出現(xiàn)的菜單中選擇New,在彈出的子菜單中選擇新建模型model。如圖6-8圖6-8新建Model4、放置Signalpilder。點擊simulink庫管理器左側(cè)的數(shù)形列表中的AlteraDSPBuilder條,使之展開DSPBuilder庫,這時會出現(xiàn)一串樹形列表,對DSPBuider的子模塊(Block)進行分組,展開其中的Altlab,選擇庫管理器右側(cè)的Signalpilder,拖動到新的模型窗口。如圖6-9圖6-9Simulink庫中的DspBuilder5、圖6-5,為所需最終連接的Modle圖形。參照圖6-10先放置Input2,Input2在DSPBuilder庫中的IO&Bus模塊中,選擇Input拖動到新Model中,點擊圖形下面的文字Input可以更改名稱。雙擊打開參數(shù)設(shè)置窗口,Bustype可設(shè)為UnsignedInteger(無符號整數(shù)),numberofbits設(shè)為2。如圖6-11圖6-10FSK調(diào)制模型圖6-11input2參數(shù)設(shè)置Constant也同樣在IO&Bus模塊中,constant1設(shè)置為無符號整數(shù),numberofbits設(shè)為8,常數(shù)值(ConstantValue)設(shè)置為9,抽樣時間(Sampletime)為1,如圖6-12。Constant2除了Constantvalue設(shè)置為3外,其余設(shè)置同Constant1,這樣可以使數(shù)字基帶矩形脈沖的峰峰值在3到9之間。圖6-12constant1參數(shù)設(shè)置6、n-to-1Multiple*er和LUT同在Gate&Control模塊下,將它們拖到新建Model中將LUT改名為ROM10*10S,如圖6-13圖6-13LUE和n-to-1Multiple*er模塊其中n-to-1Multiple*er的數(shù)據(jù)輸入線(NumberofinputDataLine)設(shè)為2,pipeline設(shè)為1。ROM10*10S的busType設(shè)為signedInteger(有符號整數(shù)),輸出位numberofbits為8位,LUTAddressWidth(查找表地址線位寬)設(shè)為8。在MATLABArray編輯框中輸入計算查找表容的計算式。在此可以直接使用正弦(sin)函數(shù),在這里sin函數(shù)的調(diào)用格式為sin([起始值:步進值:結(jié)束值])。ROM10*10S為一個輸入地址為8位,輸出地址為8位的正弦查找表模塊,輸入地址總線位有符號整數(shù)(SignedInterger)??梢栽O(shè)定起始值為0、結(jié)束值為2π,步進值為2π/2^8。計算式可以寫成127*sin([0:2*pi/(2^8):2*pi]),其中pi即位常數(shù)π。在UseLPM處打勾,表示允許QuartusⅡ利用目標器件中的嵌入式RAM(在EAB、ESB或M4K模塊中)來構(gòu)成ROM10*10S,即將生成的正弦波數(shù)據(jù)放在嵌入式RAM構(gòu)成的ROM中,這樣可以節(jié)省大量的邏輯資源。如圖6-14。圖6-14ROM10*10S參數(shù)設(shè)置7、在Arithmetic模塊下找到ParallelAdderSubtractor,改名為ADDER4,將輸入設(shè)為2,Add(+)Sub(-)設(shè)為++,其余不變,如圖6-15。圖6-15設(shè)置ADDER48、放置Delay模塊。在Storage庫下的Delay,放置到新建模型窗口并改名為Dly2。Delay是一個延時環(huán)節(jié)。在這里不修改其默認參數(shù)設(shè)置。9、Bus7和Out8在IO&Bus庫下。找到AltBus,和output分別改名為Bus7和Out8。Bus7的BusType為SignedInteger,NodeType為InternalNode,numberofbit為8位。如圖6-16。圖6-16設(shè)置Bus7Out8的BusType也為Signedinteger類型8位。如圖6-17。圖6-17設(shè)置Out810、放置完所需的模塊后,按照圖6-5連接好。這樣就完成了FSK調(diào)制模型的設(shè)計。在進行仿真驗證和Signalpiler編譯前,先對文件進行存盤操作:點擊新建模型窗口的File菜單,選擇Save項。取名并保存在自己所建的文件夾FSK中。在本例中,新建模型取名為fsk,模型文件為fsk.mdl。保存完畢后,新建模型窗口的標題欄會顯示模型的名稱,對模型取名后就可以使用Signalpiler進行編譯了。在編譯前還需要進行仿真驗證。Simulink模型仿真用DSPBuilder模塊設(shè)計好一個新的模型后,可以直接在simulink中進行算法級、系統(tǒng)級仿真驗證。對一個模型進行仿真,需要施加合適的激勵、一定的仿真步進和仿真周期,添加合適的觀察點和觀察方式。需要強調(diào)的是:凡是來自AlteraDSPBuilder庫以外的模塊,Signalpiler都不能將其變成硬件電路,即不會影響生成的VHDL程序,但在啟動Simulink仿真后能影響后面產(chǎn)生的仿真激勵文件,PulseGenerator模塊的情況正是如此。1、加入一個PulseGenerator模塊,在Simulink庫管理器中,展開simulink庫,選中Sources庫,把Sources庫中的PulseGenerator模塊拖放到FSK模型窗口中。2、添加波形觀察模塊。在simulink的庫管理器中,展開simulink庫,選中其中的Sinks庫,把Scope模塊拖放到FSK模型窗口中。雙擊該模塊,打開的是一個Scope窗口。用鼠標點擊Scope模塊窗口上側(cè)工具欄的第二個工具按鈕:Parameters參數(shù)設(shè)置。打開Scope參數(shù)設(shè)置對話框,在Scope對話框中有兩個選項頁:Gerneral和DataHistory。在Gerneral選項頁中,改變Numberofa*es參數(shù)為2。點擊“OK”后可以看到Scope窗口增加了兩個波形觀察窗。每個觀察窗都可以分別觀察信號波形,而且相對獨立。如圖6-18。圖6-18Scope設(shè)置3、按圖6-10連接FSK模型的全圖。先設(shè)置模型的仿真激勵。需要設(shè)置與此相連的模塊:PulseGenerator。雙擊放置在FSK模型窗口中的PulseGenerator模塊,設(shè)置對輸入端口施加的激勵。在打開的PulseGenerator模塊參數(shù)設(shè)置對話框中,可以看到下列參數(shù)如圖6-19。圖6-19PulseGenerator參數(shù)設(shè)置其中脈沖類型(PulseType)是基于時間的(Timebased),振幅(Amplitude)為1,周期(period)是1500秒,占空比(PulseWidth)為50%,相位延遲(Phasedelay)為0。4、點擊Simulation菜單,在下拉菜單中選擇configurationparameters如圖(6-20),將Stoptime設(shè)置成10000。FSK模型編輯窗中,在Simulation菜單下,選Start項,開始仿真。等待仿真結(jié)束,雙擊Scope模塊,打開scope觀察窗。在Scope觀察窗中,可以使用工具欄中的按鈕來放大縮小波形,也可以使用工具欄上的“Autoscale”,使波形自動適配波形觀察窗,用鼠標左鍵,可以放大波形。圖6-21為FSK的仿真圖形。圖6-20FSK仿真停止時間圖6-21FSK仿真圖圖中可以清晰的看到在脈沖值為1和0時,載波信號頻率隨脈沖信號值變化而變化,從而實現(xiàn)了2FSK。Signalpiler使用方法下面進行設(shè)計流程中最為關(guān)鍵的一步,就是把DSPBuilder的設(shè)計轉(zhuǎn)到硬件上加以實現(xiàn)。在這一步,可以獲得針對特定FPGA芯片的VHDL代碼。1、雙擊FSK模型中的Signalpiler模塊,將出現(xiàn)如圖6-22所示的對話框,點擊Analyze(分析)按鈕后,Signalpiler就會對FSK模型進行分析,檢查模型有無錯誤,并在Matlab主窗口彈出對話框,并給出相關(guān)信息。圖6-22雙擊Signalpiler2、圖6-21中顯示了Signalpiler窗口,左側(cè)是項目設(shè)置選項ProjectSettingOptions,可以設(shè)置器件類型(Device)、綜合工具(SynthesisTool)以及優(yōu)化項目(Opimization);右側(cè)是硬件編譯流程Hardwarepilation;下方是信息框Messages。Signalpiler的設(shè)置都集中在項目設(shè)置選項部分。在Device下拉選擇框中選擇需要的器件系列,在此選為Cyclone系列。其具體的器件型號,需由QuartusII自動決定使用該器件系列中的*一個具體型號的器件,或在手動流程中由用戶指定。圖6-21Signalpiler設(shè)置對話框3、當設(shè)置好Device和Synthesis后,右側(cè)的硬件編譯Hardwarepilation部分就會列出一個操作流程,見圖6-21。分別為:①轉(zhuǎn)換MDL文件為VHDL文件(ConvertMDLtoVHDL)②綜合(Synthesis)③編譯適配(QuartusIIQuartus)先點擊步驟1的圖標,完成simulink文件(*.mdl)到VHDL文件的轉(zhuǎn)換。轉(zhuǎn)換完成后,在“Messages”信息提示框中,會顯示“Generatedtoplevel“fsk.vhd”files”,即頂層文件fsk.vhd完成轉(zhuǎn)換(圖4-34)。fsk模型生成的VHDL文件4、點擊步驟2的圖標,完成綜合過程。因為左側(cè)的設(shè)置,本例用QuartusII來完成綜合過程的,在綜合后生成原子網(wǎng)表供適配器使用,并自動生成QuartusII可直接調(diào)用的工程。5、點擊步驟3的圖標,調(diào)用QuartusII完成編譯適配過程,生成編程文件:pof文件和sof文件(圖4-36)。編程文件可以直接用于FPGA的編程配置。如果想知道詳細的報告,點擊下面的ReportFile按鈕進行查看。Fsk模型對應(yīng)的報告文件為fsk_DspBuilder_Report.html。使用QuartusII實現(xiàn)時序仿真雖然已經(jīng)進行了算法級、系統(tǒng)級仿真驗證,然而進行門級的時序仿真仍然是十分重要的,Signalpiler已將MATLAB上的仿真信息轉(zhuǎn)變成了可用于QuartusII進行時序仿真的激勵信息及相關(guān)仿真文件fsk_quartus.tcl,因此能容易地完成此項任務(wù)。1、打開QuartusII環(huán)境,選擇菜單File→OpenProject…,定位到fsk模型所在路徑目錄,打開DSPBuilder建立的QuartusII工程文件:fsk.quartus。2、上文中提到,在Signalpiler中的QuartusII編譯,具體的器件由QuartusII自動決定,可實際使用中,器件往往不是QuartusII自動選定的那個型號,管腳也不是QuartusII自動分配的管腳。這些都需要在QuartusII中進行修改。所以這里須按照前面章節(jié)中敘述的方法選擇具體器件型號,本例中使用的是EP1C6Q240C8,然后啟動全程編譯,即執(zhí)行Startpilation。3、執(zhí)行菜單Processing→StartSimulation。圖6-22即為時序仿真波形,在圖中可以清楚的看到輸出數(shù)據(jù)隨著時鐘的變換交替的進行頻率變換。如果這時看不到輸出的波形數(shù)據(jù),應(yīng)該回到MATLAB設(shè)計文件檢查,仿真、變換(注意這時只按Signalpiler中的第一按鈕?。D6-22時序仿真波形圖使用QuartusII硬件測試與硬件實現(xiàn)在此按照前面章節(jié)中介紹的方法鎖定管腳。打開fsk工程文件fsk.vhd,了解端口情況,選擇合適的電路模式。然后進行編譯,完成適配過程。最后是進行硬件的下載,連接好FPGA開發(fā)板。然后將實測結(jié)果與在計算機上進行的時序仿真結(jié)果進行比較。若再想改動Simulink中的fsk.mdl圖,應(yīng)該注意兩點:第一,部電路結(jié)構(gòu)和設(shè)置可以改,但端口信號名不要改,如輸入input2、out8,因為此信號的引腳已被鎖定,不便改變第二,改動out.mdl圖后只宜作系統(tǒng)仿真和VHDL文件轉(zhuǎn)換,不宜作綜合,即最多只能對圖6-17所示的界面執(zhí)行第1個按紐,否則將可能把原來設(shè)定好的引腳全部沖掉。為了保存引腳信息,綜合與適配兩項操作必須在進入QuartusII后進行。圖6-23為硬件實現(xiàn)后的輸出波形。圖6-23FSK調(diào)制波形6.3直接數(shù)字合成DDS設(shè)計直接數(shù)字合成DDS基本原理對于正弦信號發(fā)生器,它的輸出可以用下式來描述。(6-1)其中是指該信號發(fā)生器的輸出信號波形,指輸出信號對應(yīng)的頻率。上式的表述對于t式連續(xù)的,為了用數(shù)字邏輯實現(xiàn)該表達式,必須進行離散化處理,用基準時鐘clk進行抽樣,令正弦信號的相位:(6-2)在一個clk周期,相位的變化量為:(6-3)其中指clk的頻率對于2π可以理解成“滿”相位,為了對進行數(shù)字量化,把2π切割成份,由此每個clk周期的相位增量用量化值來表述:,且為整數(shù)。與(6-3)式聯(lián)立,可得:(6-4)顯然,信號發(fā)生器的輸出可描述為:(6-5)其中指前一個clk周期的相位值,同樣得出(6-6)圖6-24為DDS的基本結(jié)構(gòu)圖圖6-24基本DDS結(jié)構(gòu)用DSPBuilder設(shè)計DDSDDS采用了層次化的設(shè)計方法,即使用了Simulink的子系統(tǒng)(SubSystem)來完成DSP模型的層次化設(shè)計。我們可以用上面的例子進行簡單的介紹:在已經(jīng)建好的模型上進行簡單修改后,選擇除Signalpiler、PulseGenerator以外的模塊,單擊右鍵選擇CreateSubsystem如圖(6-25)。圖6-25FSK輸出的修改圖6-26為創(chuàng)建子系統(tǒng)模塊后的FSK圖形。用鼠標雙擊Subsystem子系統(tǒng)模塊后,就會彈出fsk/Subsystem窗口,顯示子系統(tǒng)模塊封裝的原理圖。值得注意的是,有些DSPBuilder庫的模塊只能放在頂層原理圖中,如Signalpiler模塊。如果子系統(tǒng)中放置了Signalpiler模塊,只可以進行Simulink仿真,而不能使用Signalpiler來生成相應(yīng)的VHDL代碼。圖6-26生成子系統(tǒng)后的FSK圖6-23為DDS的頂層設(shè)計圖,而圖6-24為其子系統(tǒng)Subsystem的結(jié)構(gòu)圖。圖6-24DDS頂層設(shè)計圖其中AMPL、PHASE、FREQ是simulink-Sources庫下的constant元件,Constantvalue分別為67、456、11456789,勾選Interpretvectorparametersas1-D選項,Sampletime為inf;Input、input1、input2在AlteraDSPbuilder-IO&Bus庫下,BusType為Unsignedinterger,numberofbits分別為32、10、8;Output也在AlteraDSPbuilder-IO&Bus庫下,輸出位為10位有符號整數(shù)。圖6-25DDS子系統(tǒng)仿真時間為10000;ROM10*10S為AlteraDSPbuilder-storage庫下的LUT元件,BusType為有符號整數(shù),輸出為10位,LUTAddressWidth寬為10位,MATLABArray的輸出公式是511*sin([0:2*pi/(2^10):2*pi]),并勾選UseLPM和RegisterAddress選項;Pdt2為AlteraDSPbuilder-Arithmetic庫的Product元件,Pipeline值為0,勾選UseLPM選項;Bus1在AlteraDSPbuilder-IO&Bus庫,是BusConversion元件,為有符號整數(shù),輸入18位,輸出10位,InputBittoOutputLSB為8。Bus7為AlteraDSPbuilder-IO&Bus下的AltBus元件,總線類型是有符號整數(shù),節(jié)點類型是部節(jié)點(InternalNode),32位;Adder4和Adder3設(shè)置相同,為在AlteraDSPbuilder-Arithmetic下的ParallelAdderSubtractor元件,NumberofInputs是2,Add(+)Sub(-)設(shè)為“++”,勾選Pipeline選項,ClockPhaseSelection設(shè)置為1;Dly2是AlteraDSPbuilder-Storage下Delay元件,默認設(shè)置;BusConversion在AlteraDSPbuilder-IO&Bus元件庫,BusType為SignedInterger輸入為32位,輸出10位,InputBittoOutputLSB為22。圖6-26為DDS信號輸出波形。圖6-26DDS信號輸出AM調(diào)制器設(shè)計AM調(diào)制原理AM的調(diào)制原理是將要傳送的信息裝載到*一高頻(載波)信號上去的過程,幅度調(diào)制是用調(diào)制信號去控制載波的振幅,使其隨調(diào)制信號線型變化,而保持載波的頻率不變。圖6-27為在Maltlab下完成的AM全圖,主要分為4個區(qū)域:①區(qū)和④區(qū)為兩個正弦信號發(fā)生器,分別為調(diào)制信號和載波信號;②區(qū)為控制區(qū),主要控制調(diào)制信號的幅度。當t9選擇不同值時,②區(qū)輸出不同的參數(shù)調(diào)整①區(qū)輸出正弦信號的幅度,使調(diào)制信號的輸出具有不同的幅度(如圖6-27)。圖6-28為Con9選擇1、3、6時輸出的調(diào)制信號。③區(qū)主要作用是將調(diào)制信號裝載到載波信號上去,實現(xiàn)信號的調(diào)制。圖6-27AM調(diào)制原理圖圖6-28受控的調(diào)制信號圖6-29AM調(diào)制信號AM調(diào)制器參數(shù)設(shè)置仿真時間設(shè)為100000,其它設(shè)置如下:1、①區(qū)正弦信號發(fā)生器的設(shè)置:Cst15:AlteraDSPBuilder-IO&Bus-ConstantBusType:UnsignedIntegernumberofbits:16Constant:20Sampletime:1Bus3:AlteraDSPBuilder-IO&Bus-AltBusBusType:UnsignedIntegerNodeType:InternalNodenumberofbits:16Adder1:AlteraDSPBuilder-Arithmetic-ParallelAdderSubtractornumberofinput:2Add(+)Sub(-):++ClockPhaseSelection:1Dly:AlteraDSPBuilder-Storage-Delay默認設(shè)置Bus5:AlteraDSPBuilder-IO&Bus-BusConversionBusType:SignedIntegerInput[numberofbits]:16Output[numberofbits]:8InputBitConnectedtoOutputLSB:8ROM8*8S:AlteraDSPBuilder-Storage-LUTBusType:SignedIntegerOutput[numberofbits]:8LUTAddressWidth:8MATLABArray:127*sin([0:2*pi/(2^8):2*pi])勾選UseLPM和RegisterAddress項2、②區(qū)控制端參數(shù)設(shè)置:Mu*41:AlteraDSPBuilder-Gate&Control-nto1Multiple*erNumberofInputDataLine:8Pipeline:0SL:AlteraDSPBuilder-IO&Bus-inputBusType:UnsignedIntegerNodeType:InputPortnumberofbits:3t9:Simulink-sources-ConstantConstantvalue:6勾選Interpretvectorparametersas1-DSampletime:infCst8-14:AlteraDSPBuilder-IO&Bus-ConstantBusType:SignedFraction[numberofbits].[]:8[].[numberofbits]:8Sampletime:13、③區(qū)調(diào)制區(qū)參數(shù)設(shè)置Pdt1、Pdt2:AlteraDSPBuilder-Arithmetic-ProductPipeline:0勾選UseLPMADDER2、Adder3:AlteraDSPBuilder-Arithmetic-ParallelAdderSubtractornumberofinput:2Add(+)Sub(-):++ClockPhaseSelection:1勾選Pipeline選項。Bus1:AlteraDSPBuilder-IO&Bus-BusConversionBusType:SignedIntegerInput[numberofbits]:18Output[numberofbits]:10InputBitConnectedtoOutputLSB:8Cst3:AlteraDSPBuilder-IO&Bus-ConstantBusType:UnsignedIntegernumberofbits:8Constant:128Sampletime:1Cst4:AlteraDSPBuilder-IO&Bus-ConstantBusType:UnsignedIntegernumberofbits:10Constant:512Sampletime:1Adder2:AlteraDSPBuilder-Arithmetic-ParallelAdderSubtractornumberofinput:2Add(+)Sub(-):++ClockPhaseSelection:1AM_OUT:AlteraDSPBuilder-IO&Bus-outputBusType:UnsignedIntegerNodeType:OutputPortnumberofbits:104、④區(qū)正弦信號發(fā)生器的設(shè)置:Cst16:AlteraDSPBuilder-IO&Bus-ConstantBusType:UnsignedIntegernumberofbits:32Constant:88234567Sampletime:1Bus7:AlteraDSPBuilder-IO&Bus-AltBusBusType:UnsignedIntegerNodeType:InternalNodenumberofbits:32Adder4:AlteraDSPBuilder-Arithmetic-ParallelAdderSubtractornumberofinput:2Add(+)Sub(-):++ClockPhaseSelection:1勾選PipelineDly2:AlteraDSPBuilder-Storage-Delay默認設(shè)置BusConversion:AlteraDSPBuilder-IO&Bus-BusConversionBusType:SignedIntegerInput[numberofbits]:32Output[numberofbits]:10InputBitConnectedtoOutputLSB:22ROM10*10S:AlteraDSPBuilder-Storage-LUTBusType:SignedIntegerOutput[numberofbits]:10LUTAddressWidth:10MATLABArray:511*sin([0:2*pi/(2^10):2*pi])勾選UseLPM和RegisterAddress項6.5FSK硬件環(huán)HIL仿真設(shè)計前面提到的在Simulink平臺上的仿真都屬于算法級仿真,是軟件仿真。如果想要求仿真結(jié)果能反映模塊的硬件特性,在Simulink平臺上的仿真就不能滿足要求。在QuartusⅡ平臺上的仿真盡管獲得了全硬件的仿真結(jié)果,但沒有Matlab提供的大量功能強大的仿真工具,一些特定功能的激勵信號難以獲得。因此最理想的方法是直接在Simulink平臺上將設(shè)計模型下載進FPGA,利用Simulink提供的各類仿真工具進行仿真。Altera的DSPBuilder提供的HIL(HardwareintheLoop)模塊能很好的完成這類仿真。HIL可以在Simulink模型與FPGA開發(fā)板間通過JTAG通信口建立一種聯(lián)系,從而實現(xiàn)基于Matlab/DSPBuilder平臺的硬件仿真。我們利用上文建立的FSK模型來舉例說明基于HIL模塊的仿真流程。調(diào)出前面完成的FSK模型。將信號源PulseGenerator的參數(shù)和修改如下圖6-30。圖6-30PulseGenerator參數(shù)設(shè)置圖6-31FSK的仿真參數(shù)設(shè)置窗2、用Signalpiler對FSK模型進行轉(zhuǎn)換、綜合和適配。按照圖6-21的步驟,分別按動對話框按鈕1、2、3,使fsk_HIL.mdl轉(zhuǎn)換成為一個QuartusⅡ工程。3、如圖6-32所示,刪去FSK圖中所有AlteraDSPBuilder庫元件構(gòu)成的電路,再引入HIL模塊(AlteraDSPBuilder-Altlab-HIL)。為穩(wěn)妥起見,將設(shè)計另存。圖6-32加入HIL模塊的FSK4、將PC機與FPGA開發(fā)板連接好,打開電源。雙擊圖6-32的HIL模塊,將彈出圖6-33所示的HIL參數(shù)設(shè)置對話框。首先在1.SelectQuartusⅡProject加入前面生成的FSK工程;然后在2.Selecttheclockpin欄選擇clock;根據(jù)電路圖輸入輸出端口的數(shù)據(jù)類型確定3.Identitythesignedport中各端口的數(shù)據(jù)類型在右欄的BurstMode處打勾;在Burstlength處鍵入1024(默認);在FrameMode處打勾,下面參數(shù)默認,點擊Ne*tpage按鈕,進入下一頁進入圖6-34界面。圖6-33HIL參數(shù)設(shè)置在圖6-34的FPGAdevice欄輸入你所應(yīng)用的FPGA型號,如本書應(yīng)用的類型為EP1C6Q240C8。如果PC機與FPGA的JTAG口通信正常,則在ProgramtheFPGA欄下的JTAGCable欄將自動顯示編程器類型;而Deviceinchain欄將自動顯示已經(jīng)從FPGA板上測得的FPGA型號。點擊pilewithQuartusⅡ按鈕,進行編譯,即將原來圖FSK模型已經(jīng)生成的工程文件與HIL模塊中輸入輸出信號緩沖模塊一起編譯成一個下載文件。以便進行基于HIL第硬件仿真。如果編譯成功,會產(chǎn)生一個“.sof”文件,在圖6-34下方的信息欄出現(xiàn)文字:Createdfsd_HIL.sof.。下面點擊圖6-34的ConfigureFPGA按鈕,通過JTAG口將此文件下載到FPGA中。如果下載無誤,會在信息欄出現(xiàn)文字:Programmingsuccessful。圖6-34HIL模塊編輯與編程窗5、如圖6-35,將HIL模塊與外圍電路接好,運行Simulink仿真。圖6-36為加入HIL模塊的FSK模型仿真波形。如圖所示,輸入波形與輸出波形有一定的相位差,這個相位差說明信號在FPGA里有了延時。圖6-35加入HIL的FSK模塊圖6-36加入HIL后的FSK仿真6、利用AlteraDSPBuilder-Altlab-Deviceprogrammer,也可以進行模塊編成,下載流程同上。如圖6-37。圖6-37利用編成模塊向FPGA下載6.6使用FIRIPCore設(shè)計FIR濾波器Altera為了使設(shè)計者也能在盡可能短的時間快速高效的設(shè)計出符合設(shè)計要求的項目,給設(shè)計者提供了大量的IPCore,使設(shè)計者在不用全面了解有關(guān)器件的情況下達到理想的設(shè)計效果。MegaCore是Altera的IPCore計劃中的一部分,F(xiàn)IRpiler作為一個MegaCore,不附帶在DSPBuilder和QuartusⅡ中,需要向Altera公司單獨購買。Altera提供的FIRpiler是一個結(jié)合AlteraFPGA器件的FIRFilterFilterCore,DSPBuilder與FIRpiler可以緊密結(jié)合起來,DSPBuilder提供了一個FIRCore的應(yīng)用環(huán)境和仿真驗證環(huán)境。使用FIRCore之前,首先必須驗證MatLab、DSPBuilder、QuartusⅡ以及IP核本身即FIRpiler等工具安裝正確。如果一切正常,就可以在Simulink庫管理的AlteraDSPBuilder庫中看到MegaCoreFunctions庫,以及庫中含有的FIRpiler等IP模塊。下面通過一個高速低通的FIR濾波器,來介紹IP在Matlab工具上的基本使用方法。FIR濾波器核的使用在Simulink環(huán)境中新建一個模型,放置Signalpiler模塊和

溫馨提示

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

評論

0/150

提交評論