MULTLAB-DSPbuilder硬件模块设计_第1页
MULTLAB-DSPbuilder硬件模块设计_第2页
MULTLAB-DSPbuilder硬件模块设计_第3页
MULTLAB-DSPbuilder硬件模块设计_第4页
MULTLAB-DSPbuilder硬件模块设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、环境和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嵌入式处理器设计。 6.包括了PLL块,用于多时钟设

4、计。 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、APEX 20KC 和 APEX 20KE 器件

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

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

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

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

9、主窗口界面被分割成三个窗口:命令窗口(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所示,元件库可以分为若干部分。其中有主控元件库(AltLab)、算术元件库(Ari

10、thmetic)、开发板库(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),包含一些用于控制的模块。主要有:数据观察窗(BP)、

11、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),包含一些与运算相关联的器件。主要有比较器(Comparator)、计

12、数器(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核元件库(MegaCore Function),包含Altera

13、公司设计好的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调制器设计 二进制频率调制(2FSK),是利用二进制数字基带信号控制载波

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

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

16、k库中的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,常数值(Constant Value)设置为9,抽

17、样时间(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)设为2,pipeline设为1。ROM10X10

18、S的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*pi/(28):2*pi ),其中pi即位常

19、数。在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,放置到新建模型窗口并改名为Dly2 。Delay是一个延时环节。

20、在这里不修改其默认参数设置。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编译前,先对文件进行存盘操作:点击新建模型窗口的File菜

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

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

23、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模块,设置对输入端口施加的激励。在打开的Pulse Generator模

24、块参数设置对话框中,可以看到下列参数如图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项,开始仿真。等待仿真结束,双击Scope模块,打开scope

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

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

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

28、的转换。转换完成后,在“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的编程配置。如果想知道详细的报告,点击下面的Report File按钮

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

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

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

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

33、的变化量为: (63)其中指clk的频率对于2可以理解成“满”相位,为了对进行数字量化,把2切割成份,由此每个clk周期的相位增量用量化值来表述:,且为整数。与(63)式联立,可得: (64) 显然,信号发生器的输出可描述为: (65) 其中指前一个clk周期的相位值,同样得出 (66) 图624为DDS的基本结构图图624 基本DDS结构6.3.2用DSPBuilder设计DDS DDS采用了层次化的设计方法,即使用了Simulink的子系统(SubSystem)来完成DSP模型的层次化设计。我们可以用上面的例子进行简单的介绍:在已经建好的模型上进行简单修改后,选择除SignalCompil

34、er、Pulse Generator以外的模块,单击右键选择Create Subsystem如图(625)。图625 FSK输出的修改 图626为创建子系统模块后的FSK图形。用鼠标双击Subsystem子系统模块后,就会弹出fsk/Subsystem窗口,显示子系统模块封装的原理图。值得注意的是,有些DSPBuilder库的模块只能放在顶层原理图中,如SignalCompiler模块。如果子系统中放置了SignalCompiler模块,只可以进行Simulink仿真,而不能使用SignalCompiler来生成相应的VHDL代码。图626 生成子系统后的FSK图6-23为DDS的顶层设计图,

35、而图624为其子系统Subsystem的结构图。图624 DDS顶层设计图其中AMPL、PHASE、FREQ是simulink-Sources库下的constant元件,Constant value分别为67、456、,勾选Interpret vector parameters as 1-D选项,Sample time为inf;Input、input1、input2在Altera DSP builder-IOBus库下,Bus Type为Unsigned interger,number of bits分别为32、10、8;Output也在Altera DSP builder-IOBus库下,输

36、出位为10位有符号整数。图625 DDS子系统 仿真时间为10000;ROM10X10S为Altera DSP builder-storage库下的LUT元件,Bus Type为有符号整数,输出为10位,LUT Address Width宽为10位,MATLAB Array的输出公式是511*sin( 0:2*pi/(210):2*pi ), 并勾选Use LPM和Register Address选项;Pdt2为Altera DSP builder-Arithmetic库的Product元件,Pipeline值为0,勾选Use LPM选项;Bus1在Altera DSP builder-IOB

37、us库,是BusConversion元件,为有符号整数,输入18位,输出10位,Input Bit to Output LSB为8。 Bus7为Altera DSP builder-IOBus下的AltBus元件,总线类型是有符号整数,节点类型是内部节点(Internal Node),32位;Adder4和Adder3设置相同,为在Altera DSP builder-Arithmetic下的Parallel Adder Subtractor元件,Number of Inputs是2,Add(+)Sub(-)设为“”,勾选Pipeline选项,Clock Phase Selection设置为1

