嵌入式技术概述-基于FPGA的DSP开发技术-课件_第1页
嵌入式技术概述-基于FPGA的DSP开发技术-课件_第2页
嵌入式技术概述-基于FPGA的DSP开发技术-课件_第3页
嵌入式技术概述-基于FPGA的DSP开发技术-课件_第4页
嵌入式技术概述-基于FPGA的DSP开发技术-课件_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式技术概述

——

基于FPGA的DSP开发技术12基于FPGA的DSP开发技术

MATLAB/DSPBuilder软件DSPBuilder简介基于DSPBuilder的DSP模块开发流程正弦发生器模块设计实例DSPBuilder层次性设计FIR数字滤波器设计实例层次性设计方法FDATool使用利用MegaCore的设计3基于FPGA的DSP开发技术

MATLAB/DSPBuilder软件DSPBuilder简介基于DSPBuilder的DSP模块开发流程正弦发生器模块设计实例DSPBuilder层次性设计FIR数字滤波器设计实例层次性设计方法FDATool使用利用MegaCore的设计4基于FPGA的DSP开发技术

DSPBuilder简介

DSPBuilder是一个系统级(算法级)设计工具 实现了系统级(算法仿真建模)到

RTL级(硬件实现)的无缝过渡5基于FPGA的DSP开发技术

DSPBuilder简介 利用DSPBuilder进行DSP模块设计是SOPC技术的重要组成部分: 一方面,由Matlab/DSPBuilder和QuartusII软件工具开发的DSP模块可以成为FPGA电路系统的组成部分; 另一方面,可以通过Matlab/DSPBuilder为NiosII嵌入式处理器设计各类加速器,并以指令的形式加入到NIOSII的指令系统,从而成为NiosII系统的接口设备。6基于FPGA的DSP开发技术

MATLAB/DSPBuilder软件DSPBuilder简介基于DSPBuilder的DSP模块开发流程正弦发生器模块设计实例DSPBuilder层次性设计FIR数字滤波器设计实例层次性设计方法FDATool使用利用MegaCore的设计7基于FPGA的DSP开发技术基于DSPBuilder的DSP模块开发流程第五步:设计编译和下载在QuartusII中编译用户的设计,最后将设计下载,进行测试验证。第一步:完成设计输入和模型仿真利用Matlab/Simulink进行设计输入,在Matlab/Simulink中建立一个模型文件(mdl文件),调用DSPBuilder和其它Simulink库中的模块,构成系统级或算法级设计框图。利用Simulink的图形化仿真、分析功能,分析设计模型的正确性,完成模型仿真。第一步设计同一般的Matlab/Simulink建模过程没区别第二步:转化模型文件到硬件描述语言文件利用SignalCompiler模块完成模型文件到硬件描述语言文件的转换,转换之后的HDL文件是RTL级(寄存器传输级,可综合的格式)。第三步:RTL级仿真DSPBuilder支持自动流程的ModelSim仿真。用户也可以利用第二步产生的HDL文件使用其它的仿真工具手动地进行仿真。第四步:RTL级综合、网表产生、适配、时序仿真自动流程中可以选择让DSPBuilder自动调用QuartusII等EDA软件来完成相应的工作;手动流程允许用户选择相应的软件来完成相应的工作,手动流程需要更多的干预,同时提供了更大的灵活性,用户可以指定综合、适配等过程的条件。为确定RTL级适配后的网表与Simulink中建立的DSP模型的一致性,需要进行时序仿真8基于FPGA的DSP开发技术

MATLAB/DSPBuilder软件DSPBuilder简介基于DSPBuilder的DSP模块开发流程正弦发生器模块设计实例DSPBuilder层次性设计FIR数字滤波器设计实例层次性设计方法FDATool使用利用MegaCore的设计9基于FPGA的DSP开发技术

正弦发生器模块设计实例乘法模块一位输入,控制正弦波的有无正弦波发生器模块的输出阶梯信号发生模块,产生一个按时钟线性递增的地址信号正弦函数值的查找表模块,由递增的地址获得正弦波的离散值输出延时模块10基于FPGA的DSP开发技术

