收藏 分享(赏)

第8章 基于SOPC实现的数字信号处理实验.ppt

上传人:dzzj200808 文档编号:3655223 上传时间:2018-11-15 格式:PPT 页数:87 大小:4.20MB
下载 相关 举报
第8章 基于SOPC实现的数字信号处理实验.ppt_第1页
第1页 / 共87页
第8章 基于SOPC实现的数字信号处理实验.ppt_第2页
第2页 / 共87页
第8章 基于SOPC实现的数字信号处理实验.ppt_第3页
第3页 / 共87页
第8章 基于SOPC实现的数字信号处理实验.ppt_第4页
第4页 / 共87页
第8章 基于SOPC实现的数字信号处理实验.ppt_第5页
第5页 / 共87页
点击查看更多>>
资源描述

1、1,Dr. Zhang JianpingShanghai University of Electric Power Shanghai , 2000902009.5,第8章 基于SOPC实现的数字信号处理实验,2,8.1 开发环境Quartus8.2 正弦信号发生器设计8.3 快速傅里叶变换的实现8.4 直接I型FIR数字滤波器设计 8.5 基于DA算法的FIR滤波器的设计8.6 直接II型IIR数字滤波器设计 8.7 预先考虑算法并行IIR数字滤波器设计8.8 SOPC在语音和图像中的应用,内容提要,3,一、实验目的 二、实验原理 三、实验步骤 四、实验思考题 五、实验报告要求,8.1 开发环

2、境Quartus,4,熟悉SOPC设计流程 熟悉利用Quartus的原理团输入方法设计简单组合电路 学习加法器的设计,一、实验目的,5,本实验设计一个八位加法器,主要由两个四位加法器74283构成,加数A的低4位和高4位分别与两个加法器的A1-A4输入端连接。同样加数B的低4位和高4位分别与两个加法器的B1-B4输入端连接,即加法器间的进位可以串行实现,将低位加法器的进位输出cout与高位加法器的最低进位输入信号cin相接。由此加数A和B有各种不同的组合,从而实现加法器的功能。,二、实验原理,6,选择File New Project Wizard,新建一个工程。,(1)创建新的工程,三、实验步

3、骤,7,选择File New,在弹出的对话框中选中Block Diagram/Schematic File。,(2)原理图输入,三、实验步骤,8,(3)编译,选择Processing Start Compilation或者点击工具栏里的 对图形文件进行编译。,三、实验步骤,9,(4) 仿真,三、实验步骤,10,选择Tools RTL Viewer项观看工程项目的RTL级电路。,(5) RTL级电路,三、实验步骤,11,选择Assignments Assignment Editor项,在编辑器窗的Category栏中选择Pin,锁定引脚。,(6) 引脚锁定,三、实验步骤,12,执行Tools P

4、rogrammer命令,设置编程方式为USB-BlasterUSB-0编程方式,选择JTAG编程模式。执行Processing Start,实现设计电路到目标芯片的编程下载。然后在DE2开发板上通过扳动SW15SW0电平开关,组成加数A和加数B的不同组合,在红色发光二极管LEDR7LEDR0和LEDR8上观察A数和B数相加的和数与向高位的进位COUT的结果。,(7) 编程下载及硬件验证,三、实验步骤,13,四、实验思考题 若想用LED显示加法器的输出结果,原理图应该有那些 地方需要修改?应该怎样设置引脚? 五、实验报告要求 1.写出Quartus II进行图形编辑输入方法的完整设计流程 2.参

5、考Quartus II的Help,详细说明Assignments菜单中 的Settings对话框的功能;概述Assignments菜单中的 Assignment Editor的功能,举例说明; 3.简述设计步骤和调试过程,包括图形编辑文件,引脚 功能的定义文件,仿真结果; 4.简要回答思考题。,8.1 开发环境Quartus,14,8.2 正弦信号发生器设计,一、实验目的 二、实验原理 三、实验步骤 四、实验思考题 五、实验报告要求,15,熟悉SOPC设计流程 熟悉利用Quartus的文本输入方法设计简单正弦信号发生器电路原理 掌握嵌入式存储器的应用以及使用嵌入式逻辑分析仪进行测试的方法 学习

