FPGA通信設(shè)計基礎(chǔ)DspBuilder使用初步_第1頁
FPGA通信設(shè)計基礎(chǔ)DspBuilder使用初步_第2頁
FPGA通信設(shè)計基礎(chǔ)DspBuilder使用初步_第3頁
FPGA通信設(shè)計基礎(chǔ)DspBuilder使用初步_第4頁
FPGA通信設(shè)計基礎(chǔ)DspBuilder使用初步_第5頁
已閱讀5頁,還剩90頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章AlteraDSPBuilder設(shè)計2.1Matlab/Simulink簡介

Matlab和Mathematic、Mapple并成為三大數(shù)學(xué)軟件。在數(shù)學(xué)類科技應(yīng)用軟件中尤其是是在數(shù)值計算方面首屈一指。

Matlab可以進行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、鏈接其它編程語言的程序??梢杂脕磉M行數(shù)值分析、數(shù)字與符號計算、工程和科學(xué)繪圖、控制系統(tǒng)設(shè)計與仿真、數(shù)字信號處理、通信系統(tǒng)設(shè)計與仿真、財務(wù)與金融分析。Simulink是MATLAB最重要的組件之一,它提供一個動態(tài)系統(tǒng)建模、仿真和綜合分析的集成環(huán)境。在該環(huán)境中,無需大量書寫程序,而只需要通過簡單直觀的鼠標操作,就可構(gòu)造出復(fù)雜的系統(tǒng)。

Simulink具有適應(yīng)面廣、結(jié)構(gòu)和流程清晰及仿真精細、貼近實際、效率高、靈活等優(yōu)點,并基于以上優(yōu)點Simulink已被廣泛應(yīng)用于控制理論和數(shù)字信號處理的復(fù)雜仿真和設(shè)計。同時有大量的第三方軟件和硬件可應(yīng)用于或被要求應(yīng)用于Simulink。2.2基于Matlab/SimulinkFPGA開發(fā)

在FPGA或與處理器結(jié)合的FPGA上實現(xiàn)設(shè)計算法時,需要對影響功能性能的定點特性進行準確的建模。可在MATLAB和Simulink中創(chuàng)建浮點算法規(guī)格,然后將其轉(zhuǎn)換為位真定點數(shù)據(jù)類型以供仿真。對設(shè)計進行模型級定點優(yōu)化可用于透徹地研究FPGA設(shè)計所涉及的定點權(quán)衡。還可以創(chuàng)建有限狀態(tài)機來對這些算法的控制邏輯進行建模。使用Simulink模型,將其作為測試平臺通過聯(lián)合仿真來驗證FPGA實現(xiàn)方案。使用HDL驗證工具,可在諸如ModelSim等HDL仿真器中對實現(xiàn)方案進行仿真,還可使用Simulink來創(chuàng)建測試激勵、仿真黃金參考模型并將預(yù)期仿真結(jié)果與實際結(jié)果相比較。采用Simulink和自定義HDL仿真器來運行回歸測試和進行交互式調(diào)試會話。此方法消除了手動傳輸測試向量的需要,且使您可在設(shè)計過程中更早發(fā)現(xiàn)設(shè)計錯誤。使用HDL生成工具,能自動從模型生成可自定義的、與目標無關(guān)的VHDL和Verilog代碼,這些代碼可綜合以用于FPGA實現(xiàn)??赏ㄟ^更新模型并重新生成代碼來快速修改該代碼。生成的代碼可傳遞到下游工具以供綜合、布局、布線,并將位流下載到FPGA。Matlab/Simulink支持FPGA的開發(fā)方式將Simulink與AlteraDSPBuilder配合使用Simulink與XilinxSystemGeneratorforDSP配合使用將Simulink和HDLCoder與MentorGraphicsFPGA設(shè)計工具配合使用在傳統(tǒng)的涉及HDL代碼的技術(shù)的DSP設(shè)計過程中,要使得FPGA實現(xiàn)達到最佳性能,整個過程會非常耗時。

在MATLAB和Simulink中進行AlteraFPGA開發(fā),首先使用Altera的DSPBuilder在Simulink環(huán)境中進行算法開發(fā)、仿真和驗證。

2.3Matlab/DSPBuilder及其設(shè)計流程

