版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第六章 Matlab/Dsp builder硬件模塊設(shè)計Matlab是國內(nèi)強(qiáng)大的數(shù)學(xué)分析工具,廣泛用于科學(xué)計算和工程計算,還可以進(jìn)行復(fù)雜的數(shù)字信號處理系統(tǒng)的建模、參數(shù)估計及性能分析。Simulink是Matlab的一個組成部分,用于圖形化建模仿真。DSP Builder是Altera公司推出的一個面向DSP開發(fā)的系統(tǒng)級工具,它構(gòu)架在多個軟件工具之上,并把系統(tǒng)級(算法級建模)和RTL級(硬件實現(xiàn))兩個設(shè)計領(lǐng)域的設(shè)計工具連接起來放在Matlab/Simulink平臺上,而將Quartrs作為底層設(shè)計工具置于后臺,從而最大程度地發(fā)揮了這三種工具的優(yōu)勢。DSP Builder作為Simulink中的一
2、個工具箱,使得用FPGA設(shè)計DSP系統(tǒng)完全可以通過Simulink的圖形化界面進(jìn)行,只要簡單地進(jìn)行DSP Builder工具箱中的模塊調(diào)用即可。Matlab/DSP Builder尤其適用于一些在Quartus上不方便完成或不能完成的設(shè)計項目(如涉及算法類及模擬信號處理與生產(chǎn)方面的系統(tǒng)處理)。DSP Builder還可以自動完成大部分的設(shè)計過程和仿真,直到把設(shè)計文件下載到FPGA中。DSP Builder提供了Quartus® II軟件和MATLAB/Simulink工具之間的接口。其具有如下特性: 1.用于連接Mathwork的MATLAB(信號處理工具箱和濾波器設(shè)計工具箱),Si
3、mulink環(huán)境和Altera® 的Quartus II設(shè)計軟件環(huán)境。 2.支持Altera 的DSP核,這些核均可以從Altera的網(wǎng)站上下載(例如:FIR Compiler、Reed-Solomon Compiler等等)。 3.可以利用Altera的DSP開發(fā)板來快速的實現(xiàn)設(shè)計的原型。 4.支持SignalTap® II邏輯分析儀(一種嵌入式的信號分析儀,它可以探測到DSP開發(fā)板上Altera器件內(nèi)部的信號,并把數(shù)據(jù)引入到MATLAB的工作區(qū)以便于進(jìn)行可視化的分析)。 5.包括了用戶可以創(chuàng)建的定制的邏輯,用于配合SOPC Builder和Nios® II嵌入
4、式處理器設(shè)計。 6.包括了PLL塊,用于多時鐘設(shè)計。 7.包括了狀態(tài)機(jī)塊。 8.針對DSP系統(tǒng)的算法和實現(xiàn),支持統(tǒng)一的表示方法。 9.根據(jù)MATLAB和Simulink的測試矢量,可以自動生成VHDL測試激勵或Quartus II矢量文件(.vec)。 10.自動調(diào)用VHDL綜合器和Quartus II編譯器。 11.仿真可以設(shè)定為比特或周期精度。 12.提供多種的定點(diǎn)運(yùn)算和邏輯操作,用于配合使用Simulink 軟件。 13.支持多種Altera 的器件: Stratix、Stratix II 和 Stratix GX 器件; Cyclone 和 Cyclone II 器件; APEXII、
5、APEX 20KC 和 APEX 20KE 器件; Mercury器件; ACEX® 1K 器件; FLEX® 10K 和 FLEX 6000 器件。 利用Matlab和DSP Builder進(jìn)行模塊設(shè)計也是SOPC技術(shù)的一個組成部分。這是由于利用Matlab/DSP Builder/Quartrs可完成純硬件的DSP算法模型及實現(xiàn),從而構(gòu)成嵌入式系統(tǒng)外圍接口的協(xié)處理模塊,再進(jìn)一步構(gòu)成軟件程序中的精簡指令,DSP模塊或其他功能模塊可以成為單片F(xiàn)PGA電路系統(tǒng)中的一個組成部分,而且通過Matlab/DSP Builder,可以直接為Nios嵌入式處理器設(shè)計各類加速器,并以指令
6、的形式加入到Nios的指令系統(tǒng),從而成為Nios系統(tǒng)的一個接口設(shè)備,與整個片內(nèi)嵌入式系統(tǒng)融為一體。即利用DSP Builder和基本的Nios CPU,用戶可以根據(jù)項目的要求,自己構(gòu)建自己需要的DSP處理系統(tǒng)。本章主要介紹利用Matlab/ DSP Builder/Quartrs三個工具軟件聯(lián)合開發(fā)的設(shè)計流程。圖61為Matlab/DSP Builder/Quartrs聯(lián)合應(yīng)用框圖。由圖61可見,設(shè)計流程從利用建立DSP電路模型開始,電路模型的建立可以是圖形化的,利用Simulink和DSP Builder中提供的豐富的功能模塊和IP核進(jìn)行設(shè)計。DSP Builder中包含了算術(shù)和存儲功能等設(shè)
7、計模塊以及IP庫中的許多復(fù)雜功能模塊。電路中的功能模塊和IP的技術(shù)參數(shù)、數(shù)據(jù)格式、數(shù)據(jù)類型和總線寬度等都可以直接設(shè)置。電路模型設(shè)計完成后,可以進(jìn)行系統(tǒng)級的模型仿真,這與目標(biāo)器件和硬件系統(tǒng)沒有關(guān)系,是基于算法的仿真。下個步驟是利用置于Simulink電路模型界面的DSP Builder的SignalCompiler,將電路模型文件,即Simulink電路模塊文件(.mdl)轉(zhuǎn)換成RTL級的VHDL代碼表述和工具命令語言(Tcl)腳本。一旦獲得轉(zhuǎn)換好的VHDL描述,在Simulink中即可調(diào)用VHDL綜合器了,目前可選用的綜合器有Quartrs、LeonardoSpectru、和Synplify。
8、由它們生成底層網(wǎng)表文件。在Quartrs進(jìn)行編譯優(yōu)化的過程中,會產(chǎn)生兩種詳細(xì)記錄電路硬件特點(diǎn)和優(yōu)化方式的底層電路描述的中間網(wǎng)表文件,即ATOM Netlist。然后調(diào)用Quartrs中的編譯器,根據(jù)網(wǎng)表文件及設(shè)置的優(yōu)化約束條件進(jìn)行布線布局和優(yōu)化設(shè)計的適配操作,最后生成編程文件和仿真文件(.pdf和.sof),它們可用于對目標(biāo)器件的編程配置和硬件實現(xiàn);與此同時可生成分別用于Quartrs的門級仿真文件和ModelSim的VHDL時序仿真文件,以及相應(yīng)的VHDL仿真激勵文件,以用于實時測試DSP系統(tǒng)的工作性能。圖61 基于 Matlab/Dsp builder/Quartrs等工具 6.1 DSP
9、 Builder元件庫簡介 打開Matlab環(huán)境。可以看到Matlab的主窗口界面被分割成三個窗口:命令窗口(Command Window)、工作區(qū)(Workspace)、命令歷史(Command History)。使Matlab的Current Directory指向所安裝的DSPBuilder的Altlib文件夾,點(diǎn)擊旁邊的simulink圖標(biāo)打開simulink庫,如下圖62所示。圖62 Matlab的Current Directory 在Simulink Library Browser的左面展開Altera DSP Builder可以看見DSP Builder的元件庫如圖63所示,元件
10、庫可以分為若干部分。其中有主控元件庫(AltLab)、算術(shù)元件庫(Arithmetic)、開發(fā)板庫(Boards)、復(fù)元件庫(Complex Type)、組合元件庫(Gate Control)、總線元件庫(IOBus)、時鐘元件庫(Rate Change)、SOPC元件庫(SOPC Builder Links)、狀態(tài)機(jī)功能元件庫(State Machine Functions)、時序元件和存儲器元件庫(Storage)、IP核元件庫(MegaCore Function)、視頻和圖象處理元件庫(Video and Image Processing)圖63 DSP Builder元件庫1、主控元件
11、庫(AltLab),包含一些用于控制的模塊。主要有:數(shù)據(jù)觀察窗(BP)、FPGA編程器(Device programmer)、HDL引入模塊(HDL Import)、HDL子系統(tǒng)元件模塊(HDL SubSystem)、HIL硬件環(huán)境模塊(HIL)、邏輯分析儀探頭(Node)、硬件工程參數(shù)設(shè)置模塊(Quartus Global Project Assignment)、FPGA引腳鎖定模塊(Quartus Poinout Assignment)、MatLab模型至VHDL轉(zhuǎn)換器(SignalCompiler)、邏輯分析儀(SignalTap Analysis)。2、算術(shù)元件庫(Arithmetic
12、),包含一些與運(yùn)算相關(guān)聯(lián)的器件。主要有比較器(Comparator)、計數(shù)器(Counter)、差分器(Differentiator)、除法器(Divider)、增益乘法器(Gain)、地址發(fā)生器(Incerement Decrement)、積分器(Integrator)、乘法器(Multiplier)、乘法累加器(Multiply Accumulate)。如圖64所示。圖64 算術(shù)元件庫3、SOPC元件庫(SOPC Builder Links),在左側(cè)展開加號分別是SOPC AVALON總線模塊、SOPC AVALON總線端口模塊和SOPC用戶自定制指令端口。如圖65。圖65 SOPC元件庫
13、4、IP核元件庫(MegaCore Function),包含Altera公司設(shè)計好的IP核。可以使一般的設(shè)計者在不用全面了解所用IP核相關(guān)技術(shù)過多細(xì)節(jié)的情況下,在短期內(nèi)設(shè)計符合要求的系統(tǒng)。MegaCore是Altera的IP Core計劃中的一個組成部分,IP核元件庫所包含的IP核不附帶在DSP Builder和Quartus中,需要單獨(dú)購買。如圖66所示,IP核元件庫主要有CIC IP核(cic)、FFT IP核(fft)、FIR IP核(fir)、NCO IP核(noc)、RS IP核、VITERBI IP核(viterbi)。圖66 MegaCore Function元件庫6.2 FSK
14、調(diào)制器設(shè)計 二進(jìn)制頻率調(diào)制(2FSK),是利用二進(jìn)制數(shù)字基帶信號控制載波進(jìn)行頻譜變換的過程。在發(fā)送端產(chǎn)生不同頻率的載波震蕩來傳輸數(shù)字信號“0”、“1”,在接收端,把不同頻率的載波振蕩還原成相應(yīng)的數(shù)字基帶信號。FSK調(diào)制的方法有兩種:1、 直接調(diào)頻法用數(shù)字基帶矩形脈沖控制一個振蕩器的某些參數(shù),直接改變振蕩頻率,輸出不同的頻率信號。2、 頻率鍵控法用數(shù)字矩形脈沖控制電子開關(guān)在兩個振蕩器之間進(jìn)行轉(zhuǎn)換,從而輸出不同頻率的信號。 建立設(shè)計模型1、 們需要建立一個工作庫,所以先新建一個文件夾FSK。2、 使Matlab的Current Directory指向所安裝的DSPBuilder的Altlib文件夾
15、點(diǎn)擊上方的simulink圖標(biāo)打開simulink庫,如下圖67所示。圖67 Matlab的Current Directory3、 在Simulink Library Browser 窗口中選擇File菜單,在出現(xiàn)的菜單中選擇New,在彈出的子菜單中選擇新建模型model。如圖68圖68 新建Model4、放置SignalCompilder。點(diǎn)擊simulink庫管理器左側(cè)的數(shù)形列表中的Altera DSP Builder條,使之展開DSPBuilder庫,這時會出現(xiàn)一串樹形列表,對DSPBuider的子模塊(Block)進(jìn)行分組,展開其中的Altlab,選擇庫管理器右側(cè)的SignalComp
16、ilder,拖動到新的模型窗口。如圖69圖69 Simulink庫中的DspBuilder5、圖65,為所需最終連接的Modle圖形。參照圖610先放置Input2,Input2在DSPBuilder庫中的IOBus模塊中,選擇Input拖動到新Model中,點(diǎn)擊圖形下面的文字Input可以更改名稱。雙擊打開參數(shù)設(shè)置窗口,Bus type可設(shè)為Unsigned Integer(無符號整數(shù)),number of bits設(shè)為2。如圖611圖610 FSK調(diào)制模型圖611 input2參數(shù)設(shè)置 Constant也同樣在IOBus模塊中,constant1設(shè)置為無符號整數(shù),number of bit
17、s 設(shè)為8,常數(shù)值(Constant Value)設(shè)置為9,抽樣時間(Sample time)為1,如圖6-12。 Constant2除了 Constant value設(shè)置為3外,其余設(shè)置同Constant1,這樣可以使數(shù)字基帶矩形脈沖的峰峰值在3到9之間。圖6-12 constant1參數(shù)設(shè)置6 、n-to-1 Multiplexer和LUT同在GateControl模塊下,將它們拖到新建Model中將LUT改名為ROM10X10S,如圖6-13圖6-13 LUE和n-to-1Multiplexer模塊其中n-to-1Multiplexer的數(shù)據(jù)輸入線(Number of input Dat
18、a Line)設(shè)為2,pipeline設(shè)為1。ROM10X10S的bus Type設(shè)為signed Integer(有符號整數(shù)),輸出位number of bits為8位,LUT Address Width(查找表地址線位寬)設(shè)為8。在MATLAB Array編輯框中輸入計算查找表內(nèi)容的計算式。在此可以直接使用正弦(sin)函數(shù),在這里sin函數(shù)的調(diào)用格式為sin(起始值:步進(jìn)值:結(jié)束值)。 ROM10X10S為一個輸入地址為8位,輸出地址為8位的正弦查找表模塊,輸入地址總線位有符號整數(shù)(Signed Interger)??梢栽O(shè)定起始值為0、結(jié)束值為2,步進(jìn)值為2/28。計算式可以寫成127*
19、sin( 0:2*pi/(28):2*pi ),其中pi即位常數(shù)。在Use LPM處打勾,表示允許Quartus利用目標(biāo)器件中的嵌入式RAM(在EAB、ESB或M4K模塊中)來構(gòu)成ROM10X10S,即將生成的正弦波數(shù)據(jù)放在嵌入式RAM構(gòu)成的ROM中,這樣可以節(jié)省大量的邏輯資源。如圖6-14。圖6-14 ROM10X10S參數(shù)設(shè)置7、在Arithmetic模塊下找到Parallel Adder Subtractor,改名為ADDER4,將輸入設(shè)為2,Add(+)Sub(-)設(shè)為+,其余不變,如圖6-15。圖6-15 設(shè)置ADDER4 8、放置Delay模塊。在Storage庫下的Delay,放
20、置到新建模型窗口并改名為Dly2 。Delay是一個延時環(huán)節(jié)。在這里不修改其默認(rèn)參數(shù)設(shè)置。9、Bus7和Out8在IOBus庫下。找到AltBus,和output分別改名為Bus7 和Out8。Bus7的Bus Type為Signed Integer,Node Type為Internal Node,number of bit 為8位。如圖6-16。圖6-16 設(shè)置Bus7Out8的Bus Type也為Signed integer類型8位。如圖6-17。圖6-17 設(shè)置Out810、放置完所需的模塊后,按照圖6-5連接好。這樣就完成了FSK調(diào)制模型的設(shè)計。在進(jìn)行仿真驗證和SignalCompil
21、er編譯前,先對文件進(jìn)行存盤操作:點(diǎn)擊新建模型窗口的File菜單,選擇Save項。取名并保存在自己所建的文件夾FSK中。在本例中,新建模型取名為fsk,模型文件為fsk.mdl。保存完畢后,新建模型窗口的標(biāo)題欄會顯示模型的名稱,對模型取名后就可以使用SignalCompiler進(jìn)行編譯了。在編譯前還需要進(jìn)行仿真驗證。 Simulink模型仿真 用DSP Builder模塊設(shè)計好一個新的模型后,可以直接在simulink中進(jìn)行算法級、系統(tǒng)級仿真驗證。對一個模型進(jìn)行仿真,需要施加合適的激勵、一定的仿真步進(jìn)和仿真周期,添加合適的觀察點(diǎn)和觀察方式。需要強(qiáng)調(diào)的是:凡是來自Altera DSP Build
22、er庫以外的模塊,SignalCompiler都不能將其變成硬件電路,即不會影響生成的VHDL程序,但在啟動Simulink仿真后能影響后面產(chǎn)生的仿真激勵文件,Pulse Generator模塊的情況正是如此。1、加入一個Pulse Generator模塊,在Simulink庫管理器中,展開simulink庫,選中Sources庫,把Sources庫中的Pulse Generator模塊拖放到FSK模型窗口中。2、添加波形觀察模塊。在simulink的庫管理器中,展開simulink庫,選中其中的Sinks庫,把Scope模塊拖放到FSK模型窗口中。雙擊該模塊,打開的是一個Scope窗口。用鼠
23、標(biāo)點(diǎn)擊Scope模塊窗口上側(cè)工具欄的第二個工具按鈕:Parameters參數(shù)設(shè)置。打開Scope參數(shù)設(shè)置對話框,在Scope對話框中有兩個選項頁:Gerneral和Data History。在Gerneral選項頁中,改變Number of axes參數(shù)為2。點(diǎn)擊“OK”后可以看到Scope窗口增加了兩個波形觀察窗。每個觀察窗都可以分別觀察信號波形,而且相對獨(dú)立。如圖6-18。圖6-18 Scope設(shè)置3、按圖6-10連接FSK模型的全圖。先設(shè)置模型的仿真激勵。需要設(shè)置與此相連的模塊:Pulse Generator。雙擊放置在FSK模型窗口中的Pulse Generator模塊,設(shè)置對輸入端口
24、施加的激勵。在打開的Pulse Generator模塊參數(shù)設(shè)置對話框中,可以看到下列參數(shù)如圖6-19。圖6-19 Pulse Generator參數(shù)設(shè)置 其中脈沖類型(Pulse Type)是基于時間的(Time based),振幅(Amplitude)為1,周期(period)是1500秒,占空比(Pulse Width)為50%,相位延遲(Phase delay)為0。4、點(diǎn)擊Simulation菜單,在下拉菜單中選擇configuration parameters如圖(620),將Stop time設(shè)置成10000。FSK模型編輯窗中,在Simulation菜單下,選Start項,開始仿
25、真。等待仿真結(jié)束,雙擊Scope模塊,打開scope觀察窗。在Scope觀察窗中,可以使用工具欄中的按鈕來放大縮小波形,也可以使用工具欄上的“Autoscale”,使波形自動適配波形觀察窗,用鼠標(biāo)左鍵,可以放大波形。圖6-21為FSK的仿真圖形。圖620 FSK仿真停止時間圖6-21 FSK仿真圖圖中可以清晰的看到在脈沖值為1和0時,載波信號頻率隨脈沖信號值變化而變化,從而實現(xiàn)了2FSK。 SignalCompiler使用方法下面進(jìn)行設(shè)計流程中最為關(guān)鍵的一步,就是把DSP Builder的設(shè)計轉(zhuǎn)到硬件上加以實現(xiàn)。在這一步,可以獲得針對特定FPGA芯片的VHDL代碼。1、雙擊FSK模型中的Sig
26、nalCompiler模塊,將出現(xiàn)如圖622所示的對話框,點(diǎn)擊Analyze(分析)按鈕后,SignalCompiler就會對FSK模型進(jìn)行分析,檢查模型有無錯誤,并在Matlab主窗口彈出對話框,并給出相關(guān)信息。圖622 雙擊SignalCompiler2、 圖621中顯示了Signal Compiler窗口,左側(cè)是項目設(shè)置選項Project Setting Options,可以設(shè)置器件類型(Device)、綜合工具(Synthesis Tool)以及優(yōu)化項目(Opimization);右側(cè)是硬件編譯流程Hardware Compilation;下方是信息框Messages。SignalCo
27、mpiler的設(shè)置都集中在項目設(shè)置選項部分。在Device下拉選擇框中選擇需要的器件系列,在此選為Cyclone系列。其具體的器件型號,需由QuartusII自動決定使用該器件系列中的某一個具體型號的器件,或在手動流程中由用戶指定。圖621 SignalCompiler設(shè)置對話框3、當(dāng)設(shè)置好Device和Synthesis后,右側(cè)的硬件編譯Hardware Compilation部分就會列出一個操作流程,見圖621。分別為:轉(zhuǎn)換MDL文件為VHDL文件(Convert MDL to VHDL)綜合(Synthesis)編譯適配(QuartusIIQuartus) 先點(diǎn)擊步驟1的圖標(biāo),完成sim
28、ulink文件(*.mdl)到VHDL文件的轉(zhuǎn)換。轉(zhuǎn)換完成后,在“Messages”信息提示框中,會顯示“Generated top level “fsk.vhd” files”,即頂層文件fsk.vhd完成轉(zhuǎn)換(圖4-34)。fsk模型生成的VHDL文件4、點(diǎn)擊步驟2的圖標(biāo),完成綜合過程。因為左側(cè)的設(shè)置,本例用QuartusII來完成綜合過程的,在綜合后生成原子網(wǎng)表供適配器使用,并自動生成QuartusII可直接調(diào)用的工程。5、點(diǎn)擊步驟3的圖標(biāo),調(diào)用QuartusII完成編譯適配過程,生成編程文件:pof文件和sof文件(圖4-36)。編程文件可以直接用于FPGA的編程配置。如果想知道詳細(xì)的
29、報告,點(diǎn)擊下面的Report File按鈕進(jìn)行查看。Fsk 模型對應(yīng)的報告文件為fsk_DspBuilder_Report.html。 使用QuartusII實現(xiàn)時序仿真雖然已經(jīng)進(jìn)行了算法級、系統(tǒng)級仿真驗證,然而進(jìn)行門級的時序仿真仍然是十分重要的,SignalCompiler已將MATLAB上的仿真信息轉(zhuǎn)變成了可用于QuartusII進(jìn)行時序仿真的激勵信息及相關(guān)仿真文件fsk_quartus.tcl,因此能容易地完成此項任務(wù)。1、打開QuartusII環(huán)境,選擇菜單FileOpen Project ,定位到fsk模型所在路徑目錄,打開DSP Builder建立的QuartusII工程文件:fs
30、k.quartus。2、上文中提到,在SignalCompiler中的QuartusII編譯,具體的器件由QuartusII自動決定,可實際使用中,器件往往不是QuartusII自動選定的那個型號,管腳也不是QuartusII自動分配的管腳。這些都需要在QuartusII中進(jìn)行修改。所以這里須按照前面章節(jié)中敘述的方法選擇具體器件型號,本例中使用的是EP1C6Q240C8,然后啟動全程編譯,即執(zhí)行Start Compilation 。3、執(zhí)行菜單ProcessingStart Simulation。圖622即為時序仿真波形,在圖中可以清楚的看到輸出數(shù)據(jù)隨著時鐘的變換交替的進(jìn)行頻率變換。如果這時看
31、不到輸出的波形數(shù)據(jù),應(yīng)該回到MATLAB設(shè)計文件檢查,仿真、變換(注意這時只按SignalCompiler中的第一按鈕?。D6-22 時序仿真波形圖 使用QuartusII硬件測試與硬件實現(xiàn)在此按照前面章節(jié)中介紹的方法鎖定管腳。打開fsk工程文件fsk.vhd,了解端口情況,選擇合適的電路模式。然后進(jìn)行編譯,完成適配過程。最后是進(jìn)行硬件的下載,連接好FPGA開發(fā)板。然后將實測結(jié)果與在計算機(jī)上進(jìn)行的時序仿真結(jié)果進(jìn)行比較。若再想改動Simulink中的fsk.mdl圖,應(yīng)該注意兩點(diǎn):第一,內(nèi)部電路結(jié)構(gòu)和設(shè)置可以改,但端口信號名不要改,如輸入input2、out8,因為此信號的引腳已被鎖定,不便改
32、變第二,改動out.mdl圖后只宜作系統(tǒng)仿真和VHDL文件轉(zhuǎn)換,不宜作綜合,即最多只能對圖617所示的界面執(zhí)行第1個按紐,否則將可能把原來設(shè)定好的引腳全部沖掉。 為了保存引腳信息,綜合與適配兩項操作必須在進(jìn)入QuartusII后進(jìn)行。圖623為硬件實現(xiàn)后的輸出波形。圖623 FSK調(diào)制波形6.3 直接數(shù)字合成DDS設(shè)計 直接數(shù)字合成DDS基本原理對于正弦信號發(fā)生器,它的輸出可以用下式來描述。 (61)其中是指該信號發(fā)生器的輸出信號波形,指輸出信號對應(yīng)的頻率。上式的表述對于t式連續(xù)的,為了用數(shù)字邏輯實現(xiàn)該表達(dá)式,必須進(jìn)行離散化處理,用基準(zhǔn)時鐘clk進(jìn)行抽樣,令正弦信號的相位: (62)在一個cl
33、k周期,相位的變化量為: (63)其中指clk的頻率對于2可以理解成“滿”相位,為了對進(jìn)行數(shù)字量化,把2切割成份,由此每個clk周期的相位增量用量化值來表述:,且為整數(shù)。與(63)式聯(lián)立,可得: (64) 顯然,信號發(fā)生器的輸出可描述為: (65) 其中指前一個clk周期的相位值,同樣得出 (66) 圖624為DDS的基本結(jié)構(gòu)圖圖624 基本DDS結(jié)構(gòu)用DSPBuilder設(shè)計DDS DDS采用了層次化的設(shè)計方法,即使用了Simulink的子系統(tǒng)(SubSystem)來完成DSP模型的層次化設(shè)計。我們可以用上面的例子進(jìn)行簡單的介紹:在已經(jīng)建好的模型上進(jìn)行簡單修改后,選擇除SignalCompi
34、ler、Pulse Generator以外的模塊,單擊右鍵選擇Create Subsystem如圖(625)。圖625 FSK輸出的修改 圖626為創(chuàng)建子系統(tǒng)模塊后的FSK圖形。用鼠標(biāo)雙擊Subsystem子系統(tǒng)模塊后,就會彈出fsk/Subsystem窗口,顯示子系統(tǒng)模塊封裝的原理圖。值得注意的是,有些DSPBuilder庫的模塊只能放在頂層原理圖中,如SignalCompiler模塊。如果子系統(tǒng)中放置了SignalCompiler模塊,只可以進(jìn)行Simulink仿真,而不能使用SignalCompiler來生成相應(yīng)的VHDL代碼。圖626 生成子系統(tǒng)后的FSK圖6-23為DDS的頂層設(shè)計圖
35、,而圖624為其子系統(tǒng)Subsystem的結(jié)構(gòu)圖。圖624 DDS頂層設(shè)計圖其中AMPL、PHASE、FREQ是simulink-Sources庫下的constant元件,Constant value分別為67、456、11456789,勾選Interpret vector parameters as 1-D選項,Sample time為inf;Input、input1、input2在Altera DSP builder-IOBus庫下,Bus Type為Unsigned interger,number of bits分別為32、10、8;Output也在Altera DSP builder-
36、IOBus庫下,輸出位為10位有符號整數(shù)。圖625 DDS子系統(tǒng) 仿真時間為10000;ROM10X10S為Altera DSP builder-storage庫下的LUT元件,Bus Type為有符號整數(shù),輸出為10位,LUT Address Width寬為10位,MATLAB Array的輸出公式是511*sin( 0:2*pi/(210):2*pi ), 并勾選Use LPM和Register Address選項;Pdt2為Altera DSP builder-Arithmetic庫的Product元件,Pipeline值為0,勾選Use LPM選項;Bus1在Altera DSP bu
37、ilder-IOBus庫,是BusConversion元件,為有符號整數(shù),輸入18位,輸出10位,Input Bit to Output LSB為8。 Bus7為Altera DSP builder-IOBus下的AltBus元件,總線類型是有符號整數(shù),節(jié)點(diǎn)類型是內(nèi)部節(jié)點(diǎn)(Internal Node),32位;Adder4和Adder3設(shè)置相同,為在Altera DSP builder-Arithmetic下的Parallel Adder Subtractor元件,Number of Inputs是2,Add(+)Sub(-)設(shè)為“”,勾選Pipeline選項,Clock Phase Sele
38、ction設(shè)置為1;Dly2是Altera DSP builder-Storage下Delay元件,默認(rèn)設(shè)置;BusConversion在Altera DSP builder-IOBus元件庫,Bus Type為Signed Interger輸入為32位,輸出10位,Input Bit to Output LSB為22。 圖6-26為DDS信號輸出波形。圖6-26 DDS信號輸出6.4 AM調(diào)制器設(shè)計6.4.1 AM調(diào)制原理 AM的調(diào)制原理是將要傳送的信息裝載到某一高頻(載波)信號上去的過程,幅度調(diào)制是用調(diào)制信號去控制載波的振幅,使其隨調(diào)制信號線型變化,而保持載波的頻率不變。圖627為在Mal
39、tlab下完成的AM全圖,主要分為4個區(qū)域:區(qū)和區(qū)為兩個正弦信號發(fā)生器,分別為調(diào)制信號和載波信號;區(qū)為控制區(qū),主要控制調(diào)制信號的幅度。當(dāng)Cnt9選擇不同值時,區(qū)輸出不同的參數(shù)調(diào)整區(qū)輸出正弦信號的幅度,使調(diào)制信號的輸出具有不同的幅度(如圖6-27)。圖628為Con9選擇1、3、6時輸出的調(diào)制信號。區(qū)主要作用是將調(diào)制信號裝載到載波信號上去,實現(xiàn)信號的調(diào)制。圖627 AM調(diào)制原理圖圖6-28 受控的調(diào)制信號圖6-29 AM調(diào)制信號6.4.2 AM調(diào)制器參數(shù)設(shè)置仿真時間設(shè)為100000,其它設(shè)置如下:1、區(qū)正弦信號發(fā)生器的設(shè)置:Cst15:Altera DSP Builder-IOBus-Const
40、antBus Type:Unsigned Integernumber of bits:16Constant:20Sample time:1 Bus3:Altera DSP Builder-IOBus-AltBusBus Type:Unsigned IntegerNode Type:Internal Nodenumber of bits:16Adder1:Altera DSP Builder-Arithmetic-Parallel Adder Subtractor number of input:2 Add(+)Sub(-):+ Clock Phase Selection:1Dly:Altera
41、 DSP Builder-Storage-Delay 默認(rèn)設(shè)置Bus5:Altera DSP Builder-IOBus-BusConversion Bus Type:Signed Integer Inputnumber of bits:16Outputnumber of bits:8Input Bit Connected to Output LSB:8ROM8X8S:Altera DSP Builder-Storage-LUT Bus Type:Signed Integer Outputnumber of bits:8 LUT Address Width:8 MATLAB Array:127
42、*sin( 0:2*pi/(28):2*pi ) 勾選 Use LPM 和Register Address項 2、區(qū)控制端參數(shù)設(shè)置: Mux41:Altera DSP Builder-GateControl-n to 1 Multiplexer Number of Input Data Line:8 Pipeline:0 SL:Altera DSP Builder-IOBus-input Bus Type:Unsigned IntegerNode Type:Input Portnumber of bits:3 Cnt9:Simulink-sources-Constant Constant va
43、lue:6 勾選Interpret vector parameters as 1-D Sample time:inf Cst8-14:Altera DSP Builder-IOBus-Constant Bus Type:Signed Fractionnumber of bits.:8.number of bits:8Sample time:13、區(qū)調(diào)制區(qū)參數(shù)設(shè)置 Pdt1、Pdt2:Altera DSP Builder-Arithmetic-Product Pipeline:0 勾選Use LPM ADDER2、Adder3:Altera DSP Builder-Arithmetic-Para
44、llel Adder Subtractor number of input:2 Add(+)Sub(-):+ Clock Phase Selection:1 勾選Pipeline選項。 Bus1:Altera DSP Builder-IOBus-BusConversion Bus Type:Signed Integer Inputnumber of bits:18Outputnumber of bits:10Input Bit Connected to Output LSB:8 Cst3:Altera DSP Builder-IOBus-ConstantBus Type:Unsigned In
45、tegernumber of bits:8Constant:128Sample time:1 Cst4:Altera DSP Builder-IOBus-ConstantBus Type:Unsigned Integernumber of bits:10Constant:512Sample time:1 Adder2:Altera DSP Builder-Arithmetic-Parallel Adder Subtractor number of input:2 Add(+)Sub(-):+ Clock Phase Selection:1AM_OUT:Altera DSP Builder-IO
46、Bus-output Bus Type:Unsigned IntegerNode Type:Output Portnumber of bits:104、區(qū)正弦信號發(fā)生器的設(shè)置:Cst16:Altera DSP Builder-IOBus-ConstantBus Type:Unsigned Integernumber of bits:32Constant:88234567Sample time:1 Bus7:Altera DSP Builder-IOBus-AltBusBus Type:Unsigned IntegerNode Type:Internal Nodenumber of bits:3
47、2Adder4:Altera DSP Builder-Arithmetic-Parallel Adder Subtractor number of input:2 Add(+)Sub(-):+ Clock Phase Selection:1 勾選PipelineDly2:Altera DSP Builder-Storage-Delay 默認(rèn)設(shè)置BusConversion:Altera DSP Builder-IOBus-BusConversion Bus Type:Signed Integer Inputnumber of bits:32Outputnumber of bits:10Input
48、 Bit Connected to Output LSB:22ROM10X10S:Altera DSP Builder-Storage-LUT Bus Type:Signed Integer Outputnumber of bits:10 LUT Address Width:10 MATLAB Array:511*sin( 0:2*pi/(210):2*pi ) 勾選 Use LPM 和Register Address項6.5FSK硬件環(huán)HIL仿真設(shè)計前面提到的在Simulink平臺上的仿真都屬于算法級仿真,是軟件仿真。如果想要求仿真結(jié)果能反映模塊的硬件特性,在Simulink平臺上的仿真就不
49、能滿足要求。在Quartus平臺上的仿真盡管獲得了全硬件的仿真結(jié)果,但沒有Matlab提供的大量功能強(qiáng)大的仿真工具,一些特定功能的激勵信號難以獲得。因此最理想的方法是直接在Simulink平臺上將設(shè)計模型下載進(jìn)FPGA,利用Simulink提供的各類仿真工具進(jìn)行仿真。Altera的DSP Builder提供的HIL(Hardware in the Loop)模塊能很好的完成這類仿真。HIL可以在Simulink模型與FPGA開發(fā)板間通過JTAG通信口建立一種聯(lián)系,從而實現(xiàn)基于Matlab/DSP Builder平臺的硬件仿真。我們利用上文建立的FSK模型來舉例說明基于HIL模塊的仿真流程。1、
50、 調(diào)出前面完成的FSK模型。將信號源Pulse Generator的參數(shù)和修改如下圖630。圖630 Pulse Generator參數(shù)設(shè)置圖631 FSK的仿真參數(shù)設(shè)置窗2、用SignalCompiler對FSK模型進(jìn)行轉(zhuǎn)換、綜合和適配。按照圖621的步驟,分別按動對話框按鈕1、2、3,使fsk_HIL.mdl轉(zhuǎn)換成為一個Quartus工程。3、如圖632所示,刪去FSK圖中所有Altera DSP Builder庫元件構(gòu)成的電路,再引入HIL模塊(Altera DSP BuilderAltlabHIL)。為穩(wěn)妥起見,將設(shè)計另存。圖632 加入HIL模塊的FSK4、將PC機(jī)與FPGA開發(fā)板連
51、接好,打開電源。雙擊圖632的HIL模塊,將彈出圖633所示的HIL參數(shù)設(shè)置對話框。首先在1.Select Quartus Project加入前面生成的FSK工程;然后在2.Select the clock pin欄選擇clock;根據(jù)電路圖輸入輸出端口的數(shù)據(jù)類型確定3.Identity the signed port中各端口的數(shù)據(jù)類型在右欄的Burst Mode處打勾;在Burst length處鍵入1024(默認(rèn));在Frame Mode處打勾,下面參數(shù)默認(rèn),點(diǎn)擊Next page按鈕,進(jìn)入下一頁進(jìn)入圖634界面。圖633 HIL參數(shù)設(shè)置在圖634的FPGA device欄輸入你所應(yīng)用的F
52、PGA型號,如本書應(yīng)用的類型為EP1C6Q240C8。如果PC機(jī)與FPGA的JTAG口通信正常,則在Program the FPGA 欄下的JTAG Cable欄將自動顯示編程器類型;而Device in chain欄將自動顯示已經(jīng)從FPGA板上測得的FPGA型號。點(diǎn)擊Compile with Quartus按鈕,進(jìn)行編譯,即將原來圖FSK模型已經(jīng)生成的工程文件與HIL模塊中輸入輸出信號緩沖模塊一起編譯成一個下載文件。以便進(jìn)行基于HIL第硬件仿真。如果編譯成功,會產(chǎn)生一個“.sof”文件,在圖6-34下方的信息欄出現(xiàn)文字:Created fsd_HIL.sof.。下面點(diǎn)擊圖6-34的Confi
53、gure FPGA按鈕,通過JTAG口將此文件下載到FPGA中。如果下載無誤,會在信息欄出現(xiàn)文字:Programming successful。圖6-34 HIL模塊編輯與編程窗 5、如圖6-35,將HIL模塊與外圍電路接好,運(yùn)行Simulink仿真。圖6-36為加入HIL模塊的FSK模型仿真波形。如圖所示,輸入波形與輸出波形有一定的相位差,這個相位差說明信號在FPGA里有了延時。圖6-35 加入HIL的FSK模塊圖6-36 加入HIL后的FSK仿真6、利用Altera DSP Builder-Altlab-Device programmer,也可以進(jìn)行模塊編成,下載流程同上。如圖6-37。圖
54、6-37 利用編成模塊向FPGA下載6.6 使用FIR IP Core 設(shè)計FIR濾波器 Altera為了使設(shè)計者也能在盡可能短的時間內(nèi)快速高效的設(shè)計出符合設(shè)計要求的項目,給設(shè)計者提供了大量的IP Core,使設(shè)計者在不用全面了解有關(guān)器件的情況下達(dá)到理想的設(shè)計效果。MegaCore是Altera的IP Core計劃中的一部分,F(xiàn)IR Compiler作為一個MegaCore,不附帶在DSP Builder和Quartus中,需要向Altera公司單獨(dú)購買。Altera 提供的FIR Compiler是一個結(jié)合AlteraFPGA器件的FIR Filter Filter Core,DSP Builder與FIR Compiler可以緊密結(jié)合起來,DSP Builder提供了一個FIR Core的應(yīng)用環(huán)境和仿真驗證環(huán)境。使用FIR Core之前,首先必須驗證MatLab、DSP Builder、Quartus以及IP核本身即FIR Compiler等
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024店鋪轉(zhuǎn)讓合同范例
- 2024年采購合同變更協(xié)議
- 審計業(yè)務(wù)約定書模板
- 私人購房合同模板
- 深圳市房地產(chǎn)出租合同書
- 專業(yè)保證擔(dān)保合同大全
- 電視廣告代理權(quán)協(xié)議
- 住宅拆遷協(xié)議書
- 會計師會議協(xié)議書
- 2024版自愿離婚協(xié)議書寫作要點(diǎn)
- 2021食品安全問題調(diào)查報告
- 干法電極行業(yè)深度研究報告
- 煙草局考試計算機(jī)專業(yè)考試題
- 小學(xué)道德與法治六年級下冊第四《讓世界更美好單元》第10課《我們愛和平》說課稿
- 客艙服務(wù)迎送客服務(wù)及安全演示
- 醫(yī)師提前考核表
- 新版病歷書寫基本規(guī)范學(xué)習(xí)
- 學(xué)生綜合素質(zhì)評價管理機(jī)制和保障制度精選范文
- 佛子行背誦版
- 小學(xué)校本培訓(xùn)工作計劃范文
- 職業(yè)技能鑒定《高級眼鏡驗光員》考前點(diǎn)題卷二
評論
0/150
提交評論