您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 第8章-基于SOPC实现的数字信号处理实验
1Dr.ZhangJianpingShanghaiUniversityofElectricPowerShanghai,2000902009.5第8章基于SOPC实现的数字信号处理实验28.1开发环境QuartusⅡ8.2正弦信号发生器设计8.3快速傅里叶变换的实现8.4直接I型FIR数字滤波器设计8.5基于DA算法的FIR滤波器的设计8.6直接II型IIR数字滤波器设计8.7预先考虑算法并行IIR数字滤波器设计8.8SOPC在语音和图像中的应用内容提要3一、实验目的二、实验原理三、实验步骤四、实验思考题五、实验报告要求8.1开发环境QuartusⅡ4★熟悉SOPC设计流程★熟悉利用QuartusⅡ的原理团输入方法设计简单组合电路★学习加法器的设计一、实验目的5本实验设计一个八位加法器,主要由两个四位加法器74283构成,加数A的低4位和高4位分别与两个加法器的A1-A4输入端连接。同样加数B的低4位和高4位分别与两个加法器的B1-B4输入端连接,即加法器间的进位可以串行实现,将低位加法器的进位输出cout与高位加法器的最低进位输入信号cin相接。由此加数A和B有各种不同的组合,从而实现加法器的功能。二、实验原理6■选择FileNewProjectWizard,新建一个工程。(1)创建新的工程三、实验步骤7■选择FileNew,在弹出的对话框中选中BlockDiagram/SchematicFile。(2)原理图输入三、实验步骤8(3)编译■选择ProcessingStartCompilation或者点击工具栏里的对图形文件进行编译。三、实验步骤9(4)仿真建立波形文件输入信号节点设置波形参数编辑输入信号运行仿真三、实验步骤10■选择ToolsRTLViewer项观看工程项目的RTL级电路。(5)RTL级电路三、实验步骤11■选择AssignmentsAssignmentEditor项,在编辑器窗的Category栏中选择Pin,锁定引脚。(6)引脚锁定三、实验步骤12■执行ToolsProgrammer命令,设置编程方式为USB-Blaster[USB-0]编程方式,选择JTAG编程模式。执行ProcessingStart,实现设计电路到目标芯片的编程下载。然后在DE2开发板上通过扳动SW15~SW0电平开关,组成加数A和加数B的不同组合,在红色发光二极管LEDR7~LEDR0和LEDR8上观察A数和B数相加的和数与向高位的进位COUT的结果。(7)编程下载及硬件验证三、实验步骤13四、实验思考题若想用LED显示加法器的输出结果,原理图应该有那些地方需要修改?应该怎样设置引脚?五、实验报告要求1.写出QuartusII进行图形编辑输入方法的完整设计流程2.参考QuartusII的Help,详细说明Assignments菜单中的Settings对话框的功能;概述Assignments菜单中的AssignmentEditor的功能,举例说明;3.简述设计步骤和调试过程,包括图形编辑文件,引脚功能的定义文件,仿真结果;4.简要回答思考题。8.1开发环境QuartusⅡ148.2正弦信号发生器设计一、实验目的二、实验原理三、实验步骤四、实验思考题五、实验报告要求15★熟悉SOPC设计流程★熟悉利用QuartusⅡ的文本输入方法设计简单正弦信号发生器电路原理★掌握嵌入式存储器的应用以及使用嵌入式逻辑分析仪进行测试的方法★学习宏功能模块实例化输入和简单程序的调试一、实验目的16顶层文件sinewave.vhd在FPGA中实现ROM地址信号发生器的由一个6位计数器,正弦数据存放在ROM中。数据ROM由LPM_ROM模块实现,其底层是FPGA中的M4K。地址发生器的时钟CLK的输入频率与每周期的波形数据点数以及D/A输出频率的关系是。640ff二、实验原理17■创建工程,选择目标芯片,采用文本输入方法,编辑输入设计顶层文件sinewave.vhd。(1)创建新的工程三、实验步骤18■ROM初始化数据文件有两种:MemoryInitializationFile(.mif)格式和Hexadecimal(Intel-Format)File(.hex)格式。(2)定制ROM初始化数据文件实现方法选择FileNewOtherFilesMemoryInitializationFile,将波形数据填入此表中,即.mif数据。利用C程序编辑产生.mif文件或利用汇编程序编辑,然后用单片机ASM编辑器产生.hex格式文件利用Dspbuilder/Matlab的工具来产生,在其数据文件目录中就可以找到.mif和.hex格式文件三、实验步骤19■Tools--MegaWizardPlug-InManager项,在产生的对话框的左栏中选择storage/LPM_ROM,再选择Cyclone器件和VHDL语言方式,最后输入ROM文件的存放路径。(3)定制ROM元件选择地址线数据位宽及地址锁存信号三、实验步骤20指定路径上的数据初始化文件.hex,完成ROM定制(3)定制ROM元件三、实验步骤21(4)编译三、实验步骤22(5)仿真及RTL级电路仿真结果RTL级电路三、实验步骤23(6)引脚锁定和编程下载三、实验步骤24★★步骤★★1、创建SignalTapII(ToolsSignalTapIILogicanalyzer)2、调入待测信号(双击NodeFinder窗口,添加观测信号)3、参数设置(时钟信号、采样深度、触发条件、触发信号和触发方式)4、SignalTapII文件存盘(FileSaveAs)5、编译下载(再次启动全程编译)6、启动SignalTapII(InstanceManager栏中点击单步或连续运行按钮)(7)使用嵌入式逻辑分析仪进行实时测试三、实验步骤25SignalTapII信号观察窗口(8)测试结果三、实验步骤26编辑波形数据,查看模拟输出结果(8)测试结果三、实验步骤27分析SignalTapII采样得到如图所示的波形图的原因。四、实验思考题281.写出QuartusII进行文本输入方法的完整设计流程2.简述定制LMP功能模块的基本过程3.写出结论和心得体会4.简要回答思考题五、实验报告要求298.3快速傅里叶变换的实现一、实验目的二、实验原理三、实验方案四、实验思考题五、实验报告要求30★了解基2FFT实现原理;★掌握用文本输入法进行旋转因子和蝶形处理器的设计;★学习使用QuartusII实现FFT的基本方法与步骤。一、实验目的31本实验采用按时间抽取(decimationintime)的基2快速傅立叶算法(基2DIT-FFT)。基2FFT蝶形处理器的实现需要一个复数加法器、一个复数减法器和一个旋转因子乘法器。二、实验原理32★旋转因子乘法器的实现旋转因子的乘法器通常由4次实数乘法和6次实数加/减法运算实现,但经过运算的简化,可以只用3次实数乘法和3次实数加/减法运算实现复数乘法器。三、实验方案33设复数旋转因子乘法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计算最后的乘积。旋转因子算法34★蝶形处理单元的实现蝶形运算单元是FFT处理器的基本单元,用来计算两点的FFT。由于蝶形运算单元是由一个复数加法器、一个复数减法器和一个旋转因子复数乘法器组成,基-2FFT蝶形运算单元的VHDL代码如下。从代码中可以看出,蝶形处理器是由一个加法器、一个减法器和一个实例化为组件的旋转因子乘法器实现的。35---基2-FFT蝶形运算单元的VHDL代码实现LIBRARYLpm;USELpm.Lpm_components.ALL;LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_arith.ALL;PACKAGEmul_PackageIS---UserdefinedcomponentsCOMPONENTmultiplierGENERIC(W2:INTEGER:=17;---multiplierbitwidthW1:INTEGER:=9;---Bitwidthc+ssumW:INTEGER:=8);---InputbitwidthPORT(clk:INSTD_LOGIC;x_in,y_in,c_in:INSTD_LOGIC_VECTOR(W-1downto0);---inputscas_in,css_in:INSTD_LOGIC_VECTOR(W1-1downto0);--inputsr_out,i_out:OUTSTD_LOGIC_VECTOR(W-1downto0));--resultsENDCOMPONENT;ENDmul_package;LIBRARYwork;USEwork.mul_package.ALL;LIBRARYlpm;USELpm.Lpm_components.ALL;LIBRARYieee;旋转因子VHDL代码36USEieee.std_logic_1164.ALL;USEieee.std_logic_arith.ALL;ENTITYbfISGENERIC(W2:INTEGER:=17;--multiplierbitwidthW1:INTEGER:=9;--Bitwidthc+ssumW:INTEGER:=8);--InputbitwidthPORT(clk:INSTD_LOGIC;Are_in,Aim_in,Bre_in,Bim_in,c_in:INSTD_LOGIC_VECTOR(W-1downto0);cas_in,css_in:INSTD_LOGIC_VECTOR(W1-1downto0);Dre_out,Dim_out,Ere_out,Eim_out:OUTSTD_LOGIC_VECTOR(W-1downto0));ENDbf;Dim_out=Dim;Ere_out=Ere;Eim_out=Eim;ENDPROCESS;ENDa;ARCHITECTUREaOFbfISSIGNALr,i:STD_LOGIC_VECTOR(W-1DOWNTO0);SIGNALDre,Dim,Ere,Eim:STD_LOGIC_VECTOR(W-1DOWNTO0);BEGINmultiplier_1:multiplier--r+ji37GENERICMAP(W2=W2,W1=W1,W=W)PORTMAP(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_subGENERICMAP(LPM_WIDTH=W,LPM_DIRECTION=SUB,LPM_REPRESENTATION=SIGNED)PORTMAP(dataa=Are_in,datab=r,result=Dre);sub_2:lpm_add_subGENERICMAP(LPM_WIDTH=W,LPM_DIRECTION=SUB,LPM_REPRESENTATION=SIGNED)PORTMAP(dataa=Aim_in,datab=i,result=Dim);add_1:lpm_add_subGENERICMAP(LPM_WIDTH=W,LPM_DIRECTION=ADD,LPM_REPRESENTATION=SIGNED)PORTMAP(dataa=Are_in,datab=r,result=Ere);add_2:lpm_add_subGENERICMAP(LPM_WIDTH=W,LPM_DIRECTION=ADD,LPM_REPRESENTATION=
本文标题:第8章-基于SOPC实现的数字信号处理实验
链接地址:https://www.777doc.com/doc-6375457 .html