DSPBuilder模塊可用于在Simulink中建模的系統(tǒng)構(gòu)建FPGA硬件實現(xiàn)。通過采用具有位幀和周期準確性的Altera模塊集來構(gòu)建模型,可以在Simulink環(huán)境內(nèi)快速準確地評估AlteraFPGA的硬件實現(xiàn)。Altera模塊集包含算術(shù)函數(shù)、邏輯函數(shù)、存儲接口以及Avalon內(nèi)存映射和流接口??蓪⒁延械腍DL代碼和AlteraMegaCoreIP內(nèi)核的模型集成到設(shè)計中。

DSPBuilder高級功能集可在數(shù)分鐘之內(nèi)在Simulink中創(chuàng)建出針對AlteraFPGA優(yōu)化的設(shè)計,且無需直接使用HDL代碼。只需在Simulink模型中指定諸如所需的時鐘頻率和通道數(shù)等頂級設(shè)計約束,DSPBuilder即會自動生成針對所選的AlteraFPGA器件優(yōu)化的流水線化的RTL。因為該高級模塊集使用時分復(fù)用技術(shù)來優(yōu)化邏輯利用率;并自動插入流水線階段和寄存器以符合設(shè)計約束,因此可在AlteraFPGA中獲得與手工優(yōu)化的HDL代碼相近的性能。基于Matlab、DSPBuilder進行FPGA開發(fā)流程應(yīng)用Altera模塊庫在Simulink進行建模仿真添加SignalCompiler到設(shè)計中

生成HDLCode代碼并產(chǎn)生Testbench進行RTL級仿真綜合HDL代碼并進行布局布線FPGA期間編程應(yīng)用SignalTapII進行邏輯分析AlteraDspBuilder設(shè)計流程

Altera模塊庫可用于快速評估設(shè)計在Altera器件中的性能、生成時序最佳的HDL代碼以及對照Simulink模型驗證硬件實現(xiàn)方案。

2.4Altera模塊庫簡介AltLabArithmeticBoardsComplexTypeGate&ControlIO&BusRateChangeSOPCBuilderLinksStateMachineFunctionsStorageMegaCoreFunctionsVideoandImageProcessing1、AltLabLibrarySignalCompilerHDLSubSystemBuildHierarchicalSystemHDLImportSignalTapIIBlockSignalTapIIAnalysisBP:BusProbeDeviceprogrammerHILQuartusIIGlobalProjectAssignmentQuartusIIPinoutAssignmentVcdSinkSubSystemBuilderCreatesBlack-Box1、AltLab庫--SignalCompiler模塊

SignalCompiler模塊為DSPBuilder的核心模塊,完成如下功能:將Simulink模型轉(zhuǎn)換為可綜合的RTLVHDL;生成VHDLtestbenches;生成Verilogtestbenches;通過Quartus?

II生成VerilogHDL仿真模型;將Simulink激勵轉(zhuǎn)換為VHDLtestbench并生成txt格式的期望響應(yīng);生成Tcl腳本用于Quartus

II的編譯;生成適用于LeonardoSpectrum、PrecisionRTLSynthesis、Synplify和ModelSim?進行仿真的Tcl腳本;生成Quartus

II仿真的波形文件;生成PTF配置文件,可將模型導(dǎo)入SOPCBuilder;允許生成SignalTap

II(.stp)文件;生成QuartusII模塊符號文件(.bsf)。UpdateDiagram:SignalCompiler模塊是否對Simulink模型重新進行仿真再提取DSPBuilder模塊的信息。Analyze:SignalCompiler模塊讀取當前仿真模型的mdl文件,測試模型的層次信息以及所有DSPBuilder模塊的采樣時間。每次改變模型后都必須重新進行分析操作。SkipAnalyze:跳過模型分析。

創(chuàng)建完Simulink仿真模型后利用Simulink進行仿真,如果無誤需要轉(zhuǎn)換為VHDL實現(xiàn)時,可雙擊SignalCompiler模塊或者調(diào)用sc_altera函數(shù)。運行界面如下圖

1、AltLab庫--SignalCompiler模塊

在菜單欄左邊的工程設(shè)置選項中可以選擇目標器件的類型、用于綜合的綜合器、綜合與適配的優(yōu)化目標、主時鐘周期、全局復(fù)位電平、reset是否接地、是否嵌入SignalTapII邏輯分析儀、是否生成測試激勵、是否生成SOPCptf文件、是否生成Verilog文件。在右邊的硬件編譯部分給出了SignalCompiler模塊的工作流程,首先點擊第一步,將MDL轉(zhuǎn)換為VHDL,同時會生成Tcl腳本文件;第二步進行VHDL的綜合;第三步調(diào)用QuartusII進行綜合;如果目標器件為DSP開發(fā)板則可以直接將代碼下載到DSP開發(fā)板上。底部的ProjectInfo給出了當前系統(tǒng)的信息;ReportFile給出了SignalCompiler轉(zhuǎn)換后的硬件信息。1、AltLab庫--SignalCompiler模塊

