第3章DSPBuilder設(shè)計入門-ppt課件_第1頁
第3章DSPBuilder設(shè)計入門-ppt課件_第2頁
第3章DSPBuilder設(shè)計入門-ppt課件_第3頁
第3章DSPBuilder設(shè)計入門-ppt課件_第4頁
第3章DSPBuilder設(shè)計入門-ppt課件_第5頁
已閱讀5頁,還剩193頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 第第3章章 DSP Builder設(shè)計入門設(shè)計入門 3.1 DSP Builder及其設(shè)計流程及其設(shè)計流程 3.2 DSP Builder設(shè)計導(dǎo)游設(shè)計導(dǎo)游 3.3 調(diào)幅電路模型設(shè)計例如調(diào)幅電路模型設(shè)計例如 3.4 運用運用SignalTap II嵌入式邏輯分析儀嵌入式邏輯分析儀 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 3.1 DSP Builder及其設(shè)計流程及其設(shè)計流程 DSP Builder是一個系統(tǒng)級(或算法級)設(shè)計工具,它架構(gòu)在多個軟件工具之上,并把系統(tǒng)級和RTL級兩個設(shè)

2、計領(lǐng)域的設(shè)計工具銜接起來,最大程度地發(fā)揚了兩種工具的優(yōu)勢。DSP Builder依賴于MathWorks公司的數(shù)學(xué)分析工具M(jìn)atlab/Simulink,以Simulink的Blockset出現(xiàn),可以在Simulink中進(jìn)展圖形化設(shè)計和仿真, 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 同時又經(jīng)過SignalCompiler可以把Matlab/Simulink的設(shè)計文件(.mdl)轉(zhuǎn)成相應(yīng)的硬件描畫言語VHDL設(shè)計文件(.vhd),以及用于控制綜合與編譯的TCL腳本。而對后者的處置可以由FPGA/CPLD開發(fā)工具Quartus II來完成。 由于在FPGA上設(shè)

3、計一個DSP模塊的復(fù)雜性,設(shè)計的性能(包括面積、速度、可靠性、設(shè)計周期)對于不同的運用目的將有不同的要求,涉及的軟件工具也不僅僅是Simulink和Quartus II,DSP Builder針對不同情況提供了兩套設(shè)計流程,即自動流程和手動流程。圖3-1是利用DSP Builder進(jìn)展DSP設(shè)計的流程框圖。 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 如圖3-1所示,DSP Builder設(shè)計流程的第一步是在Matlab/Simulink中進(jìn)展設(shè)計輸入,即在Matlab的Simulink環(huán)境中建立一個mdl模型文件,用圖形方式調(diào)用Altera DSP Buil

4、der和其它Simulink庫中的圖形模塊(Block),構(gòu)成系統(tǒng)級或算法級設(shè)計框圖(或稱Simulink設(shè)計模型)。 第二步是利用Simulink強(qiáng)大的圖形化仿真、分析功能,分析此設(shè)計模型的正確性,完成模型仿真。 在這兩步中,與普通的Matlab Simulink建模過程幾乎沒有什么區(qū)別,所不同的是設(shè)計模型庫采用Altera DSP Builder的Simulink庫,也不涉及到其它EDA軟件,沒有自動流程和手動流程的區(qū)別。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 第三步是DSP Builder設(shè)計實現(xiàn)的關(guān)鍵一步,經(jīng)過SignalCompiler把Simu

5、link的模型文件(后綴為.mdl)轉(zhuǎn)化成通用的硬件描畫言語VHDL文件(后綴為.vhd)。由于EDA工具軟件(諸如Quartus II、ModelSim)不能直接處置Matlab的.mdl文件,這就需求一個轉(zhuǎn)換過程。轉(zhuǎn)換獲得的HDL文件是基于RTL級(存放器傳輸級)的VHDL描畫。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-1 DSP Builder設(shè)計流程 Simulink模型仿真綜合(Quartus II,LeonardoSpectrum,Synplify)ATOM Netlist產(chǎn)生Quartus IIHDL仿真(ModelSim)綜合(Quar

6、tus II,LeonardoSpectrum,Synplify)Quartus II生成編程文件(.pof,.sof)下載至硬件自自動動流流程程手手動動流流程程mdl轉(zhuǎn)成vhdlMatlabSimulink建立模型第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 再接下來的幾個步驟是對以上設(shè)計產(chǎn)生的VHDL的RTL代碼和仿真文件進(jìn)展綜合、編譯適配以及仿真。為了針對不同用戶的設(shè)計目的和設(shè)計要求,DSP Builder提供了兩種不同的設(shè)計流程,主要可以分為自動流程和手動流程。 假設(shè)采用DSP Builder的自動流程,幾乎可以忽略硬件的詳細(xì)實現(xiàn)過程,可以選擇讓DSP

