DspBuilder中文教程1_第1頁
DspBuilder中文教程1_第2頁
DspBuilder中文教程1_第3頁
DspBuilder中文教程1_第4頁
DspBuilder中文教程1_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第9章DSPBuilder設(shè)計(jì)初步利用EDA技術(shù)完成硬件設(shè)計(jì)的途徑有多種,前面介紹的是利用QuartusII來完成的,最為典型的設(shè)計(jì)流程,包括設(shè)計(jì)項(xiàng)目編輯(如用VHDL)、綜合、仿真、適配、編程。但是對于一些特定的設(shè)計(jì)項(xiàng)目,這個(gè)流程就會(huì)顯得很不方便,甚至無能為力。例如涉及算法類(如DSP模塊)及模擬信號處理與產(chǎn)生方面的系統(tǒng)設(shè)計(jì)。Altera自2002年推出的DSPBuilder則很好地解決了這些問題。DSPBuilder可以幫助設(shè)計(jì)者完成基于FPGA的不同類型的應(yīng)用系統(tǒng)設(shè)計(jì)。除了圖形化的系統(tǒng)建模外,DSPBuilder還可以自動(dòng)完成大部分的設(shè)計(jì)過程和仿真,直至把設(shè)計(jì)文件下載至FPGA開發(fā)板上。

2、利用Matlab與DSPBuilder進(jìn)行模塊設(shè)計(jì)也是SOPC技術(shù)的一個(gè)組成部分。本章以兩個(gè)簡單的電路模型設(shè)計(jì)為示例,詳細(xì)介紹Matlab、DSPBuilder、QuartusII三個(gè)工具軟件聯(lián)合開發(fā)的設(shè)計(jì)流程。Matlab/DSPBuilder及其設(shè)計(jì)流程DSPBuilder是一個(gè)系統(tǒng)級(或算法級)設(shè)計(jì)工具,它架構(gòu)在多個(gè)軟件工具之上,并把系統(tǒng)級(算法仿真建模)和RTL級(硬件實(shí)現(xiàn))兩個(gè)設(shè)計(jì)領(lǐng)域的設(shè)計(jì)工具連接起來,都放在了Matlab/Simlink圖形設(shè)計(jì)平臺上,而將QuartusII作為底層設(shè)計(jì)工具置于后臺,最大程度地發(fā)揮了對種工具的優(yōu)勢。DSPBuilder依賴于MathWorks公司的

3、數(shù)學(xué)分析工具M(jìn)atlab/Simli,k以Simulink勺Blockse出現(xiàn)??梢栽赟imulink中進(jìn)行圖形化設(shè)計(jì)和仿真,同時(shí)又通過SignalCompiler把Matlab/Simulink的模型設(shè)計(jì)文件(.mdl)轉(zhuǎn)成相應(yīng)的硬件描述語言VHDL設(shè)計(jì)文件(.vhd),以及用于控制綜合與編譯的tcl腳本。對于綜合以及此后的處理都由QuartusII來完成。由于在FPGA上設(shè)計(jì)一個(gè)算法模型的復(fù)雜性,設(shè)計(jì)的性能(包括面積、速度、可靠性、設(shè)計(jì)周期)對于不同的應(yīng)用目標(biāo)將有不同的要求,涉及的軟件工具也不僅僅是Simulink和QuartusII,DSPBuilder針對不同情況提供了兩套設(shè)計(jì)流程,即

4、自動(dòng)流程和手動(dòng)流程。圖9-1是基于Matlab、DSPBuilder、QuartusII等工具完成設(shè)計(jì)的流程框圖。如圖9-1所示,設(shè)計(jì)流程的第一步是在Matlab/Simulink中進(jìn)行設(shè)計(jì)輸入。即在Matlab的Simulink環(huán)境中建立一個(gè)mdl模型文件,用圖形方式調(diào)用DSPBuilder和其他Simulink庫中的圖形模塊,構(gòu)成系統(tǒng)級或算法級設(shè)計(jì)框圖,或稱Simulink設(shè)計(jì)模型。在第二步,是利用Simulink的圖形化仿真、分析功能,分析此設(shè)計(jì)模型的正確性,完成模型仿真。在這兩步中,與一般的MatlabSimulink建模過程幾乎沒有什么區(qū)別,所不同的是,設(shè)計(jì)模型庫采用DSPBuild

5、er的Simulink庫而已,同樣也涉及到其他EDA軟件。 EDA技術(shù)與VHDL第9章DSPBuilder設(shè)計(jì)初步 圖9-1基于Matlab、DSPBuilder、QuartusII等工具第三步是DSPBuilder設(shè)計(jì)實(shí)現(xiàn)的關(guān)鍵一步。由于EDA工具軟件(諸如QuartusII、ModelSim)不能直接處理Matlab的.mdl文件,這就需要一個(gè)轉(zhuǎn)換過程。通過SignalCompiler把Simulink的模型文件(后綴為.mdl)轉(zhuǎn)化成通用的硬件描述語言,VHDL文件。轉(zhuǎn)換獲得的HDL文件是基于RTL級的,即可綜合的VHDL描述。此后的步驟是對以上頂層設(shè)計(jì)產(chǎn)生的VHDL的RTL代碼和仿真文

6、件進(jìn)行綜合、編譯適配以及仿真。為了針對不同用戶的設(shè)計(jì)目的和設(shè)計(jì)要求,DSPBuilder提供了兩種不同的設(shè)計(jì)流程,主要可以分為自動(dòng)流程和手動(dòng)流程。如果采用自動(dòng)流程,幾乎可以忽略硬件的具體實(shí)現(xiàn)過程,選擇讓DSPBuilder自動(dòng)調(diào)用QuartusII等EDA軟件,完成綜合(Synthesis)、網(wǎng)表(ATOMNetlist)生成和QuartusII適配,直至在Matlab中完成FPGA的配置下載過程。但是,如果希望使用其它第3方的VHDL綜合器和仿真器(除Synplify、LeonardoSpectrum和QuartusII綜合器及ModelSim外),或是希望完成特定的適配設(shè)置,如邏輯鎖定、時(shí)