正弦发生器模块设计实例

第一步:利用Simulink建立模型文件

1) 运行Matlab,建立工作目录,启动Simulink,新建模型文件

2) 放置SignalCompiler:单击Simulink库列表中的AlteraDSP Builder,单击Altlab项,选中SignalCompiler组件,按住 鼠标左键拖放到新模型窗口中。

SignalCompiler是任何DSP系统设计必须要添加的模块11基于FPGA的DSP开发技术12基于FPGA的DSP开发技术

正弦发生器模块设计实例

第一步:利用Simulink建立模型文件

3) 添加IncrementDecrement模块。IncrementDecrement模块 是DSPBuilder库中Arithmetic子库中的模块。

4) 设置IncrementDecrement模块。修改模块的命名;双击模 块进入模块参数设置对话框。13基于FPGA的DSP开发技术总线类型:有符号整数有符号小数无符号整数总线位宽增减方向初始值是否使用控制输入选项时钟相位选择采样时间设置14基于FPGA的DSP开发技术

正弦发生器模块设计实例

第一步:利用Simulink建立模型文件

5) 添加正弦查找表。在Gate&Control子库中找到查找表模块 LUT,把LUT拖放到新建模型窗口,将LUT模块的名字修改为 “SinLUT”。

6) 设置正弦查找表模块参数。双击模块进入模块参数设置对话 框。15基于FPGA的DSP开发技术总线类型:有符号整数有符号小数无符号整数输出位宽查找表地址查找表内容计算式选中”UseLPM”选项,QuartusII将利用目标器件中的嵌入式RAM构成SinLUT选中”RegisterAddress”选项会生成输入地址总线。若目标器件是Straitix或者Cyclone,并且选中了LPM选项,用户必须选中”RegisterAddress”选项16基于FPGA的DSP开发技术

正弦发生器模块设计实例

第一步:利用Simulink建立模型文件

7) 添加Delay模块。选中Storage子库下的Delay模块,拖放到 新建模型窗口。设置延迟的周期数时钟相位选择17基于FPGA的DSP开发技术

正弦发生器模块设计实例

第一步:利用Simulink建立模型文件

8) 添加Product(乘法)模块。在AlteraDSPBuilder库中选择Arithmetic子库,找到Product模块。设置乘法模块采用的流水线级数使用参数化模块库实现使用FPGA的专用模块实现18基于FPGA的DSP开发技术

正弦发生器模块设计实例

第一步:利用Simulink建立模型文件

9) 添加端口SinCtrl。在IO&BUS子库,找到AltBus模块,拖 放到新建模型窗口中,修改AltBus模块的名字为SinCtrl。

10)添加端口OUT。在IO&BUS子库,找到AltBus模块,拖放到 新建模型窗口中,修改AltBus模块的名字为Out。19基于FPGA的DSP开发技术选中Saturate选项,则当输出大于最大正值或小于最小负值时,则输出被强制为最大正值或最小负值。20基于FPGA的DSP开发技术

保存文件,完成第一步模型文件的建立

进行第二步——模型仿真21基于FPGA的DSP开发技术

正弦发生器模块设计实例

第二步:利用Simulink进行模型仿真

需要添加激励信号和观察模块

1) 添加Step模块。加入一个Step(阶跃模块),来实现模拟 SinCtrl的按键使能操作。在Simulink基本库中选择Source 子库,把Step模块拖放到Sinout模型窗口中。

2) 添加波形观察模块Scope。在Simulink基本库中选择Sinks子 库,把Scope(示波器)模块拖放到SinOut模型窗口中。模型仿真用的来自AlteraDSPBuilder库外的模块,SignalCompiler不能将其转换成硬件描述语言22基于FPGA的DSP开发技术设置Scope模块的波形观察窗口数23基于FPGA的DSP开发技术

正弦发生器模块设计实例

第二步:利用Simulink进行模型仿真

3) 设置仿真激励信号。在SinOut模型中,只有一个输入端口 SinCtrl,需要设置与之相连的Step模块,双击Step模块, 在弹出的Step模块参数设置对话框中设置对其输入端口 SinCtrl施加的激励。