7、Builder自動調(diào)用Quartus II等EDA設(shè)計軟件,完成綜合(Synthesis)、網(wǎng)表(ATOM Netlist)生成和Quartus II適配,甚至在Matlab中完成FPGA的配置下載過程。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 假設(shè)希望運用其它第三方的VHDL綜合器和仿真器(除Synplify、LeonardoSpectrum和 Quartus II綜合器及ModelSim外),或是希望完成特定的適配設(shè)置,如邏輯鎖定、時序驅(qū)動編譯、ESB特定功能運用等,可以選用手動流程設(shè)計。 在手動流程中,設(shè)計者可以靈敏地指定綜合、適配條件。不過,需求手動

8、地調(diào)用VHDL綜合器進(jìn)展綜合,調(diào)用Quartus II進(jìn)展適配,調(diào)用ModelSim或者Quartus II進(jìn)展仿真,最后用Quartus II產(chǎn)生相應(yīng)的編程文件用于FPGA的配置。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 采用手動流程時,除了行為級仿真驗證和設(shè)計輸入外,其它過程與規(guī)范的基于VHDL的EDA設(shè)計流程是完全一致的。由上一步DSP Builder設(shè)計流程得到VHDL文件(由Simulink模型文件*.mdl經(jīng)過SignalCompilder轉(zhuǎn)換而成),送入綜合器進(jìn)展綜合。綜合器可以是Synplify Pro,也可以是LeonardoSpectru

9、m,或者采用Altera本人的Quartus II。在綜合時,能夠需求對綜合器進(jìn)展配置或者提供綜合的約束條件。由于這個過程操作能夠比較繁瑣,所以DSP Builder的SignalCompiler相應(yīng)提供了一個接口,針對設(shè)計,自動產(chǎn)生一個TCL腳本與綜合器Synplify或者LeonardoSpectrum相接。 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 綜合器在綜合操作后會產(chǎn)生一個網(wǎng)表文件,以供下一個流程運用。這里產(chǎn)生的網(wǎng)表文件稱為ATOM網(wǎng)表文件(如圖3-1所示),主要是EDIF網(wǎng)表文件(.edf 電子設(shè)計交換格式文件)或VQM(.vqm Verilog

10、 Quartus Mapping File),它們是一種參數(shù)可設(shè)置的,并含有詳細(xì)器件系列硬件特征(如邏輯宏單元LCs、I/O單元、乘積項、嵌入式系統(tǒng)塊ESB等)的網(wǎng)表文件。Quartus II可以利用這些ATOM網(wǎng)表文件針對選定的詳細(xì)器件進(jìn)展適配,包括布線、規(guī)劃、構(gòu)造優(yōu)化等操作,最后產(chǎn)生時序仿真文件和FPGA目的器件的編程與配置文件。在這一步,設(shè)計者可以在Quartus II中完成對Pin(引腳)的鎖定,更改一些約束條件。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 假設(shè)用DSP Builder產(chǎn)生的DSP模型只是龐大設(shè)計中的一個子模塊,那么可以在設(shè)計中調(diào)用DS

11、P Builder產(chǎn)生的VHDL文件,以構(gòu)成完好的設(shè)計。同時,一樣可以運用Quartus II強(qiáng)大的LogicLock功能和SignalTap測試技術(shù)。 在DSP Builder設(shè)計流程的最后一步,可以在DSP Builder中直接下載到FPGA用戶開發(fā)板上,或者經(jīng)過Quartus II完成硬件的下載、測試。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 在圖3-1的流程中,其中有個流程在DSP設(shè)計中是不可或缺的,那就是HDL仿真。與DSP Builder可以配合運用的HDL仿真器是ModelSim。DSP Builder在生成VHDL代碼時,可以同時生成用于測試

12、DSP模塊的TestBench(測試平臺)文件,DSP Builder生成的TestBench文件采用VHDL言語,測試向量與該DSP模塊在Simulink中的仿真鼓勵相一致。經(jīng)過ModelSim仿真生成的TestBench可以驗證生成的VHDL代碼與Simulink中DSP模型的一致性。另外,DSP Builder在產(chǎn)生TestBench的同時,還產(chǎn)生了針對ModelSim仿真的Tcl腳本來簡化用戶的操作,掩蓋ModelSim仿真時的復(fù)雜性。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 在大部分情況下,Quartus II對DSP模塊適配后,需求再次驗證適配后

