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