24基于FPGA的DSP开发技术阶跃时刻(Steptime):Step模块的输出在该时刻发生阶跃,默认值为1,单位为秒。初始值(Initialvalue):在阶跃时刻的之前的Step模块的输出值,默认值为0。终值(Finalvalue):在阶跃时刻之后Step模块的输出值,默认值为1。采样时刻(Sampletime):Step模块输出的采样频率,设为0,在大的和小的时间间隔都进行采样,设成0称作连续采样;设成1的话,则只在大的时间间隔上采样。25基于FPGA的DSP开发技术

正弦发生器模块设计实例

第二步:利用Simulink进行模型仿真

4) 设置仿真参数。在SinOut模型窗口中,单击Simulation菜单,在下拉菜单中选择Simulationparameters,弹出SinOut模型的仿真参数设置对话框。

26基于FPGA的DSP开发技术设置仿真时间,单位秒27基于FPGA的DSP开发技术

正弦发生器模块设计实例

第二步:利用Simulink进行模型仿真

5) 启动仿真,通过Scope窗口观察仿真结果。在SinOut模型窗口中,选中Simulation菜单下的Start项,开始仿真,仿真结束后,双击Scope模块,打开Scope观察窗,即可观察模型仿真结果。

28基于FPGA的DSP开发技术

完成第二步基于Simulink的模型仿真

进行第三步——利用SignalCompiler实现算法到 硬件转化29基于FPGA的DSP开发技术

正弦发生器模块设计实例 第三步:利用SignalCompiler实现算法到硬件转化

1) 模型分析,双击SinOut模型中的”SignalCompiler”图标。

单击”Analyze”按钮,SignalCompiler将会对模型进行分析,检查模型有无错误。如果设计存在错误,将会停止分析过程,并在Matlab软件的命令窗口中给出相关信息。如果设计不存在错误,则在分析结束后打开”SignalCompiler”窗口。30基于FPGA的DSP开发技术

正弦发生器模块设计实例 第三步:利用SignalCompiler实现算法到硬件转化

2) 设置SignalCompiler

工程设置部分文件转化、硬件编译部分信息报告部分31基于FPGA的DSP开发技术

正弦发生器模块设计实例 第三步:利用SignalCompiler实现算法到硬件转化

2) 设置SignalCompiler

选择器件系列:不能指定具体器件型号选择综合器:Mentor的LeonardoSpectrum综合器Synplicity的Synplify综合器Altera的QuartusII优化选择:指定综合、适配过程的优化策略,面积、速度、平衡系统主时钟频率设置系统复位信号设置嵌入式逻辑分析仪设置仿真测试文件生成的选择生成DSP模块的SOPCBuilderPTF文件转换MDL到VHDL,生成一个VerilogHDL的模型和测试文件32基于FPGA的DSP开发技术

正弦发生器模块设计实例 第三步:利用SignalCompiler实现算法到硬件转化

3)模型文件转换成HDL文件

点击“ConvertMDLtoVHDL”的图标,执行mdl模型文件到VHDL文件的转换33基于FPGA的DSP开发技术

正弦发生器模块设计实例 第三步:利用SignalCompiler实现算法到硬件转化

4)综合

单击步骤2-synthesis的图标,执行综合过程。综合过程完成之后,信息框中会给出此项目的一些信息:如器件的系列,使用的逻辑宏单元的数目、触发器的数目、引脚数、RAM容量等34基于FPGA的DSP开发技术

正弦发生器模块设计实例 第三步:利用SignalCompiler实现算法到硬件转化

5)适配

单击步骤3-QuartusIIFitter的图标,调用QuartusII完成编译适配过程,生成编程文件:pof文件和sof文件转化、综合、适配三步也可点击该按钮一步执行35基于FPGA的DSP开发技术

正弦发生器模块设计实例 第三步:利用SignalCompiler实现算法到硬件转化

6)编程