13、網(wǎng)表與Simulink中建立的DSP模型的一致性。這就需求再次運用ModelSim進(jìn)展仿真,這時仿真采用Quartus II適配后帶延時信息的網(wǎng)表文件(EDIF格式或者VHDL、Verilog格式)。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 3.2 DSP Builder設(shè)計導(dǎo)游設(shè)計導(dǎo)游 本節(jié)將以一個簡單的可控正弦波發(fā)生模塊的設(shè)計為例,詳細(xì)引見DSP Builder的運用方法。圖3-2所示是一個簡單的正弦波發(fā)生器,主要由四個部分構(gòu)成。InCount是階梯信號發(fā)生模塊,產(chǎn)生一個按時鐘線性遞增的地址信號,送往SinLUT。SinLUT,顧名思義是一個sin(正弦

14、函數(shù))值的查找表(LUT:Look Up Table)模塊,由遞增的地址獲得正弦波的量化值輸出。 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 SinLUT出來后送Product乘法模塊,與SinCtrl相乘。由于SinCtrl是1 bit輸入,SinCtrl經(jīng)過Product就完成了對有無正弦波輸出的控制。SinOut是整個正弦波發(fā)生器模塊的輸出,送往D/A即可獲得正弦波的輸出(模擬信號)。 設(shè)計者在利用DSP Builder進(jìn)展DSP系統(tǒng)相關(guān)設(shè)計時,關(guān)鍵的設(shè)計過程大都在Matlab的圖形仿真環(huán)境Simulink中進(jìn)展。第第3 3章章 DSP BuilderD

15、SP Builder設(shè)計入門設(shè)計入門 圖3-2 正弦波發(fā)生模塊原理圖 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 3.2.1 建立一個新的模型 (Model) 設(shè)計時首先需求建立一個新的設(shè)計模型,步驟如下: 1. 翻開Matlab環(huán)境 Matlab環(huán)境界面如圖3-3所示??梢钥吹剑琈atlab的主窗口界面被分割成三個窗口:命令窗口(Command Window)、任務(wù)區(qū)(Workspace)、命令歷史記錄(Command History)。在命令窗口中可以鍵入Matlab命令,同時獲得Matlab對命令的呼應(yīng)信息、出錯警告提示等。第第3 3章章 DSP Bui

16、lderDSP Builder設(shè)計入門設(shè)計入門 圖3-3 Matlab界面 工作區(qū) 命令歷史記錄 命令窗口 工作目錄 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 2. 建立任務(wù)庫 在建立一個新的設(shè)計模型前,最好先建立一個新的文件夾,作為work (任務(wù))目錄,并把Matlab當(dāng)前的work目錄切換到新建的文件夾下??梢赃\用Matlab命令來完成這些操作。在Matlab主窗口中的命令窗口中鍵入: cd e:/ mkdir /myprj/sinwave cd /myprj/sinwave第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門

17、其中e:/myprj/sinwave是新建的文件夾,是用來為Matlab建立任務(wù)目錄的。Mkdir是一個建立新目錄的Matlab命令,cd是切換任務(wù)目錄的Matlab命令。詳細(xì)過程可以參見圖3-4(翻開Simulink)。 經(jīng)過改動Matlab主界面中的“Current Directory的制定,同樣可以改動Matlab的當(dāng)前任務(wù)目錄。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-4 翻開Simulink 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 3. 了解Simulink庫閱讀器 當(dāng)勝利地把Matlab當(dāng)前目錄切換到新

18、建的設(shè)計目錄后,可以在Matlab命令窗口鍵入“Simulink命令,以開啟Matlab的圖形化建模擬真環(huán)境Simulink。詳見圖3-4。 圖3-5是Simulink的庫閱讀器(Library Browser)。在庫閱讀器的左側(cè)是Simulink library列表,其中“Simulink庫是Simulink的根本模型庫。在庫閱讀器的右側(cè)是選中的library中的組件、子模塊列表。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 當(dāng)安裝完DSP Builder后,在Simulink的庫閱讀器中可以看到“Altera DSP Builder字樣出如今library列

19、表中。在以下的DSP Builder運用中,主要是運用該庫中的組件、子模型來完成各項設(shè)計,再運用Simulink庫來完成模型的仿真驗證。 4. Simulink的模型文件 在翻開Simulink庫閱讀器后,需求新建一個Simulink的模型文件(后綴為mdl),在Simulink的庫閱讀器中選擇“File菜單(見圖3-6),在出現(xiàn)的菜單項中選擇“New,在彈出的子菜單項中選擇新建模型“Model。圖3-6右下角顯示的就是新模型窗口。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-5 Simulink庫閱讀器 第第3 3章章 DSP BuilderDSP Bu