7、序驅(qū)動(dòng)編譯、ESB特定功能應(yīng)用等,可以選用手動(dòng)流程設(shè)計(jì)。在此流程中,設(shè)計(jì)者可以靈活地指定綜合、適配條件;手動(dòng)地調(diào)用VHDL綜合器進(jìn)行綜合,調(diào)用QuartusII進(jìn)行適配,調(diào)用ModelSim或者QuartusII進(jìn)行仿真,最后用QuartusII產(chǎn)生相應(yīng)的編程文件用于FPGA的配置。采用手動(dòng)流程時(shí),除了行為級仿真驗(yàn)證和設(shè)計(jì)輸入外,其它過程與標(biāo)準(zhǔn)的基于VHDL的EDA設(shè)計(jì)流程是完全一致的。首先由基于Matlab的DSPBuilder設(shè)計(jì)流程得到VHDL文件(由Simulink模型文件*.mdl通過SignalCompilder轉(zhuǎn)換而成),送入綜合器進(jìn)行綜合。綜合器可以是SynplifyPro,也

8、可以是LeonardoSpectrum,或者采用Altera自己的QuartusII綜合器。在綜合時(shí),可能需要對綜合器進(jìn)行配置或者提供綜合的約束條件,由于這個(gè)過程操作可能比較繁瑣,所以DSPBuilder的SignalCompiler相應(yīng)提供了一個(gè)接口,針對設(shè)計(jì),自動(dòng)產(chǎn)生一個(gè)TCL腳本與綜合器Synplify或者LeonardoSpectrum相接。綜合器在綜合操作后,會(huì)產(chǎn)生一個(gè)網(wǎng)表文件,以供下一個(gè)流程使用。這里產(chǎn)生的網(wǎng)表文件稱為ATOM網(wǎng)表文件,主要是EDIF網(wǎng)表文件(.edf電子設(shè)計(jì)交換格式文件)或VQM(.vqmVerilogQuartusMappingFile),它們是一種參數(shù)可設(shè)置的

9、,并含有具體器件系列硬件特征(如邏輯宏單元LCs、I/O單元、乘積項(xiàng)、M4K、嵌入式系統(tǒng)塊ESB等)的網(wǎng)表文件。QuartusII可以利用這些ATOM網(wǎng)表文件針對選定的具體器件進(jìn)行適配,包括布線、布局、結(jié)構(gòu)優(yōu)化等操作,最后產(chǎn)生時(shí)序仿真文件和FPGA目標(biāo)器件的編程與配置文件。在這一步,設(shè)計(jì)者可以在QuartusII中完成對Pin(引腳)的鎖定,更改一些約束條件等。如果用DSPBuilder產(chǎn)生的設(shè)計(jì)模型只是龐大設(shè)計(jì)中的一個(gè)子模塊,可以在設(shè)計(jì)中調(diào)用DSPBuilder產(chǎn)生的VHDL文件,以構(gòu)成完整的設(shè)計(jì)。同時(shí),還可以使用QuartusII強(qiáng)大的LogicLock功能和SignalTap測試技術(shù)。在

10、DSPBuilder設(shè)計(jì)流程的最后一步,可以在DSPBuilder中直接下載到FPGA用戶開發(fā)板上,或者通過QuartusII完成硬件的下載、測試。在圖9-1的流程中,其中的VHDL仿真流程在設(shè)計(jì)中是不可或缺的。與DSPBuilder可以配合使用的HDL仿真器是ModelSim。DSPBuilder在生成VHDL代碼時(shí),可以同時(shí)生成用于測試DSP模塊的TestBench(測試平臺)文件,DSPBuilder生成的TestBench文件采用VHDL語言,測試向量與該DSP模塊在Simulink中的仿真激勵(lì)相一致。通過ModelSim仿真生成的TestBench可以驗(yàn)證生成的VHDL代碼與Simu

11、link中設(shè)計(jì)模型的一致性。另外,DSPBuilder在產(chǎn)生TestBench的同時(shí),還產(chǎn)生了針對ModelSim仿真的Tcl腳本來簡化用戶的操作,如包含了來自Simulink平臺上進(jìn)行仿真的激勵(lì)信號信息等,從而掩蓋ModelSim仿真時(shí)的復(fù)雜性。在大部分情況下,QuartusII對來自DSPBuilder的設(shè)計(jì)模塊適配后,需要再次驗(yàn)證適配后網(wǎng)表與Simulink中建立的DSP模型的一致性。這就需要再次使用ModelSim進(jìn)行仿真,這時(shí)仿真采用QuartusII適配后帶延時(shí)信息的網(wǎng)表文件(EDIF格式、或者VHDL、Verilog格式),即為時(shí)序仿真。兩種設(shè)計(jì)流程歸納起來有如下幾個(gè)步驟:自動(dòng)流

12、程:1、MATLAB/Simulink建模;2、系統(tǒng)仿真;3、DSPBuilder完成VHDL轉(zhuǎn)換、綜合、適配、下載。4、嵌入式邏輯分析儀實(shí)時(shí)測試手動(dòng)流程:1、MATLAB/Simulink建模;2、系統(tǒng)仿真;3、DSPBuilder完成VHDL轉(zhuǎn)換、綜合、適配;4、Modelsim對TestBench功能仿真;5、QuartusII直接完成適配(進(jìn)行優(yōu)化設(shè)置);6、QuartusII完成時(shí)序仿真;7、引腳鎖定;8、下載/配置與嵌入式邏輯分析儀等實(shí)時(shí)測試;9、對配置器件編程,設(shè)計(jì)完成??紤]到實(shí)用的目的,本章重點(diǎn)介紹手動(dòng)設(shè)計(jì)流程。正弦信號發(fā)生器設(shè)計(jì)IncCuuntSinLUTSinOutFrud

