版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第9章DSPBuilder設計初步利用EDA技術完成硬件設計的途徑有多種,前面介紹的是利用QuartusII來完成的,最為典型的設計流程,包括設計項目編輯(如用VHDL)、綜合、仿真、適配、編程。但是對于一些特定的設計項目,這個流程就會顯得很不方便,甚至無能為力。例如涉及算法類(如DSP模塊)及模擬信號處理與產(chǎn)生方面的系統(tǒng)設計。Altera自2002年推出的DSPBuilder則很好地解決了這些問題。DSPBuilder可以幫助設計者完成基于FPGA的不同類型的應用系統(tǒng)設計。除了圖形化的系統(tǒng)建模外,DSPBuilder還可以自動完成大部分的設計過程和仿真,直至把設計文件下載至FPGA開發(fā)板上。
2、利用Matlab與DSPBuilder進行模塊設計也是SOPC技術的一個組成部分。本章以兩個簡單的電路模型設計為示例,詳細介紹Matlab、DSPBuilder、QuartusII三個工具軟件聯(lián)合開發(fā)的設計流程。Matlab/DSPBuilder及其設計流程DSPBuilder是一個系統(tǒng)級(或算法級)設計工具,它架構在多個軟件工具之上,并把系統(tǒng)級(算法仿真建模)和RTL級(硬件實現(xiàn))兩個設計領域的設計工具連接起來,都放在了Matlab/Simlink圖形設計平臺上,而將QuartusII作為底層設計工具置于后臺,最大程度地發(fā)揮了對種工具的優(yōu)勢。DSPBuilder依賴于MathWorks公司的
3、數(shù)學分析工具Matlab/Simli,k以Simulink勺Blockse出現(xiàn)??梢栽赟imulink中進行圖形化設計和仿真,同時又通過SignalCompiler把Matlab/Simulink的模型設計文件(.mdl)轉(zhuǎn)成相應的硬件描述語言VHDL設計文件(.vhd),以及用于控制綜合與編譯的tcl腳本。對于綜合以及此后的處理都由QuartusII來完成。由于在FPGA上設計一個算法模型的復雜性,設計的性能(包括面積、速度、可靠性、設計周期)對于不同的應用目標將有不同的要求,涉及的軟件工具也不僅僅是Simulink和QuartusII,DSPBuilder針對不同情況提供了兩套設計流程,即
4、自動流程和手動流程。圖9-1是基于Matlab、DSPBuilder、QuartusII等工具完成設計的流程框圖。如圖9-1所示,設計流程的第一步是在Matlab/Simulink中進行設計輸入。即在Matlab的Simulink環(huán)境中建立一個mdl模型文件,用圖形方式調(diào)用DSPBuilder和其他Simulink庫中的圖形模塊,構成系統(tǒng)級或算法級設計框圖,或稱Simulink設計模型。在第二步,是利用Simulink的圖形化仿真、分析功能,分析此設計模型的正確性,完成模型仿真。在這兩步中,與一般的MatlabSimulink建模過程幾乎沒有什么區(qū)別,所不同的是,設計模型庫采用DSPBuild
5、er的Simulink庫而已,同樣也涉及到其他EDA軟件。 EDA技術與VHDL第9章DSPBuilder設計初步 圖9-1基于Matlab、DSPBuilder、QuartusII等工具第三步是DSPBuilder設計實現(xiàn)的關鍵一步。由于EDA工具軟件(諸如QuartusII、ModelSim)不能直接處理Matlab的.mdl文件,這就需要一個轉(zhuǎn)換過程。通過SignalCompiler把Simulink的模型文件(后綴為.mdl)轉(zhuǎn)化成通用的硬件描述語言,VHDL文件。轉(zhuǎn)換獲得的HDL文件是基于RTL級的,即可綜合的VHDL描述。此后的步驟是對以上頂層設計產(chǎn)生的VHDL的RTL代碼和仿真文
6、件進行綜合、編譯適配以及仿真。為了針對不同用戶的設計目的和設計要求,DSPBuilder提供了兩種不同的設計流程,主要可以分為自動流程和手動流程。如果采用自動流程,幾乎可以忽略硬件的具體實現(xiàn)過程,選擇讓DSPBuilder自動調(diào)用QuartusII等EDA軟件,完成綜合(Synthesis)、網(wǎng)表(ATOMNetlist)生成和QuartusII適配,直至在Matlab中完成FPGA的配置下載過程。但是,如果希望使用其它第3方的VHDL綜合器和仿真器(除Synplify、LeonardoSpectrum和QuartusII綜合器及ModelSim外),或是希望完成特定的適配設置,如邏輯鎖定、時
7、序驅(qū)動編譯、ESB特定功能應用等,可以選用手動流程設計。在此流程中,設計者可以靈活地指定綜合、適配條件;手動地調(diào)用VHDL綜合器進行綜合,調(diào)用QuartusII進行適配,調(diào)用ModelSim或者QuartusII進行仿真,最后用QuartusII產(chǎn)生相應的編程文件用于FPGA的配置。采用手動流程時,除了行為級仿真驗證和設計輸入外,其它過程與標準的基于VHDL的EDA設計流程是完全一致的。首先由基于Matlab的DSPBuilder設計流程得到VHDL文件(由Simulink模型文件*.mdl通過SignalCompilder轉(zhuǎn)換而成),送入綜合器進行綜合。綜合器可以是SynplifyPro,也
8、可以是LeonardoSpectrum,或者采用Altera自己的QuartusII綜合器。在綜合時,可能需要對綜合器進行配置或者提供綜合的約束條件,由于這個過程操作可能比較繁瑣,所以DSPBuilder的SignalCompiler相應提供了一個接口,針對設計,自動產(chǎn)生一個TCL腳本與綜合器Synplify或者LeonardoSpectrum相接。綜合器在綜合操作后,會產(chǎn)生一個網(wǎng)表文件,以供下一個流程使用。這里產(chǎn)生的網(wǎng)表文件稱為ATOM網(wǎng)表文件,主要是EDIF網(wǎng)表文件(.edf電子設計交換格式文件)或VQM(.vqmVerilogQuartusMappingFile),它們是一種參數(shù)可設置的
9、,并含有具體器件系列硬件特征(如邏輯宏單元LCs、I/O單元、乘積項、M4K、嵌入式系統(tǒng)塊ESB等)的網(wǎng)表文件。QuartusII可以利用這些ATOM網(wǎng)表文件針對選定的具體器件進行適配,包括布線、布局、結構優(yōu)化等操作,最后產(chǎn)生時序仿真文件和FPGA目標器件的編程與配置文件。在這一步,設計者可以在QuartusII中完成對Pin(引腳)的鎖定,更改一些約束條件等。如果用DSPBuilder產(chǎn)生的設計模型只是龐大設計中的一個子模塊,可以在設計中調(diào)用DSPBuilder產(chǎn)生的VHDL文件,以構成完整的設計。同時,還可以使用QuartusII強大的LogicLock功能和SignalTap測試技術。在
10、DSPBuilder設計流程的最后一步,可以在DSPBuilder中直接下載到FPGA用戶開發(fā)板上,或者通過QuartusII完成硬件的下載、測試。在圖9-1的流程中,其中的VHDL仿真流程在設計中是不可或缺的。與DSPBuilder可以配合使用的HDL仿真器是ModelSim。DSPBuilder在生成VHDL代碼時,可以同時生成用于測試DSP模塊的TestBench(測試平臺)文件,DSPBuilder生成的TestBench文件采用VHDL語言,測試向量與該DSP模塊在Simulink中的仿真激勵相一致。通過ModelSim仿真生成的TestBench可以驗證生成的VHDL代碼與Simu
11、link中設計模型的一致性。另外,DSPBuilder在產(chǎn)生TestBench的同時,還產(chǎn)生了針對ModelSim仿真的Tcl腳本來簡化用戶的操作,如包含了來自Simulink平臺上進行仿真的激勵信號信息等,從而掩蓋ModelSim仿真時的復雜性。在大部分情況下,QuartusII對來自DSPBuilder的設計模塊適配后,需要再次驗證適配后網(wǎng)表與Simulink中建立的DSP模型的一致性。這就需要再次使用ModelSim進行仿真,這時仿真采用QuartusII適配后帶延時信息的網(wǎng)表文件(EDIF格式、或者VHDL、Verilog格式),即為時序仿真。兩種設計流程歸納起來有如下幾個步驟:自動流
12、程:1、MATLAB/Simulink建模;2、系統(tǒng)仿真;3、DSPBuilder完成VHDL轉(zhuǎn)換、綜合、適配、下載。4、嵌入式邏輯分析儀實時測試手動流程:1、MATLAB/Simulink建模;2、系統(tǒng)仿真;3、DSPBuilder完成VHDL轉(zhuǎn)換、綜合、適配;4、Modelsim對TestBench功能仿真;5、QuartusII直接完成適配(進行優(yōu)化設置);6、QuartusII完成時序仿真;7、引腳鎖定;8、下載/配置與嵌入式邏輯分析儀等實時測試;9、對配置器件編程,設計完成。考慮到實用的目的,本章重點介紹手動設計流程。正弦信號發(fā)生器設計IncCuuntSinLUTSinOutFrud
13、uct本節(jié)中,以一個簡單的可控正弦波發(fā)生模塊的設計為例,詳細介紹DSPBuilder基于手動流程的的使用方法。圖9-2所示是一個簡單的正弦波發(fā)生器,主要由4個部分構成:InCount是階梯信號發(fā)生模塊,產(chǎn)生一個按時鐘線性遞增的地址信號,送往SinLUT。SinLUT是一個正弦函數(shù)值的查找表(LUT:LookUpTable)模塊,由遞增的地址獲得正弦波的量化值輸出。由SinLUT輸出的8位正弦波數(shù)據(jù)經(jīng)過一個延時模塊Delay后送往Product乘法模塊,與SinCtrl相乘。由于SinCtrl是1位(bit)輸入,SinCtrl通過Product就完成了對正弦波輸出有無的控制。SinOut是整個
14、正弦波發(fā)生器模塊的輸出,送往D/A即可獲得正弦波的輸出模擬信號。設計者在利用DSPBuilder來進行相關設計時,關鍵的設計過程大都在Matlab的圖形仿真環(huán)境Simulink中進行。SinCtrl圖9-2正弦波發(fā)生模塊原理圖建立設計模型首先需要建立一個新的設計模型,步驟如下:1、打開Matlab環(huán)境Matlab環(huán)境界面如圖9-3所示??梢钥吹?,Matlab的主窗口界面被分割成三個窗口:命令窗口(CommandWindow)、工作區(qū)(Workspace)、命令歷史(CommandHistory)。在命令窗口中,可以鍵入Matlab命令,同時獲得Matlab對命令的響應信息、出錯警告提示 EDA
15、技術與VHDL第9章DSPBuilder設計初步 #CurrentDirectory:C:MATLAB6p5workHJJWurkspaGeCurniTBndWindowStack:BaselJEingToolboxFaAhCache.TypEhelptoolbox_path_c:SizeByteToEtartEilselectMATLAfiHh1p,vfromthHelprm命令歷史記錄IIWorkspace1lJjCurrentDirectoryCornrrandHistory%4/21/0310:59FM%4/22/0310:18FM%圖9-3Matlab界面2、建立工作庫個新的設計模型
16、前,最好先建立一個新的文件夾,作為work(工作)目錄,前的work目錄切換到新建的文件夾在建立一,并把Matlab當可以使用Matlab命令來直接完成這些操作,例如在cde:/mkdir/myprj/sinwavecd/myprj其中e:/mypij/sinw-冷沁Iab叩令,/sinwave可以使用Windows在外部建立,也Matlab主窗口中的命令窗口中鍵入:是新建的文件夾,是用作IMatlab工作目錄的。Mkdir是一個建立新目錄的Matlab命令,cd是切換工作目錄的Matlab命令。具體過程可以參見圖9-4(打開/aveMATLAB工作目錄FileEditViewWebWindo
17、wHelp EDA技術與VHDL第9章DSPBuilder設計初步 simulink)。通過改變Matlab主界面中的“CurrentDirectory”的制定,同樣可以改變Matlab的當前工作目錄。3、了解simulink庫管理器當成功地把Matlab當前目錄切換到新建的設計目錄后(即鍵入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自動決定使用該器件系列中的某一個具體型號的器件,或在手動流程中由用戶指定。在“Device”下拉選擇框中,有一個“DSPBoard”的選擇,這是一個特殊的選項,是針
21、對具體的DSP開發(fā)板的?!癝ynthesis”(綜合)下拉選擇框可以選擇綜合器,共有三個選擇:“LeonardoSpectrum”:Mentor的LeonardoSpectrum綜合器“Synpilfy”:Synpilicity的SynpilfyPro或Synpilfy綜合器“QuartusII”:Altera的FPGA/CPLD開發(fā)集成環(huán)境,內(nèi)含綜合功能在這個例子中,可選擇QuartusII?!癘ptimization”(優(yōu)化)下拉選擇框,指明在綜合、適配過程中的優(yōu)化條件,是對面積(Area)優(yōu)化還是速度(Speed)優(yōu)化的選擇,即資源占用優(yōu)先還是性能優(yōu)先。項目設置選項(“ProjectSe
22、ttingOptions”)部分的下側是一些選項頁,其中“MainClock”中指定系統(tǒng)主時鐘的周期;“Reset”是系統(tǒng)復位信號的設置“SignalTapII”是嵌入式邏輯分析儀SignalTap設置“TestBench”是仿真測試文件生成的選擇“SOPCinfo”是SOPC相關設置在這里,不妨指定MainClock的周期為50ns,點擊的右邊箭頭找到“TechBench”選項頁,選擇“GenerateStimuliforVHDLTestbench”生成含激勵的仿真測試文件,用于VHDL仿真。3、把模型文件MDL轉(zhuǎn)換成VHDL當設置好“Device”和“Synthesis”后,右側的硬件編譯
23、“HardwareCompilation”部分就會列出一個操作流程,見圖9-34。分別為:“ConvertMDLtoVHDL”:轉(zhuǎn)換MDL文件為VHDL文件;“Synthesis”:對轉(zhuǎn)換好的VHDL文件進行綜合;“QuartusII”Quartus編譯適配,生成編程文件圖9-34中的第4步是隱去的,這一步實現(xiàn)在simulink中,完成FPGA的硬件配置下載。這需要DSP開發(fā)板的支持,當“Device”選為“DSPBoard”時,該一步才顯示出來。按步驟,先點擊步驟1的圖標,完成simulink文件(*.mdl)到VHDL文件的轉(zhuǎn)換。轉(zhuǎn)換完成后,在“Messages”信息提示框中,會顯示“Ge
24、neratedtoplevel“sinout.vhd”files”,即頂層文件sinout.vhd完成轉(zhuǎn)換。若有錯誤,在“Messages”信息提示框中會顯示簡短的出錯提示(出錯的原因多數(shù)是授權文件的安裝或文件本身有問題)。sinout模型生成的VHDL文件“sinout.vhd”可以在文件夾e:/myprj/sinwave中找到。綜合(Synthesis)點擊步驟2的圖標,完成綜合過程。在這個例子中是調(diào)用QuartusII來完成綜合過程的,在綜合后生成ATOMNetlist(原子網(wǎng)表),供適配器使用?!癕essages”給出了相關信息:此設計項目使用了23個邏輯宏單元、11個引腳、512個R
25、AM位(恰好等于SinLUT模塊中數(shù)據(jù)的容量)。5、QuartusII適配點擊步驟3的圖標,調(diào)用QuartusII完成編譯適配過程,生成編程文件:pof文件和sof文件。編程文件可以直接用于FPGA的編程配置。不過,按現(xiàn)在這個流程,采用的是自動(Auto)器件,管腳pin是自動指定的。另外,點擊圖9-34的“ReportFile”按紐,將獲得詳細的報告文件。sinout模型對應的報告文件為sinout_DspBuilder_Report.htm1。在DSPBuilder報告文件中,詳盡地描述了模型相關的設置情況、編譯結果、生成文件列表說明、注意點等等,而且對使用在sinout模型中的模塊分別進
26、行了說明(圖9-35)。注意,對于手動設計流程,適配步驟已沒有必要,通常只須完成前面兩個步驟即可。 #EDA技術與VHDL第9章DSPBuilder設計初步 # EDA技術與VHDL第9章DSPBuilder設計初步 SignaICompi1erreport&5EtJiebuttontonavffuatetJiroug:Jinout_JujJProjectSettingIodelDirectoryDevicefamilySynthesistoolOptimizationDateTimeVersionsinoutE:myprjsinwaveCycloneQuartusIIBalancedFrid
27、aySeptember29,200611:19:511Build1769.2.4使用在simu對生成的V的硬件結構可能存在軟符。這就需當在SCompilation圖9t35inout工程處理信息ModelSm進行iRTL級仿真passedSynthesis:PASSEDsirwul:.map,rpt!ke中進行的仿真是屬于系統(tǒng)驗證性質(zhì)的,是對mdl文件進行的仿真,并沒有DL代碼進行過仿真。事實上,生成VHDL描述的是RTL級的,是針對具體J,3在Matlab的simulink中的模型仿真是算法級(系統(tǒng)級)的。兩者之間有:理解上差異。轉(zhuǎn)換后的的VHDL代碼實現(xiàn)可能與mdl模型描述的情況不完全相孑
28、針對生成的RTbM1VHDL代碼進行功能仿真I。-葉張門於11:20:012006龍理型低:的口選項頁中設定贈咒盤冗丄肌第肚;就P后,DSPVersionRevisionNamesinoutBuilder在“MDLtoVHDL”過程中會自動生成針對HDL仿真器ModelSim的測試文件。因此,在這里,需要使用ModelSim對生成的VHDL代碼進行功能仿真。ModelSim是一個基于單內(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)生,若不存在,可再重復一次5.2.3小節(jié)的流程。如果一切配置正常的話,ModelSim就開始執(zhí)行tcl腳本:tb_sinout.tcl,開啟仿真,隨后就自動打開“wave”窗口,顯示仿真結果(圖9-37)。ModelSimSEPLUS5.7cFileEditViewCompileSimulateToolsWindowHelp當電亀彥團屠詛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í);上的圖標,使之Models圖9-37Mulink中的仿真結果沒:ffl顯示全部波形。在此可以把“waveosi
33、ncutsModelSim仿真結果有可比性。點擊“關羈”窗口中的“/tblUINH EDA技術與VHDL第9章DSPBuilder設計初步 “/tb_si:lout/劇nout”信i1丨1“Fl11111119500nsWaveSignalProper先用鼠標選中Properties”,打信號改成類似模擬信號的顯示格式。窗口的“View”菜單中選擇“Signal(無符號數(shù))在“Format”選項9-38)。在“View”選項頁中,修改“Radix”為Unsigndd頁中(圖9-39),修改下列幾項:“Folrmat”選擇Analog;“Height”為lbo;“AnalogDisplay”中“
34、Scale”為0.4。點擊“OK”確定后,如圖9-40所示??梢钥吹脚csimulink里的仿真結果基本一致。注意:用于ModelSim仿真的TestBench文件中的輸入信號激勵由SignalCompiler根據(jù)Simulink的仿真結果產(chǎn)生。因此,若需要產(chǎn)生正確的仿真激勵,必須先要在simulink中進行設置和仿真運行。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設為Analog塊,因為ModelSim通常無法了解嵌在源程序中的LPM功能。因此在利用ModelSim仿真前,應在simulink編輯窗中消去SinLUT和Product模塊的“LPM”選擇,然后進行一次系統(tǒng)仿真,再用SignalCompiler將其轉(zhuǎn)換成VHDL程序和tcl文件,進行ModelSim仿真。完成后再恢復“LPM”選項,以便為QuartusII提供最后的時序仿真文
36、件。9.2.5使用QuartusII實現(xiàn)時序仿真ModelSim完成的RTL級仿真只是功能仿真,其仿真結果并不能更精確地反映電路的全部硬件特性。進行門級的時序仿真仍然是十分重要的。好在SignalCompiler已將MATLAB上的仿真信息轉(zhuǎn)變成了可用于QuartusII進行時序仿真的激勵信息及相關仿真文件:sinout_quartus.tcl,因此可以很容易地完成此項仿真任務。步驟如下:1、打開QuartusII環(huán)境,選擇菜單“File”f“OpenProject.”,定位到sinout模型所在目錄,打開DSPBuilder已自動建立好的QuartusII工程文件:sinout.qpf(見圖
37、9-41)。注意,自動產(chǎn)生這個工程文件的前提是必須在SignalCompiler窗(圖9-34)中執(zhí)行完第二個按紐:2-Synthesis。2、上文中提到,在SignalCompiler中的QuartusII編譯,具體的器件由QuartusII自動決定,可實際使用中,器件往往不是QuartusII自動選定的那個型號,管腳也不是QuartusII自動分配的管腳。這些都需要在QuartusII中進行修改。所以這里須按照前面章節(jié)中敘述的方法選擇器件型號。選擇菜單“Assignments”一Device.”,在相應的對話框中選擇合適的器件(Cyclone系列器件),如EP1C6Q240C8,然后啟動編
38、譯,即執(zhí)行菜單“Processing一“StartCompilation。3、雙擊圖9-41左側的工程名“sinout”,打開轉(zhuǎn)換好的VHDL文件,了解生成的程序,特別是端口實體的情況(圖9-42)0然后再打開已生成的仿真激勵文件sinout.vec(圖9-43)。比較圖9-42,9-43,如果發(fā)現(xiàn)端口信號名不一致,應該修改圖9-43,使其一致。然后將圖9-43另存為vwf文件:sinout.vwf。4、設置仿真文件路徑。選擇菜單“Assignments一Settings,彈出如圖9-44窗口。在此窗左側的Category欄選擇SimulatorSettings項,在右側的Simulation
39、mode欄選擇Timing,即選擇時序仿真;在Simulationinput欄選擇仿真文件sinout.vwf。關閉此窗。5、啟動仿真編譯。即執(zhí)行菜單“Processing”f“StartSimulation”。結束后能看到圖9-41所示的界面。然后打開仿真波形報告窗,如圖9-45所示,此窗已自動打開:即執(zhí)行菜單“Processing”f“SimulationReport”。圖9-45即為時序仿真波形。 #EDA技術與VHDL第9章DSPBuilder設計初步 # EDA技術與VHDL第9章DSPBuilder設計初步 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設置仿真文件路徑simuldtionresultsWaveformCompareSettings.00圖9-45_sinout9.2.6硬件測試與硬件實現(xiàn)在此按
42、照第4章中介紹的方法鎖定管腳(Pin):選擇菜單“Assignments”一AssignPins.”。首先打開sinout工程文件sinout.vhd,了解端口情況(圖9-42),由于目標器件已確定為EP1C6Q240C8,對D/A輸出的8位SinOut(7downto0)可分別接PIO31-PIO24,對應引腳號是:136、135、134、133、132、128、41、21;系統(tǒng)時鐘clock接實驗板的“clockO”,對應第28腳;清0信號sclrp接鍵7,對應第239腳;輸出控制SinCtrl接鍵8,對應第240腳。接著進行編譯,完成適配過程。最后是進行下載,連接好FPGA開發(fā)板。選擇模
43、式5,clockO可接65536Hz;打開+/-12V電壓,用示波器檢測D/A的輸出,把鍵控SinCtrl設置為有效(將鍵8設成高電平,鍵7設為低電平),就可以在示波器上看到產(chǎn)生的正弦波了。然后將實測結果與在計算機上進行的時序仿真結果進行比較。最后可以利用嵌入式邏輯分析儀SignalTapII測定芯片內(nèi)的實時波形,從而完成更深入的系統(tǒng)測試。從Simulink到SignalCompiler,再到QuartusII的設計驗證十分方便,在第一個流程后,即最后實現(xiàn)硬件信號輸出后,若再想改動Simulink中的sinout.mdl圖,應該注意兩點:1、內(nèi)部電路結構和設置可以改,但端口信號名不要改,如輸入
44、的SinCtrl,SinOut,因為此信號的引腳已被鎖定,不便改變;2、改動sinout.mdl圖后只宜作系統(tǒng)仿真和VHDL文件轉(zhuǎn)換,不宜作綜合,即最多只能對圖9-34所示的界面執(zhí)行第1個按紐,否則將可能把原來設定好的引腳全部沖掉。為了保存引腳信息,綜合與適配必須進入QuartusII后進行(圖9-41)。DSPBuilder層次化設計上一節(jié),已在Matlab/Simulink中設計了一個簡單的正弦波發(fā)生器。但在許多實用的領域中,如通信領域中,實際需要實現(xiàn)的電路模型往往要復雜得多,如果把所有模塊放在同一個Simulink圖中,設計圖會顯得非常復雜、龐大,不利于閱讀和排錯。這時,就必須采用層次化
45、設計方法來設計模型了。本節(jié)介紹DSPBuilder的層次化設計的基本步驟。在Matlab的Simulink建模時,可以使用SubSystem來完成子系統(tǒng)的封裝和調(diào)用。DSPBulider繼承了simulink的子系統(tǒng)(SubSystem)來完成DSP模型的層次化設計。下面以一個示例來具體說明DSPBuilder的層次化設計。步驟如下:1、首先建立一個新的模型,命名為subsint模型,仍然依照圖9-2連接起來,并以文件名subsint存盤。然后在subsint模型窗口中,按住鼠標左鍵,然后移動鼠標畫框,選中圖中除了SignalCompiler、Step模塊以外的所有模塊。(可以通過按住鍵盤上的
46、Shift鍵,用鼠標左鍵點擊來改變模塊的選擇情況。)2、在選中的模塊上點擊鼠標右鍵,在彈出的右鍵菜單中(圖9-46),選擇“CreateSubSystem”,建立子系統(tǒng)。圖9-47中所示的是建立子系統(tǒng)后subsint模型的simulink原理圖,可以看到原來被選中的那些模塊和連線都消失了,只剩下一個新建立的子系統(tǒng)模塊:“Subsystem”。在新生成的Subsystem模塊上共有兩個端口:In1、Out1。3、修改子模塊名。事實上圖9-47顯示的是subsint模型的頂層(TopLevel)原理圖。這時用鼠標雙擊Subsystem子系統(tǒng)模塊,就會彈出“subsint/Subsystem”窗口,
47、顯示Subsystem子系統(tǒng)模塊封裝的原理圖(圖9-48)。可以看出,封裝后的模塊自動增加了兩個simulink的端口,即:In1和Out1。在打開的子系統(tǒng)模塊中,可以任意地增刪模塊;放置仿真用的simulink庫的模塊;引入“Scope”等。不過某些DSPBuilder庫的模塊只能放置在頂層原理圖中,比如SignalCompiler模塊。假如在子系統(tǒng)模塊中放置了SignalCompiler模塊,只可以進行simulink的仿真,但不能使用SignalCompiler來生成相應的VHDL代碼。同普通的DSPBuilder模塊一樣,子系統(tǒng)模塊也可以自行命名,操作方法同普通模塊。見圖9-49,可以
48、把Subsystem子系統(tǒng)模塊的名字修改為singen。Connectbio匚拓FileEditViewSimulationFormatToolsHelp=廠j-15:0|1=5:07:011J圖9-46準備建立subsystemLookundermask100%ode459-48spbsin/subsystem子系統(tǒng)圖4、修改所示的“su冷子系統(tǒng)中的輸入輸出端口的名字也可以定制。在如圖9-48bsint/singen”子系統(tǒng)窗口,修改輸入端口“Ini”為“Ctrlln”,輸出端口“Outl”為“OutSin”(圖9-50)。當修改好端口后,修改的結果馬上在subsint模型的頂層原理圖上的s
49、ingen子系統(tǒng)模塊上顯示出來。不需要任何的更新操作。圖9-51就是更改singen子系統(tǒng)端口名稱后,subsint模型頂層原理圖的顯示結果。Simulink的子系統(tǒng)的端口的增刪操作較簡單,可以直接在子系統(tǒng)的圖上加入或者刪除輸入、輸出端口。在調(diào)用該子系統(tǒ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)模塊,可以當成一般的模塊來使用,允許任意復制、
50、刪除子系統(tǒng)模塊,或者再組合其他的模塊來生成更高一層的子系統(tǒng)。5、完成頂層設計。在圖9-51的基礎上,添加另外一些DSPBuilder模塊來構成一個實際的電路。圖9-52是最后的subsint模型圖。下面列出了新增模塊需要修改的參數(shù)值:Singen子模塊中的元件設置同上一節(jié),且其中所有模塊的總線類型皆設為signedInteger。Offset模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設為“signedInteger”參數(shù)“BusType”設為“InternalNode”參數(shù)“numberofbits”設為“8”;其余為0。ParallelA
51、dderSubtractor模塊:(ParallelAdderSubtractor)庫:AlteraDSPBuilder中Arithmetic庫“Add(+)Sub(-)”設為“+”“Pipeline”設為1ClockPhaseSelection設1。)xSin模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設為“UnsignedInteger”參數(shù)“BusType”設為“Outputport”參數(shù)“numberofbits”設為“8”)CtrlIn模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設
52、為“SingleBit”參數(shù)“BusType”設為“Inputport”6)Constant模塊:(Constant)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設為“signedInteger”參數(shù)“ConstantValue”設為127;參數(shù)“SamplingPeriod”設為1。7)Mux模塊庫:simulink中SignalRouting庫參數(shù)“NumberofInputs”設為“2”參數(shù)“DisplayOption”選擇“bar”。在圖建動sunsmt模型的仿具。圖9-53、9-54出,subsint模型在sinout模型的基礎上增加了波形的電壓偏移,其
53、功能與圖9-26電路的功能是相同的。注意,圖9-53,9-54是subsint模型頂層原理圖上Scope波形顯示。在這個例子中,子系統(tǒng)singen中還含有一個Scope模塊,同樣也可以對相應節(jié)點的波形進行觀察。QIXUV不過,雖然可以進行simulink仿真,但是還不能進行Sign9-54Scope波形圖u-aComp咳分析:介紹的步驟作的subsint模型中的singen子系統(tǒng)模塊,必須進行設置才可以讓SignalCompiler識別為DSPBuilder的子系統(tǒng)。以下給出設置步驟:1、在打開的subsint模型窗口中,先選中子系統(tǒng)模型singen,然后選擇菜單“Edit”一“Masksub
54、system.”項(圖9-55,或右鍵點擊該模塊)。打開“MaskEditor:singen”設置對話框。注意“Masksubsystem.”項在設置后即變?yōu)椤癊ditMask”項。2、在“MaskEditor:singen”對話框中選擇“Documentation”選項頁(圖9-56),設置“Masktype”為“SubSystemAlteraBlockSet”(子系統(tǒng)Altera模塊集)。注意,輸入時沒有引號,且大小寫和空格要嚴格按照此字符串形式。設置完“Masktype”后,SignalCompiler就可以正常地生成VHDL代碼。不過,與sinout模型生成的VHDL代碼有所不同,si
55、nout模型在轉(zhuǎn)換時,只生成一個VHDL文件(TestBench文件除外)。而subsint模型在轉(zhuǎn)換后生成了兩個VHDL文件:subsint.vhd和singen.vhd其中subsint.vhd是頂層的VHDL文件,singen.vhd是singen子系統(tǒng)的VHDL文件。SignalCompiler對于子系統(tǒng)模塊的處理是:每個子系統(tǒng)模塊都產(chǎn)生一個VHDL文件,在上一級的VHDL文件中加以例化調(diào)用。Ctrl+ZCtrl+UndoMoveCantredoOpenblockMaskparameters.Subsystemparameters.Blockproperties.、圖9-56編輯sin
56、gen的“MasktypepiLI匚:n圖9-55SubSystem設置可以實現(xiàn)復雜的電路模型結構。為了便于設計者管理,Smulink提供了“ModelBrowser來顯示模型的結構。在模型窗口選擇“View”f“ModelBrowserOptionsf“ModelBrowser”項,在“ModelBrowser前打上“V”。基于DSPBuilder的DDS設計DDS的基本原理和設計方法已在第7章中討論過了,本章首先介紹基于Matlab和DSPBuilder平臺的DDS設計方法,然后給出幾個基于DDS的實用系統(tǒng)的設計方法。DDS模塊設計圖9-57是DDS圖的頂層設計,其子系統(tǒng)SubDDS的結構
57、圖如圖9-58所示。設計流程可以這樣:先在Simulink中新建一個模型,調(diào)用DSPBuilder模塊構成如圖9-58的相應電路,再用層次設計方法作成模塊DDS模型子系統(tǒng)SubDDS(端口必須接上來自IO&Bus31:221BusConversion29:09:019:018:91BusConversion3DDf子系統(tǒng)SubDD圖中,DDS子系統(tǒng)SubDDS共有三個輸入,分別為Feqword(32位頻率字輸入)、PhaseW0S(16位相位字輸入)、Amp(10位幅度控制字輸入);一個輸出,即10位DDSout輸出。注意,通常由于10位高速D/A是無符號器件,在圖9-57的輸出口應該增加一些
58、轉(zhuǎn)換電路,將輸出的數(shù)據(jù)類型轉(zhuǎn)換成無符號的類型。對于輸入的控制信號也要作一些位數(shù)和圖9-58類型的變換。此外,如果發(fā)現(xiàn)在仿真參數(shù)設置上出現(xiàn)問題,可以先用來自AlteraDSPBuilder庫中IO&Bus中的“Constant”元件代替圖9-57中的Constant2。設置simulink的仿真停止時間StopTime為5,仿真步進FixedStepSize為為1e-3。相位、頻率和幅度控制字輸入按圖9-57所示,則輸出波形即如圖9-59所示;若相位、頻率和幅度控制字輸入分別取500000000、4000000和89,則輸出波形如圖9-60所示。子系統(tǒng)SubDDS輸入輸出模塊的參數(shù)設置為Freq
59、word模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設為“signedInteger”參數(shù)“NodeType”設為“Inputport”參數(shù)“numberofbits”設為“32”Phaseword模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設為“signedInteger”參數(shù)“NodeType”設為“Inputport”參數(shù)“numberofbits”設為“32”Amp模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設為“signedInt
60、eger”參數(shù)“NodeType”設為“Inputport”參數(shù)“numberofbits”設為“10”DDSout模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設為“signedInteger”參數(shù)“NodeType”設為“Outputport”參數(shù)“numberofbits”設為“10”由Delay、ParallelAdderSubtractor和Phaseword1模塊構成相位累加器,參數(shù)如下:ParallelAdderSubtractor模塊:(ParallelAdderSubtractor)庫:AlteraDSPBuilder中Ari
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 有文采高考作文點評任是“無情”也動人
- 娛樂休閑行業(yè)助理工作總結
- 養(yǎng)老院保安工作評價
- 體育行業(yè)助理的主要任務總結
- 農(nóng)業(yè)行業(yè)農(nóng)民培訓體會
- 傳媒廣告行業(yè)業(yè)務員工作總結
- 平面設計師工作綜述
- 人力資源行業(yè)前臺工作總結
- 物流行業(yè)安全控制總結
- 2022年河南省信陽市公開招聘警務輔助人員輔警筆試自考題2卷含答案
- GB/T 1094.7-2024電力變壓器第7部分:油浸式電力變壓器負載導則
- 2025版國家開放大學法律事務??啤斗勺稍兣c調(diào)解》期末紙質(zhì)考試單項選擇題題庫
- 2,3-二甲苯酚的理化性質(zhì)及危險特性表
- 申報職稱:副教授演示課件
- 型濾池計算說明書
- 格力離心機技術服務手冊
- 水泥攪拌樁計算(完美)
- 旭化成離子交換膜的介紹
- JJRB輕鋼龍骨隔墻施工方案要點
- 石油石化用化學劑產(chǎn)品質(zhì)量認可實施細則
- 快遞證明模板
評論
0/150
提交評論