6、宏功能模块实例化输入和简单程序的调试,一、实验目的,16,顶层文件sinewave.vhd在FPGA中实现ROM地址信号发生器的由一个6位计数器,正弦数据存放在ROM中。数据ROM由LPM_ROM模块实现,其底层是FPGA中的M4K。地址发生器的时钟CLK的输入频率与每周期的波形数据点数以及D/A输出频率的关系是 。,二、实验原理,17,创建工程,选择目标芯片,采用文本输入方法,编辑输入设计顶层文件sinewave.vhd。,(1) 创建新的工程,三、实验步骤,18, ROM初始化数据文件有两种:Memory Initialization File(.mif)格式和Hexadecimal(In

7、tel-Format)File(.hex)格式。,(2) 定制ROM初始化数据文件,三、实验步骤,19, Tools-Mega Wizard Plug-In Manager项,在产生的对话框的左栏中选择storage/LPM_ROM,再选择Cyclone器件和VHDL语言方式,最后输入ROM文件的存放路径。,(3) 定制ROM元件,选择地址线数据位宽及地址锁存信号,三、实验步骤,20,指定路径上的数据初始化文件.hex,完成ROM定制,(3) 定制ROM元件,三、实验步骤,21,(4) 编译,三、实验步骤,22,(5) 仿真及RTL级电路,仿真结果,RTL级电路,三、实验步骤,23,(6) 引

8、脚锁定和编程下载,三、实验步骤,24, 步骤 1、 创建SignalTap II(ToolsSignalTap II Logic analyzer ) 2、调入待测信号(双击Node Finder窗口,添加观测信号) 3、参数设置(时钟信号、采样深度 、触发条件 、触发信号和触发方式 ) 4、 SignalTap II文件存盘(File Save As ) 5、编译下载(再次启动全程编译 ) 6、启动SignalTap II(Instance Manager栏中点击单步或连续运行按钮 ),(7) 使用嵌入式逻辑分析仪进行实时测试,三、实验步骤,25,SignalTap II信号观察窗口,(8)

9、 测试结果,三、实验步骤,26,编辑波形数据,查看模拟输出结果,(8) 测试结果,三、实验步骤,27,分析SignalTap II采样得到如图所示的波形图的原因。,四、实验思考题,28,1.写出Quartus II进行文本输入方法的完整设计流程 2.简述定制LMP功能模块的基本过程 3.写出结论和心得体会 4.简要回答思考题,五、 实验报告要求,29,8.3 快速傅里叶变换的实现,一、实验目的 二、实验原理 三、实验方案 四、实验思考题 五、实验报告要求,30,了解基2 FFT实现原理; 掌握用文本输入法进行旋转因子和蝶形处理器的设计; 学习使用Quartus II实现FFT的基本方法与步骤。

10、,一、实验目的,31,本实验采用按时间抽取(decimation in time)的基2快速 傅立叶算法(基2DIT-FFT)。基2 FFT蝶形处理器的实现 需要一个复数加法器、一个复数减法器和一个旋转因子 乘法器。,二、实验原理,32,旋转因子乘法器的实现旋转因子的乘法器通常由4次实数乘法和6次实数加/减法 运算实现,但经过运算的简化,可以只用3次实数乘法和 3次实数加/减法运算实现复数乘法器。,三、实验方案,33,设复数旋转因子乘法R+jI=(X+jY)(C+jS),因为C和S可以 预先计算的,并可以储存在一个表中。所以可以储存下 面的三个系数:C、C+S、C-S 有了这3个预先计算的因子

11、,可以首先计算: E=X-Y和Z=C*E=C* (X-Y) 然后用: R=(C-S)*Y+Z I=(C+S)*X-Z 计算最后的乘积。,旋转因子算法,34,蝶形处理单元的实现 蝶形运算单元是FFT处理器的基本单元,用来计算两点 的FFT。由于蝶形运算单元是由一个复数加法器、一个 复数减法器和一个旋转因子复数乘法器组成,基-2FFT蝶 形运算单元的VHDL代码如下。从代码中可以看出,蝶 形处理器是由一个加法器、一个减法器和一个实例化为 组件的旋转因子乘法器实现的。,35,-基2-FFT蝶形运算单元的VHDL代码实现 LIBRARY Lpm; USE Lpm.Lpm_components.ALL;