20、ilder設(shè)計入門設(shè)計入門 圖3-6 建立新模型第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 5. 放置SignalCompiler 點擊Simulink庫閱讀器左側(cè)的庫內(nèi)樹形列表中的Altera DSP Builder條,使之展開DSP Builder庫,這時會出現(xiàn)一長串樹形列表,對DSP builder庫的子模塊(Block)進(jìn)展了分組。再次點擊其中的AltLab項,展開AltLab,選中庫閱讀器右側(cè)的SignalCompiler組件,按住鼠標(biāo)右鍵拖動SignalCompiler到新模型窗口中(如圖3-7所示)。第第3 3章章 DSP BuilderDSP

21、Builder設(shè)計入門設(shè)計入門 圖3-7 放置SignalCompiler 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 6. 放置Increment Decrement 參照圖3-2,將Increment Decrement模塊放置到新模型中。Increment Decrement模塊(見圖3-8)是DSP Builder庫中的Arithmetic(算術(shù))模塊。選中Altera DSP Builder庫中的Arithmetic條,那么在庫閱讀器的右側(cè),可以看到Increment Decrement模塊。按照放置SignalCompiler的方法,把Increm

22、ent Decrement模塊拖到新建模型窗口中。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 7. 設(shè)置IncCount 用鼠標(biāo)點擊在新建模型窗口中的Increment Decrement模塊下面的文字“Increment Decrement,就可以修正文字內(nèi)容,也就是可以修正模塊名字。在這里無妨將其修正為“IncCount,如圖3-9所示。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-8 Increment Decrement模塊 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-9 修

23、正IncCount第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 按照圖3-2中描畫的含義,要把IncCount模塊做成一個線性遞增(順序加1)的地址發(fā)生器,就需求對IncCount模塊的參數(shù)進(jìn)展相應(yīng)的設(shè)置。 雙擊新建模型中的IncCount模塊,翻開IncCount的模塊參數(shù)設(shè)置對話框“Block Parameters:IncCount,如圖3-10所示。在參數(shù)設(shè)置對話框的上半部分是該模塊的功能描畫和運用闡明;對話框的下半部分是參數(shù)設(shè)置部分。對于Increment Decrement模塊,共有下面幾種參數(shù)可以設(shè)置:第第3 3章章 DSP BuilderDSP B

24、uilder設(shè)計入門設(shè)計入門 總線類型(Bus Type) 輸出位寬(number of bits) 增減方向(Direction) 開場值(Starting Value) 時鐘相位選擇(Clock Phase Selection) 對于總線類型(Bus Type),在其下拉列表框中共有三種選擇: 有符號整數(shù)(Signed Integer) 有符號小數(shù)(Signed Fractional) 無符號整數(shù)(Unsigned Integer)第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-10 設(shè)置IncDec 第第3 3章章 DSP BuilderDSP Bui

25、lder設(shè)計入門設(shè)計入門 在這里選擇“Unsigned Integer,即無符號整數(shù)。對于輸出位寬,由于在后面接著的正弦查找表(Sin LUT)的地址為6位,所以輸出位寬設(shè)為6。 IncCount是一個按時鐘增1的計數(shù)器,Direction設(shè)為Increment(增量方式)。對于其它設(shè)置,仍采用Increment Decrement模塊的默許設(shè)置。設(shè)置完的對話框如圖3-10。然后點擊“OK按鈕確認(rèn)。 留意:假設(shè)對DSP Builder庫中的模塊設(shè)置參數(shù)值不了解,可以在相應(yīng)模塊的參數(shù)設(shè)置對話框中點擊“Help按鈕(或按F1鍵),調(diào)出DSP Builder的相應(yīng)協(xié)助,以便了解詳細(xì)的模塊參數(shù)闡明。第

26、第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 8. 放置正弦查找表(SinLUT) 在Altera DSP Builder庫的Gate庫中找到查找表模塊LUT(見圖3-11)。把LUT拖到新建模型窗口,按照IncCount的做法把新調(diào)入的LUT模塊的名字修正成“SinLUT。 雙擊SinLUT模塊,翻開模塊參數(shù)設(shè)置對話框“Block Parameters SinLUT,如圖3-12所示。把輸出位寬(Output number of bits)改為10,查找表地址線位寬(LUT Address Width)設(shè)為6。第第3 3章章 DSP BuilderDSP Bui

27、lder設(shè)計入門設(shè)計入門 圖3-11 LUT模塊 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-12 設(shè)置SinLUT第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 在“MATLAB Array編輯框中輸入計算查找表內(nèi)容的計算式。在此可以直接運用sin(正弦)函數(shù)。此處sin函數(shù)的調(diào)用格式為: sin(起始值:步進(jìn)值:終了值) SinLUT是一個輸入地址為6位、輸出值位寬為10的正弦查找表模塊,且輸入地址總線為無符號數(shù),可以設(shè)置起始值為0、終了值為2、步進(jìn)值為2/26。計算式可寫成: 511*sin(0:2*pi/(26):2

28、*pi)+512 其中pi即為常數(shù)。設(shè)置好的SinLUT參數(shù)如圖3-12所示。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 9、放置Delay模塊 在Simulink庫閱讀器的Altera DSP Builder庫中,選中Storage庫下的Delay模塊,放置到新建模型窗口。 Delay模塊(見圖3-13)是一個延時環(huán)節(jié),在這里可以不修正其默許參數(shù)設(shè)置。其詳細(xì)的默許參數(shù)設(shè)置見圖3-14。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-13 Delay模塊第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計

