![MULTLABDSPbuilder硬件模块设计_第1页](http://file4.renrendoc.com/view/564dfd76b7a0844949582ab9eee55606/564dfd76b7a0844949582ab9eee556061.gif)
![MULTLABDSPbuilder硬件模块设计_第2页](http://file4.renrendoc.com/view/564dfd76b7a0844949582ab9eee55606/564dfd76b7a0844949582ab9eee556062.gif)
![MULTLABDSPbuilder硬件模块设计_第3页](http://file4.renrendoc.com/view/564dfd76b7a0844949582ab9eee55606/564dfd76b7a0844949582ab9eee556063.gif)
![MULTLABDSPbuilder硬件模块设计_第4页](http://file4.renrendoc.com/view/564dfd76b7a0844949582ab9eee55606/564dfd76b7a0844949582ab9eee556064.gif)
![MULTLABDSPbuilder硬件模块设计_第5页](http://file4.renrendoc.com/view/564dfd76b7a0844949582ab9eee55606/564dfd76b7a0844949582ab9eee556065.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.第六章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的上下载(例如:FIRpiler、Reed-Solomonpiler等等)。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的器件:Strati*、Strati*II和Strati*G*器件;Cyclone和CycloneII器件;APE*II、APE*20KC和APE*20KE器件;Mercury器件;ACE*®1K器件;FLE*®10K和FLE*6000器件。利用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的Signalpiler,将电路模型文件,即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的主窗口界面被分割成三个窗口:命令窗口(mandWindow)、工作区(Workspace)、命令历史(mandHistory)。使Matlab的CurrentDirectory指向所安装的DSPBuilder的Altlib文件夹,点击旁边的simulink图标打开simulink库,如下图6-2所示。图6-2Matlab的CurrentDirectory在SimulinkLibraryBrowser的左面展开AlteraDSPBuilder可以看见DSPBuilder的元件库如图6-3所示,元件库可以分为若干部分。其中有主控元件库(AltLab)、算术元件库(Arithmetic)、开发板库(Boards)、复元件库(ple*Type)、组合元件库(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转换器(Signalpiler)、逻辑分析仪(SignalTapⅡAnalysis)。2、算术元件库(Arithmetic),包含一些与运算相关联的器件。主要有比较器(parator)、计数器(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”、“1FSK调制的方法有两种:直接调频法用数字基带矩形脉冲控制一个振荡器的*些参数,直接改变振荡频率,输出不同的频率信号。频率键控法用数字矩形脉冲控制电子开关在两个振荡器之间进行转换,从而输出不同频率的信号。建立设计模型1、们需要建立一个工作库,所以先新建一个文件夹FSK。2、使Matlab的CurrentDirectory指向所安装的DSPBuilder的Altlib文件夹点击上方的simulink图标打开simulink库,如下图6-7所示。图6-7Matlab的CurrentDirectory3、在SimulinkLibraryBrowser窗口中选择File菜单,在出现的菜单中选择New,在弹出的子菜单中选择新建模型model。如图6-8图6-8新建Model4、放置Signalpilder。点击simulink库管理器左侧的数形列表中的AlteraDSPBuilder条,使之展开DSPBuilder库,这时会出现一串树形列表,对DSPBuider的子模块(Block)进行分组,展开其中的Altlab,选择库管理器右侧的Signalpilder,拖动到新的模型窗口。如图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-1Multiple*er和LUT同在Gate&Control模块下,将它们拖到新建Model中将LUT改名为ROM10*10S,如图6-13图6-13LUE和n-to-1Multiple*er模块其中n-to-1Multiple*er的数据输入线(NumberofinputDataLine)设为2,pipeline设为1。ROM10*10S的busType设为signedInteger(有符号整数),输出位numberofbits为8位,LUTAddressWidth(查找表地址线位宽)设为8。在MATLABArray编辑框中输入计算查找表容的计算式。在此可以直接使用正弦(sin)函数,在这里sin函数的调用格式为sin([起始值:步进值:结束值])。ROM10*10S为一个输入地址为8位,输出地址为8位的正弦查找表模块,输入地址总线位有符号整数(SignedInterger)。可以设定起始值为0、结束值为2π,步进值为2π/2^8。计算式可以写成127*sin([0:2*pi/(2^8):2*pi]),其中pi即位常数π。在UseLPM处打勾,表示允许QuartusⅡ利用目标器件中的嵌入式RAM(在EAB、ESB或M4K模块中)来构成ROM10*10S,即将生成的正弦波数据放在嵌入式RAM构成的ROM中,这样可以节省大量的逻辑资源。如图6-14。图6-14ROM10*10S参数设置7、在Arithmetic模块下找到ParallelAdderSubtractor,改名为ADDER4,将输入设为2,Add(+)Sub(-)设为++,其余不变,如图6-15。图6-15设置ADDER48、放置Delay模块。在Storage库下的Delay,放置到新建模型窗口并改名为Dly2。Delay是一个延时环节。在这里不修改其默认参数设置。9、Bus7和Out8在IO&Bus库下。找到AltBus,和output分别改名为Bus7和Out8。Bus7的BusType为SignedInteger,NodeType为InternalNode,numberofbit为8位。如图6-16。图6-16设置Bus7Out8的BusType也为Signedinteger类型8位。如图6-17。图6-17设置Out810、放置完所需的模块后,按照图6-5连接好。这样就完成了FSK调制模型的设计。在进行仿真验证和Signalpiler编译前,先对文件进行存盘操作:点击新建模型窗口的File菜单,选择Save项。取名并保存在自己所建的文件夹FSK中。在本例中,新建模型取名为fsk,模型文件为fsk.mdl。保存完毕后,新建模型窗口的标题栏会显示模型的名称,对模型取名后就可以使用Signalpiler进行编译了。在编译前还需要进行仿真验证。Simulink模型仿真用DSPBuilder模块设计好一个新的模型后,可以直接在simulink中进行算法级、系统级仿真验证。对一个模型进行仿真,需要施加合适的激励、一定的仿真步进和仿真周期,添加合适的观察点和观察方式。需要强调的是:凡是来自AlteraDSPBuilder库以外的模块,Signalpiler都不能将其变成硬件电路,即不会影响生成的VHDL程序,但在启动Simulink仿真后能影响后面产生的仿真激励文件,PulseGenerator模块的情况正是如此。1、加入一个PulseGenerator模块,在Simulink库管理器中,展开simulink库,选中Sources库,把Sources库中的PulseGenerator模块拖放到FSK模型窗口中。2、添加波形观察模块。在simulink的库管理器中,展开simulink库,选中其中的Sinks库,把Scope模块拖放到FSK模型窗口中。双击该模块,打开的是一个Scope窗口。用鼠标点击Scope模块窗口上侧工具栏的第二个工具按钮:Parameters参数设置。打开Scope参数设置对话框,在Scope对话框中有两个选项页:Gerneral和DataHistory。在Gerneral选项页中,改变Numberofa*es参数为2。点击“OK”后可以看到Scope窗口增加了两个波形观察窗。每个观察窗都可以分别观察信号波形,而且相对独立。如图6-18。图6-18Scope设置3、按图6-10连接FSK模型的全图。先设置模型的仿真激励。需要设置与此相连的模块:PulseGenerator。双击放置在FSK模型窗口中的PulseGenerator模块,设置对输入端口施加的激励。在打开的PulseGenerator模块参数设置对话框中,可以看到下列参数如图6-19。图6-19PulseGenerator参数设置其中脉冲类型(PulseType)是基于时间的(Timebased),振幅(Amplitude)为1,周期(period)是1500秒,占空比(PulseWidth)为50%,相位延迟(Phasedelay)为0。4、点击Simulation菜单,在下拉菜单中选择configurationparameters如图(6-20),将Stoptime设置成10000。FSK模型编辑窗中,在Simulation菜单下,选Start项,开始仿真。等待仿真结束,双击Scope模块,打开scope观察窗。在Scope观察窗中,可以使用工具栏中的按钮来放大缩小波形,也可以使用工具栏上的“Autoscale”,使波形自动适配波形观察窗,用鼠标左键,可以放大波形。图6-21为FSK的仿真图形。图6-20FSK仿真停止时间图6-21FSK仿真图图中可以清晰的看到在脉冲值为1和0时,载波信号频率随脉冲信号值变化而变化,从而实现了2FSK。Signalpiler使用方法下面进行设计流程中最为关键的一步,就是把DSPBuilder的设计转到硬件上加以实现。在这一步,可以获得针对特定FPGA芯片的VHDL代码。1、双击FSK模型中的Signalpiler模块,将出现如图6-22所示的对话框,点击Analyze(分析)按钮后,Signalpiler就会对FSK模型进行分析,检查模型有无错误,并在Matlab主窗口弹出对话框,并给出相关信息。图6-22双击Signalpiler2、图6-21中显示了Signalpiler窗口,左侧是项目设置选项ProjectSettingOptions,可以设置器件类型(Device)、综合工具(SynthesisTool)以及优化项目(Opimization);右侧是硬件编译流程Hardwarepilation;下方是信息框Messages。Signalpiler的设置都集中在项目设置选项部分。在Device下拉选择框中选择需要的器件系列,在此选为Cyclone系列。其具体的器件型号,需由QuartusII自动决定使用该器件系列中的*一个具体型号的器件,或在手动流程中由用户指定。图6-21Signalpiler设置对话框3、当设置好Device和Synthesis后,右侧的硬件编译Hardwarepilation部分就会列出一个操作流程,见图6-21。分别为:①转换MDL文件为VHDL文件(ConvertMDLtoVHDL)②综合(Synthesis)③编译适配(QuartusIIQuartus)先点击步骤1的图标,完成simulink文件(*.mdl)到VHDL文件的转换。转换完成后,在“Messages”信息提示框中,会显示“Generatedtoplevel“fsk.vhd”files”,即顶层文件fsk.vhd完成转换(图4-34)。fsk模型生成的VHDL文件4、点击步骤2的图标,完成综合过程。因为左侧的设置,本例用QuartusII来完成综合过程的,在综合后生成原子网表供适配器使用,并自动生成QuartusII可直接调用的工程。5、点击步骤3的图标,调用QuartusII完成编译适配过程,生成编程文件:pof文件和sof文件(图4-36)。编程文件可以直接用于FPGA的编程配置。如果想知道详细的报告,点击下面的ReportFile按钮进行查看。Fsk模型对应的报告文件为fsk_DspBuilder_Report.html。使用QuartusII实现时序仿真虽然已经进行了算法级、系统级仿真验证,然而进行门级的时序仿真仍然是十分重要的,Signalpiler已将MATLAB上的仿真信息转变成了可用于QuartusII进行时序仿真的激励信息及相关仿真文件fsk_quartus.tcl,因此能容易地完成此项任务。1、打开QuartusII环境,选择菜单File→OpenProject…,定位到fsk模型所在路径目录,打开DSPBuilder建立的QuartusII工程文件:fsk.quartus。2、上文中提到,在Signalpiler中的QuartusII编译,具体的器件由QuartusII自动决定,可实际使用中,器件往往不是QuartusII自动选定的那个型号,管脚也不是QuartusII自动分配的管脚。这些都需要在QuartusII中进行修改。所以这里须按照前面章节中叙述的方法选择具体器件型号,本例中使用的是EP1C6Q240C8,然后启动全程编译,即执行Startpilation。3、执行菜单Processing→StartSimulation。图6-22即为时序仿真波形,在图中可以清楚的看到输出数据随着时钟的变换交替的进行频率变换。如果这时看不到输出的波形数据,应该回到MATLAB设计文件检查,仿真、变换(注意这时只按Signalpiler中的第一按钮!)。图6-22时序仿真波形图使用QuartusII硬件测试与硬件实现在此按照前面章节中介绍的方法锁定管脚。打开fsk工程文件fsk.vhd,了解端口情况,选择合适的电路模式。然后进行编译,完成适配过程。最后是进行硬件的下载,连接好FPGA开发板。然后将实测结果与在计算机上进行的时序仿真结果进行比较。若再想改动Simulink中的fsk.mdl图,应该注意两点:第一,部电路结构和设置可以改,但端口信号名不要改,如输入input2、out8,因为此信号的引脚已被锁定,不便改变第二,改动out.mdl图后只宜作系统仿真和VHDL文件转换,不宜作综合,即最多只能对图6-17所示的界面执行第1个按纽,否则将可能把原来设定好的引脚全部冲掉。为了保存引脚信息,综合与适配两项操作必须在进入QuartusII后进行。图6-23为硬件实现后的输出波形。图6-23FSK调制波形6.3直接数字合成DDS设计直接数字合成DDS基本原理对于正弦信号发生器,它的输出可以用下式来描述。(6-1)其中是指该信号发生器的输出信号波形,指输出信号对应的频率。上式的表述对于t式连续的,为了用数字逻辑实现该表达式,必须进行离散化处理,用基准时钟clk进行抽样,令正弦信号的相位:(6-2)在一个clk周期,相位的变化量为:(6-3)其中指clk的频率对于2π可以理解成“满”相位,为了对进行数字量化,把2π切割成份,由此每个clk周期的相位增量用量化值来表述:,且为整数。与(6-3)式联立,可得:(6-4)显然,信号发生器的输出可描述为:(6-5)其中指前一个clk周期的相位值,同样得出(6-6)图6-24为DDS的基本结构图图6-24基本DDS结构用DSPBuilder设计DDSDDS采用了层次化的设计方法,即使用了Simulink的子系统(SubSystem)来完成DSP模型的层次化设计。我们可以用上面的例子进行简单的介绍:在已经建好的模型上进行简单修改后,选择除Signalpiler、PulseGenerator以外的模块,单击右键选择CreateSubsystem如图(6-25)。图6-25FSK输出的修改图6-26为创建子系统模块后的FSK图形。用鼠标双击Subsystem子系统模块后,就会弹出fsk/Subsystem窗口,显示子系统模块封装的原理图。值得注意的是,有些DSPBuilder库的模块只能放在顶层原理图中,如Signalpiler模块。如果子系统中放置了Signalpiler模块,只可以进行Simulink仿真,而不能使用Signalpiler来生成相应的VHDL代码。图6-26生成子系统后的FSK图6-23为DDS的顶层设计图,而图6-24为其子系统Subsystem的结构图。图6-24DDS顶层设计图其中AMPL、PHASE、FREQ是simulink-Sources库下的constant元件,Constantvalue分别为67、456、11456789,勾选Interpretvectorparametersas1-D选项,Sampletime为inf;Input、input1、input2在AlteraDSPbuilder-IO&Bus库下,BusType为Unsignedinterger,numberofbits分别为32、10、8;Output也在AlteraDSPbuilder-IO&Bus库下,输出位为10位有符号整数。图6-25DDS子系统仿真时间为10000;ROM10*10S为AlteraDSPbuilder-storage库下的LUT元件,BusType为有符号整数,输出为10位,LUTAddressWidth宽为10位,MATLABArray的输出公式是511*sin([0:2*pi/(2^10):2*pi]),并勾选UseLPM和RegisterAddress选项;Pdt2为AlteraDSPbuilder-Arithmetic库的Product元件,Pipeline值为0,勾选UseLPM选项;Bus1在AlteraDSPbuilder-IO&Bus库,是BusConversion元件,为有符号整数,输入18位,输出10位,InputBittoOutputLSB为8。Bus7为AlteraDSPbuilder-IO&Bus下的AltBus元件,总线类型是有符号整数,节点类型是部节点(InternalNode),32位;Adder4和Adder3设置相同,为在AlteraDSPbuilder-Arithmetic下的ParallelAdderSubtractor元件,NumberofInputs是2,Add(+)Sub(-)设为“++”,勾选Pipeline选项,ClockPhaseSelection设置为1;Dly2是AlteraDSPbuilder-Storage下Delay元件,默认设置;BusConversion在AlteraDSPbuilder-IO&Bus元件库,BusType为SignedInterger输入为32位,输出10位,InputBittoOutputLSB为22。图6-26为DDS信号输出波形。图6-26DDS信号输出AM调制器设计AM调制原理AM的调制原理是将要传送的信息装载到*一高频(载波)信号上去的过程,幅度调制是用调制信号去控制载波的振幅,使其随调制信号线型变化,而保持载波的频率不变。图6-27为在Maltlab下完成的AM全图,主要分为4个区域:①区和④区为两个正弦信号发生器,分别为调制信号和载波信号;②区为控制区,主要控制调制信号的幅度。当t9选择不同值时,②区输出不同的参数调整①区输出正弦信号的幅度,使调制信号的输出具有不同的幅度(如图6-27)。图6-28为Con9选择1、3、6时输出的调制信号。③区主要作用是将调制信号装载到载波信号上去,实现信号的调制。图6-27AM调制原理图图6-28受控的调制信号图6-29AM调制信号AM调制器参数设置仿真时间设为100000,其它设置如下:1、①区正弦信号发生器的设置:Cst15:AlteraDSPBuilder-IO&Bus-ConstantBusType:UnsignedIntegernumberofbits:16Constant:20Sampletime:1Bus3:AlteraDSPBuilder-IO&Bus-AltBusBusType:UnsignedIntegerNodeType:InternalNodenumberofbits:16Adder1:AlteraDSPBuilder-Arithmetic-ParallelAdderSubtractornumberofinput:2Add(+)Sub(-):++ClockPhaseSelection:1Dly:AlteraDSPBuilder-Storage-Delay默认设置Bus5:AlteraDSPBuilder-IO&Bus-BusConversionBusType:SignedIntegerInput[numberofbits]:16Output[numberofbits]:8InputBitConnectedtoOutputLSB:8ROM8*8S:AlteraDSPBuilder-Storage-LUTBusType:SignedIntegerOutput[numberofbits]:8LUTAddressWidth:8MATLABArray:127*sin([0:2*pi/(2^8):2*pi])勾选UseLPM和RegisterAddress项2、②区控制端参数设置:Mu*41:AlteraDSPBuilder-Gate&Control-nto1Multiple*erNumberofInputDataLine:8Pipeline:0SL:AlteraDSPBuilder-IO&Bus-inputBusType:UnsignedIntegerNodeType:InputPortnumberofbits:3t9:Simulink-sources-ConstantConstantvalue:6勾选Interpretvectorparametersas1-DSampletime:infCst8-14:AlteraDSPBuilder-IO&Bus-ConstantBusType:SignedFraction[numberofbits].[]:8[].[numberofbits]:8Sampletime:13、③区调制区参数设置Pdt1、Pdt2:AlteraDSPBuilder-Arithmetic-ProductPipeline:0勾选UseLPMADDER2、Adder3:AlteraDSPBuilder-Arithmetic-ParallelAdderSubtractornumberofinput:2Add(+)Sub(-):++ClockPhaseSelection:1勾选Pipeline选项。Bus1:AlteraDSPBuilder-IO&Bus-BusConversionBusType:SignedIntegerInput[numberofbits]:18Output[numberofbits]:10InputBitConnectedtoOutputLSB:8Cst3:AlteraDSPBuilder-IO&Bus-ConstantBusType:UnsignedIntegernumberofbits:8Constant:128Sampletime:1Cst4:AlteraDSPBuilder-IO&Bus-ConstantBusType:UnsignedIntegernumberofbits:10Constant:512Sampletime:1Adder2:AlteraDSPBuilder-Arithmetic-ParallelAdderSubtractornumberofinput:2Add(+)Sub(-):++ClockPhaseSelection:1AM_OUT:AlteraDSPBuilder-IO&Bus-outputBusType:UnsignedIntegerNodeType:OutputPortnumberofbits:104、④区正弦信号发生器的设置:Cst16:AlteraDSPBuilder-IO&Bus-ConstantBusType:UnsignedIntegernumberofbits:32Constant:88234567Sampletime:1Bus7:AlteraDSPBuilder-IO&Bus-AltBusBusType:UnsignedIntegerNodeType:InternalNodenumberofbits:32Adder4:AlteraDSPBuilder-Arithmetic-ParallelAdderSubtractornumberofinput:2Add(+)Sub(-):++ClockPhaseSelection:1勾选PipelineDly2:AlteraDSPBuilder-Storage-Delay默认设置BusConversion:AlteraDSPBuilder-IO&Bus-BusConversionBusType:SignedIntegerInput[numberofbits]:32Output[numberofbits]:10InputBitConnectedtoOutputLSB:22ROM10*10S:AlteraDSPBuilder-Storage-LUTBusType:SignedIntegerOutput[numberofbits]:10LUTAddressWidth:10MATLABArray:511*sin([0:2*pi/(2^10):2*pi])勾选UseLPM和RegisterAddress项6.5FSK硬件环HIL仿真设计前面提到的在Simulink平台上的仿真都属于算法级仿真,是软件仿真。如果想要求仿真结果能反映模块的硬件特性,在Simulink平台上的仿真就不能满足要求。在QuartusⅡ平台上的仿真尽管获得了全硬件的仿真结果,但没有Matlab提供的大量功能强大的仿真工具,一些特定功能的激励信号难以获得。因此最理想的方法是直接在Simulink平台上将设计模型下载进FPGA,利用Simulink提供的各类仿真工具进行仿真。Altera的DSPBuilder提供的HIL(HardwareintheLoop)模块能很好的完成这类仿真。HIL可以在Simulink模型与FPGA开发板间通过JTAG通信口建立一种联系,从而实现基于Matlab/DSPBuilder平台的硬件仿真。我们利用上文建立的FSK模型来举例说明基于HIL模块的仿真流程。调出前面完成的FSK模型。将信号源PulseGenerator的参数和修改如下图6-30。图6-30PulseGenerator参数设置图6-31FSK的仿真参数设置窗2、用Signalpiler对FSK模型进行转换、综合和适配。按照图6-21的步骤,分别按动对话框按钮1、2、3,使fsk_HIL.mdl转换成为一个QuartusⅡ工程。3、如图6-32所示,删去FSK图中所有AlteraDSPBuilder库元件构成的电路,再引入HIL模块(AlteraDSPBuilder-Altlab-HIL)。为稳妥起见,将设计另存。图6-32加入HIL模块的FSK4、将PC机与FPGA开发板连接好,打开电源。双击图6-32的HIL模块,将弹出图6-33所示的HIL参数设置对话框。首先在1.SelectQuartusⅡProject加入前面生成的FSK工程;然后在2.Selecttheclockpin栏选择clock;根据电路图输入输出端口的数据类型确定3.Identitythesignedport中各端口的数据类型在右栏的BurstMode处打勾;在Burstlength处键入1024(默认);在FrameMode处打勾,下面参数默认,点击Ne*tpage按钮,进入下一页进入图6-34界面。图6-33HIL参数设置在图6-34的FPGAdevice栏输入你所应用的FPGA型号,如本书应用的类型为EP1C6Q240C8。如果PC机与FPGA的JTAG口通信正常,则在ProgramtheFPGA栏下的JTAGCable栏将自动显示编程器类型;而Deviceinchain栏将自动显示已经从FPGA板上测得的FPGA型号。点击pilewithQuartusⅡ按钮,进行编译,即将原来图FSK模型已经生成的工程文件与HIL模块中输入输出信号缓冲模块一起编译成一个下载文件。以便进行基于HIL第硬件仿真。如果编译成功,会产生一个“.sof”文件,在图6-34下方的信息栏出现文字:Createdfsd_HIL.sof.。下面点击图6-34的ConfigureFPGA按钮,通过JTAG口将此文件下载到FPGA中。如果下载无误,会在信息栏出现文字:Programmingsuccessful。图6-34HIL模块编辑与编程窗5、如图6-35,将HIL模块与外围电路接好,运行Simulink仿真。图6-36为加入HIL模块的FSK模型仿真波形。如图所示,输入波形与输出波形有一定的相位差,这个相位差说明信号在FPGA里有了延时。图6-35加入HIL的FSK模块图6-36加入HIL后的FSK仿真6、利用AlteraDSPBuilder-Altlab-Deviceprogrammer,也可以进行模块编成,下载流程同上。如图6-37。图6-37利用编成模块向FPGA下载6.6使用FIRIPCore设计FIR滤波器Altera为了使设计者也能在尽可能短的时间快速高效的设计出符合设计要求的项目,给设计者提供了大量的IPCore,使设计者在不用全面了解有关器件的情况下达到理想的设计效果。MegaCore是Altera的IPCore计划中的一部分,FIRpiler作为一个MegaCore,不附带在DSPBuilder和QuartusⅡ中,需要向Altera公司单独购买。Altera提供的FIRpiler是一个结合AlteraFPGA器件的FIRFilterFilterCore,DSPBuilder与FIRpiler可以紧密结合起来,DSPBuilder提供了一个FIRCore的应用环境和仿真验证环境。使用FIRCore之前,首先必须验证MatLab、DSPBuilder、QuartusⅡ以及IP核本身即FIRpiler等工具安装正确。如果一切正常,就可以在Simulink库管理的AlteraDSPBuilder库中看到MegaCoreFunctions库,以及库中含有的FIRpiler等IP模块。下面通过一个高速低通的FIR滤波器,来介绍IP在Matlab工具上的基本使用方法。FIR滤波器核的使用在Simulink环境中新建一个模型,放置Signalpiler模块和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版数学八年级下册16.2《二次根式的乘除》听评课记录4
- 岳麓版历史八年级下册第16课《“一国两制”与香港、澳门回归祖国》听课评课记录
- 苏教版三年级第五册整百数乘一位数的口算教学设计
- 小学二年级语文教学计划范文
- 厂房物业管理服务合同范本
- 五年级上册数学听评课记录《第5单元:第3课时 用字母表示稍复杂的数量关系》人教新课标
- 2025年度互联网金融服务连带责任保证担保协议范文
- 2025年度蔬菜种植基地病虫害防治合作协议
- 二零二五年度XX装修公司员工岗位责任合同协议书
- 2025年度电商团队数据安全合作协议
- 2023年上海青浦区区管企业统一招考聘用笔试题库含答案解析
- 2023年高一物理期末考试卷(人教版)
- 2023版押品考试题库必考点含答案
- 植物之歌观后感
- 空气能热泵安装示意图
- 建筑工程施工质量验收规范检验批填写全套表格示范填写与说明
- 2020年中秋国庆假日文化旅游市场安全生产检查表
- 办公家具项目实施方案、供货方案
- 七年级英语下册阅读理解10篇
- 节后开工收心会
- 设计质量、进度保证措施
评论
0/150
提交评论