12、 LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_arith.ALL; PACKAGE mul_Package IS -User defined components COMPONENT multiplier GENERIC (W2: INTEGER: =17; -multiplier bit widthW1: INTEGER: =9; -Bit width c+s sumW: INTEGER: =8); -Input bit width PORT ( clk: IN STD_LOGIC; x_in, y_in, c_

13、in: IN STD_LOGIC_VECTOR (W - 1 downto 0); -inputs cas_in, css_in: IN STD_LOGIC_VECTOR (W1 - 1 downto 0);-inputs r_out, i_out: OUT STD_LOGIC_VECTOR (W - 1 downto 0);-results END COMPONENT; END mul_package; LIBRARY work; USE work.mul_package.ALL; LIBRARY lpm; USE Lpm.Lpm_components.ALL;LIBRARY ieee;,旋

14、转因子VHDL代码,36,USE ieee.std_logic_1164.ALL; USE ieee.std_logic_arith.ALL; ENTITY bf IS GENERIC (W2: INTEGER: =17; -multiplier bit widthW1: INTEGER: =9; -Bit width c+s sumW: INTEGER: =8); -Input bit width PORT ( clk :IN STD_LOGIC; Are_in, Aim_in, Bre_in, Bim_in, c_in : IN STD_LOGIC_VECTOR (W - 1 downto

15、 0); cas_in, css_in : IN STD_LOGIC_VECTOR (W1 - 1 downto 0); Dre_out, Dim_out, Ere_out, Eim_out: OUT STD_LOGIC_VECTOR (W - 1 downto 0); END bf; Dim_out=Dim; Ere_out=Ere; Eim_out=Eim; END PROCESS; END a; ARCHITECTURE a OF bf IS SIGNAL r, i : STD_LOGIC_VECTOR (W -1 DOWNTO 0); SIGNAL Dre, Dim, Ere, Eim

16、: STD_LOGIC_VECTOR (W-1 DOWNTO 0); BEGIN multiplier_1: multiplier -r+ji,37,GENERIC MAP (W2=W2, W1=W1, W=W) PORT MAP (clk=clk, x_in=Bre_in, y_in=Bim_in,c_in=c_in, cas_in=cas_in,css_in=css_in, r_out=r, i_out=i); sub_1:lpm_add_sub GENERIC MAP (LPM_WIDTH=W, LPM_DIRECTION=“SUB“,LPM_REPRESENTATION=“SIGNED

17、“) PORT MAP (dataa=Are_in, datab=r, result=Dre); sub_2:lpm_add_sub GENERIC MAP (LPM_WIDTH=W, LPM_DIRECTION=“SUB“,LPM_REPRESENTATION=“SIGNED“) PORT MAP (dataa=Aim_in, datab=i, result=Dim); add_1:lpm_add_sub GENERIC MAP (LPM_WIDTH=W, LPM_DIRECTION=“ADD“, LPM_REPRESENTATION=“SIGNED“) PORT MAP (dataa=Ar

18、e_in, datab=r, result=Ere); add_2:lpm_add_sub GENERIC MAP (LPM_WIDTH=W, LPM_DIRECTION=“ADD“, LPM_REPRESENTATION=“SIGNED“) PORT MAP (dataa=Aim_in, datab=i, result=Eim); PROCESS BEGIN WAIT UNTIL clkevent and clk=1; Dre_out=Dre;,38,旋转因子仿真结果,计算仿真结果,39,计算仿真结果,基2FFT的仿真结果,40,利用Matlab对本实验的结果验证 在Matlab中输入: p

19、= 20+30i, 50+45i; y= fft2(p) disp(y) 计算结果是: y =70.0000 +75.0000i -30.0000 -15.0000i 即对输入A=20+j30、B=50+j45进行FFT结果为40+j 60,与 仿真结果20+ j 30对比,结果是相符的。,结果验证,41,四、实验思考题 分析Matlab结果与QuartusII仿真结果为什么不同?五、实验报告要求 简述实验原理及关键步骤。 总结实验所得主要结论。 总结调试时遇到的问题以及解决方案。 简要回答实验思考题。,8.3 快速傅里叶变换的实现,42,8.4 直接I型FIR数字滤波器设计,一、实验目的 二

20、、实验原理 三、实验方案 四、实验思考题 五、实验报告要求,43,了解FIR数字滤波器的基本原理; 熟悉DSP Builder/ Matlab 的SOPC设计流程; 学习使用Matlab/ Simulink、ModelSim以及Quartus II设计仿真FIR的基本方法与步骤。,一、实验目的,44,二、实验原理,直接I型 5阶FIR滤波器 信号流图,45,建立Simulink模型,三、实验方案,46,系统级仿真,三、实验方案,可以看出 设计的低 通滤波器 的滤波效 果非常好,47,ModelSim 波形仿真,三、实验方案,使用ModelSim进行RTL仿真,48,使用ModelSim进行RT

21、L仿真,三、实验方案,ModelSim 模拟输出结果,49,使用Quatus II进行时序仿真,三、实验方案,Quatus II 时序仿真结果,50,1. 使用ModelSim进行功能仿真时,对于输入输出信号,在属性对话框应设置怎样的参数参能较好的观察模拟波形? 2. 利用DSP Builder安装路径DSP Builderdesign examples demos Filters DA32中给出的32阶固定系数FIR滤波器文件AltrFir32.mdl,利用各种信号源进行仿真测试,并对测试结果进行分析。(注:DAFIRDistributed Arithmetic FIR),四、实验思考题,5

22、1,1. 说明Matlab、DSP Builder、ModelSim和Quartus II间的关系。 2. 说明手动流程中能完成那几个层次的方针,各有什么作用? 3. 根据以上实验要求和实验内容,记录并分析所以实验结果。,五、实验报告要求,52,8.5 基于DA算法的FIR滤波器的设计,一、实验目的 二、实验原理 三、实验方案 四、实验思考题 五、实验报告要求,53,学习分布式算法; 学习分布式算法应用于FIR滤波器设计; 进一步掌握Quartus II进行仿真的基本方法与步骤。,一、实验目的,54,二、实验原理,分布式算法算法(distributed arithmetic,DA)是一项重要的

23、FPGA技术,广泛应用与乘积和中。进一步假设系数cn是已知常数,xn是变量。无符号DA系统架设变量xn的表达式为:xn表示x的第n次采样,内积y可以表示为:,55,DA算法的主要特点是:巧妙地利用ROM查找表将固定系数的乘-累加 (multiply-accumulate,MAC)运算转化为查表操作,运算速度不随系数 和输入数据位数的增加而降低, 且相对直接实现乘法器而言在 硬件规模上得到了极大的改善。分布式算法FIR实现,二、实验原理,56,对顶层文件VHDL代码进行编译、仿真,结果如下:,三、实验方案,57,四、实验思考题 考虑有符号的DA FIR滤波器的实现方法。五、实验报告要求 根据以上

24、实验原理和方案,掌握DA算法的应用; 记录并分析所有试验结果,完成实验报告。,8.5 基于DA算法的FIR滤波器的设计,58,8.6 直接II型IIR数字滤波器设计,一、实验目的 二、实验原理 三、实验方案 四、实验思考题 五、实验报告要求,59,了解IIR数字滤波器的基本原理; 掌握基于DSP Builder的SOPC设计流程; 学习使用Matlab/ Simulink、ModelSim以及Quartus II设计仿真IIR的基本方法与步骤。,一、实验目的,60,二、实验原理,直接II型 4阶IIR滤波器 信号流图,61,建立Simulink模型,三、实验方案,62,建立Simulink模型

25、,三、实验方案,63,系统级仿真,三、实验方案,设计的 IIR滤波 器的滤 波效果 非常好,64,ModelSim 波形仿真,三、实验方案,使用ModelSim进行RTL仿真,65,使用ModelSim进行RTL仿真,三、实验方案,ModelSim 模拟输出,66,使用Quatus II进行时序仿真,三、实验方案,Quatus II 时序仿真 结果,67,四、实验思考题 简述FIR与IIR滤波器的区别。 五、实验报告要求 完成一个4阶级联型IIR滤波器的设计; 根据设计原理和方案,设置模型中各模块参数; 记录并分析所有试验结果,完成实验报告。,8.6 直接II型的IIR滤波器的设计,68,8.

26、7 预先考虑算法并行IIR数字滤波器设计,一、实验目的 二、实验原理 三、实验方案 四、实验思考题 五、实验报告要求,69,了解有耗积分器的基本原理; 掌握IIR系统的差分方程; 学习预先考虑算法并行IIR滤波器的设计方法。,一、实验目的,70,二、实验原理,有耗积分器,预先考虑算法的有耗积分器,71,二、实验原理,两通道并行IIR滤波器,72,预先考虑算法的并行IIR滤波器实现的顶层文件 VHDL代码,进行综合编译,建立仿真文件,设 置仿真参数,查看仿真结果,三、实验方案,并行IIR滤 波器对脉冲 1000响应的 VHDL仿真,73,三、实验方案,并行IIR滤波器对阶跃100响应的VHDL仿

27、真,74,应用Matlab/DSP Builder集合Simulink其他库中的元件,建 立有耗积分器的模型。,三、实验方案,75,分别选择脉冲和阶跃激励,设置与实验方案对应的参数, 进行仿真,查看系统级仿真结果。,三、实验方案,脉冲响应 阶跃响应,76,四、实验思考题 简述并行实现IIR滤波器的优点与缺点。五、实验报告要求 根据以上原理和方案,验证有耗积分器和预先考虑的有耗积分器算法速度的差别; 记录并分析所有试验结果,完成实验报告。,8.7 预先考虑算法并行IIR数字滤波器设计,77,8.8 SOPC在语音和图像中的应用,一、实验目的 二、实验原理 三、实验方案 四、实验思考题 五、实验报

28、告要求,78,根据电子琴的实现过程了解SOPC在语音和图像领域的应用; 熟悉DE2开发板的各个模块的作用;,一、实验目的,79,二、实验原理,电子琴的 模型,80,该模型有DEMO_SOUND,PS2_KEYBOARD, STAFF,和TONE_GENERATOR四个主要模 块,DEMO_SOUND模块存储示例音乐; PS2_KEYBOARD是设计者通过PS/2键盘输入; STAFF模块显示出按键按下时VGA监视器所显 示的键盘表;TONE_GENERATOR是音乐合成 器SOC的核心。,二、实验原理,81,安装DE2示例 首先将文件夹 DE2_demonstrations拷贝 到你的工作目录

29、下,然后 打开DE2_demonstrations 文件夹的fixpaths子文件 夹,运行DE2_fixpaths.bat 批处理文件,接着选择 DE2_demonstrations文件 夹的安放路径,最后 fixpaths完毕,按任意键 退出,即安装成功。,三、实验方案,82,DE2出厂配置DE2开发板出厂时的默认配置包含了板子的基本特 征。配置的Verilog源代码在DE2_Default文件夹, 其中顶层文件DE2_Default.v可以作为本工程的一 个模块,因为它定义了所有Cyclone II FPGA上的 用户访问引脚的端口。,三、实验方案,83,3. DE2开发板外接电路,三、实验方案,84,4. 编译下载 建立工程,添加所需的.VHD文件,然后对 顶层文件进行全程编译,仿真并查看仿真 结果,最后把DE2_Synthesizer.sof文件下载 到开发板上,按DE2 开发板上的KEY1键开 始示例音乐,按 DE2 开发板上的KEY0 键 重置电路。,三、实验方案,85,开关和按钮的用途,三、实验方案,86,四、实验思考题 根据DE2开发板提供的资源,和个人兴趣爱好开发 相关音频视频功能。 五、实验报告要求 根据实验原理和实验步骤开发电子琴功能,并用键盘键入自己喜爱的曲目; 写出结论和心得体会; 完成实验报告。,8.8 SOPC在语音和图像中的应用,87,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报