ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:1.51MB ,
资源ID:4795467      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4795467.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MULTLABDSPbuilder硬件模块设计.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

MULTLABDSPbuilder硬件模块设计.docx

1、MULTLABDSPbuilder硬件模块设计第六章 Matlab/Dsp builder硬件模块设计Matlab是国内强大的数学分析工具,广泛用于科学计算和工程计算,还可以进行复杂的数字信号处理系统的建模、参数估计及性能分析。Simulink是Matlab的一个组成部分,用于图形化建模仿真。DSP Builder是Altera公司推出的一个面向DSP开发的系统级工具,它构架在多个软件工具之上,并把系统级(算法级建模)和RTL级(硬件实现)两个设计领域的设计工具连接起来放在Matlab/Simulink平台上,而将Quartrs作为底层设计工具置于后台,从而最大程度地发挥了这三种工具的优势。D

2、SP Builder作为Simulink中的一个工具箱,使得用FPGA设计DSP系统完全可以通过Simulink的图形化界面进行,只要简单地进行DSP Builder工具箱中的模块调用即可。Matlab/DSP Builder尤其适用于一些在Quartus上不方便完成或不能完成的设计项目(如涉及算法类及模拟信号处理与生产方面的系统处理)。DSP Builder还可以自动完成大部分的设计过程和仿真,直到把设计文件下载到FPGA中。DSP Builder提供了Quartus II软件和MATLAB/Simulink工具之间的接口。其具有如下特性: 1.用于连接Mathwork的MATLAB(信号处

3、理工具箱和滤波器设计工具箱),Simulink环境和Altera 的Quartus II设计软件环境。 2.支持Altera 的DSP核,这些核均可以从Altera的网站上下载(例如:FIR Compiler、Reed-Solomon Compiler等等)。 3.可以利用Altera的DSP开发板来快速的实现设计的原型。 4.支持SignalTap II逻辑分析仪(一种嵌入式的信号分析仪,它可以探测到DSP开发板上Altera器件内部的信号,并把数据引入到MATLAB的工作区以便于进行可视化的分析)。 5.包括了用户可以创建的定制的逻辑,用于配合SOPC Builder和Nios II嵌入式

4、处理器设计。 6.包括了PLL块,用于多时钟设计。 7.包括了状态机块。 8.针对DSP系统的算法和实现,支持统一的表示方法。 9.根据MATLAB和Simulink的测试矢量,可以自动生成VHDL测试激励或Quartus II矢量文件(.vec)。 10.自动调用VHDL综合器和Quartus II编译器。 11.仿真可以设定为比特或周期精度。 12.提供多种的定点运算和逻辑操作,用于配合使用Simulink 软件。 13.支持多种Altera 的器件: Stratix、Stratix II 和 Stratix GX 器件; Cyclone 和 Cyclone II 器件; APEXII、A

5、PEX 20KC 和 APEX 20KE 器件; Mercury器件; ACEX 1K 器件; FLEX 10K 和 FLEX 6000 器件。 利用Matlab和DSP Builder进行模块设计也是SOPC技术的一个组成部分。这是由于利用Matlab/DSP Builder/Quartrs可完成纯硬件的DSP算法模型及实现,从而构成嵌入式系统外围接口的协处理模块,再进一步构成软件程序中的精简指令,DSP模块或其他功能模块可以成为单片FPGA电路系统中的一个组成部分,而且通过Matlab/DSP Builder,可以直接为Nios嵌入式处理器设计各类加速器,并以指令的形式加入到Nios的指令

6、系统,从而成为Nios系统的一个接口设备,与整个片内嵌入式系统融为一体。即利用DSP Builder和基本的Nios CPU,用户可以根据项目的要求,自己构建自己需要的DSP处理系统。本章主要介绍利用Matlab/ DSP Builder/Quartrs三个工具软件联合开发的设计流程。图61为Matlab/DSP Builder/Quartrs联合应用框图。由图61可见,设计流程从利用建立DSP电路模型开始,电路模型的建立可以是图形化的,利用Simulink和DSP Builder中提供的丰富的功能模块和IP核进行设计。DSP Builder中包含了算术和存储功能等设计模块以及IP库中的许多复