13、uct本節(jié)中,以一個(gè)簡單的可控正弦波發(fā)生模塊的設(shè)計(jì)為例,詳細(xì)介紹DSPBuilder基于手動(dòng)流程的的使用方法。圖9-2所示是一個(gè)簡單的正弦波發(fā)生器,主要由4個(gè)部分構(gòu)成:InCount是階梯信號發(fā)生模塊,產(chǎn)生一個(gè)按時(shí)鐘線性遞增的地址信號,送往SinLUT。SinLUT是一個(gè)正弦函數(shù)值的查找表(LUT:LookUpTable)模塊,由遞增的地址獲得正弦波的量化值輸出。由SinLUT輸出的8位正弦波數(shù)據(jù)經(jīng)過一個(gè)延時(shí)模塊Delay后送往Product乘法模塊,與SinCtrl相乘。由于SinCtrl是1位(bit)輸入,SinCtrl通過Product就完成了對正弦波輸出有無的控制。SinOut是整個(gè)

14、正弦波發(fā)生器模塊的輸出,送往D/A即可獲得正弦波的輸出模擬信號。設(shè)計(jì)者在利用DSPBuilder來進(jìn)行相關(guān)設(shè)計(jì)時(shí),關(guān)鍵的設(shè)計(jì)過程大都在Matlab的圖形仿真環(huán)境Simulink中進(jìn)行。SinCtrl圖9-2正弦波發(fā)生模塊原理圖建立設(shè)計(jì)模型首先需要建立一個(gè)新的設(shè)計(jì)模型,步驟如下:1、打開Matlab環(huán)境Matlab環(huán)境界面如圖9-3所示??梢钥吹剑琈atlab的主窗口界面被分割成三個(gè)窗口:命令窗口(CommandWindow)、工作區(qū)(Workspace)、命令歷史(CommandHistory)。在命令窗口中,可以鍵入Matlab命令,同時(shí)獲得Matlab對命令的響應(yīng)信息、出錯(cuò)警告提示 EDA

15、技術(shù)與VHDL第9章DSPBuilder設(shè)計(jì)初步 #CurrentDirectory:C:MATLAB6p5workHJJWurkspaGeCurniTBndWindowStack:BaselJEingToolboxFaAhCache.TypEhelptoolbox_path_c:SizeByteToEtartEilselectMATLAfiHh1p,vfromthHelprm命令歷史記錄IIWorkspace1lJjCurrentDirectoryCornrrandHistory%4/21/0310:59FM%4/22/0310:18FM%圖9-3Matlab界面2、建立工作庫個(gè)新的設(shè)計(jì)模型

16、前,最好先建立一個(gè)新的文件夾,作為work(工作)目錄,前的work目錄切換到新建的文件夾在建立一,并把Matlab當(dāng)可以使用Matlab命令來直接完成這些操作,例如在cde:/mkdir/myprj/sinwavecd/myprj其中e:/mypij/sinw-冷沁Iab叩令,/sinwave可以使用Windows在外部建立,也Matlab主窗口中的命令窗口中鍵入:是新建的文件夾,是用作IMatlab工作目錄的。Mkdir是一個(gè)建立新目錄的Matlab命令,cd是切換工作目錄的Matlab命令。具體過程可以參見圖9-4(打開/aveMATLAB工作目錄FileEditViewWebWindo

17、wHelp EDA技術(shù)與VHDL第9章DSPBuilder設(shè)計(jì)初步 simulink)。通過改變Matlab主界面中的“CurrentDirectory”的制定,同樣可以改變Matlab的當(dāng)前工作目錄。3、了解simulink庫管理器當(dāng)成功地把Matlab當(dāng)前目錄切換到新建的設(shè)計(jì)目錄后(即鍵入cd/myprj/sinwave),鍵入命令:pwd,之后可以在Matlab命令窗口鍵入“simulink”命令,以開啟Matlab的圖形化建模仿真環(huán)境simulink。詳見圖9-4(打開simulink)圖9-5是simulink的庫管理器(LibraryBrowser)。CurniTHndWindow

18、UsingToolbokF:jAhCache.Typwhelptoolboxjath_c包匚hwforl土TogwtwtartmdjselectMATLAI:HelpfromthmHelpmenii.cde:/mkdir/mj/ein.wavecd./itij.i1ein.wavepwd:=lTlS=e:mypFjIsinwavelimulink圖9-4打開simulinklTSimulinkLibraryBrovserFileEditViewHelpAltLab:Altelink/AltLab+SirmililikAei-ijspaceBluckEet+Bl-”AlteraHSPBiiild

19、erAltLabAi-ithmmti匚X+AltLabArithmmtic+ComplexGateType&ContwlComplexTypmBusSLlPCCh:iTLgeBuilderLinksEt:mtmMachineFutlctiunsEturageMegaCureFihl匚tiuneCHMAReferenceCijFTiFTnjTLicaticmeControlSystemIli:1e&GaugesIU&ControlBusBlijcksetBlijcksetToolboxBlijcksetEmLeddHiiT:ii-getfurIrLtirLfiurLUEmbeddedT9-5fi

20、imUink庫管理器SOPCCh:irLgeBuilderLinks在庫管理器的庫。在庫管理器的在Simulink的庫管下的DSPBuilderEmLeddHiiT:=Lt-getfururulaisimulink啖rarc列列表,其中“TutsimemorytitE:512圖9-34打開SignalCompiler窗口.;:Atl:17eie:dudeftlthmsiscumpleted圖9-33?雙擊SignalCompiler自動(dòng)決定使用該器件系列中的某一個(gè)具體型號的器件,或在手動(dòng)流程中由用戶指定。在“Device”下拉選擇框中,有一個(gè)“DSPBoard”的選擇,這是一個(gè)特殊的選項(xiàng),是針