1、AltLab庫--HDLImport模塊在Simulin平臺上可以利用AlteraDspBuilder中AltLab庫中的HDL模塊將HDL文本語言設(shè)計轉(zhuǎn)換成DspBuilder設(shè)計模塊。參與整個模塊的軟件仿真、硬件仿真、VHDL語言轉(zhuǎn)換和硬件實現(xiàn)。HDLImport的設(shè)計步驟:完成HDL文本設(shè)計調(diào)入HDLImport模塊雙擊模塊加入HDL設(shè)計文件1、AltLab庫--HIL硬件環(huán)模塊在Simulin平臺上進行仿真有以下缺點:速度慢不能完全反映硬件特性把設(shè)計完全放在Quartus上仿真,激勵信號難以獲得,仿真結(jié)果難以觀察。理想的方法是在Simulink平臺上將設(shè)計模型下載到FPGA芯片中,利用Simulink提供的各類仿真工具進行仿真,即HardwareINLoop。算術(shù)庫包括二進制補碼有符號算術(shù)模塊,如乘法器、加法器。有些模塊有UseDedicatedCircuitry這一選項,即此類模塊可以利用Altera?tratix?

II、Stratix、StratixGX、Cyclone

II的模塊如DSP模塊來實現(xiàn)。2、算術(shù)庫ArithmeticLibraryComparatorDivideGainIncrementDecrementMagnitudeMultiplyAccumulateMultiplyAddParallelAdderSubtractorProductSumofPartialProductsIntegratorDifferentiatorArithmeticLibrary–MultiplyAdd2-4OptiontouseDSPBlocksiftargetdeviceisStratixOptiontouseconstantvaluesspecifiedasaMATLABarraySignedIntegerUnsignedIntegerSignedFractionalAddAddAddSubSubAddSubSubNoRegisterInputsOnlyMultiplierOnlyAdderOnlyInputsandMultiplierInputsandAdderMultipliersandAdderInputsMultiplierandAdder3、I/O與總線控制模塊庫主要是控制信號和總線來完成諸如截位、飽和、bit提取、總線類型轉(zhuǎn)換等操作。BusManipulation–AltBusAltBusModesInput&OutputPortDefinesHardwareBoundariesConvertsFloating-PointtoFixed-PointInternalNodeDefinesInternalHardwareNodeWidthsConvertsSBFFormatsConstantImplementsConstantsinHardwareBlackBoxDefinedLaterBusManipulation–BusConversionSignedIntegerUnsignedIntegerSignedFractionalON:Outputisroundedawayfromzero.OFF:LSBtruncated<int>(input+0.5)ON:IfOutput>Max.Positivevalue,Output=MaxPositiveValueElseOutput<Min.NegativevalueOutput=Min.NegativevalueOFF:MSBtruncatedBP:BusProbe4、復(fù)信號處理庫4、復(fù)信號處理庫ButterflyComplexMultiplexerComplexConjugateComplexDelayComplexProductComplexAddSubComplexConstantComplextoReal-imagReal-imagtoComplexImplementDecimationinTimeFFTButterflya,b,W,A,BAreComplexNumber(SignedInteger)a=x+jX;b=y+jY;W=v+jVA=a+bW;B=a-bWA=(x+yv)+YV+j(X+Yv-yV)B=(x-yv)-YV+j(X-Yv+yV)