完成转化、综合、适配三步后,“ProgramDevice”图标由不可用变为可用,即可以编程下载了。但程序下载之前,还要做一些必要的仿真:RTL级仿真、时序仿真等36基于FPGA的DSP开发技术

完成第三步:利用SignalCompiler实现算法到硬件转化

进行第四步——利用ModelSim进行RTL级仿真37基于FPGA的DSP开发技术

正弦发生器模块设计实例 第四步:利用ModelSim进行RTL级仿真

Simulink中的模型仿真属于系统级(算法级)仿真,由Mdl文件转化而来的VHDL描述是RTL级的,转换后的代码实现可能与Mdl模型描述的情况不完全相符:需要针对生成的RTL级HDL代码进行RTL级仿真。 当在SignalCompiler设置窗口中的Testbench页中选中”GenerateStimuliforVHDLTestbench”,DSPBuilder在Mdl转换到VHDL的过程中会生成针对HDL仿真器ModelSim的测试文件。

38基于FPGA的DSP开发技术

正弦发生器模块设计实例 第四步:利用ModelSim进行RTL级仿真

仿真方法:

启动ModelSim软件,选择Tools菜单下的ExecuteMacro…,在打开的文件选择对话框中切换到SinOut模型SinOut.mdl文件所在的目录,选择tb_SinOut.tcl,ModelSim执行tb_SinOut.tcl,开启仿真。39基于FPGA的DSP开发技术

正弦发生器模块设计实例 第四步:利用ModelSim进行RTL级仿真

仿真结果显示:

仿真结果默认是以数字形式显示的,为了与Simulink中的仿真结果相比,选中”tb_sinout/outu”,单击右键,在弹出菜单中选择properties…,在出现的waveproperties窗口中设置波形显示方式40基于FPGA的DSP开发技术

正弦发生器模块设计实例 第四步:利用ModelSim进行RTL级仿真

Radix设为Unsigned选中AnalogHeight设为100Scale设为0.441基于FPGA的DSP开发技术

正弦发生器模块设计实例 第四步:利用ModelSim进行RTL级仿真

42基于FPGA的DSP开发技术

完成第四步:利用ModelSim进行RTL级仿真 进行第五步——利用QuartusII进行时序仿真43基于FPGA的DSP开发技术

正弦发生器模块设计实例 第五步:利用QuartusII进行时序仿真 基于ModelSim的RTL级仿真是电路的功能仿真,其仿真结果未反映硬件时序的真实情况:需要进行时序仿真。

SignalCompiler已经生成了利用QuartusII进行时序仿真的激励文件sinout.vec和相关仿真文件sinout_quartus.tcl,可以很容易地在quartusII中实现时序仿真。

44基于FPGA的DSP开发技术

正弦发生器模块设计实例 第五步:利用QuartusII进行时序仿真

仿真方法:

1) 启动quartusII集成开发环境,执行File菜单的OpenProject…的操 作,选择Sinout模型所在的目录,打开DSPBuilder为QuartusII建立 的设计项目——Sinout,并在项目中打开VHDL顶层设计文件 sinout.vhd;

2) 指定器件的具体型号,编译顶层设计文件sinout.vhd;

3) 执行Processing菜单的StartSimulation命令,启动时序仿真。45基于FPGA的DSP开发技术

正弦发生器模块设计实例 第五步:利用QuartusII进行时序仿真46基于FPGA的DSP开发技术

完成第五步:利用QuartusII进行时序仿真 进行第六步——硬件实现与测试47基于FPGA的DSP开发技术

正弦发生器模块设计实例 第六步:硬件实现与测试

1) 根据硬件电路的具体接口方式,如DA芯片,修改生成的VHDL 文件,添加相应的引脚,编译,仿真。

2) FPGA芯片引脚的锁定,编译

3) 编程下载:利用SignalCompiler或QuartusII编程工具

48基于FPGA的DSP开发技术

完成第六步:硬件实现与测试

至此,经过六步操作,已经利用DSPBuilder完整地实现了正弦发生器模块的设计。 下面介绍FPGA硬件测试的一个工具:嵌入式逻辑分析仪SignalTapII49基于FPGA的DSP开发技术

