您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > DspBuilder中文教程1
第9章DSPBuilder设计初步利用EDA技术完成硬件设计的途径有多种,前面介绍的是利用QuartusII来完成的,昀为典型的设计流程,包括设计项目编辑(如用VHDL)、综合、仿真、适配、编程。但是对于一些特定的设计项目,这个流程就会显得很不方便,甚至无能为力。例如涉及算法类(如DSP模块)及模拟信号处理与产生方面的系统设计。Altera自2002年推出的DSPBuilder则很好地解决了这些问题。DSPBuilder可以帮助设计者完成基于FPGA的不同类型的应用系统设计。除了图形化的系统建模外,DSPBuilder还可以自动完成大部分的设计过程和仿真,直至把设计文件下载至FPGA开发板上。利用Matlab与DSPBuilder进行模块设计也是SOPC技术的一个组成部分。本章以两个简单的电路模型设计为示例,详细介绍Matlab、DSPBuilder、QuartusII三个工具软件联合开发的设计流程。9.1Matlab/DSPBuilder及其设计流程DSPBuilder是一个系统级(或算法级)设计工具,它架构在多个软件工具之上,并把系统级(算法仿真建模)和RTL级(硬件实现)两个设计领域的设计工具连接起来,都放在了Matlab/Simlink图形设计平台上,而将QuartusII作为底层设计工具置于后台,昀大程度地发挥了对种工具的优势。DSPBuilder依赖于MathWorks公司的数学分析工具Matlab/Simlink,以Simulink的Blockset出现。可以在Simulink中进行图形化设计和仿真,同时又通过SignalCompiler把Matlab/Simulink的模型设计文件(.mdl)转成相应的硬件描述语言VHDL设计文件(.vhd),以及用于控制综合与编译的tcl脚本。对于综合以及此后的处理都由QuartusII来完成。由于在FPGA上设计一个算法模型的复杂性,设计的性能(包括面积、速度、可靠性、设计周期)对于不同的应用目标将有不同的要求,涉及的软件工具也不仅仅是Simulink和QuartusII,DSPBuilder针对不同情况提供了两套设计流程,即自动流程和手动流程。图9-1是基于Matlab、DSPBuilder、QuartusII等工具完成设计的流程框图。如图9-1所示,设计流程的第一步是在Matlab/Simulink中进行设计输入。即在Matlab的Simulink环境中建立一个mdl模型文件,用图形方式调用DSPBuilder和其他Simulink库中的图形模块,构成系统级或算法级设计框图,或称Simulink设计模型。在第二步,是利用Simulink的图形化仿真、分析功能,分析此设计模型的正确性,完成模型仿真。在这两步中,与一般的MatlabSimulink建模过程几乎没有什么区别,所不同的是,设计模型库采用DSPBuilder的Simulink库而已,同样也涉及到其他EDA软件。第9章DSPBuilder设计初步309Simulink模型仿真综合(QuartusII,LeonardoSpectrum,Synplify)ATOMNetlist产生QuartusIIHDL仿真(ModelSim)综合(QuartusII,LeonardoSpectrum,Synplify)QuartusII生成编程文件(.pof,.sof)下载至硬件自动流程手动流程mdl转成vhdlMatlabSimulink建立模型图9-1基于Matlab、DSPBuilder、QuartusII等工具第三步是DSPBuilder设计实现的关键一步。由于EDA工具软件(诸如QuartusII、ModelSim)不能直接处理Matlab的.mdl文件,这就需要一个转换过程。通过SignalCompiler把Simulink的模型文件(后缀为.mdl)转化成通用的硬件描述语言,VHDL文件。转换获得的HDL文件是基于RTL级的,即可综合的VHDL描述。此后的步骤是对以上顶层设计产生的VHDL的RTL代码和仿真文件进行综合、编译适配以及仿真。为了针对不同用户的设计目的和设计要求,DSPBuilder提供了两种不同的设计流程,主要可以分为自动流程和手动流程。如果采用自动流程,几乎可以忽略硬件的具体实现过程,选择让DSPBuilder自动调用QuartusII等EDA软件,完成综合(Synthesis)、网表(ATOMNetlist)生成和QuartusII适配,直至在Matlab中完成FPGA的配置下载过程。但是,如果希望使用其它第3方的VHDL综合器和仿真器(除Synplify、LeonardoSpectrum和QuartusII综合器及ModelSim外),或是希望完成特定的适配设置,如逻辑锁定、时序驱动编译、ESB特定功能应用等,可以选用手动流程设计。在此流程中,设计者可以灵活地指定综合、适配条件;手动地调用VHDL综合器进行综合,调用QuartusII进行适配,调用ModelSim或者QuartusII进行仿真,昀后用QuartusII产生相应的编程文件用于FPGA的配置。EDA技术与VHDL310采用手动流程时,除了行为级仿真验证和设计输入外,其它过程与标准的基于VHDL的EDA设计流程是完全一致的。首先由基于Matlab的DSPBuilder设计流程得到VHDL文件(由Simulink模型文件*.mdl通过SignalCompilder转换而成),送入综合器进行综合。综合器可以是SynplifyPro,也可以是LeonardoSpectrum,或者采用Altera自己的QuartusII综合器。在综合时,可能需要对综合器进行配置或者提供综合的约束条件,由于这个过程操作可能比较繁琐,所以DSPBuilder的SignalCompiler相应提供了一个接口,针对设计,自动产生一个TCL脚本与综合器Synplify或者LeonardoSpectrum相接。综合器在综合操作后,会产生一个网表文件,以供下一个流程使用。这里产生的网表文件称为ATOM网表文件,主要是EDIF网表文件(.edf电子设计交换格式文件)或VQM(.vqmVerilogQuartusMappingFile),它们是一种参数可设置的,并含有具体器件系列硬件特征(如逻辑宏单元LCs、I/O单元、乘积项、M4K、嵌入式系统块ESB等)的网表文件。QuartusII可以利用这些ATOM网表文件针对选定的具体器件进行适配,包括布线、布局、结构优化等操作,昀后产生时序仿真文件和FPGA目标器件的编程与配置文件。在这一步,设计者可以在QuartusII中完成对Pin(引脚)的锁定,更改一些约束条件等。如果用DSPBuilder产生的设计模型只是庞大设计中的一个子模块,可以在设计中调用DSPBuilder产生的VHDL文件,以构成完整的设计。同时,还可以使用QuartusII强大的LogicLock功能和SignalTap测试技术。在DSPBuilder设计流程的昀后一步,可以在DSPBuilder中直接下载到FPGA用户开发板上,或者通过QuartusII完成硬件的下载、测试。在图9-1的流程中,其中的VHDL仿真流程在设计中是不可或缺的。与DSPBuilder可以配合使用的HDL仿真器是ModelSim。DSPBuilder在生成VHDL代码时,可以同时生成用于测试DSP模块的TestBench(测试平台)文件,DSPBuilder生成的TestBench文件采用VHDL语言,测试向量与该DSP模块在Simulink中的仿真激励相一致。通过ModelSim仿真生成的TestBench可以验证生成的VHDL代码与Simulink中设计模型的一致性。另外,DSPBuilder在产生TestBench的同时,还产生了针对ModelSim仿真的Tcl脚本来简化用户的操作,如包含了来自Simulink平台上进行仿真的激励信号信息等,从而掩盖ModelSim仿真时的复杂性。在大部分情况下,QuartusII对来自DSPBuilder的设计模块适配后,需要再次验证适配后网表与Simulink中建立的DSP模型的一致性。这就需要再次使用ModelSim进行仿真,这时仿真采用QuartusII适配后带延时信息的网表文件(EDIF格式、或者VHDL、Verilog格式),即为时序仿真。两种设计流程归纳起来有如下几个步骤:自动流程:1、MATLAB/Simulink建模;2、系统仿真;3、DSPBuilder完成VHDL转换、综合、适配、下载。4、嵌入式逻辑分析仪实时测试手动流程:1、MATLAB/Simulink建模;2、系统仿真;3、DSPBuilder完成VHDL转换、综合、适配;4、Modelsim对TestBench功能仿真;5、QuartusII直接完成适配(进第9章DSPBuilder设计初步311行优化设置);6、QuartusII完成时序仿真;7、引脚锁定;8、下载/配置与嵌入式逻辑分析仪等实时测试;9、对配置器件编程,设计完成。考虑到实用的目的,本章重点介绍手动设计流程。9.2正弦信号发生器设计本节中,以一个简单的可控正弦波发生模块的设计为例,详细介绍DSPBuilder基于手动流程的的使用方法。图9-2所示是一个简单的正弦波发生器,主要由4个部分构成:InCount是阶梯信号发生模块,产生一个按时钟线性递增的地址信号,送往SinLUT。SinLUT是一个正弦函数值的查找表(LUT:LookUpTable)模块,由递增的地址获得正弦波的量化值输出。由SinLUT输出的8位正弦波数据经过一个延时模块Delay后送往Product乘法模块,与SinCtrl相乘。由于SinCtrl是1位(bit)输入,SinCtrl通过Product就完成了对正弦波输出有无的控制。SinOut是整个正弦波发生器模块的输出,送往D/A即可获得正弦波的输出模拟信号。设计者在利用DSPBuilder来进行相关设计时,关键的设计过程大都在Matlab的图形仿真环境Simulink中进行。图9-2正弦波发生模块原理图9.2.1建立设计模型首先需要建立一个新的设计模型,步骤如下:1、打开Matlab环境Matlab环境界面如图9-3所示。可以看到,Matlab的主窗口界面被分割成三个窗口:命令窗口(CommandWindow)、工作区(Workspace)、命令历史(CommandHistory)。在命令窗口中,可以键入Matlab命令,同时获得Matlab对命令的响应信息、出错警告提示等。EDA技术与VHDL312工作区命令历史记录命令窗口工作目录图9-3Matlab界面2、建立工作库在建立一个新的设计模型前,昀好先建立一个新的文件夹,作为work(工作)目录,并把Matlab当前的work目录切换到新建的文件夹下。可以使用Windows在外部建立,也可以使用Matlab命令来直接完成这些操作,例如在Matlab主窗口中的命令窗口中键入:cde:/mkdir/myprj/sinwavecd/myprj/sinwave其中e:/myprj/sinwave是新建的文件夹,是用作Matlab工作目录的。Mkdir是一个建立新目录的Matlab命令,cd是切换工作目录的Matlab命令。具体过程可以参见图9-4(打开simulink)。通过改变Matlab主界面中的“CurrentDirectory”的制定,同样可以改变Matlab的当前工作目录。3、了解simulink库管理器当成功地把Matlab当前目录切换到新建的设计目录后(即键入cd/myprj/sinwave),键入命令:pwd,之后可以在Matlab命令窗口键入“simulink”命令,以开启Matlab的图形化建模仿真环境simulink。详见图9-4(打开simulink)。图9-5是simulink的库管理器(LibraryBrowser)。第9章DSPBuilder设计初步313图9-4打开simulink图9-5
本文标题:DspBuilder中文教程1
链接地址:https://www.777doc.com/doc-5528611 .html