7、杂功能模块。电路中的功能模块和IP的技术参数、数据格式、数据类型和总线宽度等都可以直接设置。电路模型设计完成后,可以进行系统级的模型仿真,这与目标器件和硬件系统没有关系,是基于算法的仿真。下个步骤是利用置于Simulink电路模型界面的DSP Builder的SignalCompiler,将电路模型文件,即Simulink电路模块文件(.mdl)转换成RTL级的VHDL代码表述和工具命令语言(Tcl)脚本。一旦获得转换好的VHDL描述,在Simulink中即可调用VHDL综合器了,目前可选用的综合器有Quartrs、LeonardoSpectru、和Synplify。由它们生成底层网表文件。在

8、Quartrs进行编译优化的过程中,会产生两种详细记录电路硬件特点和优化方式的底层电路描述的中间网表文件,即ATOM Netlist。然后调用Quartrs中的编译器,根据网表文件及设置的优化约束条件进行布线布局和优化设计的适配操作,最后生成编程文件和仿真文件(.pdf和.sof),它们可用于对目标器件的编程配置和硬件实现;与此同时可生成分别用于Quartrs的门级仿真文件和ModelSim的VHDL时序仿真文件,以及相应的VHDL仿真激励文件,以用于实时测试DSP系统的工作性能。图61 基于 Matlab/Dsp builder/Quartrs等工具 6.1 DSP Builder元件库简介

9、 打开Matlab环境。可以看到Matlab的主窗口界面被分割成三个窗口:命令窗口(Command Window)、工作区(Workspace)、命令历史(Command History)。使Matlab的Current Directory指向所安装的DSPBuilder的Altlib文件夹,点击旁边的simulink图标打开simulink库,如下图62所示。图62 Matlab的Current Directory 在Simulink Library Browser的左面展开Altera DSP Builder可以看见DSP Builder的元件库如图63所示,元件库可以分为若干部分。其中有

10、主控元件库(AltLab)、算术元件库(Arithmetic)、开发板库(Boards)、复元件库(Complex Type)、组合元件库(Gate Control)、总线元件库(IOBus)、时钟元件库(Rate Change)、SOPC元件库(SOPC Builder Links)、状态机功能元件库(State Machine Functions)、时序元件和存储器元件库(Storage)、IP核元件库(MegaCore Function)、视频和图象处理元件库(Video and Image Processing)图63 DSP Builder元件库1、主控元件库(AltLab),包含一

11、些用于控制的模块。主要有:数据观察窗(BP)、FPGA编程器(Device programmer)、HDL引入模块(HDL Import)、HDL子系统元件模块(HDL SubSystem)、HIL硬件环境模块(HIL)、逻辑分析仪探头(Node)、硬件工程参数设置模块(Quartus Global Project Assignment)、FPGA引脚锁定模块(Quartus Poinout Assignment)、MatLab模型至VHDL转换器(SignalCompiler)、逻辑分析仪(SignalTap Analysis)。2、算术元件库(Arithmetic),包含一些与运算相关联的

12、器件。主要有比较器(Comparator)、计数器(Counter)、差分器(Differentiator)、除法器(Divider)、增益乘法器(Gain)、地址发生器(Incerement Decrement)、积分器(Integrator)、乘法器(Multiplier)、乘法累加器(Multiply Accumulate)。如图64所示。图64 算术元件库3、SOPC元件库(SOPC Builder Links),在左侧展开加号分别是SOPC AVALON总线模块、SOPC AVALON总线端口模块和SOPC用户自定制指令端口。如图65。图65 SOPC元件库4、IP核元件库(Mega

13、Core Function),包含Altera公司设计好的IP核。可以使一般的设计者在不用全面了解所用IP核相关技术过多细节的情况下,在短期内设计符合要求的系统。MegaCore是Altera的IP Core计划中的一个组成部分,IP核元件库所包含的IP核不附带在DSP Builder和Quartus中,需要单独购买。如图66所示,IP核元件库主要有CIC IP核(cic)、FFT IP核(fft)、FIR IP核(fir)、NCO IP核(noc)、RS IP核、VITERBI IP核(viterbi)。图66 MegaCore Function元件库6.2 FSK调制器设计 二进制频率调制