21、對具體的DSP開發(fā)板的?!癝ynthesis”(綜合)下拉選擇框可以選擇綜合器,共有三個(gè)選擇:“LeonardoSpectrum”:Mentor的LeonardoSpectrum綜合器“Synpilfy”:Synpilicity的SynpilfyPro或Synpilfy綜合器“QuartusII”:Altera的FPGA/CPLD開發(fā)集成環(huán)境,內(nèi)含綜合功能在這個(gè)例子中,可選擇QuartusII?!癘ptimization”(優(yōu)化)下拉選擇框,指明在綜合、適配過程中的優(yōu)化條件,是對面積(Area)優(yōu)化還是速度(Speed)優(yōu)化的選擇,即資源占用優(yōu)先還是性能優(yōu)先。項(xiàng)目設(shè)置選項(xiàng)(“ProjectSe

22、ttingOptions”)部分的下側(cè)是一些選項(xiàng)頁,其中“MainClock”中指定系統(tǒng)主時(shí)鐘的周期;“Reset”是系統(tǒng)復(fù)位信號的設(shè)置“SignalTapII”是嵌入式邏輯分析儀SignalTap設(shè)置“TestBench”是仿真測試文件生成的選擇“SOPCinfo”是SOPC相關(guān)設(shè)置在這里,不妨指定MainClock的周期為50ns,點(diǎn)擊的右邊箭頭找到“TechBench”選項(xiàng)頁,選擇“GenerateStimuliforVHDLTestbench”生成含激勵(lì)的仿真測試文件,用于VHDL仿真。3、把模型文件MDL轉(zhuǎn)換成VHDL當(dāng)設(shè)置好“Device”和“Synthesis”后,右側(cè)的硬件編譯

23、“HardwareCompilation”部分就會(huì)列出一個(gè)操作流程,見圖9-34。分別為:“ConvertMDLtoVHDL”:轉(zhuǎn)換MDL文件為VHDL文件;“Synthesis”:對轉(zhuǎn)換好的VHDL文件進(jìn)行綜合;“QuartusII”Quartus編譯適配,生成編程文件圖9-34中的第4步是隱去的,這一步實(shí)現(xiàn)在simulink中,完成FPGA的硬件配置下載。這需要DSP開發(fā)板的支持,當(dāng)“Device”選為“DSPBoard”時(shí),該一步才顯示出來。按步驟,先點(diǎn)擊步驟1的圖標(biāo),完成simulink文件(*.mdl)到VHDL文件的轉(zhuǎn)換。轉(zhuǎn)換完成后,在“Messages”信息提示框中,會(huì)顯示“Ge

24、neratedtoplevel“sinout.vhd”files”,即頂層文件sinout.vhd完成轉(zhuǎn)換。若有錯(cuò)誤,在“Messages”信息提示框中會(huì)顯示簡短的出錯(cuò)提示(出錯(cuò)的原因多數(shù)是授權(quán)文件的安裝或文件本身有問題)。sinout模型生成的VHDL文件“sinout.vhd”可以在文件夾e:/myprj/sinwave中找到。綜合(Synthesis)點(diǎn)擊步驟2的圖標(biāo),完成綜合過程。在這個(gè)例子中是調(diào)用QuartusII來完成綜合過程的,在綜合后生成ATOMNetlist(原子網(wǎng)表),供適配器使用?!癕essages”給出了相關(guān)信息:此設(shè)計(jì)項(xiàng)目使用了23個(gè)邏輯宏單元、11個(gè)引腳、512個(gè)R

25、AM位(恰好等于SinLUT模塊中數(shù)據(jù)的容量)。5、QuartusII適配點(diǎn)擊步驟3的圖標(biāo),調(diào)用QuartusII完成編譯適配過程,生成編程文件:pof文件和sof文件。編程文件可以直接用于FPGA的編程配置。不過,按現(xiàn)在這個(gè)流程,采用的是自動(dòng)(Auto)器件,管腳pin是自動(dòng)指定的。另外,點(diǎn)擊圖9-34的“ReportFile”按紐,將獲得詳細(xì)的報(bào)告文件。sinout模型對應(yīng)的報(bào)告文件為sinout_DspBuilder_Report.htm1。在DSPBuilder報(bào)告文件中,詳盡地描述了模型相關(guān)的設(shè)置情況、編譯結(jié)果、生成文件列表說明、注意點(diǎn)等等,而且對使用在sinout模型中的模塊分別進(jìn)

26、行了說明(圖9-35)。注意,對于手動(dòng)設(shè)計(jì)流程,適配步驟已沒有必要,通常只須完成前面兩個(gè)步驟即可。 #EDA技術(shù)與VHDL第9章DSPBuilder設(shè)計(jì)初步 # EDA技術(shù)與VHDL第9章DSPBuilder設(shè)計(jì)初步 SignaICompi1erreport&5EtJiebuttontonavffuatetJiroug:Jinout_JujJProjectSettingIodelDirectoryDevicefamilySynthesistoolOptimizationDateTimeVersionsinoutE:myprjsinwaveCycloneQuartusIIBalancedFrid

27、aySeptember29,200611:19:511Build1769.2.4使用在simu對生成的V的硬件結(jié)構(gòu)可能存在軟符。這就需當(dāng)在SCompilation圖9t35inout工程處理信息ModelSm進(jìn)行iRTL級仿真passedSynthesis:PASSEDsirwul:.map,rpt!ke中進(jìn)行的仿真是屬于系統(tǒng)驗(yàn)證性質(zhì)的,是對mdl文件進(jìn)行的仿真,并沒有DL代碼進(jìn)行過仿真。事實(shí)上,生成VHDL描述的是RTL級的,是針對具體J,3在Matlab的simulink中的模型仿真是算法級(系統(tǒng)級)的。兩者之間有:理解上差異。轉(zhuǎn)換后的的VHDL代碼實(shí)現(xiàn)可能與mdl模型描述的情況不完全相孑

28、針對生成的RTbM1VHDL代碼進(jìn)行功能仿真I。-葉張門於11:20:012006龍理型低:的口選項(xiàng)頁中設(shè)定贈(zèng)咒盤冗丄肌第肚;就P后,DSPVersionRevisionNamesinoutBuilder在“MDLtoVHDL”過程中會(huì)自動(dòng)生成針對HDL仿真器ModelSim的測試文件。因此,在這里,需要使用ModelSim對生成的VHDL代碼進(jìn)行功能仿真。ModelSim是一個(gè)基于單內(nèi)核的Verilog/VHDL混合仿真器,是MentorGraphics的子公司ModelTechnology的產(chǎn)品。打開ModelSim環(huán)境,圖9-36是ModelSim的主窗口。選擇主窗口上的菜單“Tools