29、入門 圖3-14 Delay模塊默許參數(shù)設(shè)置第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 在Delay模塊的參數(shù)設(shè)置對話框中,參數(shù)Depth是描畫信號延時深度的參數(shù)。當(dāng)Depth為1時,信號傳輸函數(shù)為1/z,表現(xiàn)為經(jīng)過Delay模塊的信號延時1個時鐘周期(Clock Phase Selection參數(shù)為1的情況下);當(dāng)Depth為整數(shù)n時,其傳輸函數(shù)為1/zn,表現(xiàn)為經(jīng)過Delay模塊的信號將延時n個時鐘周期。Delay模塊在硬件上可以采用存放器來實現(xiàn),這也就是為什么把Delay模塊放在Storage(存儲單元)庫中的緣由。第第3 3章章 DSP Builder

30、DSP Builder設(shè)計入門設(shè)計入門 到如今為止,我們曾經(jīng)在新建模型中放置了4個模塊(Block),按照圖3-2,先把他們銜接起來。把鼠標(biāo)的指針挪動到上述幾個模塊的輸入/輸出端口上,鼠標(biāo)指針就會變成十字形“,這時按住鼠標(biāo)左鍵,拖動鼠標(biāo)就可以連線了,如圖3-15所示。 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-15 連線 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 10. 放置端口SinCtrl 在Simulink庫閱讀器的Altera DSP Builder庫中,選中Bus Manipulation庫,找到AltBu

31、s模塊(見圖3-16),放置在新建模型窗口中。修正AltBus模塊的名字為SinCtrl。 SinCtrl是一個1位輸入端口,雙擊SinCtrl模塊,翻開模塊參數(shù)設(shè)置對話框,設(shè)置SinCtrl的Bus Type參數(shù)為“Single Bit,Node Type參數(shù)為“Input Port,如圖3-17所示。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-16 AltBus模塊 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-17 設(shè)置SinCtrl第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門

32、11. 放置Product(乘法)模塊 在Simulink庫閱讀器的Altera DSP Builder庫中,選中Arithmentic庫,找到Product模塊(如圖3-18所示),用鼠標(biāo)拖放到新建模型窗口中。 在這里,Product的兩個輸入中,一個是經(jīng)過一個Delay的SinLUT查表的輸出,另一個是外部的一位端口SinCtrl。按算法邏輯來看,實現(xiàn)了SinCtrl對SinLUT查找表輸出的控制。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 雙擊Product模塊,翻開模塊參數(shù)設(shè)置對話框,設(shè)置Product的參數(shù),如圖3-19。其中Pipeline(流水線

33、)參數(shù)指定該乘法器模塊運用幾級流水線,即乘積延時幾個時鐘周期后出現(xiàn)?!癠se LPM參數(shù)是選擇能否需求采用LPM元件(LPM:Library of Parameterized Modules,參數(shù)化模塊庫)。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-18 Product模塊 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-19 設(shè)置乘法單元第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 12. 放置輸出端口SinOut 在Simulink庫閱讀器的Altera DSP Builder庫中

34、,選中Bus Manipulation庫,找到AltBus模塊(見圖3-17),將其放置在新建模型窗口中。修正AltBus模塊的名字為SinOut。 SinOut是一個10位輸出端口,接向FPGA的輸出端口,與外面的10位高速D/A轉(zhuǎn)換器相接,經(jīng)過D/A把10位數(shù)據(jù)轉(zhuǎn)換成1路模擬信號。雙擊SinOut模塊,翻開模塊參數(shù)設(shè)置對話框,設(shè)置SinOut的Bus Type參數(shù)為“Unsigned Integer,Node Type參數(shù)為“Output Port,然后點擊“Apply按鈕,修正“number of bits參數(shù)為10,如圖3-20所示。 第第3 3章章 DSP BuilderDSP Bu

35、ilder設(shè)計入門設(shè)計入門 圖3-20 設(shè)置SinOut 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 13. 設(shè)計文件存盤 放置完SinOut模塊后,按照圖3-21,把新建模型窗口中的DSP Builder模塊銜接起來(銜接方法見前面所述),這樣就完成了一個正弦波發(fā)生器的DSP Builder模型設(shè)計。在進(jìn)展仿真驗證和SignalCompiler編譯之前,先對設(shè)計進(jìn)展存盤操作:第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-21 原理圖(無Sim) 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門

