MULTLAB-DSPbuilder硬件模块设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第六章Matlab/Dspbuilder硬件模块设计Matlab是国内强大的数学分析工具,广泛用于科学计算和工程计算,还可以进行复杂的数字信号处理系统的建模、参数估计及性能分析。Simulink是Matlab的一个组成部分,用于图形化建模仿真。DSPBuilder是Altera公司推出的一个面向DSP开发的系统级工具,它构架在多个软件工具之上,并把系统级(算法级建模)和RTL级(硬件实现)两个设计领域的设计工具连接起来放在Matlab/Simulink平台上,而将QuartrsⅡ作为底层设计工具置于后台,从而最大程度地发挥了这三种工具的优势。DSPBuilder作为Simulink中的一个工具箱,使得用FPGA设计DSP系统完全可以通过Simulink的图形化界面进行,只要简单地进行DSPBuilder工具箱中的模块调用即可。Matlab/DSPBuilder尤其适用于一些在QuartusⅡ上不方便完成或不能完成的设计项目(如涉及算法类及模拟信号处理与生产方面的系统处理)。DSPBuilder还可以自动完成大部分的设计过程和仿真,直到把设计文件下载到FPGA中。DSPBuilder提供了Quartus®II软件和MATLAB/Simulink工具之间的接口。其具有如下特性:1.用于连接Mathwork的MATLAB(信号处理工具箱和滤波器设计工具箱),Simulink环境和Altera®的QuartusII设计软件环境。2.支持Altera的DSP核,这些核均可以从Altera的网站上下载(例如:FIRCompiler、Reed-SolomonCompiler等等)。3.可以利用Altera的DSP开发板来快速的实现设计的原型。4.支持SignalTap®II逻辑分析仪(一种嵌入式的信号分析仪,它可以探测到DSP开发板上Altera器件内部的信号,并把数据引入到MATLAB的工作区以便于进行可视化的分析)。5.包括了用户可以创建的定制的逻辑,用于配合SOPCBuilder和Nios®II嵌入式处理器设计。6.包括了PLL块,用于多时钟设计。7.包括了状态机块。8.针对DSP系统的算法和实现,支持统一的表示方法。9.根据MATLAB和Simulink的测试矢量,可以自动生成VHDL测试激励或QuartusII矢量文件(.vec)。10.自动调用VHDL综合器和QuartusII编译器。11.仿真可以设定为比特或周期精度。12.提供多种的定点运算和逻辑操作,用于配合使用Simulink软件。13.支持多种Altera的器件:Stratix、StratixII和StratixGX器件;Cyclone和CycloneII器件;APEXII、APEX20KC和APEX20KE器件;Mercury器件;ACEX®1K器件;FLEX®10K和FLEX6000器件。利用Matlab和DSPBuilder进行模块设计也是SOPC技术的一个组成部分。这是由于利用Matlab/DSPBuilder/QuartrsⅡ可完成纯硬件的DSP算法模型及实现,从而构成嵌入式系统外围接口的协处理模块,再进一步构成软件程序中的精简指令,DSP模块或其他功能模块可以成为单片FPGA电路系统中的一个组成部分,而且通过Matlab/DSPBuilder,可以直接为Nios嵌入式处理器设计各类加速器,并以指令的形式加入到Nios的指令系统,从而成为Nios系统的一个接口设备,与整个片内嵌入式系统融为一体。即利用DSPBuilder和基本的NiosCPU,用户可以根据项目的要求,自己构建自己需要的DSP处理系统。本章主要介绍利用Matlab/DSPBuilder/QuartrsⅡ三个工具软件联合开发的设计流程。图6—1为Matlab/DSPBuilder/QuartrsⅡ联合应用框图。由图6—1可见,设计流程从利用建立DSP电路模型开始,电路模型的建立可以是图形化的,利用Simulink和DSPBuilder中提供的丰富的功能模块和IP核进行设计。DSPBuilder中包含了算术和存储功能等设计模块以及IP库中的许多复杂功能模块。电路中的功能模块和IP的技术参数、数据格式、数据类型和总线宽度等都可以直接设置。电路模型设计完成后,可以进行系统级的模型仿真,这与目标器件和硬件系统没有关系,是基于算法的仿真。下个步骤是利用置于Simulink电路模型界面的DSPBuilder的SignalCompiler,将电路模型文件,即Simulink电路模块文件(.mdl)转换成RTL级的VHDL代码表述和工具命令语言(Tcl)脚本。一旦获得转换好的VHDL描述,在Simulink中即可调用VHDL综合器了,目前可选用的综合器有QuartrsⅡ、LeonardoSpectru、和Synplify。由它们生成底层网表文件。在QuartrsⅡ进行编译优化的过程中,会产生两种详细记录电路硬件特点和优化方式的底层电路描述的中间网表文件,即ATOMNetlist。然后调用QuartrsⅡ中的编译器,根据网表文件及设置的优化约束条件进行布线布局和优化设计的适配操作,最后生成编程文件和仿真文件(.pdf和.sof),它们可用于对目标器件的编程配置和硬件实现;与此同时可生成分别用于QuartrsⅡ的门级仿真文件和ModelSim的VHDL时序仿真文件,以及相应的VHDL仿真激励文件,以用于实时测试DSP系统的工作性能。图6-1基于Matlab/Dspbuilder/QuartrsⅡ等工具6.1DSPBuilder元件库简介打开Matlab环境。可以看到Matlab的主窗口界面被分割成三个窗口:命令窗口(CommandWindow)、工作区(Workspace)、命令历史(CommandHistory)。使Matlab的CurrentDirectory指向所安装的DSPBuilder的Altlib文件夹,点击旁边的simulink图标打开simulink库,如下图6-2所示。图6-2Matlab的CurrentDirectory在SimulinkLibraryBrowser的左面展开AlteraDSPBuilder可以看见DSPBuilder的元件库如图6-3所示,元件库可以分为若干部分。其中有主控元件库(AltLab)、算术元件库(Arithmetic)、开发板库(Boards)、复元件库(ComplexType)、组合元件库(Gate&Control)、总线元件库(IO&Bus)、时钟元件库(RateChange)、SOPC元件库(SOPCBuilderLinks)、状态机功能元件库(StateMachineFunctions)、时序元件和存储器元件库(Storage)、IP核元件库(MegaCoreFunction)、视频和图象处理元件库(VideoandImageProcessing)图6-3DSPBuilder元件库1、主控元件库(AltLab),包含一些用于控制的模块。主要有:数据观察窗(BP)、FPGA编程器(Deviceprogrammer)、HDL引入模块(HDLImport)、HDL子系统元件模块(HDLSubSystem)、HIL硬件环境模块(HIL)、逻辑分析仪探头(Node)、硬件工程参数设置模块(QuartusⅡGlobalProjectAssignment)、FPGA引脚锁定模块(QuartusⅡPoinoutAssignment)、MatLab模型至VHDL转换器(SignalCompiler)、逻辑分析仪(SignalTapⅡAnalysis)。2、算术元件库(Arithmetic),包含一些与运算相关联的器件。主要有比较器(Comparator)、计数器(Counter)、差分器(Differentiator)、除法器(Divider)、增益乘法器(Gain)、地址发生器(IncerementDecrement)、积分器(Integrator)、乘法器(Multiplier)、乘法累加器(MultiplyAccumulate)。如图6-4所示。图6-4算术元件库3、SOPC元件库(SOPCBuilderLinks),在左侧展开加号分别是SOPCAVALON总线模块、SOPCAVALON总线端口模块和SOPC用户自定制指令端口。如图6-5。图6-5SOPC元件库4、IP核元件库(MegaCoreFunction),包含Altera公司设计好的IP核。可以使一般的设计者在不用全面了解所用IP核相关技术过多细节的情况下,在短期内设计符合要求的系统。MegaCore是Altera的IPCore计划中的一个组成部分,IP核元件库所包含的IP核不附带在DSPBuilder和QuartusⅡ中,需要单独购买。如图6-6所示,IP核元件库主要有CICIP核(cic)、FFTIP核(fft)、FIRIP核(fir)、NCOIP核(noc)、RSIP核、VITERBIIP核(viterbi)。图6-6MegaCoreFunction元件库6.2FSK调制器设计二进制频率调制(2FSK),是利用二进制数字基带信号控制载波进行频谱变换的过程。在发送端产生不同频率的载波震荡来传输数字信号“0”、“1”,在接收端,把不同频率的载波振荡还原成相应的数字基带信号。FSK调制的方法有两种:1、直接调频法用数字基带矩形脉冲控制一个振荡器的某些参数,直接改变振荡频率,输出不同的频率信号。2、频率键控法用数字矩形脉冲控制电子开关在两个振荡器之间进行转换,从而输出不同频率的信号。6.2.1建立设计模型1、们需要建立一个工作库,所以先新建一个文件夹FSK。2、使Matlab的CurrentDirectory指向所安装的DSPBuilder的Altlib文件夹点击上方的simulink图标打开simulink库,如下图6-7所示。图6-7Matlab的CurrentDirectory3、在SimulinkLibraryBrowser窗口中选择File菜单,在出现的菜单中选择New,在弹出的子菜单中选择新建模型model。如图6-8图6-8新建Model4、放置SignalCompilder。点击simulink库管理器左侧的数形列表中的AlteraDSPBuilder条,使之展开DSPBuilder库,这时会出现一串树形列表,对DSPBuider的子模块(Block)进行分组,展开其中的Altlab,选择库管理器右侧的SignalCompilder,拖动到新的模型窗口。如图6-9图6-9Simulink库中的DspBuilder5、图6-5,为所需最终连接的Modle图形。参照图6-10先放置Input2,Input2在DSPBuilder库中的IO&Bus模块中,选择Input拖动到新Model中,点击图形下面的文字Input可以更改名称。双击打开参数设置窗口,Bustype可设为UnsignedInteger(无符号整数),numberofbits设为2。如图6-11图6-10FSK调制模型图6-11input2参数设置Constant也同样在IO&Bus模块中,constant1设置为无符号整数,numberofbits设为8,常数值(ConstantValue)设置为9,抽样时间(Sampletime)为1,如图6-12。Constant2除了Constantvalue设置为3外,其余设置同Constant1,这样可以使数字基带矩形脉冲的峰峰值在3到9之间。图6-12constant1参数设置6、n-to-1Multiplexer和LUT同在Gate&Control模块下,将它们拖到新建Model中将LUT改名为ROM10X10S,如图6-13图6-13LUE和n-to-1Multiplexer模块其中n-to-1Multiplexer的数据输入线(NumberofinputDataLine)设为2,pipeline设为1。ROM10X10S的busType设为signedInteger(

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功