29、”f“ExecuteMacro.”,在打開的文件選擇對話框中,切換到sinout模型sinout.mdl所在的目錄,接著選擇tb_sinout.tcl來執(zhí)行。其中,tb_sinout.tcl是DSPBuilder的SignalCompiler產(chǎn)生,若不存在,可再重復(fù)一次5.2.3小節(jié)的流程。如果一切配置正常的話,ModelSim就開始執(zhí)行tcl腳本:tb_sinout.tcl,開啟仿真,隨后就自動(dòng)打開“wave”窗口,顯示仿真結(jié)果(圖9-37)。ModelSimSEPLUS5.7cFileEditViewCompileSimulateToolsWindowHelp當(dāng)電亀彥團(tuán)屠詛100usllI

30、t?ModelSimSEPLUS5.7cWorkspaceNarneInstanceDesignUnitDesignIJtb_siriLiuttb_sinuut(tArchitect!由一uOsinuut(adsrchitecti.std_lugic_unsi.std_loqic_u.Packagete:-:tiote:-:tiuPackagelprri_L:umpo門已.Ipm_comp.Packagedspbuilderblockdspbuild已b.Fackaq已std_lLigic_siqnedstd_luqic_s.FdckageworkspacettXKNote:DSF1Build

31、er-QuartusIIuulandMATL.El/SimulinkInterfdce2-Build29ttTime:UpsIterdtion:0Instancewarning:ThereisanlUl|XTw,l|metic:LipArand.theresulti/.iillbea|ttTime:UpsIt已rdtion:1InstanceU/produch/gnulpm/nopipewarning:ThereisanIJIXIV/ImeticLiperand.theresultAillbea|ttTiiTiE::UpsIterdtion:1InstanceU/inuuLiunh/gArii

32、nu/geririLilpmV:jIProject:sinoutDspBui1der|Now:20j010nsDelta:3VSIM3=H=wave-defaultsimttR呂3匚h_5,7c.#LoadtDspBuPBFileEditViewInsertFormatToolsWindov-.1FileEditViewCompileSimulateToolsHelp歳la嘗i%髦匯開iBE上回i題目廳心T.I訂劉IT行tcl文件口不過圖中顯示的仿真波形與smuliS圖9-36準(zhǔn)備執(zhí);上的圖標(biāo),使之Models圖9-37Mulink中的仿真結(jié)果沒:ffl顯示全部波形。在此可以把“waveosi

33、ncutsModelSim仿真結(jié)果有可比性。點(diǎn)擊“關(guān)羈”窗口中的“/tblUINH EDA技術(shù)與VHDL第9章DSPBuilder設(shè)計(jì)初步 “/tb_si:lout/劇nout”信i1丨1“Fl11111119500nsWaveSignalProper先用鼠標(biāo)選中Properties”,打信號改成類似模擬信號的顯示格式。窗口的“View”菜單中選擇“Signal(無符號數(shù))在“Format”選項(xiàng)9-38)。在“View”選項(xiàng)頁中,修改“Radix”為Unsigndd頁中(圖9-39),修改下列幾項(xiàng):“Folrmat”選擇Analog;“Height”為lbo;“AnalogDisplay”中“

34、Scale”為0.4。點(diǎn)擊“OK”確定后,如圖9-40所示??梢钥吹脚csimulink里的仿真結(jié)果基本一致。注意:用于ModelSim仿真的TestBench文件中的輸入信號激勵(lì)由SignalCompiler根據(jù)Simulink的仿真結(jié)果產(chǎn)生。因此,若需要產(chǎn)生正確的仿真激勵(lì),必須先要在simulink中進(jìn)行設(shè)置和仿真運(yùn)行。W日he呂ign日IPropEtliESSignal:sim:Ab_sinout/osinoutsSignal:sirn:/tb_sinout/osinoutsViewFormatCompare|View|Furmat|Compare|FormatLiteralLogicEv

35、ent金ArialugHeight炸AnalogStepOffset:EF|100AnalugInterpulatedrAnalogBackstepScale:|0.400000CAridlogDisplay圖9-39設(shè)為Analog塊,因?yàn)镸odelSim通常無法了解嵌在源程序中的LPM功能。因此在利用ModelSim仿真前,應(yīng)在simulink編輯窗中消去SinLUT和Product模塊的“LPM”選擇,然后進(jìn)行一次系統(tǒng)仿真,再用SignalCompiler將其轉(zhuǎn)換成VHDL程序和tcl文件,進(jìn)行ModelSim仿真。完成后再恢復(fù)“LPM”選項(xiàng),以便為QuartusII提供最后的時(shí)序仿真文

36、件。9.2.5使用QuartusII實(shí)現(xiàn)時(shí)序仿真ModelSim完成的RTL級仿真只是功能仿真,其仿真結(jié)果并不能更精確地反映電路的全部硬件特性。進(jìn)行門級的時(shí)序仿真仍然是十分重要的。好在SignalCompiler已將MATLAB上的仿真信息轉(zhuǎn)變成了可用于QuartusII進(jìn)行時(shí)序仿真的激勵(lì)信息及相關(guān)仿真文件:sinout_quartus.tcl,因此可以很容易地完成此項(xiàng)仿真任務(wù)。步驟如下:1、打開QuartusII環(huán)境,選擇菜單“File”f“OpenProject.”,定位到sinout模型所在目錄,打開DSPBuilder已自動(dòng)建立好的QuartusII工程文件:sinout.qpf(見圖

37、9-41)。注意,自動(dòng)產(chǎn)生這個(gè)工程文件的前提是必須在SignalCompiler窗(圖9-34)中執(zhí)行完第二個(gè)按紐:2-Synthesis。2、上文中提到,在SignalCompiler中的QuartusII編譯,具體的器件由QuartusII自動(dòng)決定,可實(shí)際使用中,器件往往不是QuartusII自動(dòng)選定的那個(gè)型號,管腳也不是QuartusII自動(dòng)分配的管腳。這些都需要在QuartusII中進(jìn)行修改。所以這里須按照前面章節(jié)中敘述的方法選擇器件型號。選擇菜單“Assignments”一Device.”,在相應(yīng)的對話框中選擇合適的器件(Cyclone系列器件),如EP1C6Q240C8,然后啟動(dòng)編