36、 點擊新建模型窗口的“File菜單,在下拉菜單中選擇“Save項,取名并保管。在這個例子中,對新建模型取名為Sinout,模型文件為sinout.mdl。在保管終了后,新建模型窗口的標(biāo)題欄就會顯示模型稱號 留意:對模型文件取名時,盡量用英文字母打頭,不運用空格,不用中文,文件名不要過長。 在對模型取名后,就可以運用SignalCompiler進(jìn)展編譯,把mdl文件轉(zhuǎn)換為VHDL文件。不過如今模型的正確性還是未知的,需求進(jìn)展仿真驗證。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 3.2.2 Simulink模型仿真 Matlab的Simulink環(huán)境具有強(qiáng)大的圖形

37、化仿真驗證功能。用DSP Builder模塊設(shè)計好一個新的模型后,可以直接在Simulink中進(jìn)展算法級、系統(tǒng)級仿真驗證。對一個模型進(jìn)展仿真,需求施加適宜的鼓勵、一定的仿真步進(jìn)和仿真周期,并添加適宜的察看點和察看方式。 1. 參與仿真步進(jìn)模塊 首先參與一個Step模塊,以模擬SinCtrl的按鍵使能操作。在Simulink庫閱讀器中,展開Simulink庫,選中Sources庫,把Sources庫中的Step模塊拖放到sinout模型窗口中(如圖3-22)。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-22 Step模塊第第3 3章章 DSP Builde

38、rDSP Builder設(shè)計入門設(shè)計入門 圖3-23 Scope模型第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 2. 添加波形察看模塊 在Simulink的庫閱讀器中,展開Simulink庫,選中其中的Sinks庫,把Scope(示波器)模塊拖放到sinout模型窗口中(如圖3-23)。雙擊該Scope模塊,翻開的是一個Scope(示波器)窗口,如圖3-24。圖中所示只需一個信號的波形察看窗口,而假設(shè)希望可以多察看幾路信號,自然可以經(jīng)過調(diào)用多個Scope模塊的方法來實現(xiàn),這里僅引見一種方法,經(jīng)過修正Scope模塊參數(shù)來在同一個Scope模塊中添加察看窗。第第3

39、 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-24 Scope初始顯示 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 3. Scope參數(shù)設(shè)置 用鼠標(biāo)點擊Scope模塊窗口上側(cè)工具欄的第二個工具按鈕“Parameters,參數(shù)設(shè)置按鈕,翻開Scope參數(shù)設(shè)置對話框,見圖3-24。 在Scope參數(shù)設(shè)置對話框中共有兩個選項頁:“Gerneral(通用)和“Data history(數(shù)據(jù)歷史)。在“Gerneral選項頁中將“Number of axes參數(shù)改為3,如圖3-25所示。在點擊“OK按鈕確認(rèn)后,可以看到Scope窗口添加了

40、兩個波形察看窗。每個察看窗都可以分別察看信號波形,而且相對獨立。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-25 設(shè)置Scope參數(shù) 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 4. 設(shè)置Mux模塊 假設(shè)需求對某些信號進(jìn)展對比察看,希望放置在同一個波形察看窗中,以便更好地察看信號之間的異同點,可以運用Mux模塊(如圖3-26所示)來輔助完成。 在Simulink庫閱讀器中,選中Simulink庫,找到Simulink的Signal Routing庫下的Mux模塊,拖放到sinout模型窗口,按照圖3-27來設(shè)置Mux模塊

41、,把“Number of inputs(輸入數(shù)目)參數(shù)設(shè)定為2。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-26 Mux模塊第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-27 設(shè)置Mux第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 5. 設(shè)置仿真鼓勵 按圖3-28銜接sinout模型的全圖,預(yù)備開場仿真。在仿真前還需求設(shè)置一下與仿真相關(guān)的參數(shù)。 先設(shè)置模型的仿真鼓勵。在sinout模型圖中只需一個輸入端口SinCtrl,需求設(shè)置與此相連的Step模塊。第第3 3章章 DSP Build

42、erDSP Builder設(shè)計入門設(shè)計入門 圖3-28 sinout全圖第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 雙擊放置在sinout模型窗口中的Step模塊,設(shè)置對輸入端口SinCtrl施加的鼓勵。在翻開的Step模塊參數(shù)設(shè)置對話框中,可以看到一些參數(shù)(詳見圖3-29),這些參數(shù)值的含義如下: Step time:步進(jìn)間隔 Initial value:初始值 Final value:終值 Sample time:采樣時間 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-29 設(shè)置Step第第3 3章章 DSP Buil

