您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 用DSP系统发生器创建
仅供教学使用ThismaterialexemptperDepartmentofCommercelicenseexceptionTSU实验1:用DSP系统发生器创建12x8的乘法累加器针对Spartan-3E开发套件Creatinga12x8MACuniversity.xilinx.com2-1UsingtheXilinxSystemGeneratorForAcademicUseOnly用Xilinx系统发生器创建一个12x8的乘法累加器介绍你需要在这个试验中用DspSystemGenerator(系统发生器)创建一个12bitx8bit的MAC(乘法累加器),并用系统发生器的资源估计模块估计资源占用量。系统发生器允许你使用代表XilinxLogiCOREs的模块。在系统发生器的软件环境设计和验证完以后,你可以从设计中生成VHDL代码和核,然后在ISE8.2开发环境中实现MAC。注意:在c:\xup\dsp_flow\labsolutions\lab1下有一个完整的例子目标在完成这个实验后,你将能够:对Simulink进行基本的操作在SystemGenerator中建立简单的设计在SystemGenerator中对设计进行仿真运用SystemGeneratortoken产生VHDL代码通过SystemGeneratordesignflow运行设计用资源估计器估计资源占用量在XilinxISE8中实现设计并产生位流文件设计描述运行Matlab,在Simulink环境下用SystemGenerator产生一个12x8的MAC:乘法器输入为12位和8位有符号数据乘法器输出宽度为20位累加器输出宽度为27位实验步骤这个实验包括九个基本步骤:前四步介绍SystemGenerator,后五步指导你通过SystemGenerator开始一个设计,最后用XilinxISE8实现这个设计.在第1步将向你介绍Simulink,第2步介绍Xilinxblockset.第3步估计系统精度,第4步分析输出样本周期的影响.第5步要求你用系统发生器设计一个12x8的MAC核,第6步要求你用资源估计器估计资源占用量.第7步在Simulate中仿真,第8步用系统发生器产生VHDL代码.第9步在XilinxISE8环境中实现你的设计.在每一步总指示下面,有手把手的细节操作指示.如果你对某一步骤有信心,你可以略过它下面的细节步骤,跳到下一步去.Creatinga12x8MACuniversity.xilinx.com2-2UsingtheXilinxSystemGeneratorForAcademicUseOnly注意:如果你不能完成这个实验,你可以从Xilinx大学计划网站下载此模块对应的实验文件,网址:对于每一大步的每一小步,会有总的指示(其符号标记为).这些总的指示只是提供实现这一小步的大纲.在这些总的指示下面,还有手把手的指导信息指示如何完成每一小步.如果你对完成某一小步有信心,你可以略过它下面的细节指示,跳到下一步去.介绍Simulink步骤1实验总流程:熟悉MATLAB,Simulink环境(MathWorks的软件环境)和运行在Simulink环境下的Xilinxblockset.创建一个空工作区,加入正弦波形,示波器,按图1-1所示连接它们。.第1步介绍Simulink第2步:介绍XilinxBlocks第3步:分析精度和采样率第4步:设计一个12x8的MAC第6步:资源估计第7步:产生代码第5步:对12x8MAC进行模拟Creatinga12x8MACuniversity.xilinx.com2-3UsingtheXilinxSystemGeneratorForAcademicUseOnly图1–1.双精度设计.通过双击桌面Matlab图标打开Matlab命令窗口,或者从开始程序MATLAB7MATLAB7双击图1-2.MATLAB图标.改变目录为c:\xup\dsp_flow\labs\lab1\:在命令行窗口键入cdc:\xup\dsp_flow\labs\lab1\你可以通过在命令窗口键入“cd”命令来改变工作目录.键入“ls”查看目录内容.很多UNIXshell命令和MATLAB命令是一样的运行Simulink:在命令提示符下键入simulink;或者从Matlab工具栏上双击其对应的按钮图1–3.Simulink库浏览器.Creatinga12x8MACuniversity.xilinx.com2-4UsingtheXilinxSystemGeneratorForAcademicUseOnly看一下Simulink库浏览器中有没有以下可以利用的模块:Simulink(sourcesandsinks)SignalProcessingBlocksetXilinxBlocksetXilinxReferenceBlockset图1–4.Simulink库浏览器.右键点击任何模块,可以从MATLAB菜单中选择帮助Creatinga12x8MACuniversity.xilinx.com2-5UsingtheXilinxSystemGeneratorForAcademicUseOnly图1–5.选择帮助.注意:帮助提供了关于此模块的细节.你可以对XilinxBlockset模块运行此帮助以得到详细信息通过点击Simulink库浏览器中的Createanewmodel按钮来创建一个新的“model”空白文档图1–6.CreateNewModel.在librarybrowser窗口,展开Simulink库,然后单击Sources在工作区中添加正弦输入源:翻动库窗口,找到SineWavesource,左键点击SineWave,并拖动到工作区中添加示波器模块,并把它与工作区中的正弦信号源相连:从SimulinkSimulinkSinks,加入Scope模块,画一条线连接SineWave和Scopeblock注意:从源按住鼠标不放,拖动到目的地,即可画出一条直线Creatinga12x8MACuniversity.xilinx.com2-6UsingtheXilinxSystemGeneratorForAcademicUseOnly图1–7.元素间连线.指定正弦波的频率为2*pi*(1/150),显示端口数据类型,并改变simulationparameter的stoptime为inf(无穷大)双击SineWaveblock打开BlockParameters对话框.改变频率为2*pi*(1/150),然后点击ok关闭对话框图13–8.改变频率.在工作区中,进入FormatPort/SignalDisplays并点击PortDataTypes信号宽度以下图所示显示在元素间的连线上。.图1–9.双精度.Creatinga12x8MACuniversity.xilinx.com2-7UsingtheXilinxSystemGeneratorForAcademicUseOnly从你的工程表中,点击Simulation菜单并选择ConfigurationParameters从SimulationParameters对话框中,选择左手窗口的Solver并改变stoptime为inf,然后点击OK这允许你的仿真一直运行下去(直到你手动停止这次仿真).图1–10.Simulation参数对话框.确定Scopeblock的参数,并运行simulation双击Scopeblock点击ScopeParameters按钮图13–11.Scope参数按钮.在ScopeParameters对话框中,设置时间范围到500,并点击OK运行simulation:从你的Simulink项目工作区中,点击StartSimulation按钮,或通过菜单SimulationStart图1–12.Simulation按钮.在Scope显示界面,点击Autoscale按钮以便输出能自动适应ScopeCreatinga12x8MACuniversity.xilinx.com2-8UsingtheXilinxSystemGeneratorForAcademicUseOnly图1–13.Autoscale按钮.查看Scope输出因为你正在运行一个双精度的软件模拟,一个光滑的正弦波形应该出现在你的示波器窗口,这正是我们所希望的。如下所示可停止模拟图1–14.停止Simulation.介绍Xilinx网关(gateways)和多路选择器模块(mux)步骤2Step1:IntroductiontoSimulinkStep2:IntroduceXilinxBlocksStep3:AnalyzePrecisionandSampleRateStep4:Designa12x8MACStep6:ResourceEstimationStep7:CodeGenerationStep5:Simulatea12x8MACCreatinga12x8MACuniversity.xilinx.com2-9UsingtheXilinxSystemGeneratorForAcademicUseOnly如下所示,在Simulink中提供了与Xinlix模块集(blocksets)的接口,可以通过XilinxGatewayIn,GatewayOut,SystemGenerator,和MUX模块去实现图1–15.GatewayInandOut.使用SimulationConfigurationParameters对话框,设置stoptime为500,点击OK从XilinxBlockset(在Simulink库浏览器中),打开BasicElements并拖动Gateway到设计区中.把它放置在正弦信号源与输出示波器之间的连线上.它将自动与线相连双击GatewayIn以打开模块参数对话框,设置Numberofbits为8,BinaryPoint为2校验Quantization设置为round,overflow设置为saturate.同样地,拖动一个GatewayOut模块到工作区,并把它放在GatewayIn与outputScope之间的连线上Creatinga12x8MACuniversity.xilinx.com2-10UsingtheXilinxSystemGeneratorForAcademicUseOnly图1–16.拖动GatewayIn模块.通过SimulinkSignalRouting菜单在GatewayOut和Scope模块间加入一个SimulinkMUX模块(如图1-15所示)在SineWave和MUX之间加入连线注意:这将允许示波器不仅可以显示双精度的正弦波,而且可以显示进出Xilinx网关的自定义正弦波从XilinxBlocksetBasicElementslibrary菜单中添加系统发生器符号到这个设计中为了查看进入MUX的信号数目,可以从FormatPort/SignalDisplays菜单下选择Widenonscalarlines,Signaldimensions,以及Portdatatypes(如下图所示)图1–17.格式化菜单.更新图表:选择EditUpdateDiagram注意:现在看一下你的端口类型.会发现模块网关已经把信号从双精度改为如此例中Fix_8_2格式的定点型..分析精度和采样率步骤3在缺省设置下运行模拟仿真并了解输出.改变数据类型并再次仿真,然后分析仿真输出.把采样周期从1改为5,然后观察对量化(quantization)的影响.运行仿真,会观察到一个与没有通过Xilinblocks的光滑正弦波相接近的锯齿状的正弦波,这说明了量化的影响(MATLAB的双精度浮点型与模块Fix_8_2格式的定点型的差异)Step1:Intr
本文标题:用DSP系统发生器创建
链接地址:https://www.777doc.com/doc-7305258 .html