基于SOPC实现的数字信号处理实验.ppt_第1页
基于SOPC实现的数字信号处理实验.ppt_第2页
基于SOPC实现的数字信号处理实验.ppt_第3页
基于SOPC实现的数字信号处理实验.ppt_第4页
基于SOPC实现的数字信号处理实验.ppt_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

Dr. Zhang Dr. Zhang JianpingJianping Shanghai University of Electric PowerShanghai University of Electric Power Shanghai , 200090Shanghai , 200090 2009.52009.5 第第8 8章章 基于基于SOPCSOPC实现的数字信号处理实验实现的数字信号处理实验 1 8.1 8.1 开发环境开发环境QuartusQuartus 8.2 8.2 正弦信号发生器设计正弦信号发生器设计 8.3 8.3 快速傅里叶变换的实现快速傅里叶变换的实现 8.4 8.4 直接直接I I型型FIRFIR数字滤波器设计数字滤波器设计 8.5 8.5 基于基于DADA算法的算法的FIRFIR滤波器的设计滤波器的设计 8.6 8.6 直接直接IIII型型IIRIIR数字滤波器设计数字滤波器设计 8. 8.7 7 预先考虑算法并行预先考虑算法并行IIRIIR数字滤波器设计数字滤波器设计 8.8 SOPC8.8 SOPC在语音和图像中的应用在语音和图像中的应用 内容提要 2 一、实验目的 二、实验原理 三、实验步骤 四、实验思考题 五、实验报告要求 8.1 开发环境开发环境QuartusQuartus 3 熟悉SOPC设计流程 熟悉利用Quartus的原理团输入方法设计 简单组合电路 学习加法器的设计 一、实验目的 4 本实验设计一个八位加法器,主要由两个四位加 法器74283构成,加数A的低4位和高4位分别与两个加 法器的A1-A4输入端连接。同样加数B的低4位和高4位 分别与两个加法器的B1-B4输入端连接,即加法器间 的进位可以串行实现,将低位加法器的进位输出cout 与高位加法器的最低进位输入信号cin相接。由此加 数A和B有各种不同的组合,从而实现加法器的功能。 二、实验原理 5 选择File New Project Wizard,新建一个工程。 (1)创建新的工程三、实验步骤 6 选择选择 File New,在弹弹出的对话对话 框中选选中Block Diagram/Schematic File。 (2)原理图输入 三、实验步骤 7 (3)编译 选择选择 Processing Start Compilation或者点击击工具栏栏 里的 对图对图 形文件进进行编译编译 。 三、实验步骤 8 (4) 仿真 建立波形文件 输入信号节点 设置波形参数 编辑输入信号 运行仿真 三、实验步骤 9 选择选择 Tools RTL Viewer项观项观 看工程项项目的RTL级电级电 路。 (5) RTL级电路 三、实验步骤 10 选择选择 Assignments Assignment Editor项项,在编辑编辑 器 窗的Category栏栏中选择选择 Pin,锁锁定引脚。 (6) 引脚锁定三、实验步骤 11 执执行Tools Programmer命令,设设置编编程方式为为USB-BlasterUSB-0 编编程方式,选择选择 JTAG编编程模式。执执行Processing Start,实现设实现设 计电计电 路到目标标芯片的编编程下载载。然后在DE2开发板上通过扳动SW15 SW0电平开关,组成加数A和加数B的不同组合,在红色发光二极 管LEDR7LEDR0和LEDR8上观察A数和B数相加的和数与向高位 的进位COUT的结果。 (7) 编程下载及硬件验证三、实验步骤 12 四、实验思考题 若想用LED显示加法器的输出结果,原理图应该有那 些 地方需要修改?应该怎样设置引脚? 五、实验报告要求 1.写出Quartus II进进行图图形编辑输编辑输 入方法的完整设计设计 流程 2.参考Quartus II的Help,详细说详细说 明Assignments菜单单 中 的Settings对话对话 框的功能;概述Assignments菜单单中的 Assignment Editor的功能,举举例说说明; 3.简简述设计设计 步骤骤和调试过调试过 程,包括图图形编辑编辑 文件, 引脚 功能的定义义文件,仿真结结果; 4.简简要回答思考题题。 8.1 开发环境开发环境QuartusQuartus 13 8.2 正弦信号发生器设计 一、实验目的 二、实验原理 三、实验步骤 四、实验思考题 五、实验报告要求 14 熟悉SOPC设计流程 熟悉利用Quartus的文本输入方法设计简单正 弦信号发生器电路原理 掌握嵌入式存储器的应用以及使用嵌入式逻辑 分析仪进行测试的方法 学习宏功能模块实例化输入和简单程序的调试 一、实验目的 15 顶层顶层 文件sinewave.vhd在FPGA中实现实现 ROM地址信号 发发生器的由一个6位计计数器,正弦数据存放在ROM中。数据 ROM由LPM_ROM模块实现块实现 ,其底层层是FPGA中的M4K。 地址发发生器的时钟时钟 CLK的输输入频频率与每周期的波形数据点 数以及D/A输输出频频率的关系是 。 二、实验原理 16 创建工程,选择目标芯片,采用文本输入方法,编辑输入 设计顶层文件sinewave.vhd。 (1) 创建新的工程 三、实验步骤 17 ROM初始化数据文件有两种:Memory Initialization File(.mif)格式和Hexadecimal(Intel-Format) File(.hex)格式。 (2) 定制ROM初始化数据文件 实现方法 选择File New Other Files Memory Initialization File, 将波形数据填 入此表中,即 .mif数据。 利用C程序编 辑产生.mif文 件或利用汇编 程序编辑,然后 用单片机ASM 编辑器产生.hex 格式文件 利用Dspbuilder /Matlab的工具 来产生,在其 数据文件目录 中就可以找到 .mif和.hex格式 文件 三、实验步骤 18 Tools-Mega Wizard Plug-In Manager项,在产生的对 话框的左栏中选择storage/LPM_ROM,再选择 Cyclone器件和VHDL语言方式,最后输入ROM文件 的存放路径。 (3) 定制ROM元件 选择地址线数据位宽及地址锁存信号 三、实验步骤 19 指定路径上的数据初始化文件.hex,完成ROM定 制 (3) 定制ROM元件三、实验步骤 20 (4) 编译三、实验步骤 21 (5) 仿真及RTL级电路 仿真结果 RTL级电路 三、实验步骤 22 (6) 引脚锁定和编程下载三、实验步骤 23 步骤 1、 创建SignalTap II(ToolsSignalTap II Logic analyzer ) 2、调入待测信号(双击Node Finder窗口,添加观测信号) 3、参数设置(时钟信号、采样深度 、触发条件 、触发信 号和触发方式 ) 4、 SignalTap II文件存盘(File Save As ) 5、编译下载(再次启动全程编译 ) 6、启动SignalTap II(Instance Manager栏中点击单步或连 续运行按钮 ) (7) 使用嵌入式逻辑分析仪进行实时测试 三、实验步骤 24 SignalTap II信号观观察窗 口 (8) 测试结果 三、实验步骤 25 编辑波形数据,查看模拟输出结果 (8) 测试结果 三、实验步骤 26 分析SignalTap II采样得到如图所示的波形图的原因 。 四、实验思考题 27 1.写出Quartus II进行文本输入方法的完整设计流 程 2.简述定制LMP功能模块的基本过程 3.写出结论和心得体会 4.简要回答思考题 五、 实验报告要求 28 8.3 快速傅里叶变换的实现 一、实验目的 二、实验原理 三、实验方案 四、实验思考题 五、实验报告要求 29 了解基2 FFT实现原理; 掌握用文本输入法进行旋转因子和蝶形处理 器的设计; 学习使用Quartus II实现FFT的基本方法与步 骤。 一、实验目的 30 本实验采用按时间抽取(decimation in time)的基2快 速 傅立叶算法(基2DIT-FFT)。基2 FFT蝶形处理器的实 现 需要一个复数加法器、一个复数减法器和一个旋转因 子 乘法器。 二、实验原理 31 旋转因子乘法器的实现 旋转因子的乘法器通常由4次实数乘法和6次实数加/减 法 运算实现,但经过运算的简化,可以只用3次实数乘法 和 3次实数加/减法运算实现复数乘法器。 三、实验方案 32 设复数旋转因子乘法R+jI=(X+jY)(C+jS),因为C和S可 以 预先计算的,并可以储存在一个表中。所以可以储存下 面的三个系数: C、C+S、C-S 有了这3个预先计算的因子,可以首先计算: E=X-Y和Z=C*E=C* (X-Y) 然后用: R=(C-S)*Y+Z I=(C+S)*X-Z 计算最后的乘积。 旋转因子算法 33 蝶形处理单元的实现 蝶形运算单元是FFT处理器的基本单元,用来计算两点 的FFT。由于蝶形运算单元是由一个复数加法器、一个 复数减法器和一个旋转因子复数乘法器组成,基-2FFT 蝶 形运算单元的VHDL代码如下。从代码中可以看出,蝶 形处理器是由一个加法器、一个减法器和一个实例化为 组件的旋转因子乘法器实现的。 34 -基2-FFT蝶形运算单元的VHDL代码实现 LIBRARY Lpm; USE Lpm.Lpm_components.ALL; 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 width W1: INTEGER: =9; -Bit width c+s sum W: INTEGER: =8); -Input bit width PORT ( clk: IN STD_LOGIC; x_in, y_in, c_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; 旋转因子VHDL代码 35 USE ieee.std_logic_1164.ALL; USE ieee.std_logic_arith.ALL; ENTITY bf IS GENERIC (W2: INTEGER: =17; -multiplier bit width W1: INTEGER: =9; -Bit width c+s sum W: 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 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_outW2, 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“) 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=Are_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; 37 旋转因子仿真结果 计算仿真结果 38 计算仿真结果 基2FFT的仿真结果 39 利用Matlab对本实验的结果验证 在Matlab中输入: p= 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对比,结果是相符的。 结果验证 40 四、实验思考题 分析Matlab结果与QuartusII仿真结果为什么不同 ? 五、实验报告要求 简述实验原理及关键步骤。 总结实验所得主要结论。 总结调试时遇到的问题以及解决方案。 简要回答实验思考题。 8.3 快速傅里叶变换的实现 41 8.4 直接I型FIR数字滤波器设计 一、实验目的 二、实验原理 三、实验方案 四、实验思考题 五、实验报告要求 42 了解FIR数字滤波器的基本原理; 熟悉DSP Builder/ Matlab 的SOPC设计流程; 学习使用Matlab/ Simulink、ModelSim以及 Quartus II设计仿真FIR的基本方法与步骤。 一、实验目的 43 二、实验原理 直接I型 5阶FIR滤波器 信号流图 44 建立Simulink模型 三、实验方案 45 系统级仿真 三、实验方案 可以看 出 设计的 低 通滤波 器 的滤波 效 果非常 好 46 ModelSi m 波形仿 真 三、实验方案 使用ModelSim进行RTL仿真 47 使用ModelSim进行RTL仿真 三、实验方案 ModelSim 模拟输出结 果 48 使用Quatus II进行时序仿真 三、实验方案 Quatus II 时序仿真结 果 49 1. 使用ModelSim进行功能仿真时,对于输入输 出信号,在属性对话框应设置怎样的参数参 能较好的观察模拟波形? 2. 利用DSP Builder安装路径DSP Builderdesign examples demos Filters DA32中给出的32阶 固定系数FIR滤波器文件AltrFir32.mdl,利用 各种信号源进行仿真测试,并对测试结果进 行分析。(注:DAFIRDistributed Arithmetic FIR) 四、实验思考题 50 1.说明Matlab、DSP Builder、ModelSim和 Quartus II间的关系。 2.说明手动流程中能完成那几个层次的方 针,各有什么作用? 3.根据以上实验要求和实验内容,记录并 分析所以实验结果。 五、实验报告要求 51 8.5 基于DA算法的FIR滤波器的设计 一、实验目的 二、实验原理 三、实验方案 四、实验思考题 五、实验报告要求 52 学习分布式算法; 学习分布式算法应用于FIR滤波器设计; 进一步掌握Quartus II进行仿真的基本方法与步 骤。 一、实验目的 53 二、实验原理 分布式算法算法(distributed arithmetic,DA)是一项重 要的FPGA技术,广泛应用与乘积和中。 进一步假设系数cn是已知常数,xn是变量。无符号 DA系统架设变量xn的表达式为: xn表示x的第n次采样,内积y可以表示为: 54 DA算法的主要特点是:巧妙地利用ROM查找表将固定系数的乘-累加 (multiply-accumulate,MAC)运算转化为查 表操作,运算速度不随 系数 和输入数据位数的增加而降低, 且相对直接实现 乘法器而言在 硬件规模上得到了极大的改善。 分布式算法 FIR实现 二、实验原理 55 对顶层文件VHDL代码进行编译、仿真,结果如 下: 三、实验方案 56 四、实验思考题 考虑有符号的DA FIR滤波器的实现方法。 五、实验报告要求 u根据以上实验原理和方案,掌握DA算法的应用; u记录并分析所有试验结果,完成实验报告。 8.5 基于DA算法的FIR滤波器的设计 57 8.6 直接II型IIR数字滤波器设计 一、实验目的 二、实验原理 三、实验方案 四、实验思考题 五、实验报告要求 58 了解IIR数字滤波器的基本原理; 掌握基于DSP Builder的SOPC设计流程; 学习使用Matlab/ Simulink、ModelSim以及 Quartus II设计仿真IIR的基本方法与步骤。 一、实验目的 59 二、实验原理 直接II型 4阶IIR滤波器 信号流图 60 建立Simulink模型 三、实验方案 61 建立Simulink模型 三、实验方案 62 系统级仿真 三、实验方案 设计 的 IIR滤 波 器的 滤 波效 果 非常 好 63 ModelSi m 波形仿 真 三、实验方案 使用ModelSim进行RTL仿真 64 使用ModelSim进行RTL仿真 三、实验方案 ModelSi m 模拟输出 65 使用Quatus II进行时序仿真 三、实验方案 Quatus II 时序仿 真 结果 66 四、实验思考题 简述FIR与IIR滤波器的区别。 五、实验报告要求 u完成一个4阶级联型IIR滤波器的设计; u根据设计原理和方案,设置模型中各模块参数; u记录并分析所有试验结果,完成实验报告。 8.6 直接II型的IIR滤波器的设计 67 8.7 预先考虑算法并行IIR数字滤波器设计 一、实验目的 二、实验原理 三、实验方案 四、实验思考题 五、实验报告要求 68 了解有耗积分器的基本原理; 掌握IIR系统的差分方程; 学习预先考虑算法并行IIR滤波器的设计方法 。 一、实验目的 69 二、实验原理 有耗积分器 预先考虑算法 的有耗积分器 70 二、实验原理 两通道并行 IIR滤波器 71 预先考虑算法的并行IIR滤波器实现的顶层文 件 VHDL代码,进行综合编译,建立仿真文件,设 置仿真参数,查看仿真结果 三、实验方案 并行IIR滤 波器对脉冲 1000响应的 VHDL仿真 72 三、实验方案 并行IIR滤波器对阶跃100响应的VHDL仿真 73 应用Matlab/DSP Builder集合Simulink其他库中的元件, 建 立有耗积分器的模型。 三、实验方案 74 分别选择脉冲和阶跃激励,设置与实验方案对应的参数 , 进行仿真,查看系统级仿真结果。 三、实验方案 脉冲响应 阶跃响应 75 四、实验思考题 简述并行实现IIR滤波器的优点与缺点。 五、实验报告要求 u根据以上原理和方案,验证有耗积分器和预先考 虑的有耗积分器算法速度的差别; u记录并分析所有试验结果,完成实验报告。 8.7 预先考虑算法并行IIR数字滤波器设计 76 8.8 SOPC在语音和图像中的应用 一、实验目的

温馨提示

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

评论

0/150

提交评论