第7章基于FPGA的DSP开发

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第7章基于FPGA的DSP开发设计在基于FPGA的DSP开发中,Altera提出了基于FPGA的DSP开发平台。这样设计效率大为提高。由Altera与其合作伙伴AMPP(AlteraMegafunctionPartnerProgram)提供了针对DSP设计的各种用于硬件加速的IP核。每一个核都可以进行参数设置,以构成针对特定应用的硬件功能模块。7.1概述在过去很长一段时间,DSP处理器是DSP应用系统核心器件的惟一选择。但DSP处理器由于自身硬件结构的特点,不适合于要求能进行结构特性随时变更的应用场合,在灵活处理各种算法时存在不足之处。主要表现在:其硬件结构的不可变性导致了其总线的不可改变性。而固定的数据总线宽度,已成为DSP处理器一个难以突破的瓶颈。DSP处理器大量运算顺序指令,需要耗费较多的时钟周期,使算法的处理达不到实时性要求。在硬件加速方面,DSP无法根据特定的设计需要来作任何更改,特别是面向当今不断发生的各种技术标准和协议的变更。使用固定的数字信号处理器,需要较多的外设,不利于集成度的提高。7.2DSPBuilder功能简介与设计流程DSPBuilder是Altera公司在2002年推出的面向DSP的开发工具。它将MATLAB的Simulink和QuartusII开发软件连接起来。设计人员首先在Matlab软件中进行算法设计,然后在Simulink软件中进行系统集成,最后将设计转换为硬件描述语言(HDL)文件,利用QuartusII软件中进行综合、编译仿真和硬件测试。7.2.1DSPBuilder功能简介DSPBuilder开发平台具有一个友好的开发环境。它可以帮助设计人员创建一个DSP设计的硬件模型,以此来缩短DSP开发的周期。DSPBuilder开发平台将Matlab的Simulink模块与Altera的DSPBuilder模块和Altera的MegaCore功能模块组合在一起,从而使系统级的设计和DSP算法的实现连接在一起。7.2.2DSPBuilder设计流程DSPBuilder设计首先在Simulink中建立设计模型。设计模型建立之后,DSPBuilder将设计转换为VerilogHDL或VHDL硬件描述语言。随后,DSPBuilder调用QuartusII的相关功能完成综合、布局布线等工作,还可使用SignalTapII在DSPBuilder中在线调试。利用DSPBuilder完成DSP应用设计的设计流程,如图7.1所示。7.3基于DSPBuilder技术的设计示例——调幅电路DSPBuilder技术和Matlab/Simulink技术相结合,可以用图形化模式方便、清晰地建立DSP处理系统的模型,并在Matlab环境中进行算法及仿真。本节以调幅电路的设计为例,介绍这种设计方法。7.3.1在Matlab/Simulink中建立算法模型根据调幅电路的工作原理,建立设计框图,如图7.2所示。7.3.2准备工作在使用DSPBuilder技术做设计之前,需要做一些准备工作。具体步骤如下:7.3.3在新模型窗口中添加单元模块接着就需要根据设计原理图在新模型窗口中添加单元模块,对模块进行参数设置以符合需要。设计中的绝大部分模块都能在库中找到,一些特定模块可以自己设计。下面是本例中添加单元模块的步骤:7.3.4在Simulink环境中仿真Simulink仿真只是理论上的仿真,和实际电路无关。为了完成设计还需要转换成VHDL语言,在FPGA开发软件上做进一步仿真。7.3.5在Modelsim环境中进行功能仿真上一节在Simulink中进行的仿真是属于系统验证性质的仿真,仅仅是对模型文件进行的算法级仿真,并没有对生成的VHDL代码进行过仿真。事实上,生成的VHDL程序是RTL级的,具有针对具体的硬件结构的特点。转换后的VHDL代码实现可能与mdl模型描述的情况不尽相符,针对生成的RTL级的VHDL代码进行功能仿真才是准确的。7.3.6在QuartusⅡ环境中进行时序仿真上面Modelsim完成的只是功能性仿真,要想更精确地反映设计的硬件特性,还是要在QuartusⅡ环境中进行时序仿真。具体步骤如下:7.4基于DSPBuilder的层次化设计——FIR滤波器在设计复杂系统时,常常把复杂系统分解成若干子系统,以便于设计和调试。DSPBuilder技术支持这种层次化设计,可以把设计好模型作为子系统和其他模型集成到一起,组成复杂系统。本节以一个FIR(FiniteImpulseResponse:有限冲激响应)滤波器设计为例,详细介绍层次化设计的方法。7.4.1FIR滤波器的原理FIR滤波器在数字通信系统中被大量使用,以实现各种各样的功能,如低通滤波、带通滤波、抗混叠、抽样和内插等。FIR滤波器的冲激响应总是有限长的,其系统函数可以记为10)()(NnnznhZH7.4.2建立系统设计模型与上一节类似,先建立工作库myfir,启动Matlab环境,把Matlab当前的工作目录切换到工作库文件夹myfir下。打开新模型窗口中,创建新模型文件myfir.mdl。接下来的步骤如下:7.4.3建立子系统的模型双击上面multadd14模块,打开子系统界面,如图7.37所示。7.4.4在Simulink和Modelsim中仿真完成模型设计之后,可以先在Simulink中对模型进行仿真,检验设计结果是否正确,仿真步骤如下。7.5MegacoreFunction函数的使用为了简化设计和缩短测试时间,Altera提供了许多可设置参数的IPMegacore函数。允许用户在获取特许文件之前,在硬件和仿真时,下载和评估AlteraMegacore函数。7.5.1安装Megacore函数AlteraDSPBuilder函数和QuartusⅡ软件一起安装。在安装新的Megacore函数后,需要运行DSPBuilder设置命令。以确定所有新安装的或升级的Megacore函数在DSPBuilder库中。遵循如下步骤:(1)启动MatlabSimulink软件。(2)在Matlab命令窗的提示符下使用cd命令,进入安装DSPBuilder的目录下。(3)在Matlab命令窗的提示符下,键入alt_dspbuilder_setup_megacore,再回车。7.5.2使用Megacore函数的设计流程在MATLAB/Simulink环境中,使用Megacore函数进行仿真的步骤如下:(1)把Megacore函数模块添加到设计模型中,给该模块取名字,确保名字的唯一性。(2)对Megacore函数进行参数设置。(3)生成新的Megacore函数。(4)把新的Megacore函数和模型中的其他模块相连接。(5)在设计模型中对该新的Megacore函数进行仿真。7.5.3使用Megacore函数设计FIR滤波器在本节,使用Megacore函数库中的fircompiler函数模块来设计一个低通FIR滤波器,以此为例,介绍Megacore函数的使用方法。1.创建新的Simulink设计模型2.把FIRCompiler函数添加到你的模型中3.对FirCompiler函数进行参数设置4.添加其它模块,构成系统模型5.在Simulink上仿真6.对设计进行编译7.执行RTL仿真7.6小结在本章中,主要向用户讲解了关于基于FPGA的DSP开发步骤及其方法。其中,主要介绍了DSPBuilder的功能与设计流程、滤波器原理和MegacoreFunction函数的使用方法等。通过本章的学习,用户能够更好地使用DSPBuilder进行开发与设计。

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功