4、復(fù)信號處理庫--Butterfly4、復(fù)信號模塊--Complex–Real-ImagtoComplexX=a+BjConjugate:Conjugate(X)=a-BjInvert:Invert(X)=-a-BjX=a+BjY=C+DjMultiply:X*Y=(A*C–B*D)+(A*D+BC)j5、Gate&ControlLibraryCaseStatementIfStatementLogicalBitOperatorLogicalBusOperatorSinglePulseLUTN-to-1Multiplexer1-to-NDemuxDecoderBitwiseLogicalBusOperator5、Gate&ControlLibrary--Ex:ConvolutionalInterleaver5、存儲器(Storage)模塊庫6、StorageLibraryDelayDownSamplingDual-portRAMFIFOLFSRSequenceLUTParalleltoSerialPatternROMEABSerialtoParallelShiftTapsUpSampling6、Storage–ShiftTapsSpecifiestheNumberofRegularlySpacedTapsAlongtheShiftRegisterSpecifiestheDistanceBetweentheRegularlySpacedTapsinClockCyclesUseOutputattheEndofShiftRegisterforCascading7、ROMEAB&ShiftTapsBlocks--Ex:PolyphaseFilter7、RateChange模塊庫(1)該庫模塊允許控制DSPBuilder模塊如Delay或IncrementDecrement模塊的時鐘。為保證Simulink和VHDL時鐘精度的一致則必須設(shè)置Simulink的Solver,參數(shù)設(shè)置見圖:選擇Fixed-step;選擇discrete(nocontinuousstate);選擇SingleTasking模式6、RateChange模塊庫(2)ClockAltr模塊

——用于仿真模型中加入新的硬件時鐘。PLL模塊——可綜合出一個基于某一參考時鐘的時鐘信號。

Multi-RateDFF模塊

——用于采樣頻率的變化Tsamp模塊

——用于指定內(nèi)部數(shù)據(jù)的采樣時間。6、RateChange模塊庫(3)Variablepll_output_clock0(definedinblockuntitled/PLL)=1e-008Variablepll_output_clock1(definedinblockuntitled/PLL)=4e-008Variablepll_output_clock2(definedinblockuntitled/PLL)=2e-006RateChange–Multi-RateDFFSynchronizedatapathintersectionsinvolvingmultipleratesRateChange–Tsamp&PLLBlocks

Ex:PolyphaseFilter7、DSP板模塊庫8、BoardLibrary

8、有限狀態(tài)機2.5正弦信號發(fā)生器設(shè)計

2.5.1建立設(shè)計模型1、打開Matlab環(huán)境

啟動Matlab主界面2.5.1建立設(shè)計模型2、建立工作庫cde:/mkdir/myprj/sinwavecd/myprj/sinwave3、了解simulink庫管理器

啟動Simulink3、了解simulink庫管理器

simulink庫管理器4.simulink的模型文件

建立simulink文件5、放置SignalCompilder

6、放置IncrementDecrement

7.設(shè)置IncCount總線類型(BusType);輸出位寬(Numberofbits);增減方向(Direction);開始值(StartingValue);是否使用控制輸入(UseControlInputs)時鐘相位選擇(ClockPhaseSelection)放置SignalCompiler

遞增遞減模塊改名為IncCount7.設(shè)置IncCount設(shè)置遞增遞減模塊

7.設(shè)置IncCount放置LUT模塊7.設(shè)置IncCount8、放置正弦查找表(SinLUT)127*sin[0:2*pi/2^6]:2*pi])127*sin[0:2*pi/2^8]:2*pi511*sin[0:2*pi/2^6]:2*pi])+512設(shè)置SinLUT

8、放置正弦查找表(SinLUT)Delay模塊及其參數(shù)設(shè)置窗9、放置Delay模塊設(shè)置SinCtrl

10、放置端口SinCtrl

設(shè)置SinCtrl

10、放置端口SinCtrl

設(shè)置乘法單元11、放置Product模塊設(shè)置SinOut

12.放置輸出端口SinOut13.設(shè)計文件存盤Step模塊2.5.2Simulink模型仿真1、加入仿真步進模塊

Scope模型

2.5.2Simulink模型仿真2、添加波形觀察模塊Scope初始顯示2、添加波形觀察模塊設(shè)置Scope參數(shù)

3、Scope參數(shù)設(shè)置

sinout全圖

3、Scope參數(shù)設(shè)置

設(shè)置仿真步長Step4、設(shè)置仿真激勵運行simulink仿真

4、設(shè)置仿真激勵simulink仿真設(shè)置

5、啟動仿真

有符號輸出波形(系統(tǒng)級仿真)5、啟動仿真

無符號輸出波形(系統(tǒng)級仿真)5、啟動仿真

無符號整數(shù)SignedInteger輸出電路

6、設(shè)計成無符號數(shù)據(jù)輸出

SinOut1模塊設(shè)置7、各模塊功能說明

ExtractBit模塊設(shè)置

7、各模塊功能說明

BusConversi

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論