《 E D A 技 术》 课 程 教 学 讲授:伍宗富 湖南文理学院电气与信息工程学院 2017年3月22日星期三
第 十三 讲 基于FPGA的DSP开发技术 教学目的:使学生会用Quartus II和DSP Builder软件设计 教学方法:讲授法、计算机辅助法。 课时计划:2学时 使用教材: SOPC技术与应用.江国强 编著.北京:机械工业出版社 主要参考文献: [1] 刘洪涛.ARM嵌入式体系结构与接口技术[M].北京:人民邮电出版社 [2] 田耘等.无线通信FPGA设计[M].北京:电子工业出版社 [3] 孟宪元等.FPGA嵌入式系统设计教程[M].北京:电子工业出版社 [4] 徐光辉等.基于FPGA的嵌入式开发与应用[M].北京:电子工业出版社 [5] 沈文斌.嵌入式硬件系统设计与开发实例详解[M].北京:电子工业出版社 [6] 周立功等.SOPC嵌入式系统基础教程[M].北京:北京航空航天大学出版社 [7] 王彦等.基于FPGA的工程设计与应用[M].西安:西安电子工业出版社 [8] 周润景等.基于QuartusII的FPGA/CPLD数字系统设计实例[M].北京:电子工业出版社 [9] http://www.altera.com
课题:基于FPGA的DSP开发技术 一、Matlab/DSP Builder的DSP模块设计 二、 基于Quartus II的DSP模块调试 四、课堂小结 五、作业
一、Matlab/DSP Builder的DSP模块设计 DSP Builder是一个系统级(或算法级)设计工具,依赖于MathWorks公司的数学分析工具Matlab/Simulink,在Simulink中进行图形化设计和仿真,通过SignalCompiler可以把Matlab/Simulink的设计文件(.mdl)转成相应的硬件描述语言VHDL设计文件(.vhd),再由FPGA/CPLD开发工具Quartus II来完成。 DSP Builder设计流程如下: 第一步在Matlab/Simulink中进行设计输入,即在Matlab的Simulink环境中建立一个mdl模型文件,用图形方式调用Altera DSP Builder和其它Simulink库中的图形模块(Block),构成系统级或算法级设计框图(或称Simulink设计模型)。 第二步利用Simulink强大的图形化仿真、分析功能,分析此设计模型的正确性,完成模型仿真。 第三步通过SignalCompiler把Simulink的模型文件(后缀为.mdl)转化成通用的硬件描述语言VHDL文件(后缀为.vhd)。 第四步用Quartus II 、ModelSim对以上设计产生的VHDL的RTL代码和仿真文件进行综合、编译适配以及仿真。
一、Matlab/DSP Builder的DSP模块设计 2.基于FPGA的DSP系统的系统结构可重配置方法 由于不同的配置文件下载于FPGA后,将能获得不同的硬件结构和硬件功能,基于FPGA的DSP系统的系统结构可重配置方法有: (1) 将多个配置文件预先存储在DSP系统的ROM中,系统根据实际需要自动选择下载的配置文件。缺点是配置文件数有限。 (2) 将配置文件全部预存在大存储器中,或PC机中,由外围系统选择下载配置文件。 (3) 通过无线遥控方式,对远处的DSP应用系统进行配置,从而遥控改变功能模块或系统的硬件结构,达到改变技术指标和硬件工作方式的目的。 (4) 通过互联网进行配置,实现远程硬件结构控制。
一、Matlab/DSP Builder的DSP模块设计 1)建立Matlab设计模型 (Model); 注:首先要放置SignalCompiler图标(编译控制符号)
一、Matlab/DSP Builder的DSP模块设计
一、Matlab/DSP Builder的DSP模块设计 3)使用SignalCompiler进行模型文件的转换;
二、基于Quartus II的DSP模块调试 基于硬件描述语言的数字系统设计步骤 1)创建工程和编辑设计文件 (1)新建一个文件夹; (2)输入源程序; (3)文件存盘。 2)创建工程 (1)打开建立新工程管理窗; ( 2)将设计文件加入工程中; ( 3)选择仿真器和综合器类型; ( 4)选择目标芯片; (5)结束设置。 3)编译前设置 ( 1)选择目标芯片; ( 2)选择目标器件编程配置方式; ( 3)选择输出配置; ( 4)选择目标器件闲置引脚的状态; (5)编译模式的选择 4)编译 5)波形仿真 6)引脚锁定、编译和下载
二、基于Quartus II的DSP模块调试 1. 对DSP Builder 生成的工程文件进行编译
二、基于Quartus II的DSP模块调试 3. 硬件实现与测试 (1)引脚锁定; 与目标芯片的引脚连接关系表 (2)下载设计文件; (3)硬件验证设计电路。 注:输出需接并行D/A变换的数据输入端。
二、基于Quartus II的DSP模块调试 示例:正弦信号调制电路应用(输出接DAC0832) 第一步:基于DSP Builder设计模型与Quartus文件转换 阶梯信号发生器模块产生26=64个线性递增的地址数据 正弦函数:sin([起始值:步进值:结束值]) 变化范围-127~+127:127*sin(0:2*pi/2^6):2pi]) 变化范围0~255:128+127*sin(0:2*pi/2^6):2pi])
二、基于Quartus II的DSP模块调试 示例:正弦信号调制电路应用(输出接DAC0832) 第一步:基于DSP Builder设计模型与Quartus文件转换 Initial seed用于设置起始值 Variance用于设置偏差 Mean设置随机函数的平均值 Scope”Parameters”(参数设置)中“Number of axes”参数为“2”表示双踪示波器
二、基于Quartus II的DSP模块调试 示例:正弦信号调制电路应用(输出接DAC0832) 第一步:基于DSP Builder设计模型与Quartus文件转换
二、基于Quartus II的DSP模块调试 示例:正弦信号调制电路应用(输出接DAC0832) 第二步:基于Quartus II的工程编译与调试
三、DSP Builder的层次设计 DSP Builder的层次设计是利用DSP Builder软件工具,将设计好的DSP模型生成子系统(SubSystem),这个子系统是单个元件,可以独立工作,也可以与其他模块或子系统构成更大的设计模型,还可以作为基层模块,被任意复制到其他设计模型中。 命令:“Create subsystem”
课堂小结 一、Matlab/DSP Builder的DSP模块设计 二、 基于Quartus II的DSP模块调试 (“Create subsystem”的应用)
课外作业: 试设计一个可控正弦信号发生器。 课外作业: 试设计一个可控正弦信号发生器。