14、(2FSK),是利用二进制数字基带信号控制载波进行频谱变换的过程。在发送端产生不同频率的载波震荡来传输数字信号“0”、“1”,在接收端,把不同频率的载波振荡还原成相应的数字基带信号。FSK调制的方法有两种:1、 直接调频法用数字基带矩形脉冲控制一个振荡器的某些参数,直接改变振荡频率,输出不同的频率信号。2、 频率键控法用数字矩形脉冲控制电子开关在两个振荡器之间进行转换,从而输出不同频率的信号。6.2.1 建立设计模型1、 们需要建立一个工作库,所以先新建一个文件夹FSK。2、 使Matlab的Current Directory指向所安装的DSPBuilder的Altlib文件夹点击上方的sim

15、ulink图标打开simulink库,如下图67所示。图67 Matlab的Current Directory3、 在Simulink Library Browser 窗口中选择File菜单,在出现的菜单中选择New,在弹出的子菜单中选择新建模型model。如图68图68 新建Model4、放置SignalCompilder。点击simulink库管理器左侧的数形列表中的Altera DSP Builder条,使之展开DSPBuilder库,这时会出现一串树形列表,对DSPBuider的子模块(Block)进行分组,展开其中的Altlab,选择库管理器右侧的SignalCompilder,拖动

16、到新的模型窗口。如图69图69 Simulink库中的DspBuilder5、图65,为所需最终连接的Modle图形。参照图610先放置Input2,Input2在DSPBuilder库中的IOBus模块中,选择Input拖动到新Model中,点击图形下面的文字Input可以更改名称。双击打开参数设置窗口,Bus type可设为Unsigned Integer(无符号整数),number of bits设为2。如图611图610 FSK调制模型图611 input2参数设置 Constant也同样在IOBus模块中,constant1设置为无符号整数,number of bits 设为8,常数

17、值(Constant Value)设置为9,抽样时间(Sample time)为1,如图6-12。 Constant2除了 Constant value设置为3外,其余设置同Constant1,这样可以使数字基带矩形脉冲的峰峰值在3到9之间。图6-12 constant1参数设置6 、n-to-1 Multiplexer和LUT同在GateControl模块下,将它们拖到新建Model中将LUT改名为ROM10X10S,如图6-13图6-13 LUE和n-to-1Multiplexer模块其中n-to-1Multiplexer的数据输入线(Number of input Data Line)设

18、为2,pipeline设为1。ROM10X10S的bus Type设为signed Integer(有符号整数),输出位number of bits为8位,LUT Address Width(查找表地址线位宽)设为8。在MATLAB Array编辑框中输入计算查找表内容的计算式。在此可以直接使用正弦(sin)函数,在这里sin函数的调用格式为sin(起始值:步进值:结束值)。 ROM10X10S为一个输入地址为8位,输出地址为8位的正弦查找表模块,输入地址总线位有符号整数(Signed Interger)。可以设定起始值为0、结束值为2,步进值为2/28。计算式可以写成127*sin( 0:2

19、*pi/(28):2*pi ),其中pi即位常数。在Use LPM处打勾,表示允许Quartus利用目标器件中的嵌入式RAM(在EAB、ESB或M4K模块中)来构成ROM10X10S,即将生成的正弦波数据放在嵌入式RAM构成的ROM中,这样可以节省大量的逻辑资源。如图6-14。图6-14 ROM10X10S参数设置7、在Arithmetic模块下找到Parallel Adder Subtractor,改名为ADDER4,将输入设为2,Add(+)Sub(-)设为+,其余不变,如图6-15。图6-15 设置ADDER4 8、放置Delay模块。在Storage库下的Delay,放置到新建模型窗口