38、譯,即執(zhí)行菜單“Processing一“StartCompilation。3、雙擊圖9-41左側(cè)的工程名“sinout”,打開轉(zhuǎn)換好的VHDL文件,了解生成的程序,特別是端口實(shí)體的情況(圖9-42)0然后再打開已生成的仿真激勵(lì)文件sinout.vec(圖9-43)。比較圖9-42,9-43,如果發(fā)現(xiàn)端口信號名不一致,應(yīng)該修改圖9-43,使其一致。然后將圖9-43另存為vwf文件:sinout.vwf。4、設(shè)置仿真文件路徑。選擇菜單“Assignments一Settings,彈出如圖9-44窗口。在此窗左側(cè)的Category欄選擇SimulatorSettings項(xiàng),在右側(cè)的Simulation

39、mode欄選擇Timing,即選擇時(shí)序仿真;在Simulationinput欄選擇仿真文件sinout.vwf。關(guān)閉此窗。5、啟動(dòng)仿真編譯。即執(zhí)行菜單“Processing”f“StartSimulation”。結(jié)束后能看到圖9-41所示的界面。然后打開仿真波形報(bào)告窗,如圖9-45所示,此窗已自動(dòng)打開:即執(zhí)行菜單“Processing”f“SimulationReport”。圖9-45即為時(shí)序仿真波形。 #EDA技術(shù)與VHDL第9章DSPBuilder設(shè)計(jì)初步 # EDA技術(shù)與VHDL第9章DSPBuilder設(shè)計(jì)初步 Settings一sinoutCategory:GeneralFilesU

40、serLibrariesCurrentPrujectDeviceTimingFlequir已ie門k:Upticms+ED也ToolSettings:+CumpildtiuriProcessSettings+.Analysis&:Synth已witS已Kings+FitterSettings.AssemblerTiming.Anahrz已Design.AssistantSignalTapIILogicAnalyzerLogic.AnalyzerInterfaceSignalPrubeSettingsSimulatorSettingsS已lectsimulationoptions.(Tirnii

41、Simulationmode:|TimingSimulationinput:|E:VuyprisirT/Xhavesinout/vwfSimulationperiodEunsimulationuntilallvectorstimuliareusedEndsimuldtionat:兩Automaticallyaddpinstosimulationoutputwaveforms圖9-44Checkoutputs2.36usSinUut-14設(shè)置仿真文件路徑simuldtionresultsWaveformCompareSettings.00圖9-45_sinout9.2.6硬件測試與硬件實(shí)現(xiàn)在此按

42、照第4章中介紹的方法鎖定管腳(Pin):選擇菜單“Assignments”一AssignPins.”。首先打開sinout工程文件sinout.vhd,了解端口情況(圖9-42),由于目標(biāo)器件已確定為EP1C6Q240C8,對D/A輸出的8位SinOut(7downto0)可分別接PIO31-PIO24,對應(yīng)引腳號是:136、135、134、133、132、128、41、21;系統(tǒng)時(shí)鐘clock接實(shí)驗(yàn)板的“clockO”,對應(yīng)第28腳;清0信號sclrp接鍵7,對應(yīng)第239腳;輸出控制SinCtrl接鍵8,對應(yīng)第240腳。接著進(jìn)行編譯,完成適配過程。最后是進(jìn)行下載,連接好FPGA開發(fā)板。選擇模

43、式5,clockO可接65536Hz;打開+/-12V電壓,用示波器檢測D/A的輸出,把鍵控SinCtrl設(shè)置為有效(將鍵8設(shè)成高電平,鍵7設(shè)為低電平),就可以在示波器上看到產(chǎn)生的正弦波了。然后將實(shí)測結(jié)果與在計(jì)算機(jī)上進(jìn)行的時(shí)序仿真結(jié)果進(jìn)行比較。最后可以利用嵌入式邏輯分析儀SignalTapII測定芯片內(nèi)的實(shí)時(shí)波形,從而完成更深入的系統(tǒng)測試。從Simulink到SignalCompiler,再到QuartusII的設(shè)計(jì)驗(yàn)證十分方便,在第一個(gè)流程后,即最后實(shí)現(xiàn)硬件信號輸出后,若再想改動(dòng)Simulink中的sinout.mdl圖,應(yīng)該注意兩點(diǎn):1、內(nèi)部電路結(jié)構(gòu)和設(shè)置可以改,但端口信號名不要改,如輸入

44、的SinCtrl,SinOut,因?yàn)榇诵盘柕囊_已被鎖定,不便改變;2、改動(dòng)sinout.mdl圖后只宜作系統(tǒng)仿真和VHDL文件轉(zhuǎn)換,不宜作綜合,即最多只能對圖9-34所示的界面執(zhí)行第1個(gè)按紐,否則將可能把原來設(shè)定好的引腳全部沖掉。為了保存引腳信息,綜合與適配必須進(jìn)入QuartusII后進(jìn)行(圖9-41)。DSPBuilder層次化設(shè)計(jì)上一節(jié),已在Matlab/Simulink中設(shè)計(jì)了一個(gè)簡單的正弦波發(fā)生器。但在許多實(shí)用的領(lǐng)域中,如通信領(lǐng)域中,實(shí)際需要實(shí)現(xiàn)的電路模型往往要復(fù)雜得多,如果把所有模塊放在同一個(gè)Simulink圖中,設(shè)計(jì)圖會(huì)顯得非常復(fù)雜、龐大,不利于閱讀和排錯(cuò)。這時(shí),就必須采用層次化