38、;Dly2是Altera DSP builder-Storage下Delay元件,默认设置;BusConversion在Altera DSP builder-IOBus元件库,Bus Type为Signed Interger输入为32位,输出10位,Input Bit to Output LSB为22。 图6-26为DDS信号输出波形。图6-26 DDS信号输出6.4 AM调制器设计6.4.1 AM调制原理 AM的调制原理是将要传送的信息装载到某一高频(载波)信号上去的过程,幅度调制是用调制信号去控制载波的振幅,使其随调制信号线型变化,而保持载波的频率不变。图627为在Maltlab下完成的A

39、M全图,主要分为4个区域:区和区为两个正弦信号发生器,分别为调制信号和载波信号;区为控制区,主要控制调制信号的幅度。当Cnt9选择不同值时,区输出不同的参数调整区输出正弦信号的幅度,使调制信号的输出具有不同的幅度(如图6-27)。图628为Con9选择1、3、6时输出的调制信号。区主要作用是将调制信号装载到载波信号上去,实现信号的调制。图627 AM调制原理图图6-28 受控的调制信号图6-29 AM调制信号6.4.2 AM调制器参数设置仿真时间设为,其它设置如下:1、区正弦信号发生器的设置:Cst15:Altera DSP Builder-IOBus-ConstantBus Type:Uns

40、igned Integernumber of bits:16Constant:20Sample time:1 Bus3:Altera DSP Builder-IOBus-AltBusBus Type:Unsigned IntegerNode Type:Internal Nodenumber of bits:16Adder1:Altera DSP Builder-Arithmetic-Parallel Adder Subtractor number of input:2 Add(+)Sub(-):+ Clock Phase Selection:1Dly:Altera DSP Builder-St

41、orage-Delay 默认设置Bus5:Altera DSP Builder-IOBus-BusConversion Bus Type:Signed Integer Inputnumber of bits:16Outputnumber of bits:8Input Bit Connected to Output LSB:8ROM8X8S:Altera DSP Builder-Storage-LUT Bus Type:Signed Integer Outputnumber of bits:8 LUT Address Width:8 MATLAB Array:127*sin( 0:2*pi/(2

42、8):2*pi ) 勾选 Use LPM 和Register Address项 2、区控制端参数设置: Mux41:Altera DSP Builder-GateControl-n to 1 Multiplexer Number of Input Data Line:8 Pipeline:0 SL:Altera DSP Builder-IOBus-input Bus Type:Unsigned IntegerNode Type:Input Portnumber of bits:3 Cnt9:Simulink-sources-Constant Constant value:6 勾选Interpr

43、et vector parameters as 1-D Sample time:inf Cst8-14:Altera DSP Builder-IOBus-Constant Bus Type:Signed Fractionnumber of bits.:8.number of bits:8Sample time:1 Constant Value从端口0到10分别为:0.9-0.23、区调制区参数设置 Pdt1、Pdt2:Altera DSP Builder-Arithmetic-Product Pipeline:0 勾选Use LPM ADDER2、Adder3:Altera DSP Build

44、er-Arithmetic-Parallel Adder Subtractor number of input:2 Add(+)Sub(-):+ Clock Phase Selection:1 勾选Pipeline选项。 Bus1:Altera DSP Builder-IOBus-BusConversion Bus Type:Signed Integer Inputnumber of bits:18Outputnumber of bits:10Input Bit Connected to Output LSB:8 Cst3:Altera DSP Builder-IOBus-ConstantBu

45、s Type:Unsigned Integernumber of bits:8Constant:128Sample time:1 Cst4:Altera DSP Builder-IOBus-ConstantBus Type:Unsigned Integernumber of bits:10Constant:512Sample time:1 Adder2:Altera DSP Builder-Arithmetic-Parallel Adder Subtractor number of input:2 Add(+)Sub(-):+ Clock Phase Selection:1AM_OUT:Alt

46、era DSP Builder-IOBus-output Bus Type:Unsigned IntegerNode Type:Output Portnumber of bits:104、区正弦信号发生器的设置:Cst16:Altera DSP Builder-IOBus-ConstantBus Type:Unsigned Integernumber of bits:32Constant:Sample time:1 Bus7:Altera DSP Builder-IOBus-AltBusBus Type:Unsigned IntegerNode Type:Internal Nodenumber

47、 of bits:32Adder4:Altera DSP Builder-Arithmetic-Parallel Adder Subtractor number of input:2 Add(+)Sub(-):+ Clock Phase Selection:1 勾选PipelineDly2:Altera DSP Builder-Storage-Delay 默认设置BusConversion:Altera DSP Builder-IOBus-BusConversion Bus Type:Signed Integer Inputnumber of bits:32Outputnumber of bi