20、并改名为Dly2 。Delay是一个延时环节。在这里不修改其默认参数设置。9、Bus7和Out8在IOBus库下。找到AltBus,和output分别改名为Bus7 和Out8。Bus7的Bus Type为Signed Integer,Node Type为Internal Node,number of bit 为8位。如图6-16。图6-16 设置Bus7Out8的Bus Type也为Signed integer类型8位。如图6-17。图6-17 设置Out810、放置完所需的模块后,按照图6-5连接好。这样就完成了FSK调制模型的设计。在进行仿真验证和SignalCompiler编译前,先对

21、文件进行存盘操作:点击新建模型窗口的File菜单,选择Save项。取名并保存在自己所建的文件夹FSK中。在本例中,新建模型取名为fsk,模型文件为fsk.mdl。保存完毕后,新建模型窗口的标题栏会显示模型的名称,对模型取名后就可以使用SignalCompiler进行编译了。在编译前还需要进行仿真验证。6.2.2 Simulink模型仿真 用DSP Builder模块设计好一个新的模型后,可以直接在simulink中进行算法级、系统级仿真验证。对一个模型进行仿真,需要施加合适的激励、一定的仿真步进和仿真周期,添加合适的观察点和观察方式。需要强调的是:凡是来自Altera DSP Builder库

22、以外的模块,SignalCompiler都不能将其变成硬件电路,即不会影响生成的VHDL程序,但在启动Simulink仿真后能影响后面产生的仿真激励文件,Pulse Generator模块的情况正是如此。1、加入一个Pulse Generator模块,在Simulink库管理器中,展开simulink库,选中Sources库,把Sources库中的Pulse Generator模块拖放到FSK模型窗口中。2、添加波形观察模块。在simulink的库管理器中,展开simulink库,选中其中的Sinks库,把Scope模块拖放到FSK模型窗口中。双击该模块,打开的是一个Scope窗口。用鼠标点击

23、Scope模块窗口上侧工具栏的第二个工具按钮:Parameters参数设置。打开Scope参数设置对话框,在Scope对话框中有两个选项页:Gerneral和Data History。在Gerneral选项页中,改变Number of axes参数为2。点击“OK”后可以看到Scope窗口增加了两个波形观察窗。每个观察窗都可以分别观察信号波形,而且相对独立。如图6-18。图6-18 Scope设置3、按图6-10连接FSK模型的全图。先设置模型的仿真激励。需要设置与此相连的模块:Pulse Generator。双击放置在FSK模型窗口中的Pulse Generator模块,设置对输入端口施加的

24、激励。在打开的Pulse Generator模块参数设置对话框中,可以看到下列参数如图6-19。图6-19 Pulse Generator参数设置 其中脉冲类型(Pulse Type)是基于时间的(Time based),振幅(Amplitude)为1,周期(period)是1500秒,占空比(Pulse Width)为50%,相位延迟(Phase delay)为0。4、点击Simulation菜单,在下拉菜单中选择configuration parameters如图(620),将Stop time设置成10000。FSK模型编辑窗中,在Simulation菜单下,选Start项,开始仿真。等

25、待仿真结束,双击Scope模块,打开scope观察窗。在Scope观察窗中,可以使用工具栏中的按钮来放大缩小波形,也可以使用工具栏上的“Autoscale”,使波形自动适配波形观察窗,用鼠标左键,可以放大波形。图6-21为FSK的仿真图形。图620 FSK仿真停止时间图6-21 FSK仿真图图中可以清晰的看到在脉冲值为1和0时,载波信号频率随脉冲信号值变化而变化,从而实现了2FSK。6.2.3 SignalCompiler使用方法下面进行设计流程中最为关键的一步,就是把DSP Builder的设计转到硬件上加以实现。在这一步,可以获得针对特定FPGA芯片的VHDL代码。1、双击FSK模型中的S

26、ignalCompiler模块,将出现如图622所示的对话框,点击Analyze(分析)按钮后,SignalCompiler就会对FSK模型进行分析,检查模型有无错误,并在Matlab主窗口弹出对话框,并给出相关信息。图622 双击SignalCompiler2、 图621中显示了Signal Compiler窗口,左侧是项目设置选项Project Setting Options,可以设置器件类型(Device)、综合工具(Synthesis Tool)以及优化项目(Opimization);右侧是硬件编译流程Hardware Compilation;下方是信息框Messages。Signal