45、設(shè)計(jì)方法來設(shè)計(jì)模型了。本節(jié)介紹DSPBuilder的層次化設(shè)計(jì)的基本步驟。在Matlab的Simulink建模時(shí),可以使用SubSystem來完成子系統(tǒng)的封裝和調(diào)用。DSPBulider繼承了simulink的子系統(tǒng)(SubSystem)來完成DSP模型的層次化設(shè)計(jì)。下面以一個(gè)示例來具體說明DSPBuilder的層次化設(shè)計(jì)。步驟如下:1、首先建立一個(gè)新的模型,命名為subsint模型,仍然依照圖9-2連接起來,并以文件名subsint存盤。然后在subsint模型窗口中,按住鼠標(biāo)左鍵,然后移動(dòng)鼠標(biāo)畫框,選中圖中除了SignalCompiler、Step模塊以外的所有模塊。(可以通過按住鍵盤上的

46、Shift鍵,用鼠標(biāo)左鍵點(diǎn)擊來改變模塊的選擇情況。)2、在選中的模塊上點(diǎn)擊鼠標(biāo)右鍵,在彈出的右鍵菜單中(圖9-46),選擇“CreateSubSystem”,建立子系統(tǒng)。圖9-47中所示的是建立子系統(tǒng)后subsint模型的simulink原理圖,可以看到原來被選中的那些模塊和連線都消失了,只剩下一個(gè)新建立的子系統(tǒng)模塊:“Subsystem”。在新生成的Subsystem模塊上共有兩個(gè)端口:In1、Out1。3、修改子模塊名。事實(shí)上圖9-47顯示的是subsint模型的頂層(TopLevel)原理圖。這時(shí)用鼠標(biāo)雙擊Subsystem子系統(tǒng)模塊,就會(huì)彈出“subsint/Subsystem”窗口,

47、顯示Subsystem子系統(tǒng)模塊封裝的原理圖(圖9-48)。可以看出,封裝后的模塊自動(dòng)增加了兩個(gè)simulink的端口,即:In1和Out1。在打開的子系統(tǒng)模塊中,可以任意地增刪模塊;放置仿真用的simulink庫的模塊;引入“Scope”等。不過某些DSPBuilder庫的模塊只能放置在頂層原理圖中,比如SignalCompiler模塊。假如在子系統(tǒng)模塊中放置了SignalCompiler模塊,只可以進(jìn)行simulink的仿真,但不能使用SignalCompiler來生成相應(yīng)的VHDL代碼。同普通的DSPBuilder模塊一樣,子系統(tǒng)模塊也可以自行命名,操作方法同普通模塊。見圖9-49,可以

48、把Subsystem子系統(tǒng)模塊的名字修改為singen。Connectbio匚拓FileEditViewSimulationFormatToolsHelp=廠j-15:0|1=5:07:011J圖9-46準(zhǔn)備建立subsystemLookundermask100%ode459-48spbsin/subsystem子系統(tǒng)圖4、修改所示的“su冷子系統(tǒng)中的輸入輸出端口的名字也可以定制。在如圖9-48bsint/singen”子系統(tǒng)窗口,修改輸入端口“Ini”為“Ctrlln”,輸出端口“Outl”為“OutSin”(圖9-50)。當(dāng)修改好端口后,修改的結(jié)果馬上在subsint模型的頂層原理圖上的s

49、ingen子系統(tǒng)模塊上顯示出來。不需要任何的更新操作。圖9-51就是更改singen子系統(tǒng)端口名稱后,subsint模型頂層原理圖的顯示結(jié)果。Simulink的子系統(tǒng)的端口的增刪操作較簡單,可以直接在子系統(tǒng)的圖上加入或者刪除輸入、輸出端口。在調(diào)用該子系統(tǒng)模塊的上層原理圖上,立即就會(huì)更改相應(yīng)的子系統(tǒng)模塊的顯示。注意,如圖9-48,9-58的子系統(tǒng)中,其端口必須接上來自IO&Bus庫的輸入輸出端口,如Input、Output,否則無法轉(zhuǎn)換成VHDL。Step圖9-49修改子系統(tǒng)名CtrllnOut1Step匚:圖9-51頂層圖的改變斐“對于生成的子系統(tǒng)模塊,可以當(dāng)成一般的模塊來使用,允許任意復(fù)制、

50、刪除子系統(tǒng)模塊,或者再組合其他的模塊來生成更高一層的子系統(tǒng)。5、完成頂層設(shè)計(jì)。在圖9-51的基礎(chǔ)上,添加另外一些DSPBuilder模塊來構(gòu)成一個(gè)實(shí)際的電路。圖9-52是最后的subsint模型圖。下面列出了新增模塊需要修改的參數(shù)值:Singen子模塊中的元件設(shè)置同上一節(jié),且其中所有模塊的總線類型皆設(shè)為signedInteger。Offset模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設(shè)為“signedInteger”參數(shù)“BusType”設(shè)為“InternalNode”參數(shù)“numberofbits”設(shè)為“8”;其余為0。ParallelA

51、dderSubtractor模塊:(ParallelAdderSubtractor)庫:AlteraDSPBuilder中Arithmetic庫“Add(+)Sub(-)”設(shè)為“+”“Pipeline”設(shè)為1ClockPhaseSelection設(shè)1。)xSin模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設(shè)為“UnsignedInteger”參數(shù)“BusType”設(shè)為“Outputport”參數(shù)“numberofbits”設(shè)為“8”)CtrlIn模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設(shè)

52、為“SingleBit”參數(shù)“BusType”設(shè)為“Inputport”6)Constant模塊:(Constant)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設(shè)為“signedInteger”參數(shù)“ConstantValue”設(shè)為127;參數(shù)“SamplingPeriod”設(shè)為1。7)Mux模塊庫:simulink中SignalRouting庫參數(shù)“NumberofInputs”設(shè)為“2”參數(shù)“DisplayOption”選擇“bar”。在圖建動(dòng)sunsmt模型的仿具。圖9-53、9-54出,subsint模型在sinout模型的基礎(chǔ)上增加了波形的電壓偏移,其

