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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2章AlteraDSPBuilder設計2.1Matlab/Simulink簡介

Matlab和Mathematic、Mapple并成為三大數學軟件。在數學類科技應用軟件中尤其是是在數值計算方面首屈一指。

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

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

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

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

2.3Matlab/DSPBuilder及其設計流程

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

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

生成HDLCode代碼并產生Testbench進行RTL級仿真綜合HDL代碼并進行布局布線FPGA期間編程應用SignalTapII進行邏輯分析AlteraDspBuilder設計流程

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

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

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

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

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

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

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

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

1、AltLab庫--SignalCompiler模塊

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

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

II、Stratix、StratixGX、Cyclone

II的模塊如DSP模塊來實現。2、算術庫ArithmeticLibraryComparatorDivideGainIncrementDecrementMagnitudeMultiplyAccumulateMultiplyAddParallelAdderSubtractorProductSumofPartialProductsIntegratorDifferentiatorArithmeticLibrary–MultiplyAdd2-4OptiontouseDSPBlocksiftargetdeviceisStratixOptiontouseconstantvaluesspecifiedasaMATLABarraySignedIntegerUnsignedIntegerSignedFractionalAddAddAddSubSubAddSubSubNoRegisterInputsOnlyMultiplierOnlyAdderOnlyInputsandMultiplierInputsandAdderMultipliersandAdderInputsMultiplierandAdder3、I/O與總線控制模塊庫主要是控制信號和總線來完成諸如截位、飽和、bit提取、總線類型轉換等操作。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、復信號處理庫4、復信號處理庫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、復信號處理庫--Butterfly4、復信號模塊--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時鐘精度的一致則必須設置Simulink的Solver,參數設置見圖:選擇Fixed-step;選擇discrete(nocontinuousstate);選擇SingleTasking模式6、RateChange模塊庫(2)ClockAltr模塊

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

Multi-RateDFF模塊

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

——用于指定內部數據的采樣時間。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ā)生器設計

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

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

啟動Simulink3、了解simulink庫管理器

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

建立simulink文件5、放置SignalCompilder

6、放置IncrementDecrement

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

遞增遞減模塊改名為IncCount7.設置IncCount設置遞增遞減模塊

7.設置IncCount放置LUT模塊7.設置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設置SinLUT

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

10、放置端口SinCtrl

設置SinCtrl

10、放置端口SinCtrl

設置乘法單元11、放置Product模塊設置SinOut

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

Scope模型

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

3、Scope參數設置

sinout全圖

3、Scope參數設置

設置仿真步長Step4、設置仿真激勵運行simulink仿真

4、設置仿真激勵simulink仿真設置

5、啟動仿真

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

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

無符號整數SignedInteger輸出電路

6、設計成無符號數據輸出

SinOut1模塊設置7、各模塊功能說明

ExtractBit模塊設置

7、各模塊功能說明

BusConversi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論