您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > SOPC DSP Builder FPGA设计
DSPBuilder设计主要内容DSP实现方案概述DSPBuilder设计流程DSPBuilder设计向导FSK的设计3.1DSP实现方案概述DSP数字信号处理(DSP,DigitalSignalProcessing)其应用领域,如3G移动通信、网络会议、多媒体系统、雷达卫星系统、医学仪器、实时图像识别与处理、联合战术无线电系统、智能基站,以及民用电器等。DSP实现方案DSPProcessorDSP处理器;ASIC专用集成电路(Application-SpecificIntegratedCircuits);ASSP专用标准电路模块(Application-SpecificStandardProducts);FPGA。DSPProcessor指目前最常用的基于CPU架构的器件,通过软件指令的方式完成DSP算法。用对应指令程序表达出DSP算法,将调试好的机器码放在程序ROM中,其硬件结构都能接受并执行,使之具有很好的通用性和灵活性。采用了顺序执行的CPU架构,以及其硬件结构的不可变性,已成为DSP处理器一个难以突破的瓶颈。ASSP/ASICASSP和ASIC是专门针对完成某种DSP算法的集成电路器件。其优秀的工作性能主要源于特定的算法全部由ASSP和ASIC中的硬件电路完成。高昂的开发设计费用、耗时的设计周期及不灵活的纯硬件结构,使得DSP的ASSP和ASIC解决方案日益失去其实用性。FPGAFPGA一般都内嵌有可配置的高速RAM、PLL、LVDS、LVTTL以及硬件乘法累加器等DSP模块,用来实现数字信号处理可以很好地解决并行性和速度问题;FPGA具有灵活的可配置特性,使得其所构成的DSP系统非常易于修改、易于测试及硬件升级。3.2DSPBuilder设计流程DSPBuilderDSPBuilder就是Altera公司推出的一个面向DSP开发的系统级工具。它是作为MATLAB的一个Simulink(用于图形化建模仿真)工具箱出现的。DSPBuilder流程首先,调用DSPBuilder工具箱中的模块,在Simulink中进行图形化设计和仿真;然后,通过SignalCompiler可以把Simulink的设计文件(.mdl)转成相应的硬件描述语言VHDL设计文件(.vhd),以及用于控制综合与编译的TCL脚本;最后,余下的工作由FPGA/CPLD开发工具QuartusII来完成。Simulink模型仿真综合(QuartusII,LeonardoSpectrum,Synplify)ATOMNetlist产生QuartusIIHDL仿真(ModelSim)综合(QuartusII,LeonardoSpectrum,Synplify)QuartusII生成编程文件(.pof,.sof)下载至硬件自动流程手动流程mdl转成vhdlMatlabSimulink建立模型DSPBuilder设计流程DSPBuilder设计流程第一步是在Matlab/Simulink中进行设计输入,即在Matlab的Simulink环境中建立一个mdl模型文件,用图形方式调用AlteraDSPBuilder和其它Simulink库中的图形模块(Block),构成系统级或算法级设计框图(或称Simulink设计模型)。FIR滤波器DSPBuilder设计流程第二步是利用Simulink的图形化仿真、分析功能,分析此设计模型的正确性,完成模型仿真。FIR滤波器DSPBuilder设计流程第三步是DSPBuilder设计实现的关键一步,通过SignalCompiler把Simulink的模型文件(后缀为.mdl)转化成通用的硬件描述语言VHDL文件(后缀为.vhd)。FIR滤波器DSPBuilder设计流程再接下来的几个步骤是对以上设计产生的VHDL的RTL代码和仿真文件在EDA工具软件中进行综合、编译适配以及仿真。如果采用DSPBuilder的自动流程,即选择让DSPBuilder自动调用QuartusII等EDA设计软件,完成综合(Synthesis)、网表(ATOMNetlist)生成和QuartusII适配,甚至在Matlab中完成FPGA的配置下载过程。3阶FIR滤波器3.3DSPBuilder设计向导FIR滤波器对于一个FIR滤波器系统而言,它的冲激响应总是有限长的,其系统函数可以记为:MkkkzbzH0)(FIR滤波器最基本的FIR滤波器可用下式表示:10)()()(Liihinxny也可以用卷积来表示输出序列y(n)与x(n)、h(n)的关系。)()()(nhnxnyFIR滤波器一个典型的直接I型3阶FIR滤波器,其输出序列y(n)满足下列等式:其中:h(0)=63,h(1)=127,h(2)=127,h(3)=63,是量化时附加的因子。3阶FIR滤波器结构图z-1x(n)h(0)y(n)z-1z-1h(1)h(2)h(3)第一步建立一个新的模型(Model)1.新建工程文件夹,打开Matlab环境Matlab环境界面如图所示。可以看到,Matlab的主窗口界面被分割成三个窗口:命令窗口(CommandWindow)、工作区(Workspace)、命令历史记录(CommandHistory)。2.修改工作目录至DSPBuilder的库文件目录C:\altera\DSPBuilder\Altlib第一步建立一个新的模型(Model)3.新建Simulink的模型文件(后缀为mdl)在Simulink的库浏览器中选择“File”菜单,在出现的菜单项中选择“New”,在弹出的子菜单项中选择新建模型“Model”。图右下角显示的就是新模型窗口。第一步建立一个新的模型(Model)4.打开Simulink库浏览器在新模型窗口菜单中选择“View”菜单,在出现的菜单项中选择“LibraryBrowser”,显示的就是Simulink的库浏览器窗口。在库浏览器的左侧是Simulinklibrary列表,其中“Simulink”库是Simulink的基本模型库,“AlteraDSPBuilder”是DSPBuilder的专用库。在库浏览器的右侧是选中的library中的组件、子模块列表。第一步建立一个新的模型(Model)5.放置模块并设置选中库浏览器右侧的模块,按住鼠标右键拖动所选模块到新模型窗口中;双击所选模块,在弹出的对话框中可以设置模块参数。第一步建立一个新的模型(Model)6.设计文件存盘放置完模块并连好线后,点击新建模型窗口的“File”菜单,在下拉菜单中选择“Save”项,取名并保存。注意:存盘路径;注意:对模型文件取名时,尽量用英文字母打头,不使用空格,不用中文,文件名不要过长。第二步Simulink模型仿真对一个模型进行仿真,需要施加合适的激励、一定的仿真步进和仿真周期,并添加合适的观察点和观察方式。1.加入仿真激励模块并设置2.加入仿真观察模块并设置第二步Simulink模型仿真3.进行仿真参数设置在模型窗口中,点击“Simulation”菜单,在下拉菜单中选择“configurationparameters”菜单项。随后,将弹出模型的仿真参数设置对话框“configurationParameters”。“Solver”选项页中完成仿真时基本的时间设置、步进间隔和方式设置及输出选项设置。设置“Starttime”为0.0,“Stoptime”为20。其它设置取默认值。第二步Simulink模型仿真4.启动仿真在模型窗口中选择“Simulation”菜单,再选“Start”项开始仿真。待仿真结束,双击Scope模块,打开Scope观察窗。第三步使用SignalCompilerDSPBuilder设计实现的关键一步,通过SignalCompiler把Simulink的模型文件(后缀为.mdl)转化成通用的硬件描述语言VHDL文件(后缀为.vhd)。1.分析当前的模型双击模型中的SignalCompiler模块,点击“Analyze”(分析)按钮后,SignalCompiler就会对模型进行分析,检查模型有无错误;在分析过程结束后,打开SignalCompiler窗口。第三步使用SignalCompiler2.设置SignalCompiler选择器件为“Cyclone”选择综合器为“QuartusⅡ”选择优化为“Balances”设置MainClock为“20ns”第三步使用SignalCompiler3.把模型文件MDL转换成VHDL设置好参数后,根据右侧硬件编译“HardwareCompilation”部分的流程进行操作:(1)“ConvertMDLtoVHDL”:将.mdl文件转换为VHDL文件;(2)“Synthesis”:综合;(3)“QuartusII”:编译适配,生成编程文件。第四步使用ModelSim仿真ModelSim是基于单内核的Verilog/VHDL混合仿真器,是MentorGraphics的子公司ModelTechnology的产品。DSPBuilder在“MDLtoVHDL”过程中会自动生成针对HDL仿真器ModelSim的测试文件。需要使用ModelSim对生成的VHDL代码进行功能仿真。第五步在QuartusII中编译、下载打开QuartusII环境,选择菜单“File”→“OpenProject...”,定位到模型所在的目录,打开DSPBuilder建立的QuartusII项目文件。然后按照QuartusII的流程对项目进行编译、下载、硬件测试。(不能进行仿真)3阶FIR模块参数设置输入/输出模块:库:AlteraDSPBuilder中I/O&Bus库参数“BusType”设为“signedInteger”参数“numberofbits”设为输入“8”、输出“18”ParallelAdderSubtractor模块:库:AlteraDSPBuilder中Arithmetic库“Add(+)Sub(-)”设为“++++”“NumberofInput”设为“4”3阶FIR模块参数设置Delay1、Delay2、Delay3模块:库:AlteraDSPBuilder中Storage库参数“Depth”设为“1”参数“ClockPhaseSelection”设为“1”Gain模块:库:AlteraDSPBuilder中Arithemtic库参数“GainValue”设为“63”、“127”参数“MapGainValuetoBusType”设为“SignedInteger”参数“GateValuenumberofbits”设为“8”参数“NumberofPipelineLevels”设为“0”3阶FIR模块参数设置ChirpSignal模块:库:Simulink中Sources库参数“InitialFrequency(Hz)”设为“0.1”参数“Targettime”设为“20”参数“Frequencyattargettime(Hz)”设为“2”参数“Interpretvectorsparametersas1-D”选中ChirpSignal模块为线性调频信号发生模块,生成一个线性调频信号0.1Hz~1Hz。3阶FIR模块参数设置Gain模块:库:Simulink中MathOperations库参数“Gain”设为“127”参数“Multiplication”设为“Elementwise(K.*u)”Scope模块:库:Simulink中sinks库参数“NumberofAxes”为“2”3阶FIR设计仿真结果所示。显然,一个线性调频信号通过3阶FIR滤波器后幅度发生了变化,频率较高部分的幅度被衰减了。3.42FSK的设计2FSK二进制数字频率调制(2FSK)是利用二进制数字基带信号
本文标题:SOPC DSP Builder FPGA设计
链接地址:https://www.777doc.com/doc-6406003 .html