53、功能與圖9-26電路的功能是相同的。注意,圖9-53,9-54是subsint模型頂層原理圖上Scope波形顯示。在這個(gè)例子中,子系統(tǒng)singen中還含有一個(gè)Scope模塊,同樣也可以對相應(yīng)節(jié)點(diǎn)的波形進(jìn)行觀察。QIXUV不過,雖然可以進(jìn)行simulink仿真,但是還不能進(jìn)行Sign9-54Scope波形圖u-aComp咳分析:介紹的步驟作的subsint模型中的singen子系統(tǒng)模塊,必須進(jìn)行設(shè)置才可以讓SignalCompiler識別為DSPBuilder的子系統(tǒng)。以下給出設(shè)置步驟:1、在打開的subsint模型窗口中,先選中子系統(tǒng)模型singen,然后選擇菜單“Edit”一“Masksub

54、system.”項(xiàng)(圖9-55,或右鍵點(diǎn)擊該模塊)。打開“MaskEditor:singen”設(shè)置對話框。注意“Masksubsystem.”項(xiàng)在設(shè)置后即變?yōu)椤癊ditMask”項(xiàng)。2、在“MaskEditor:singen”對話框中選擇“Documentation”選項(xiàng)頁(圖9-56),設(shè)置“Masktype”為“SubSystemAlteraBlockSet”(子系統(tǒng)Altera模塊集)。注意,輸入時(shí)沒有引號,且大小寫和空格要嚴(yán)格按照此字符串形式。設(shè)置完“Masktype”后,SignalCompiler就可以正常地生成VHDL代碼。不過,與sinout模型生成的VHDL代碼有所不同,si

55、nout模型在轉(zhuǎn)換時(shí),只生成一個(gè)VHDL文件(TestBench文件除外)。而subsint模型在轉(zhuǎn)換后生成了兩個(gè)VHDL文件:subsint.vhd和singen.vhd其中subsint.vhd是頂層的VHDL文件,singen.vhd是singen子系統(tǒng)的VHDL文件。SignalCompiler對于子系統(tǒng)模塊的處理是:每個(gè)子系統(tǒng)模塊都產(chǎn)生一個(gè)VHDL文件,在上一級的VHDL文件中加以例化調(diào)用。Ctrl+ZCtrl+UndoMoveCantredoOpenblockMaskparameters.Subsystemparameters.Blockproperties.、圖9-56編輯sin

56、gen的“MasktypepiLI匚:n圖9-55SubSystem設(shè)置可以實(shí)現(xiàn)復(fù)雜的電路模型結(jié)構(gòu)。為了便于設(shè)計(jì)者管理,Smulink提供了“ModelBrowser來顯示模型的結(jié)構(gòu)。在模型窗口選擇“View”f“ModelBrowserOptionsf“ModelBrowser”項(xiàng),在“ModelBrowser前打上“V”?;贒SPBuilder的DDS設(shè)計(jì)DDS的基本原理和設(shè)計(jì)方法已在第7章中討論過了,本章首先介紹基于Matlab和DSPBuilder平臺的DDS設(shè)計(jì)方法,然后給出幾個(gè)基于DDS的實(shí)用系統(tǒng)的設(shè)計(jì)方法。DDS模塊設(shè)計(jì)圖9-57是DDS圖的頂層設(shè)計(jì),其子系統(tǒng)SubDDS的結(jié)構(gòu)

57、圖如圖9-58所示。設(shè)計(jì)流程可以這樣:先在Simulink中新建一個(gè)模型,調(diào)用DSPBuilder模塊構(gòu)成如圖9-58的相應(yīng)電路,再用層次設(shè)計(jì)方法作成模塊DDS模型子系統(tǒng)SubDDS(端口必須接上來自IO&Bus31:221BusConversion29:09:019:018:91BusConversion3DDf子系統(tǒng)SubDD圖中,DDS子系統(tǒng)SubDDS共有三個(gè)輸入,分別為Feqword(32位頻率字輸入)、PhaseW0S(16位相位字輸入)、Amp(10位幅度控制字輸入);一個(gè)輸出,即10位DDSout輸出。注意,通常由于10位高速D/A是無符號器件,在圖9-57的輸出口應(yīng)該增加一些

58、轉(zhuǎn)換電路,將輸出的數(shù)據(jù)類型轉(zhuǎn)換成無符號的類型。對于輸入的控制信號也要作一些位數(shù)和圖9-58類型的變換。此外,如果發(fā)現(xiàn)在仿真參數(shù)設(shè)置上出現(xiàn)問題,可以先用來自AlteraDSPBuilder庫中IO&Bus中的“Constant”元件代替圖9-57中的Constant2。設(shè)置simulink的仿真停止時(shí)間StopTime為5,仿真步進(jìn)FixedStepSize為為1e-3。相位、頻率和幅度控制字輸入按圖9-57所示,則輸出波形即如圖9-59所示;若相位、頻率和幅度控制字輸入分別取500000000、4000000和89,則輸出波形如圖9-60所示。子系統(tǒng)SubDDS輸入輸出模塊的參數(shù)設(shè)置為Freq

59、word模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設(shè)為“signedInteger”參數(shù)“NodeType”設(shè)為“Inputport”參數(shù)“numberofbits”設(shè)為“32”Phaseword模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設(shè)為“signedInteger”參數(shù)“NodeType”設(shè)為“Inputport”參數(shù)“numberofbits”設(shè)為“32”Amp模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設(shè)為“signedInt

60、eger”參數(shù)“NodeType”設(shè)為“Inputport”參數(shù)“numberofbits”設(shè)為“10”DDSout模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設(shè)為“signedInteger”參數(shù)“NodeType”設(shè)為“Outputport”參數(shù)“numberofbits”設(shè)為“10”由Delay、ParallelAdderSubtractor和Phaseword1模塊構(gòu)成相位累加器,參數(shù)如下:ParallelAdderSubtractor模塊:(ParallelAdderSubtractor)庫:AlteraDSPBuilder中Ari

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論