嵌入式逻辑分析仪SignalTapII

传统硬件测试方法的缺点:

1) 缺少空余I/O引脚:设计中器件的选择依据设计规模而定, 通常所选器件的I/O引脚数目和设计的需求是恰好匹配的。

2) I/O引脚难以引出:设计者为减小电路板的面积,大都采用 细间距工艺技术,在不改变PCB板布线的情况下引出I/O引脚 非常困难。

3) 传统的逻辑分析仪价格昂贵:会加重设计方的经济负担。50基于FPGA的DSP开发技术

嵌入式逻辑分析仪SignalTapII ALTERA公司逻辑分析仪SignalTapII的工作原理:

1) 嵌入式逻辑分析仪SignalTapII随设计文件一起下载到目标 芯片中;

2) 嵌入式逻辑分析仪将测得的信号样本暂存于目标芯片的嵌入 式RAM中;

3) 嵌入式逻辑分析仪通过JTAG引脚捕捉目标芯片内部设计者感 兴趣的信号信息,而不影响系统的正常工作。51基于FPGA的DSP开发技术

嵌入式逻辑分析仪SignalTapII ALTERA公司逻辑分析仪SignalTapII的优点:

1) 不增加引脚,使用专门的JTAG引脚;

2)可实现方便简单的探测,不需要担心如何将探测信 息连接到电路板上。

3)内核便宜。52基于FPGA的DSP开发技术

嵌入式逻辑分析仪SignalTapII ALTERA公司逻辑分析仪SignalTapII的缺点:

1) 内核的尺寸限制了FPGA中逻辑资源的使用,同时,波形数据 占用FPGA内部存储器,信号采样的数据量有限以及开发人员 不能采用相应的RAM资源进行工程设计;

2) 内部逻辑分析仪只工作于状态模式,捕获的数据与规定 的时钟同步,而不能提供信号时序关系。53基于FPGA的DSP开发技术

嵌入式逻辑分析仪SignalTapII

使用ALTERA公司逻辑分析仪SignalTapII的具体操作:

1) 打开SignalCompiler转换成的sinout.qpf,选择file菜单, 点击new,在new窗口中选择otherfiles页,选择 SignalTapIIfile,出现SignalTapII编辑窗口。54基于FPGA的DSP开发技术

嵌入式逻辑分析仪SignalTapII将默认的auto_signaltap_0更名为sinoutsignal双击,打开测试信号添加对话框55基于FPGA的DSP开发技术

嵌入式逻辑分析仪SignalTapII56基于FPGA的DSP开发技术

嵌入式逻辑分析仪SignalTapII57基于FPGA的DSP开发技术

嵌入式逻辑分析仪SignalTapII 2) 设置SignalTapII。在SignalTapII的Setup页中,单击全 屏按钮,出现全屏编辑窗口。58基于FPGA的DSP开发技术

嵌入式逻辑分析仪SignalTapII逻辑分析仪的工作时钟设置采用深度设置缓冲模式设置:环形缓冲、分段缓冲环形缓冲有四种触发方式:前触发、中触发、后触发、连续触发;分段触发用于捕捉周期事件触发电平、触发源设置JTAG链设置59基于FPGA的DSP开发技术

嵌入式逻辑分析仪SignalTapII 3) SignalTapII文件存盘通过设置该选项选择是否将嵌入式逻辑分析仪文件编译到工程文件中60基于FPGA的DSP开发技术

嵌入式逻辑分析仪SignalTapII 4) 编译、下载,对工程文件进行编译后,下载到芯片中:可以通过SignalTapII文件对话框的相应功能按钮或Programmer下载工程文件下载区61基于FPGA的DSP开发技术

嵌入式逻辑分析仪SignalTapII 5) 测试分析。点击相应的功能按钮运行逻辑分析仪,测试,分析62基于FPGA的DSP开发技术

嵌入式逻辑分析仪SignalTapII 5) 测试分析。63基于FPGA的DSP开发技术

完成嵌入式逻辑分析仪SignalTapII的介绍64基于FPGA的DSP开发技术