43、derDSP Builder設(shè)計入門設(shè)計入門 在此設(shè)置“Step time為500;“Initial value為0,即初始時不輸出正弦波;“Final value為1;“Sample time為1。把最后兩項選擇:“Interpret vector parameters as 1-D和“Enable zero crossing dectection都設(shè)為打勾。 在sinout模型窗口中,點擊“Simulation菜單,在下拉菜單中選擇“Simulation parameters菜單項,如圖3-30所示。隨后,將彈出sinout模型的仿真參數(shù)設(shè)置對話框“Simulation Parameter

44、s : sinout。該對話框中共有5個選項頁:第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 Solver Workspace I/O Diagnostics Advanced Real-Time Workshop 其中,“Solver選項頁中完成仿真時根本的時間設(shè)置、步進(jìn)間隔和方式設(shè)置及輸出選項設(shè)置。在sinout模型中,可設(shè)置“Start time為0.0,“Stop time為1000。其它設(shè)置取默許值。選項頁的設(shè)置也取默許設(shè)置。然后,點擊“OK按鈕確認(rèn)。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-30 Simuli

45、nk仿真設(shè)置第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 6. 啟動仿真 在sinout模型窗口中選擇“Simulation菜單,再選“Start項開場仿真,如圖3-31所示。待仿真終了,雙擊Scope模塊,翻開Scope察看窗。圖3-32顯示了仿真結(jié)果,SinOut信號是sinout模型的輸出(Scope察看窗中模擬了D/A的輸出波形),SinCtrl信號是sinout模型的輸入。可以看出SinOut遭到了SinCtrl的控制。當(dāng)SinCtrl為1時,SinOut波形是正弦波;當(dāng)SinCtrl為0時,輸出為0。SinTemp是sinout模型內(nèi)部的銜接信號,用

46、來察看sinout模型內(nèi)部的情況。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-31 Simulink仿真Start 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-32 Scope波形 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 在Scope察看窗中,可以運用工具欄中的按鈕來放大/減少波形,也可以在波形上單擊右鍵運用“Autoscale,使波形自動適配波形察看窗。用鼠標(biāo)左鍵可以放大波形。 把SinTemp信號波形放大一些可以看到兩個波形,一個波形比另一個波形延時了一個周期。如圖3-33

47、所示。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-33 波形延時 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 3.2.3 SignalCompiler的運用 在Simulink中完成仿真驗證后,就需求把設(shè)計轉(zhuǎn)到硬件上加以實現(xiàn)。這是整個DSP Builder設(shè)計流程中最為關(guān)鍵的一步,在這一步,可以獲得針對特定FPGA芯片的VHDL代碼。詳細(xì)步驟如下:第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 1. 分析當(dāng)前的模型 雙擊sinout模型中的SignalCompiler模塊,會出現(xiàn)如圖3-34

48、所示的對話框,點擊“Analyze(分析)按鈕后,SignalCompiler就會對sinout模型進(jìn)展分析,檢查模型有無錯誤,并在Matlab主窗口彈出對話框給出相關(guān)信息。假設(shè)有錯誤(Error)存在,SignalCompiler就會停頓分析過程,并把錯誤信息顯示在Matlab主窗口的“Command Window命令窗口中;反之,在分析過程終了后,翻開Signal Compiler窗口(見圖3-35),假設(shè)有警告(Warning)存在,同錯誤一樣把警告信息顯示在命令窗口。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-34 雙擊SignalCompile

49、r后的對話框 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-35 Signal Compiler窗口 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 Simulink具有較為強(qiáng)大的錯誤定位才干,對許多錯誤可以在Simulink模型中直接定位,用不同的顏色提示有錯誤的Simulink模塊(Block)。當(dāng)Signal Compiler分析當(dāng)前DSP模型有錯誤時,必需去除錯誤才干繼續(xù)DSP Builder流程,即不會出現(xiàn)Signal Compiler窗口。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門

50、 2. 設(shè)置Signal Compiler 圖3-35所示的Signal Compiler窗口大致上可以分為三個功能部分: 左側(cè)的工程設(shè)置選項“Project Setting Options; 右側(cè)的硬件編譯流程“Hardware Compilation; 下方的信息框“Messages。 Signal Compiler的設(shè)置都集中在工程設(shè)置選項部分。在“Device(器件)下拉選擇框中選擇需求的器件系列,默以為Stratix系列器件,對此可以修正。 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 比如,可選為ACEX1K系列器件。需求留意的是,在“Device中