48、ts:10Input Bit Connected to Output LSB:22ROM10X10S:Altera DSP Builder-Storage-LUT Bus Type:Signed Integer Outputnumber of bits:10 LUT Address Width:10 MATLAB Array:511*sin( 0:2*pi/(210):2*pi ) 勾选 Use LPM 和Register Address项6.5FSK硬件环HIL仿真设计前面提到的在Simulink平台上的仿真都属于算法级仿真,是软件仿真。如果想要求仿真结果能反映模块的硬件特性,在Simuli

49、nk平台上的仿真就不能满足要求。在Quartus平台上的仿真尽管获得了全硬件的仿真结果,但没有Matlab提供的大量功能强大的仿真工具,一些特定功能的激励信号难以获得。因此最理想的方法是直接在Simulink平台上将设计模型下载进FPGA,利用Simulink提供的各类仿真工具进行仿真。Altera的DSP Builder提供的HIL(Hardware in the Loop)模块能很好的完成这类仿真。HIL可以在Simulink模型与FPGA开发板间通过JTAG通信口建立一种联系,从而实现基于Matlab/DSP Builder平台的硬件仿真。我们利用上文建立的FSK模型来举例说明基于HIL

50、模块的仿真流程。1、 调出前面完成的FSK模型。将信号源Pulse Generator的参数和修改如下图630。图630 Pulse Generator参数设置图631 FSK的仿真参数设置窗2、用SignalCompiler对FSK模型进行转换、综合和适配。按照图621的步骤,分别按动对话框按钮1、2、3,使fsk_HIL.mdl转换成为一个Quartus工程。3、如图632所示,删去FSK图中所有Altera DSP Builder库元件构成的电路,再引入HIL模块(Altera DSP BuilderAltlabHIL)。为稳妥起见,将设计另存。图632 加入HIL模块的FSK4、将PC

51、机与FPGA开发板连接好,打开电源。双击图632的HIL模块,将弹出图633所示的HIL参数设置对话框。首先在1.Select Quartus Project加入前面生成的FSK工程;然后在2.Select the clock pin栏选择clock;根据电路图输入输出端口的数据类型确定3.Identity the signed port中各端口的数据类型在右栏的Burst Mode处打勾;在Burst length处键入1024(默认);在Frame Mode处打勾,下面参数默认,点击Next page按钮,进入下一页进入图634界面。图633 HIL参数设置在图634的FPGA devic

52、e栏输入你所应用的FPGA型号,如本书应用的类型为EP1C6Q240C8。如果PC机与FPGA的JTAG口通信正常,则在Program the FPGA 栏下的JTAG Cable栏将自动显示编程器类型;而Device in chain栏将自动显示已经从FPGA板上测得的FPGA型号。点击Compile with Quartus按钮,进行编译,即将原来图FSK模型已经生成的工程文件与HIL模块中输入输出信号缓冲模块一起编译成一个下载文件。以便进行基于HIL第硬件仿真。如果编译成功,会产生一个“.sof”文件,在图6-34下方的信息栏出现文字:Created fsd_HIL.sof.。下面点击图

53、6-34的Configure FPGA按钮,通过JTAG口将此文件下载到FPGA中。如果下载无误,会在信息栏出现文字:Programming successful。图6-34 HIL模块编辑与编程窗 5、如图6-35,将HIL模块与外围电路接好,运行Simulink仿真。图6-36为加入HIL模块的FSK模型仿真波形。如图所示,输入波形与输出波形有一定的相位差,这个相位差说明信号在FPGA里有了延时。图6-35 加入HIL的FSK模块图6-36 加入HIL后的FSK仿真6、利用Altera DSP Builder-Altlab-Device programmer,也可以进行模块编成,下载流程同

54、上。如图6-37。图6-37 利用编成模块向FPGA下载6.6 使用FIR IP Core 设计FIR滤波器 Altera为了使设计者也能在尽可能短的时间内快速高效的设计出符合设计要求的项目,给设计者提供了大量的IP Core,使设计者在不用全面了解有关器件的情况下达到理想的设计效果。MegaCore是Altera的IP Core计划中的一部分,FIR Compiler作为一个MegaCore,不附带在DSP Builder和Quartus中,需要向Altera公司单独购买。Altera 提供的FIR Compiler是一个结合AlteraFPGA器件的FIR Filter Filter Core,DSP Builder与FIR Compiler可以紧密结合起来,DSP Builder提供了一个FIR Core的应用环境和仿真验证环境。使用FIR Core之前,首先必须验证MatLab、DSP Builder、Quartus以及IP核本身即FIR Compiler

温馨提示

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

评论

0/150

提交评论