27、Compiler的设置都集中在项目设置选项部分。在Device下拉选择框中选择需要的器件系列,在此选为Cyclone系列。其具体的器件型号,需由QuartusII自动决定使用该器件系列中的某一个具体型号的器件,或在手动流程中由用户指定。图621 SignalCompiler设置对话框3、当设置好Device和Synthesis后,右侧的硬件编译Hardware Compilation部分就会列出一个操作流程,见图621。分别为:转换MDL文件为VHDL文件(Convert MDL to VHDL)综合(Synthesis)编译适配(QuartusIIQuartus) 先点击步骤1的图标,完成s

28、imulink文件(*.mdl)到VHDL文件的转换。转换完成后,在“Messages”信息提示框中,会显示“Generated top level “fsk.vhd” files”,即顶层文件fsk.vhd完成转换(图4-34)。fsk模型生成的VHDL文件4、点击步骤2的图标,完成综合过程。因为左侧的设置,本例用QuartusII来完成综合过程的,在综合后生成原子网表供适配器使用,并自动生成QuartusII可直接调用的工程。5、点击步骤3的图标,调用QuartusII完成编译适配过程,生成编程文件:pof文件和sof文件(图4-36)。编程文件可以直接用于FPGA的编程配置。如果想知道详

29、细的报告,点击下面的Report File按钮进行查看。Fsk 模型对应的报告文件为fsk_DspBuilder_Report.html。6.2.4 使用QuartusII实现时序仿真虽然已经进行了算法级、系统级仿真验证,然而进行门级的时序仿真仍然是十分重要的,SignalCompiler已将MATLAB上的仿真信息转变成了可用于QuartusII进行时序仿真的激励信息及相关仿真文件fsk_quartus.tcl,因此能容易地完成此项任务。1、打开QuartusII环境,选择菜单 Project ,定位到fsk模型所在路径目录,打开DSP Builder建立的QuartusII工程文件:fsk

30、.quartus。2、上文中提到,在SignalCompiler中的QuartusII编译,具体的器件由QuartusII自动决定,可实际使用中,器件往往不是QuartusII自动选定的那个型号,管脚也不是QuartusII自动分配的管脚。这些都需要在QuartusII中进行修改。所以这里须按照前面章节中叙述的方法选择具体器件型号,本例中使用的是EP1C6Q240C8,然后启动全程编译,即执行Start Compilation 。3、执行菜单ProcessingStart Simulation。图622即为时序仿真波形,在图中可以清楚的看到输出数据随着时钟的变换交替的进行频率变换。如果这时看不

31、到输出的波形数据,应该回到MATLAB设计文件检查,仿真、变换(注意这时只按SignalCompiler中的第一按钮!)。图6-22 时序仿真波形图6.2.5 使用QuartusII硬件测试与硬件实现在此按照前面章节中介绍的方法锁定管脚。打开fsk工程文件fsk.vhd,了解端口情况,选择合适的电路模式。然后进行编译,完成适配过程。最后是进行硬件的下载,连接好FPGA开发板。然后将实测结果与在计算机上进行的时序仿真结果进行比较。若再想改动Simulink中的fsk.mdl图,应该注意两点:第一,内部电路结构和设置可以改,但端口信号名不要改,如输入input2、out8,因为此信号的引脚已被锁定

32、,不便改变第二,改动out.mdl图后只宜作系统仿真和VHDL文件转换,不宜作综合,即最多只能对图617所示的界面执行第1个按纽,否则将可能把原来设定好的引脚全部冲掉。 为了保存引脚信息,综合与适配两项操作必须在进入QuartusII后进行。图623为硬件实现后的输出波形。图623 FSK调制波形6.3 直接数字合成DDS设计6.3.1 直接数字合成DDS基本原理对于正弦信号发生器,它的输出可以用下式来描述。 (61)其中是指该信号发生器的输出信号波形,指输出信号对应的频率。上式的表述对于t式连续的,为了用数字逻辑实现该表达式,必须进行离散化处理,用基准时钟clk进行抽样,令正弦信号的相位: (62)在一个clk周期,相位的变化量为: (63)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2