51、只能選擇器件系列,不能制定詳細(xì)的器件型號,這需由Quartus II自動決議運用該器件系列中的某一個詳細(xì)型號的器件。 在“Device下拉選擇框中,有一個“DSP Board的選擇,這是一個特殊的選項,是針對Altera詳細(xì)的DSP開發(fā)板的,有關(guān)情況將在第4章中引見。 “Synthesis(綜合)下拉選擇框可以選擇綜合器,共有三個選擇:第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 “LeonardoSpectrum:Mentor的LeonardoSpectrum綜合器; “Synpilfy:Synpilicity的Synpilfy Pro或Synpilfy綜合器

52、; “Quartus II:Altera的FPGA/CPLD開發(fā)集成環(huán)境,內(nèi)含綜合功能。 在這個例子中,可選擇Quartus II。 “Optimization(優(yōu)化)下拉選擇框指明在綜合、適配過程中的優(yōu)化條件,是對面積(Area)優(yōu)化還是對速度(Speed)優(yōu)化的選擇,即資源占用優(yōu)先還是性能優(yōu)先。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 工程設(shè)置選項(“Project Setting Options)部分的下側(cè)是一些選項頁,其中; “Main Clock中指定系統(tǒng)主時鐘的周期; “Reset是系統(tǒng)復(fù)位信號的設(shè)置; “SignalTap II是嵌入式邏輯分析

53、儀SignalTap的設(shè)置; “TestBench是仿真測試文件生成的選擇; “SOPC info是SOPC相關(guān)設(shè)置。 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 在這里,無妨指定Main Clock的周期為20 ns,點擊的右邊箭頭找到“TechBench選項頁(見圖3-36),選擇“Generate Stimuli for VHDL Testbench生成含鼓勵的仿真測試文件,用于VHDL仿真。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-36 Testbench選項頁 第第3 3章章 DSP BuilderDSP B

54、uilder設(shè)計入門設(shè)計入門 3. 把模型文件MDL轉(zhuǎn)換成VHDL 當(dāng)設(shè)置好“Device和“Synthesis后,右側(cè)的硬件編譯“Hardware Compilation部分就會列出一個操作流程,見圖3-37。該流程為: (1) “Convert MDL to VHDL:將.mdl文件轉(zhuǎn)換為VHDL文件; (2) “Synthesis:綜合; (3) “Quartus II:Quartus編譯適配,生成編程文件。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-37中的第4步是隱去的,這一步實如今Simulink中,完成FPGA的硬件配置下載。這需求DSP開

55、發(fā)板的支持,當(dāng)“Device選為“DSP Board時,這一步才顯示出來。 按上述流程,先點擊步驟1的圖標(biāo),完成Simulink文件(*.mdl)到VHDL文件的轉(zhuǎn)換。轉(zhuǎn)換完成后,在“Messages信息提示框中會顯示(見圖3-37): “Generated top levelsinout.vhdfiles,即頂層文件sinout.vhd完成轉(zhuǎn)換。假設(shè)有錯誤,在“Messages信息提示框中會顯示簡短的出錯提示。第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 圖3-37 出現(xiàn)MDL to VHDL信息第第3 3章章 DSP BuilderDSP Builder設(shè)計

56、入門設(shè)計入門 例3-1顯示的就是由sinout模型生成的VHDL代碼?!纠?-1】由sinout模型生成的sinout.vhd文件。- DSP Builder (Version 2.1.2)- Quartus II development tool and MATLAB/Simulink Interface- Copyright ?2019-2019 Altera Corporation. All rights reserved.- The DSP Builder software, including, without limitation, - the clock-cycle limite

57、d 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 - versions of the MegaCore? Logic Functions included therein, - may only be used to - develop designs for programmable logic devices manufactured - by Altera Corporation - and sold by Altera Corporation and its authorized distributors. - IN NO EVENT MAY - SUC

58、H SOFTWARE AND FUNCTIONS BE USED TO PROGRAM ANY - PROGRAMMABLE LOGIC DEVICES, FIELD第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 - PROGRAMMABLE GATE ARRAYS, ASICS, STANDARD PRODUCTS, OR ANY - OTHER SEMICONDUCTOR - DEVICE MANUFACTURED BY ANY COMPANY OR ENTITY OTHER THAN ALTERA.- For the complete - terms and

59、 conditions applicable to your use of the software - and functions, please - refer to the Altera Program License directory第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 -library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;library dspbuilder;use dspbuilder.dspbuilderblock.all;library lpm;u

60、se lpm.lpm_components.all;Entity sinout is 第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 Port( clock : in std_logic; sclrp : in std_logic:=0; iSinCtrls : in std_logic; oSinOuts : out std_logic_vector(9 downto 0);end sinout;architecture aDspBuilder of sinout is第第3 3章章 DSP BuilderDSP Builder設(shè)計入門設(shè)計入門 signal S

溫馨提示

  • 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

提交評論