版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
9DSPBuilderEDAQuartusII來完成的,最為典型的設(shè)計流程,包括設(shè)計項目編輯(如用VHDL、綜合、仿真、適配、編程。但是對Altera2002年推出的DSPBuilderFPGA開發(fā)板上。利用與DSPBuilderSOPC技術(shù)的一個組成部分。本章以兩個簡單的電路模型設(shè)計為示例,詳細介紹、DSPBuilder、QuartusII三DSPBuilder是一個系統(tǒng)級(或算法級)設(shè)計工具,它架構(gòu)在多個軟件工具之上,并把在了/Simlink圖形設(shè)計平臺上,而將QuartusII作為底層設(shè)計工具置于,最大程度地發(fā)揮了對種工具的優(yōu)勢。DSPBuilder依賴于MathWorks公司的數(shù)學(xué)分析工具/Simlink,以的Blockset出現(xiàn)??梢栽谥羞M行圖形化設(shè)計和仿真,同時又通過piler把/ (.vhd的處理都由QuartusII來完成。設(shè)計周期)對于不同的應(yīng)用目標(biāo)將有不同的要求,涉及的軟件工具也不僅僅是和QuartusII,DSPBuilder針對不同情況提供了兩套設(shè)計流程,即自動流程和手動流程。/ 中進行設(shè)計輸入。即在的/環(huán)境中建立一個mdl模型文件,用圖形方式調(diào)用DSPBuilder和其他庫中的圖形庫而已,同樣也涉及到其他EDA軟件。(QuartusII,HDL (QuartusII, ATOMNetlistQuartusQuartus圖9-1基于、DSPBuilder、QuartusII等工DSPBuilderEDA工具軟件(QuartusII 的.mdl文件這就需要一個轉(zhuǎn)換過程通過 的模型文件(后綴為.mdl)轉(zhuǎn)化成通用的硬件描述語言,VHDL文件。轉(zhuǎn)換獲此后的步驟是對以上頂層設(shè)計產(chǎn)VHDLRTL代碼和仿真文編譯適配(Synthesis配,直至在中完成FPGA的配置過程。但是,如果希望使用其它第3方的VHDL綜合器和仿真器(Synplify、LeonardoSpectrum和QuartusII綜合器及外,或是希望完成特定的適配設(shè)置,用于FPGA的配置。采用手動流程時,除了行為級和設(shè)計輸入外,其它過程與標(biāo)準(zhǔn)的基于VHDL的EDA設(shè)計流程是完全一致的。首先由基于 的DSPBuilder設(shè)計流程得到VHDL 模型文件*.mdl通過 pilder轉(zhuǎn)換而成,送入綜合器進行綜合。操作可能比較繁瑣,所以DSPBuilder的 piler相應(yīng)提供了一個接口,針對設(shè)計,件,主要是EDIF網(wǎng)表文件(.edf電子設(shè)計交換格式文件)或VQM(.vqmVerilogQuartusMapFile,它們是一種參數(shù)可設(shè)置的,并含有具體器件系列硬件特征(如邏輯宏單元LCs、I/O單元、乘積項、M4K、嵌入式系統(tǒng)塊ESB等)的網(wǎng)表文件。QuartusII可以利用這些ATOM網(wǎng)表文件針對選定的具體器件進行適配,包括布線、布局、結(jié)構(gòu)優(yōu)化等操作,最后產(chǎn)生時序仿真文件和FPGA目標(biāo)器件的編程與配置文件。在這一步,設(shè)計者可以在QuartusII中完成對Pin(引腳)的鎖定,更改一些約束條件等。DSPBuilderVHDLQuartusII強大的LogicLockSignalTapDSPBuilderDSPBuilder中直接到FPGA用戶開發(fā)板上,或者通過QuartusII完成硬件的、測試。9-1VHDLDSPBuilderHDL仿真器是。DSPBuilderVHDL代碼時,可以同時生DSPTestBench(測試平臺)文件,DSPBuilderTestBench文件VHDLDSP模塊在中的仿真激勵相一致。通過TestBenchVHDL代碼與中設(shè)計模型的一致性。另外,DSPBuilder在產(chǎn)生TestBench的同時,還產(chǎn)生了針對仿真的Tcl來簡化用戶的操作,如包含了來自平臺上進行仿真的激勵信號信息等,從而掩蓋后網(wǎng)表與中建立DSP模型的一致性。這就需要再次使用進行仿真,這QuartusII適配后帶延時信息的網(wǎng)表文件(EDIFVHDL、Verilog格自動流程:1 /手動流程:1/
建模;2、系統(tǒng)仿真;3、DSPBuilder完成SinLUT。SinLUT是一個正弦函數(shù)值的查找表(LUT:LookUpTable)模塊,由遞增的地址獲得正弦波的量化值SinCtrlSinCtrl1位(bit)輸入,SinCtrlProduct就完成了對正弦波輸出有無的控制。SinOutD/A即可獲得正弦波的輸出模擬信號。設(shè)計者在利用DSPBuilder來進行相關(guān)設(shè)計時,關(guān)鍵的設(shè)計過程大都在的圖形仿真環(huán)境中進行9-2 環(huán)境界面如圖9-3所示??梢钥吹剑闹鞔翱诮缑姹环指畛扇齻€窗口:Window(orkspaceHistory命令窗口中,可以鍵入命令,同時獲得對命令的響應(yīng)信息、出錯警告提示圖9-3界在建立一個新的設(shè)計模型前,最好先建立一個新的文件夾,作為work(工作),并把當(dāng)前work切換到新建的文件夾下??梢允褂肳indows在外部建立,也可以使用命令來直接完成這些操作,例如在主窗口中令窗口中鍵入:cdmkdir/myprj/sinwavecd/myprj/sinwave其中e:/myprj/sinwave是新建的文件夾,是用作 命令,cd是切換工 命令。具體過程可以參見圖9-4(打 主界面中的“CurrentDirectory”的制定,同樣可以改變 當(dāng)成功地把當(dāng)前切換到新建的設(shè)計后(cd/myprj/sinwave入命令:pwd,之后可以在命令窗口鍵入“”命令,以開啟的圖形Browser9-4打開圖9- 在庫管理器的左側(cè)是library列表,其中“”庫是的基本模型在的庫管理器中可以看到“AlteraDSPBuilder”字樣出現(xiàn)在library列表中。在以下的DSPBuilder應(yīng)用中,主要是使用該庫中的組件、子模型來完成各項設(shè)計,再使用被DSPBuilder轉(zhuǎn)化為VHDL程序 的模型文件(后綴為mdl,在出的子菜單項中選擇新建模型“model9-69-6建立新模 點擊AlteraDSPBuilderDSPAltLabAltLab,選中庫管理器右側(cè)的pilder組件,按住鼠標(biāo)右鍵拖動pilder到新模型窗口中(9-7。注意:當(dāng)在庫管理器中選中模塊(Block)后,在庫管理器上方的提示欄中會(9-8)DSPBuilderArithmetic(算術(shù))AlteraDSPBuilderArithmetic條,則在庫管理器的右側(cè),可以看到IncrementDecrement模塊。按照放置pilderIncrementDecrement7.用鼠標(biāo)點擊在新建模型窗口中的IncrementDecrement模塊下面的文字“Increment“IncCount(9-8。然后9-2中描述IncCount模塊做成一個線性遞增的地址發(fā)生器,這就需要對IncCount模塊的參數(shù)進行相應(yīng)的設(shè)置:雙擊新建模型中的圖9-9所示。在參數(shù)設(shè)置框的上半部分是該模塊的功能描述和使用說明;框的下半部分是參數(shù)設(shè)置部分,對于IncrementDecrement模塊共有下面幾種參數(shù)可以設(shè)置:總線類型(BusType;輸出位寬(Numberofbits;增減方向(Direction;alue;是否使用控制輸入(UseControl時鐘相位選擇(ClockPhase圖9-7放 圖9-8遞增遞減模塊改名為圖9-9設(shè)置遞增遞減模 圖9-10LUT模TypeInteger2、有符號小數(shù)(SignedFractional;Integer找表(SinLUT)的地址為6位,所以輸出位寬設(shè)為6。UseControlInputs項可以不選。因為如果選中此項,此模塊會出現(xiàn)兩個輸入端,分別是復(fù)位端和時鐘使能端。通常在圖中的元件的復(fù)位和時鐘使能端以及都是分別默默認設(shè)置。設(shè)置完的框如圖9-10。然后點擊“OK”按鈕確認。注意,若對DSPBuilder庫中模塊設(shè)置參數(shù)值不了解,可以在相應(yīng)模塊的參數(shù)設(shè)置新建模型窗口,按照IncCount的做法把新調(diào)入的LUT模塊的名字修改成“SinLUT”。6BusTypeSignedInteger;在“Array”編輯框中輸入計算查找表內(nèi)容的計算式。在此可以直接使用sin(正弦)sin 1pi即為常數(shù)π。上式的數(shù)值變化范圍是-1271272568位二82628次 2 3設(shè)置好的SinLUT參數(shù)如圖9-11所示。圖9-11設(shè)置 圖9-12Delay模塊及其參數(shù)設(shè)置在庫管理器的AlteraDSPBuilder庫中,選中Storage庫下的Delay模塊,放置到新建模型窗口。Delay模塊(9-12)是一個延時環(huán)節(jié)。在這里可以不修改其默認參數(shù)設(shè)置。其具體的默認參數(shù)設(shè)置見圖9-12。在Delay模塊的參數(shù)設(shè)置框中,參數(shù)“Depth”是描述信號延時深度的參數(shù)。1ClockPhaseSelection1時表示,每一主頻脈沖后,數(shù)據(jù)都能通過,如果設(shè)置為01,則每隔一個脈沖通過一個數(shù)據(jù);若設(shè)0011,表示每隔兩個脈沖通過兩個脈沖;0100表示Delay在每隔第2個時鐘時被使能通過,而在第1、3、4個時49-2把他們連接起來。把在庫管理器的AlteraDSPBuilder庫中,選中IO&Bus庫,找到Input模塊,NodeType參數(shù)為“InputPort9-13VHDL文件中變成端口模式為“IN”,數(shù)據(jù)類型為STD_LOGIC的端口信號。
9-13設(shè)置 庫管理器的AlteraDSPBuilder庫中,選中Arithmentic庫,找到Product模個Delay的SinLUT查表輸出,另一個是外部一位端口SinCtrl。按算法邏輯來看,實現(xiàn)了即乘積延時幾個時鐘周期后出現(xiàn)。選中“UseLPM”,表示允許采用LPM模塊?!癠seDedicatedCircuitry”選項用于對FPGA中的模塊的選擇,如Stratix,CycloneII等器件中的DSP模塊。9-14設(shè)置乘法單 (圖9-15)置在新建模型窗口中。修改模塊的名字為SinOutSinOut是一個8位輸出端口接向FPGA的輸出端口與外面的8位D/A轉(zhuǎn)換器相接,通過D/A把8位數(shù)據(jù)轉(zhuǎn)換成1路模擬信號。雙擊SinOut模塊,打開模塊參數(shù)設(shè)置框,設(shè)置SinOut的BusType參數(shù)為“SignedInteger,修改“numberofbits”參數(shù)為8,如圖9-15所示。該模塊在VHDL文件中將變成OUT端口模式的標(biāo)準(zhǔn)位矢量: 則最MSB被截去。此選項對輸入端口或常數(shù)節(jié)點類型是無效的。LSB被截去。此選項不適用于輸入和常數(shù)類型。 圖9-15設(shè)置 圖9-16Step模塊圖9-17Scope模13.這樣就完成了一個正弦波發(fā)生器的DSPBuilder模型設(shè)計。在進行和piler編譯之前,先對設(shè)計進行存盤操作:點擊新建模型窗口的“File”菜單,在下拉菜單中選擇“SaveSinout,模型文件為sinout.mdl。在保存完畢后,新建模型窗口的標(biāo)題欄就會顯示模型名稱。過長。且只有對文件存盤后,才能使用piler進行編譯mdl文件轉(zhuǎn)VHDL文的環(huán)境具有強大的圖形化功能。用DSPBuilder模塊設(shè)計好一個新的模型后,可以直接在中進行算法級、系統(tǒng)級。對一個模型進StepSinCtrl的按鍵使能操作。在庫管理器中,展開Sources庫Sources庫中的Step模塊拖放sinout模型窗(如9-16。參照圖9-2stepSinCtrl輸入端口相接。注意,凡是來自AlteraDSPBuilder庫以外的模塊,piler都不能將其變成硬件電路,即不會影響產(chǎn)生VHDL程序,但在啟動仿真后能影響后面產(chǎn)生的仿真激勵文件。Step模塊的情況正是如此。在的庫管理器中,展開庫,選中其中的Sinks庫,把Scope(示波器9-17)模塊拖放sinout模型窗口中。雙擊該模塊,打開的是Scope窗口(9-18。圖中所示只有一個信號的波形觀察窗口,而如若希望可以多觀察幾路信號,自然可以通過調(diào)用多個Scope模塊的方法來實現(xiàn),這里介紹通過修改scope參數(shù)來增加同一scope中打開Scope參數(shù)設(shè)置框,見圖9-19。在Scope參數(shù)設(shè)置框中共有兩個選項頁:“ernral(History(ofaxes2。在點擊“OKScope窗口增加了兩個波形觀察有相應(yīng)語句,因為沒有接上輸出端口模塊:AltBus或Output模塊。圖9-18Scope初始顯 圖9-19設(shè)置Scope參9-2sinout模型的全圖,準(zhǔn)備開始仿真。在仿真前還需要設(shè)置一下與仿關(guān)的參數(shù)。先設(shè)置模型的仿真激勵。在sinout模型圖中只有一個輸入端口SinCtrl,需要設(shè)置與此相Step放置sinout模型窗Step模塊置對輸入端SinCtrl施加的激勵。在打開的Step模塊參數(shù)設(shè)置框中,可以看到下列參數(shù)(詳見圖9-20):步進間隔(steptime;初始值(Initialvalue;終值(Finalvalue;采樣時間(Sample“Enablezerocrossingdectection”都設(shè)為打勾。21Simulationparameters”菜單項,如圖9-22所示。隨后,將彈出sinout模型的仿真參數(shù)設(shè)置框::Real-TimeWorkshop。其中“Solver”選項頁中完成仿真時,基本的時間設(shè)置、步進間隔和Scopescope9-24顯示了仿真結(jié)果,SinOut信SinCtrlSinOutSinCtrlSinCtrl1時,SinOut波形是正弦波;當(dāng)SinCtrl為0時,輸出為0。在Scope觀察窗中,可以使用中的按鈕來放大縮左鍵,可以放大波形。圖9-25是改成無符號輸出的波形。9-209-21sinout全圖9- 仿真圖9-24有符號輸出波形(系統(tǒng)級仿真 圖9-25無符號輸出波形(系統(tǒng)級仿真9-24127間變化,但一般的輸出的有符號數(shù)據(jù)上加上了128。原理是將乘法器輸出的8位有符號數(shù)的最取反并以無符號數(shù)輸出。圖9-25即是產(chǎn)生的仿真波形,可以看出整個波形在0以上。以下將對圖中出9-27)VHDL文件中將變成內(nèi)部信號Signal定義。BusConcatenation是總線合并模塊,其功能是將兩個總線按要求合并成一個總線,其輸出位寬數(shù)等于輸入的兩個總線位數(shù)之和,參數(shù)設(shè)置如圖9-30所示。Not模塊是反相器模塊,設(shè)置如圖9-32所示。9-26無符號整數(shù)SignedInteger輸出電圖9-27SinOut1模塊設(shè) 圖9-28ExtractBit模塊設(shè)圖9-29BusConversion模塊設(shè) 圖9-30BusConcatenation模塊設(shè)圖9-31SinOut1模塊設(shè) 圖9-32NOT模塊設(shè)piler 中完成后,就需要把設(shè)計轉(zhuǎn)到硬件上加以實現(xiàn)。這是整個DSPBuilder設(shè)計流程中最關(guān)鍵的一步,據(jù)此可以獲得針對FPGA的VHDLRTL代碼。雙擊sinout模型中的 piler模塊,將出現(xiàn)如圖9-33所示的框,點擊 yze( piler就 piler窗口(圖9-34。如果有警告(Warning)用不同的顏色提示有錯誤的模塊(Block。當(dāng)pilerDSP模型有錯誤時,必須去除錯誤才能繼續(xù)DSPBuilder流程。左側(cè)的項目設(shè)置選項“ProjectSetting要的器件系列,默認為Stratix系列器件,對此可以修改。在此選為Cyclone系列。圖9-33雙 圖9-34打 piler窗針對具體的DSP開發(fā)板的。“Synthesis(綜合)下拉選擇框可以選擇綜合器,共有三個選“Synpilfy”:SynpilicitySynpilfyProSynpilfy在這個例子中,可選擇QuartusII?!癘ptiizaton(“ProjectOptions)“TestBench選項頁,選擇“GenerateStimuliforVHDLTestbench”生成含激勵的仿真測試文件,用于VHDL仿真。當(dāng)設(shè)置好“Device”和“Synthesis”后,右側(cè)的硬件編譯“HardwareCompilation”部分就會列出一個操作流程,見圖9-34。分別為:“ConvertMDLtoVHDL”:轉(zhuǎn)MDL文件VHDL“Synthesis”:對轉(zhuǎn)換好VHDL圖9-34中的第4步是隱去的,這一步實現(xiàn)在中,完成FPGA的硬件配置。這需要DSP開發(fā)板的支持,當(dāng)“Device”選為“DSPBoard”時,該一步才顯示出來。1的圖標(biāo),完成文件(*.mdl)VHDL文件的轉(zhuǎn)換。轉(zhuǎn)錯提示(出錯的原因多數(shù)是文件的安裝或文件本身有問題。sinout模型生成的VHDL文件“sinout.vhd”可以在文件夾e:/myprj/sinwave中找到。sinout_DspBuilder_Report.htmlDSPBuilder報告文件中,詳盡地描述了模型中的模塊分別進行了說明(9-35。9-35sinout工程處理信在中進行的仿真是屬于系統(tǒng)驗證性質(zhì)的,是對mdl文件進行的仿真,并沒有VHDLVHDLRTL級的,是針對具體的硬件結(jié)構(gòu)的,而在的中的模型仿真是算法級(系統(tǒng)級)的。兩者之間有可能存在軟件理解上差異。轉(zhuǎn)換后的VHDL代碼實現(xiàn)可能與mdl模型描述的情況不完全相符。這就需要針對生成的RTL級VHDL代碼進行功能仿真。當(dāng)在piler窗口選項頁中設(shè)定后Builder在“MDLtoVHDL”過程中會自動生成針對HDL仿真器的測試文件。因此,在這里,需要使用對生成VHDL代碼進行功能仿真。是一個基Verilog/VHDLMentorGraphicsModelTechnology的打開9-36是tb_sinout.tcl來執(zhí)行。其中,tb_sinout.tclDSPBuilder的piler產(chǎn)生,若不存在,可再重復(fù)一次5.2.3小節(jié)的流程。如果一切配置正常的話,就37圖9-36準(zhǔn)備執(zhí)行tcl文 不過圖中顯示的仿真波形與中的仿真結(jié)果沒有可比性。點擊“wave”窗口工 中“Scale”為0.4。注意:用于仿真TestBench文件中的輸入信號激勵由piler根據(jù)的仿真結(jié)果產(chǎn)生。因此,若需要產(chǎn)生正確的仿真激勵,必須先要在中進圖9-38的信號設(shè) 圖9-39設(shè)為圖9-40sinout工程的仿真波形(RTL級仿真此外,如果要產(chǎn)生能用tcl仿真文VHDL文件中LPM模塊,因為通常無法了解嵌在源程序中的LPM功能。因此在利用仿真前,應(yīng)在編輯窗中消SinLUTProduct模塊的“LPM”選擇,然后進行一次系統(tǒng)仿真,再用piler將其轉(zhuǎn)VHDL程序tcl文件,進行仿真。完成后再恢復(fù)“LPM”選項,以便為QuartusII提供最后的時序仿真文件。完成的RTL級仿真只是功能仿真,其仿真結(jié)果并不能更精確地反映電路的 piler已將上的仿真信息轉(zhuǎn)變成了可用于QuartusII進行時序仿真的激勵信息及相關(guān)仿真文件:…DSPBuilder已自動建立好QuartusII工程文件:sinout.qpf(見9-41。注意,自動產(chǎn)生這個工程文件的前提是必須在piler窗(9-34)中執(zhí)行完第二個2、上文中提到,在pilerQuartusIIQuartusII自動QuartusIIQuartusIIQuartusII中進行修改。所以這里須按照前面章節(jié)中敘述的方法選擇器件型號。選擇菜單“Assignments”→“Device…”,在相應(yīng)的框中選擇合→“StartCompilation3、雙擊9-41左側(cè)的工程名“sinout”,打開VHDL文件,了解生成的程序,特別是端口實體的情況(圖9-42。然后再打開已生成的仿真激勵文件sinout.vec(圖9-43。9-41打開QuartusII工程進行編譯和時9-43vwf文件:sinout.vwf。4、設(shè)置仿真文件路徑。選擇菜單“Assignments”→“Settings”,彈9-44窗口。在此窗左側(cè)的Category欄選擇SimulatorSettings項,在右側(cè)的Simulationmode欄選擇Timing,即選擇時序仿真;在Simulationinput欄選擇仿真文件sinout.vwf。關(guān)閉此窗。單“Processing”→“SimulationReport9-45即為時序仿真波形。9-43打開QuartusII工程的vec仿真激勵文9-45sinout工程的QuartusII仿真波形(門級時序仿真確定為EP1C6Q240C8,對D/A輸出的8位SinOut(7downto0)可分別接PIO31-PIO24, 從到pilerQuartusII的設(shè)計驗證十分方便,在第一個流程后,即最后實現(xiàn)硬件信號輸出后,若再想改動sinout.mdl圖,應(yīng)該注意兩點:1、內(nèi)部電路結(jié)構(gòu)和設(shè)置可以改,但端口信號名不要改,如輸入的SinCtrl,SinOut,因為此信9-341個按紐,否則將可能把原來設(shè)定好/ /一個圖中,設(shè)計圖會顯得非常復(fù)雜、龐大,不利于閱讀和排錯。這時,就必須采用層次化設(shè)計方法來設(shè)計模型了。本節(jié)介紹DSPBuilder的層次化設(shè)計的基本步驟。在的SubSystem來完成子系統(tǒng)的封裝和調(diào)用。DSPBulider繼承了的子系統(tǒng)(SubSystem)DSP模型的層次化設(shè)計。下面以一個示例來具體說明DSPBuilder的層次化設(shè)計。步驟如下:1subsint9-2連接起來,并以文subsintsubsint模型窗口中,按住鼠標(biāo)左鍵,然后移動鼠標(biāo)畫框,選中圖中除了piler、Step模塊以外的所(可以通過按住Shift鍵,用鼠2、在選中的模塊上點擊鼠標(biāo)右鍵,在彈出的右鍵菜單中(圖9-46),選擇“CreateSubSystem9-47subsint模型的原理圖,可以看到原來被選中的那些模塊和連線都了,只剩下一個新建立的子系統(tǒng)模塊:“Subsystem”。在新生成的Subsystem模塊上共有兩個端口:In1、Out1。3、修改子模塊名。事9-47顯示的subsint模型的頂層(TopLevel)原理圖。這統(tǒng)模塊封裝的原理圖(圖9-48??梢钥闯?,封裝后的模塊自動增加了兩個的端口,即:In1和Out1。在打開的子系統(tǒng)模塊中,可以任意地增刪模塊;放置仿真用的庫的模塊;引Scope”等。不過某些DSPBuilder庫的模塊只能放置在頂層原理圖中,比如piler模塊。假如在子系統(tǒng)模塊中放置了 piler模塊只可以進行 piler來生成相應(yīng)的VHDL代碼。圖9-46準(zhǔn)備建立 圖9-47建立subsystem“OutSin(的singen子系統(tǒng)模塊上顯示出來。不需要任何的更新操作。9-51就是更改singen子系統(tǒng)端口名稱后,subsint模型頂層原理圖的顯示結(jié)果。如Input、Output,否則無法轉(zhuǎn)換成VHDL圖9-49修改子系統(tǒng) 圖9-50修改SubSystem的端9-51頂層圖的改際的電路。圖9-52是最后的subsint模型圖。下面列出了新增模塊需要修改的參數(shù)值:1)Singen子模塊中的元件設(shè)置同上一節(jié),且其中所有模塊的總線類型皆設(shè)為signedInteger。2)Offset模塊:(Altbus)庫:AlteraDSPBuilder中IO&Bus參數(shù)“BusType”設(shè)為“signedInteger”參數(shù)“BusType”設(shè)為“InternalNode”參數(shù)“numberofbits”設(shè)為“8”;其余為0ParallelAdderSubtractor模塊:(ParallelAdderSubtractor)庫:AlteraDSPBuilder中Arithmetic庫ClockPhaseSelection設(shè)1。xSin模塊庫:AlteraDSPBuilder中IO&Bus參數(shù)“BusType”設(shè)為“UnsignedInteger”參數(shù)“BusType”設(shè)為“Outputport”參數(shù)“numberofbits”設(shè)為“85)庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“BusType”設(shè)為“SingleBit”參數(shù)“BusType”設(shè)為“Inputport”6)Constant庫:AlteraDSPBuilder中IO&Bus參數(shù)“BusType”設(shè)為“signedInteger”參數(shù)“ConstantValue”設(shè)為127; 中SignalRouting庫參數(shù)“NumberofInputs”設(shè)為“2”9-525-57含subsystemsubsint模建立subint模型后sinout模型的例子Step模塊的激勵參數(shù),啟動subsint模型sinout模型的基礎(chǔ)上增加了波形的電壓偏移,其功能與9-26電路的功能是相9-53,9-54subsintScope波形顯示。在這個例子中,子系統(tǒng)singen中還含有一個Scope模塊,同樣也可以對相應(yīng)節(jié)點的波形進行觀察。 圖9-53Scope1波形 圖9-54Scope波形不過,雖然可以進行仿真,但是還不能進行piler分析。按照前面介紹的步驟作的subsint模型中的singen子系統(tǒng)模塊,必須進行設(shè)置才可以讓piler識別為DSPBuilder的子系統(tǒng)。以下給出設(shè)置步驟:“Masksubsystem…”項(圖9-55,或該模塊。打開“MaskEditor:singen”設(shè)置框。注意“Masksubsystem…”項在設(shè)置后即變?yōu)椤癊ditMask”項?!癕asktype”為“SubSystemAlteraBlockSet(子系統(tǒng)Altera模塊集。設(shè)置完“Masktype”后,pilerVHDLsinout模型生VHDL代碼有所不同,sinout模型成一VHDL文件(TestBench文件除外subsint模型在轉(zhuǎn)換后生成了兩個VHDL文件:subsint.vhdsingen.vhdsubsint.vhdVHDL文件,singen.vhdsingenVHDLpilerVHDL文件,在上一級的VHDL文件中加以例化調(diào)用。圖9-55SubSystem設(shè) 圖9-56編輯singen的“MaskBuilder平臺的DDS設(shè)計方法,然后給出幾個基于DDS的實用系統(tǒng)的設(shè)計方法。9-57DDS系圖中,DDSSubDDSFreqword(32位頻率字輸入、Phaseword(16位相位字輸入、Amp(10位幅度控制字輸入一個輸出,即10位DDSout輸出。注意10位高D/A是無符號9-57的輸出口應(yīng)該增加一些轉(zhuǎn)換IO&Bus中的“Constant”元件代替圖9-57中的Constant2。 的仿真停止時間StopTime為5,仿真步進FixedStepSize為為1e-3。相位、頻率和幅度控制字輸入按圖9-57所示,則輸出波形即如圖9-59所示;若相位、頻率和幅度控制字輸入分別取500000000、4000000和89,則輸出波形如圖9-60所示。Freqword模塊庫:AlteraDSPBuilder中IO&Bus參數(shù)“BusType”設(shè)為“signedInteger”參數(shù)“NodeType”設(shè)為“Inputport”參數(shù)“numberofbits”設(shè)Phaseword庫:AlteraDSPBuilder中IO&Bus參數(shù)“BusType”設(shè)為“signedInteger”參數(shù)“NodeType”設(shè)為“Inputport”參數(shù)“numberofbits”設(shè)Amp模塊庫:AlteraDSPBuilder中IO&Bus參數(shù)“BusType”設(shè)為“signedInteger”參數(shù)“NodeType”設(shè)為“Inputport”參數(shù)“numberofbits”設(shè)DDSout模塊庫:AlteraDSPBuilder中IO&Bus參數(shù)“BusType”設(shè)為“signedInteger”參數(shù)“NodeType”設(shè)為“Outputport”參數(shù)“numberofbits”設(shè)為“10”ParallelAdderSubtractor模塊:(ParallelAdderSubtractor)庫:AlteraDSPBuilder中Arithmetic庫參數(shù)“NumberofInputs”設(shè)為“2”參數(shù)“ClockPhaseDelay庫:AlteraDSPBuilder中Storage庫Phaseword1庫:AlteraDSPBuilder中IO&Bus參數(shù)“BusType”設(shè)為“signedInteger”參數(shù)“NodeType”設(shè)為“InternalNode”參數(shù)“numberofbits”設(shè)為“32”ParallelAdderSubtractor1模塊:(ParallelAdderSubtractor)庫:AlteraDSPBuilder中Arithmetic庫參數(shù)“NumberofInputs”設(shè)為“2”參數(shù)“ClockPhase庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“InputBusType”設(shè)為“signedInteger”參數(shù)“Input[numberofbits].[]”設(shè)為32參數(shù)“OutputBusType”設(shè)為“Signed參數(shù)“Outputnumberofbits[.[]參數(shù)“InputBitConnectedtoOutputMSB”設(shè)為“31”參數(shù)“InputBitConnectedtoOutputLSB”設(shè)為“22”Product模塊庫:AlteraDSPBuilder中Arithemtic庫參數(shù)“ClockPhaseSelection”設(shè)為“1”不選擇“UseLPM”庫:AlteraDSPBuilder中IO&Bus庫參數(shù)“InputBusType”設(shè)為“signedInteger”參數(shù)“Input[numberofbits].[]”設(shè)為“20”參數(shù)“OutputBusType”設(shè)為“SignedInteger”參數(shù)“Output[numberofbits[.[]”設(shè)為“10”參數(shù)“InputBitConnectedtoOutputMSB”設(shè)為“18”參數(shù)“InputBitConnectedtoOutputLSB”設(shè)為“9”圖9-59DDS系統(tǒng)輸出波 圖9-60DDS系統(tǒng)輸出波由于FSK調(diào)制器實際上是DDS的簡化應(yīng)用模型。二進制數(shù)字頻率調(diào)制(2FSK)是利用二位不連續(xù)的FSK之分??煽氐恼倚盘枺脭?shù)字基帶信號控制DDS的頻率字輸入,實現(xiàn)FSK調(diào)制。Out8DAC進行數(shù)模轉(zhuǎn)換,然后經(jīng)低通濾波器后,產(chǎn)生最終的模擬輸出信號。FSK9-62所示,高電平控制的時候,正弦波的頻率較高,而低電平的時,正好相反。最后通過pilerQuartusIIFPGA上完成硬件實現(xiàn)后,9-62FSK調(diào)制的Sinulink仿真結(jié)言,只要在基DDS結(jié)構(gòu)中增加一ROM查找表,在兩ROM中分別放置一對正交信號即可(如一個放置Sin表、另一個放置Cos表。DDSROM表后、D/A前在2003年的大學(xué)生電子設(shè)計競賽C題中,有一項內(nèi)容要求設(shè)計一個數(shù)字移相信號發(fā)生器,要求輸出正弦信號,一路為參考信號,另一路是可數(shù)控的移相信號,并且這可同步進行幅度和頻率數(shù)控。即對于這輸出的正弦信號在相位、頻率和幅度3圖9-64就是一個基于DDS的數(shù)字移相信號發(fā)生器完整的設(shè)計。他們的仿真波ROM的地址信號。2-4譯,單片機要分4次才能對相位控制數(shù)賦值完畢9-65數(shù)字移相信號發(fā)生器輸出波幅度調(diào)制信號發(fā)生器是2005年大學(xué)生電子設(shè)計競賽題中的一個設(shè)計項目。圖9-66是用DSPBuilderAMFPGA9-4FFF 號,m是調(diào)制度0m1F
(1
4注意, 和 根據(jù)式9- 可以作出圖9- 電路模型其中元件ADDER1Dly1Bus5Bus3 ,進入乘法器Pdt1的a端;進入b端的是由SL輸入。9-41。和進入第2Pdt2a端。 ,進入乘法器Pdt2的b端9-66中,cst15輸入的數(shù)據(jù)控制調(diào)制信號頻率;cst9的數(shù)據(jù)控制調(diào)制度(9-67的調(diào)制度是0.79;cst16輸入的數(shù)據(jù)控制載波信號頻率。另外,DSPBuilder借助于的編碼IPCore,可以實現(xiàn)復(fù)雜的編碼、譯碼操作。m序列為例,用DSPBuilder構(gòu)建一個偽隨機序列發(fā)生器。m序列,即最長線性反饋移位寄存器序列,是一種比較常見的偽隨機序列發(fā)生器,可由線性反饋寄存器(LinearFeedbackShiftRegisters,LFSR)來產(chǎn)生。如圖9-68。+++++z-z-z-z-z-9-68線性反饋移位寄存器的構(gòu)nF(x)Cix 5x5x2 6m序列的周期為2519-69DSPBuilder模型表述,這里采用相連的延時單元組作為移位寄存器,用異或(XOR)完成模二加運算,輸出為mout。9-69DSPBuilder默認的延時單元在開始工作時,內(nèi)容為0,而對于m序列來說,起始序列為全0,那么根據(jù)多項式,輸出序列也將為全0。全0序列不是正常的m序列。因此只要起始時,寄存器中有一個為1,m序列就可以正常輸出。為此,對圖9-69的模型進行修改,修改后的模型見圖9-70修改后的m序列發(fā)生器模圖9-71m序列發(fā)生 碼序列{xi},其中1in,xi取n
jR(j)xixxj 0j j即當(dāng)j0時,碼的局部自相關(guān)函數(shù)達到峰值,其它j值時,R(j)在1附近波動,可以用作幀同步的特殊碼組。符合上述自相關(guān)特性的碼組是存在的,比如72j0Rj)x2
7j1Rj)1j3,5,7Rj)0j2,4,6Rj)1。在環(huán)境中,建立一個DSPBuilder模型,檢出7位碼,序列1,MDL9-72幀同步檢出模9-73bxp1m1110010111101001101圖9-74bxn1m子系 圖9-75幀同步克碼檢測仿真結(jié)以上提到的在平臺上完成的諸多仿真都屬于算法級仿真,因為不涉及任何硬如因為已沒有了提供的大量功能強大的仿真工具。因此最理想的方法是直接在平臺上將設(shè)計模型進FPGA,利用AlteraDSPBuilderHIL(HardwaveintheLoop)模塊能很好地完成這種類型的仿真。圖9-76說明HIL的功HIL可以在模型FPGA開發(fā)板JTAG通信口建立一種聯(lián)系,從而實現(xiàn)基于/DSPBuilder平臺的硬件仿真。圖9-76插入HIL的模型硬件仿真說明圖9-77掃頻濾波信號發(fā)生器模型圖,文件名freqsweep9-79所示,利用piler對掃頻濾波信號發(fā)生器進行轉(zhuǎn)換、綜合和適配。分別按動此框的按鈕1、2、3,使freqsweep.mdl轉(zhuǎn)化為一個QuartusII工程。關(guān)閉窗口圖9-80所示,刪去9-77中所有AlteraDSPBuilder庫元件構(gòu)成HIL9-81所示,HILAlteraDSPBuilderAltLab9-80雙擊圖9-80的HIL模塊,將彈出如圖9-82所示的HIL框。首先在“1.SelecttheQuartusIIproject”欄加入以上生成的工程:據(jù)類型,確定“3.Identitythesignedports”欄中各端口的數(shù)據(jù)類型。9-78掃頻濾波信號發(fā)生器算法(軟件)仿真波圖9- 圖9-81向圖中拖入HIL模BurstModeBurstlength1024(默認FrameMode處線(USB-Blaster等)PC機與FPGA開發(fā)板連好,并打開電源。在圖9-83所示的框中,在FPGAdevice欄鍵入FPGA開發(fā)板上的FPGA的型號,EP1C6Q240C8注意PC機與FPGAJTAG口通信ProgramtheFPGAJTAGCableDeviceinchainFPGA板上測得的FPGA型號。如果編譯成功,在圖9-83所示的窗下方的信息欄將出現(xiàn)文字:Createdfreqsweep_HIL.sof。這就是針對此工程生成的文件名是freqsweep_HIL.sof。點擊圖9-83的ConfigureFPGA按紐,通過JTAG口將此文件進FPGA中。如果下 piler變成VHDL。圖9-86利用編程模塊向FPGAFSKHIL9-879-90所示。由此圖可見,輸入波形與輸出波形有一定FPGA9-62中是看不到這種延時的。在圖形編輯窗中也允許利用狀態(tài)機DSP系統(tǒng)中必態(tài)1位熱碼編碼方Moore狀態(tài)機。此表格模塊經(jīng)piler轉(zhuǎn)換后可以變VHDL的狀態(tài)機作為示例,在此使口RAM模塊(Dual-PortRAM)和狀態(tài)機模塊(StateMachineTable)完成一個FIFO器的設(shè)計。這兩個模塊可以分別從LibraryBrowser的AlteraDSPBuilder庫中的StateMachineFunctions子和StorageArithmetic子中獲得。構(gòu)成的電路及其仿真配置圖如圖9-91所示。RAM8rdad和wrad8位數(shù)據(jù)讀地址和寫地圖9-91由狀態(tài)機模塊和雙口RAM構(gòu)成的FIFO器電路9-91中的加減計數(shù)器Up_Down_Counter內(nèi)部電路如9-92所示。其中的加減計數(shù)器都是8位無符號整數(shù)總線類型計數(shù)器,并行加減法器的操作符是“-+”。如圖9-94所示。默認的狀態(tài)機有5個輸入端和5個狀態(tài)。每一狀態(tài)以一個輸出信號端來代表。當(dāng)狀態(tài)機運行時,如果相應(yīng)的狀態(tài)等于當(dāng)前狀態(tài),則此輸出為電平1,所有其它輸出為0。在中,輸入和輸出是有符號整數(shù)表示的,而在VHDL中,輸入和輸出是由標(biāo)以下將敘述在DSPBuilder中狀態(tài)機的設(shè)計流程。在此以FIFO9-92加減計數(shù)器模塊Up_Down_CounterRAM的輸入端以及地址計數(shù)器的輸入端饋入控制信號,其操作步地址計數(shù)器就遞增1,于是一個字節(jié)的數(shù)據(jù)就被壓進(寫入)到RAM中去了;1,于是一個字節(jié)的數(shù)據(jù)就被彈出(被讀出RAM圖9-93狀態(tài)機轉(zhuǎn)換表 圖9-94庫中默認狀態(tài)機表模9-(push=1)&(push=0)&(push=0)&(pop=1)&(count_in=push(pop=1)&(count_in!=(push=1)&(push=0)&(pop=1)&(count_in=(push=1)&(pop=1)&(count_in!=popnot(push=1)&(countpushnot(push=0)&pushnot(push=1)&(countpushnot(push=1)&(countpushnot(push=1)&(pop=1)&(count_in!=在設(shè)計中加入狀態(tài)機表格模塊,并為此模塊取一個9-95即為此模塊。此例中,模塊的fifo-controller9-95是改fifo_controller后的狀態(tài)機模塊。注意,必須雙擊該表格模塊,以便能設(shè)定狀態(tài)機的特性。當(dāng)出現(xiàn)“StateMachineBuilder”框9-96FIFO控制狀態(tài)機后的“Inputs”頁。定義的輸入信號是reset(默認、count_in、pop、push。圖9-95狀態(tài)機模塊 圖9-96狀態(tài)機表的“Inputs”的“State”頁,已作了對FIFO控制狀態(tài)機的狀態(tài)特性編輯。的工作方式(9-93所示ConditionalStatements”頁顯示的是狀態(tài)轉(zhuǎn)換表,表中含有狀態(tài)機的條件描述。其中條件描述由3部份組成:當(dāng)前態(tài)和次態(tài)狀態(tài)值必須是在“State9-2中是用于定義條件那么這個條件就可用1來表述。9--負1-1=22>22<22&與2或2(in1=in2)對于條件敘述表中所列的條件,狀態(tài)機是順序計算判斷的。例如如表9-3所示。9-(pop=1)&(count_in=pushpushnot(pop=1)&(count_in!=(push=1)&(pop1&count_in0)在表中的位置高于條件(push=1)&count_in=250),所以,前者就條件(pop=1)&(count_in!=0僅次于最高優(yōu)先權(quán)的條件描述,而條件(push=1)&9-97狀態(tài)機表的“StatesIF((pop_sig=1)AND(conut_in_sig=0))THENnext_state<=empty_st;ELSIF(push_sig=1)THENnext_state<=push_not_full_st;ELSIF(pop_sig=1)AND(conut_in_sig/=0))THENnext_state<=pop_not_empty_st;ELSIF(push_sig=1)AND(conut_in_sig=250))THENnext_state<=full_st;next_state<=idle_st;ENDIF;9-(pop=1)&(countin=(push=1)&(pop=1)&(c
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 照片濾鏡調(diào)色課程設(shè)計
- 二手車交易平臺營業(yè)員銷售總結(jié)
- 春游課程設(shè)計
- 家具設(shè)計師工作總結(jié)
- 風(fēng)險防控方案計劃
- 法律服務(wù)行業(yè)風(fēng)險防范方案
- 化工行業(yè)衛(wèi)生防護要點
- 物流運輸行業(yè)咨詢服務(wù)經(jīng)驗總結(jié)
- 藥店衛(wèi)生管理措施
- 金融領(lǐng)域的投資顧問職責(zé)
- 股權(quán)協(xié)議書和合伙人協(xié)議書
- 河南省駐馬店市2023-2024學(xué)年高一上學(xué)期1月期末語文試題(含答案解析)
- 幼兒園名師公開課:小班安全《超市安全我知道》微課件
- MOOC 英文技術(shù)寫作-東南大學(xué) 中國大學(xué)慕課答案
- 2022年10月自考00850廣告設(shè)計基礎(chǔ)試題及答案含解析
- 工會委員會會議紀(jì)要
- 《水電工程水文設(shè)計規(guī)范》(NB-T 10233-2019)
- 2024年1月電大國家開放大學(xué)期末考試試題及答案:法理學(xué)
- (高清版)DZT 0284-2015 地質(zhì)災(zāi)害排查規(guī)范
- 駕駛員勞務(wù)派遣車輛管理方案
- 電纜大和小修危險源辨識和控制措施
評論
0/150
提交評論