MATLAB/DSPBuilder软件DSPBuilder简介基于DSPBuilder的DSP模块开发流程正弦发生器模块设计实例DSPBuilder层次性设计FIR数字滤波器设计实例层次性设计方法FDATool使用利用MegaCore的设计65基于FPGA的DSP开发技术

DSPBuilder层次性设计

DSPBuilder层次性设计主要用于搭建复杂的DSP系统,方便系统的设计与调试。

DSPBuilder层次性设计的方法:利用DSPBuilder软件工具,将设计好的DSP模型生成子系统(Subsystem),将子系统与其他模块互联构成更大的系统。 子系统可以被任意复制到其他模型文件中,双击子系统图标即可打开子系统源文件,子系统中还可以包含子系统。66基于FPGA的DSP开发技术

MATLAB/DSPBuilder软件DSPBuilder简介基于DSPBuilder的DSP模块开发流程正弦发生器模块设计实例DSPBuilder层次性设计FIR数字滤波器设计实例层次性设计方法FDATool使用利用MegaCore的设计67基于FPGA的DSP开发技术

FIR数字滤波器设计实例

1)FIR滤波器原理

FIR滤波器:FiniteImpulseResponse,有限冲激响应

N-1阶FIR滤波器的系统函数为 其差分方程表达式为3个延迟单元、4个乘法器、4个加法器(一个4输入加法器)68基于FPGA的DSP开发技术

FIR数字滤波器设计实例

2)采用层次性设计的16阶FIR滤波器设计

2-1)设计一个h(0)为0的4阶滤波器

考虑到浮点运算在FPGA实现的复杂性,采用定点运算,并省去小数定标,采用整数运算实现69基于FPGA的DSP开发技术

FIR数字滤波器设计实例

2)采用层次性设计的16阶FIR滤波器设计

2-1)设计一个h(0)为0的4阶滤波器

70基于FPGA的DSP开发技术

FIR数字滤波器设计实例

2)采用层次性设计的16阶FIR滤波器设计

2-2)将设计的h(0)为0的4阶滤波器生成子系统

71基于FPGA的DSP开发技术

FIR数字滤波器设计实例

2)采用层次性设计的16阶FIR滤波器设计

2-3)利用4阶滤波器子系统搭建16阶FIR滤波器

72基于FPGA的DSP开发技术

FIR数字滤波器设计实例

2)采用层次性设计的16阶FIR滤波器设计

2-4)利用FDATool进行滤波器系数的设计

启动FDATool:在MATLAB的命令窗口中输入fdatool回车即可启动,进入滤波器设计界面

73基于FPGA的DSP开发技术

参数设置完毕,点击滤波器设计按钮74基于FPGA的DSP开发技术

75基于FPGA的DSP开发技术

利用FDATool的滤波器性能分析

76基于FPGA的DSP开发技术

利用FDATool的滤波器性能分析

77基于FPGA的DSP开发技术

利用FDATool生成滤波器系数:Analysis-FiterCoefficients

点击量化参数按钮78基于FPGA的DSP开发技术

利用FDATool生成滤波器系数

选择定点计算79基于FPGA的DSP开发技术

利用FDATool生成滤波器系数

80基于FPGA的DSP开发技术

利用FDATool生成滤波器系数——量化误差分析

设置输入、输出参数量化误差分析81基于FPGA的DSP开发技术

利用FDATool生成滤波器系数——导出滤器系数,并转化成整数 点击file菜单的export

82基于FPGA的DSP开发技术

FIR数字滤波器设计实例

2)采用层次性设计的16阶FIR滤波器设计

2-5)将利用FDATool设计的滤波器系数代入到设计的模型文件中,使用SignalCompiler将模型文件转换成VHDL文件,编译、下载,就完成了16阶FIR数字滤波器的设计

83基于FPGA的DSP开发技术

MATLAB/DSPBuilder软件DSPBuilder简介基于DSPBuilder的DSP模块开发流程正弦发生器模块设计实例DSPBuilder层次性设计FIR数字滤波器设计实例层次性设计方法FDAToo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论