第4章DSPBuilder设计进阶.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSPBuilder 设计 进阶
- 资源描述:
-
,第二级,第三级,第四级,第五级,第,4,章,DSP Builder,设计进阶,第4章 DSP Builder设计进阶,4.1 层次化设计,4.2 用ModelSim进行RTL级VHDL仿真,4.3 使用Synplify进行综合,4.4 使用LeonardoSpectrum进行综合,4.5 Quartus II与DSP Builder的接口,4.1 层 次 化 设 计,上一章我们已在Matlab/Simulink中设计了一个简单的正弦波发生器。作为示例,该模型是非常简单的,只需要数个DSP Builder模块就可以构成。但在其它许多实用领域,如通信领域中,实际需要实现的DSP模型往往要复杂得多,如果把所有模块放在同一个Simulink图中,设计图会显得非常复杂、庞大,不利于阅读和排错。这时,就必须采用层次化设计方法来设计模型了。,4.1.1 DSP Builder的子系统,DSP Builder可以支持层次化设计方法。在Matlab的Simulink建模时,可以使用SubSystem来完成子系统的封装和调用。DSP Bulider继承了Simulink的子系统(SubSystem)来完成DSP模型的层次化设计。,下面以一个示例来具体说明DSP Builder的层次化设计。,首先建立一个新的模型,命名为subsint模型,依照图4-1连接起来(这个图是前面sinout模型的简化,因此也可以复制sinout模型的Simulink图到subsint模型,再修改一下即可)。,图4-1 subsint模型初始的原理图,在subsint模型窗口中,按住鼠标左键,移动鼠标画一个框,选中图中除了SignalCompiler、Step模块以外的所有模块(可以通过按住键盘上的Shift键,用鼠标左键点击来改变模块的选择情况)。接着,在选中的模块上点击鼠标右键,在弹出的右键菜单中(如图4-2所示)选择“Create subsystem”,建立子系统。,图4-3中所示的是建立子系统后subsint模型的Simulink原理图。从图中可以看到原来被选中的那些模块和连线都消失了,只剩下一个新建立的子系统模块:Subsystem。,在新生成的Subsystem模块上共有两个端口:In1、Out1。,事实上图4-3显示的是subsint模型的顶层(Top Level)原理图。这时用鼠标双击Subsystem子系统模块,就会弹出“subsint/Subsystem”窗口,显示Subsystem子系统模块封装的原理图(见图4-4)。可以看出,封装后的图自动增加了两个Simulink的端口,即:In1和Out1。,在打开的子系统模块中,可以任意地增删模块;放置仿真用的Simulink库的模块;引入“Scope”等。不过某些DSP Builder库的模块只能放置在顶层原理图中,比如SignalCompiler模块。假如在子系统模块中放置了SignalCompiler模块,只可以进行Simulink的仿真,但不能使用SignalCompiler来生成相应的VHDL代码。,图4-4 subsint/Subsystem子系统图,同普通的DSP Builder模块一样,子系统模块也可以自行命名,操作方法同普通模块。见图4-5,可以把Subsystem子系统模块的名字修改为singen。,在子系统中的输入/输出端口的名字也可以定制。,在“subsint/singen”子系统窗口,修改输入端口“In1”为“CtrlIn”,输出端口“Out1”为“OutSin”(见图4-6)。当修改好端口后,修改的结果立刻在subsint模型的顶层原理图上的singen子系统模块上显示出来。不需要任何的更新操作。,图4-5 修改子系统名,图4-6 修改Subsystem的端口,图4-7就是更改singen子系统端口名称后subsint模型顶层原理图的显示。,Simulink的子系统的端口的增删操作也比较简单,可以直接在子系统的图上加入或者删除输入、输出端口。在调用该子系统模块的上层原理图上,马上就会更改相应的子系统模块的显示。,对于生成的子系统模块,可以将其当成一般的DSP模块来使用,允许任意复制、删除子系统模块,或者再组合其它的模块来生成更高一层的子系统。,图4-7 TopLevel图的改变,4-8是最后的subsint模型图。限于篇幅,下面仅列出新增模块需要修改的参数值:,Offset模块:(Altbus),库:Altera DSP Builder中Bus Manipulation库,参数“Bus Type”设为“Unsigned Integer”,参数“Bus Type”设为“Input port”,参数“number of bits”设为“10”,图4-8 含subsystem的subsint模型,Parallel Adder Subtractor模块:(Parallel Adder Subtractor),库:Altera DSP Builder中Arithmetic库,“Add(+)Sub()”设为“”,xSin模块:(Altbus),库:Altera DSP Builder中Bus Manipulation库,参数“Bus Type”设为“signed Integer”,参数“Bus Type”设为“Output port”,参数“number of bits”设为“10”,CtrlIn模块:(Altbus),库:Altera DSP Builder中Bus Manipulation库,参数“Bus Type”设为“Single Bit”,参数“Bus Type”设为“Input port”,Constant模块:(Constant),库:Simulink中Source库,参数“Constant Value”设为“512”,建立好模型后,按照sinout模型的例子设定好Simulink的仿真设置,并给定合适的Step模块的激励参数,启动subsint模型的仿真。图4-9显示的是subsint模型的仿真波形。从图上可以看出,subsint模型在sinout模型的基础上增加了波形的电压偏移。,注意:图4-9是subsint模型顶层原理图上Scope的波形显示。在这个例子中,子系统singen中还含有一个Scope模块,同样也可以对相应节点的波形进行观察。,图4-9 subsint模型仿真波形,不过,虽然可以进行Simulink仿真,但是还不能进行SignalCompiler分析。按照前面步骤作的subsint模型中的singen子系统模块,必须进行设置才可以让SignalCompiler识别为DSP Builder的子系统。,在打开的subsint模型窗口中,先选中子系统模型singen,然后选择菜单“Edit”“Edit mask.”项(见图4-10),打开“Mask editor:singen”设置对话框。,在“Mask editor:singen”对话框中选择“Documentation”选项页(见图4-11),设置“Mask type”为“SubSystem AlteraBlockSet”(子系统 Altera模块集)。注意输入时没有引号。,图4-10 编辑SubSystem的mask,图4-11 编辑singen的“Mask type”,设置完“Mask type”后,SignalCompiler就可以正常地生成VHDL代码了。不过,与sinout模型生成的VHDL代码有所不同,sinout模型在转换时只生成一个VHDL文件(TestBench文件除外),而subsint模型在转换后生成了两个VHDL文件:subsint.vhd和singen.vhd。其中,subsint.vhd是顶层的VHDL文件,singen.vhd是singen子系统的VHDL文件。,SignalCompiler对于子系统模块的处理是:每个子系统模块都产生一个VHDL文件,在上一级的VHDL文件中加以例化调用。,通过对每一层次的子系统的调用,可以实现复杂的DSP模型结构。为了便于设计者管理,Simulink提供了“Model Browser”来显示模型的结构。在模型窗口选择“View”“Model Browser Options”“Model Browser”项,在“Model Browser”前打上“”(见图4-12)。,图4-12 树形结构显示模型层次,4.1.2 在DSP Builder中使用外部的VHDL代码,在具体的设计过程中,可能会有一部分VHDL代码已经设计完成,不希望再次用DSP Builder来描述,或者用VHDL代码直接描述某些电路模块会比用Simulink原理图描述更为简便。这就需要DSP Builder能接受外部的VHDL代码。,在DSP Builder中支持外部VHDL代码的导入,并生成相应的模块(Block),可以在DSP Builder模型中使用。下面举一个简单的例子来说明调用的整个过程。,【例4-1】mac.vhd文件调用。,library IEEE;,use IEEE.STD_LOGIC_1164.ALL;,use IEEE.STD_LOGIC_ARITH.ALL;,use IEEE.STD_LOGIC_SIGNED.ALL;,entity mac is,Port(,a:in std_logic_vector(11 downto 0);,b:in std_logic_vector(7 downto 0);,Q:out std_logic_vector(19 downto 0);,end mac;,architecture mac_arch of mac is,begin,Q=(a*b);,end mac_arch;,例4-1的VHDL程序是一个128的MAC单元的描述,在此把它导入到DSP Builder中。先在Simulink中建立一个新模型,命名为vhdlmac。,在Simulink库管理器的Altera DSP Builder中的AltBus库中,找到SubSystemBuilder模块(图4-13),放置在新建的vhdlmac模型窗口中。,双击vhdlmac模型窗口中的SubSystemBuilder模块,打开SubSystem Builder对话框(见图4-14)。点击按钮,选择mac.vhd文件。导入后在SubSystem Builder对话框下方会列出端口情况。如图4-15所示,建立mac子系统模块。,图4-13 SubSystemBuilder模块,图4-14 Sub System Builder对话框,图4-15 建立mac子系统模块,点击“Add mac in vhdlmac”按钮,把mac模块加入到vhdlmac模型中,见图4-16。,图4-17显示的是在Simulink中的mac模块图,可见只有端口和内部总线。在SignalCompiler把mdl转换成vhdl时,在顶层VHDL文件中mac将作为元件被例化,可以使用DSP Builder的设计流程进行综合、适配、下载。,不过,使用导入的VHDL文件建立的模块,若不作设置将不能使用Simulink的仿真功能。,图,4-16,导入了,mac,模块的,vhdlmac,模型,图4-17 vhdlmac/mac模块图,4.2 用ModelSim进行RTL级VHDL仿真,在第1章和第3章中已简略介绍了ModelSim的功能,本节将详细讨论基于DSP Builder的DSP设计流程中ModelSim的使用方法。,ModelSim是一个基于单内核的Verilog/VHDL混合仿真器,是Mentor Graphics的子公司Model Technology的产品。ModelSim是编译型仿真器,使用编译后的HDL库进行仿真。因此,在进行仿真前,必须编译所有的待仿真的HDL文件成为HDL仿真库。在编译时获得优化,提高了仿真速度。,ModelSim可以帮助DSP Builder使用者完成三个层次的VHDL仿真:,RTL级仿真(功能仿真);,综合后门级仿真;,适配后门级仿真(时序仿真)。,为了使读者熟悉ModelSim的具体仿真过程,下面以上一节的subsint模型为例,讲述基于ModelSim的RTL级功能仿真过程。具体步骤如下:,1.启动ModelSim,图4-18显示的是ModelSim的启动界面,图中是ModelSim的主窗口区(Main Windows),主要由下列几部分构成:,命令窗口(Transcript),工作区(Workspace),工具栏,在命令窗口中可以输入ModelSim的命令(基于TCL Script)并获得执行信息;在工作区用Tree List(树状列表)的形式来观察Library(库)、Project(项目源文件)并显示仿真时各设计模块的依赖关系。,图4-18 ModelSim的启动界面,2.执行DSP Builder生成的TCL Script,在第3章中曾经提到过DSP Builder的SignalCompiler在把mdl文件转换成VHDL文件时,会同时产生用于Modelsim仿真(RTL级仿真)的TCL Script(TCL脚本)。在ModelSim中通过菜单调用生成的TCL script将自动完成RTL仿真过程。,在这个例子中我们将叙述另外一种调用方式,即通过TCL命令调用。,在ModelSim主窗口右侧的命令窗口中输入(这里假设subsint.mdl在e:myprjsubsint目录下):,cd e:/myprj/subsint,切换到subsint模型subsint.mdl所在的目录下,接着执行:,do tb_subsint.tcl,当正常执行完后,弹出wave窗口显示波形(见图4-19)。接着,按照第3章中的方法设置wave窗口中的/tb_subsint/oxsins信号为模拟波形,见图4-19。,注意:/tb_subsint/oxsins信号的“Radix”参数应设为“Decimal”。,图4-19 wave窗口信号用模拟量显示,3.打开ModelSim的所有窗口,选择ModelSim主窗口中的菜单“View”“All Windows”,打开ModelSim用于仿真的所有窗口(图4-20)。由图可知这里共有九个窗口(含主窗口),它们构成了ModelSim强大的HDL仿真环境。这九个窗口分别为:,主窗口(Main),列表窗口(List)(未在图4-20中出现),波形窗口(Wave),信号窗口(Signal),源文件窗口(Source),进程窗口(Process),变量窗口(Variables),数据流图窗口(Dataflow),结构窗口(Structure)(未在图4-20中出现),其中源文件窗口用于编辑HDL源文件及跟踪、调试源文件;进程窗口显示当前仿真所在文件中的进程列表,如果在VHDL程序中的Process没有进程名,在进程窗口中将出现该进程在仿真器上的进程编号;信号窗口显示当前VHDL文件涉及的信号Signal;变量窗口显示当前变量Variables。,图4-20 ModelSim全界面,4.手动仿真调试,当设计存在问题时,有时需要在ModelSim中对生成的VHDL代码进行更为细致的校验,这时可能就需要通过手动方式来进行ModelSim的仿真、调试了。,注意:在一般情况下,不推荐采用手动仿真调试来发现设计的问题,而是更趋向于在Simulink中解决设计问题。DSP Builder封装了一些复杂的实现过程,如果采用手动方式,势必要求设计者了解其中过多的具体细节。,好在DSP Builder会产生一些用于ModelSim仿真的文件,除了前面提到的tb_subsint.tcl外,还有一个用VHDL编写的TestBench文件:tb_subsint.vhd。该文件是一个调用了许多信号的激励文件,或称测试激励文件,也有称其为测试基准文件的。,在ModelSim中的仿真是针对tb_subsint.vhd进行的,在tb_subsint文件中例化了subsint.vhd对应的subsint元件。,手动仿真的具体步骤如下:,(1)复位仿真器。要进行手动仿真,应该先把ModelSim的仿真结果去除,这就需要复位仿真器。,可以在ModelSim的主窗口的命令窗口中键入:restart,在弹出的对话框中按“Restart”按钮确认,从而复位仿真器(如图4-21)。,(2)添加附加的信号。添加相关的信号到wave波形窗口,往往可以帮助设计者快速地找到错误所在。,图,4-21,复位仿真器,在ModeSim主窗口的工作区的“sim”选项页中选择要附加信号所在的模块,或者在结构(Structure)窗口中寻找、选择(如图4-22所示)。,然后,在信号(signals)窗口(如图4-23所示)中找到需要附加的信号,比如说dataa。选择该信号,按住鼠标左键,把它拖动到波形(Wave)窗口。,或者可以在ModelSim的主窗口的命令窗口中输入TCL命令:,add wave -radix dec/tb_subsint/u0/u3/dataa,也一样可以加入信号。,图4-22 结构窗口,图4-23 信号窗口,(3)编辑信号激励。在默认情况下,在ModelSim仿真时会使用模型在Simulink仿真时的激励。如果需要修改激励,可以在ModelSim仿真时修改。,在“Signals”窗口中,先选中需要修改或者添加激励的信号,用该窗口下“Edit”菜单中的“Force.”、“Clock.”设置好信号的新的激励。在进行仿真时,也可以在适当的仿真时刻改变某些信号的激励。,需要指出的是,在ModelSim中对Signal的Force赋值有三个类(Kind):,Freeze,Drive,Deposit,其中Freeze的赋值强度最强,Drive次之,Deposit最弱。ModelSim是一个严格的HDL仿真器,对于寄存器不指定默认值(Quartus II仿真有默认值),在信号的初始化时要对寄存器赋值,这时不可赋予Freeze,如果是这样的话,寄存器的值就不能被其它信号驱动而改变。一般应该用“Deposit”赋值。同样,inout等类型信号一般情况下也不能用Freeze赋值。,(4)开始调试。现在进行ModelSim仿真。在ModelSim中有三种方式可以启动仿真操作:,i)用菜单选项启动,ii)用工具栏上的按钮启动,iii)用命令行启动,众多方式的存在使得调试过程更为方便。,ModelSim在仿真时支持下列操作:,run:运行一个仿真间隔;,Continue Run:继续运行;,Run-All:运行,直至被停止;,Step:单步;,Step Over:宏观单步;,Break:中断仿真;,Restart:仿真复位。,ModelSim仿真还具有代码覆盖功能,可以在仿真时或仿真后查看VHDL代码执行的覆盖情况。,(5)使用数据流图分析信号关系。在波形(Wave)窗口双击信号的波形可以在数据流图(Dataflow)窗口追踪、查看该信号相关的赋值情况,同时可看到相关信号的波形情况(见图4-24)。,图4-24 查看数据流图,4.3 使用Synplify进行综合,Synplify是Synplicity公司的FPGA/CPLD逻辑综合工具。Synplify支持VHDL/Verilog综合。Synplify能以很高的效率将VHDL/Verilog设计文件转换为针对选定器件的标准网表,并提供相应设计环境的配置文件。Synplify具有资源共享优化功能,并含符号化的FSM(有限状态机)编译器,可以实现状态机优化。,Synplify还具有图形调试功能,即将HDL设计文件编译和综合后,产生相应的电路原理图,以便用户可以从电路图中观察结果,并且在图形显示时,可交叉参考原理图元件或电路节点对应的HDL源代码。产生的原理图的表达方式有两种,即RTL级图和门级结构的Technology底层电路结构图。,RTL图是综合的通用原理图描述,不随选定的目标器件的不同而改变,它仅与VHDL/Verilog代码描述的功能有关。Technology图则随针对选定器件的优化情况和器件系列结构的不同而有所不同,故属于门级结构的原理图。,Synplify能够生成几乎所有主流FPGA/CPLD器件的网表,Altera公司的也不例外。DSP Builder在SignalCompiler中专为Synplify提供了一个综合选项。,4.3.1 Synplify与DSP Builder的接口(自动流程),使用DSP Builder的自动流程,允许在SignalCompiler中自动地在后台调用Synpilfy综合器来完成综合过程。,在SignalCompiler窗口,选择“Synthesis”下拉框中的“Synplify”项(图4-25),即选用Synplify对生成的VHDL代码进行综合。在进行综合这一步骤之前,还需要把mdl转换成VHDL。因为在mdl转换到VHDL的过程中,SignalCompiler会自动生成控制操作综合器的TCL脚本。,图4-25 选择synplify综合,点击SignalCompiler窗口右上侧的按钮,生成针对Synplify综合器的TCL脚本,然后点击按钮,完成Synplify的调用、综合过程。自动流程中,综合完毕后会在SignalCompiler窗口的下侧信息提示(Messages)框中提示综合的情况(见图4-26)。,如果综合时出现错误,综合过程就会终止,同时在信息提示框中会简要地提示错误描述及可能造成错误的原因。,图4-26 Synplify综合后的信息提示,4.3.2 Synplify和DSP Builder的接口(手动流程),在DSP Builder设计的自动流程中,Synplify的调用是在后台进行的,简单快捷。但是对于复杂的DSP设计,有时则需要使用Synplify强大的图形环境,观察综合的效果,分析延时情况。这时,可以使用手动流程来完成Synplify的综合过程。,1.生成Synplify综合的TCL脚本,这里以sinout模型为例,叙述Synplify综合的手动过程。,打开sinout模型的SignalCompiler窗口,按照自动流程的步骤选择综合工具和设计约束。点击SignalCompiler窗口右侧的按钮,生成Synplify综合用TCL脚本。对于sinout模型而言,该TCL文件为:sinout_spl.tcl。例4-2是生成的sinout_spl.tcl。,【例4-2】sinout_spl.tcl文件。,#DSP Builder(Version 2.1.2),#Quartus II development tool and MATLAB/Simulink Interface,#,#Copyright?2001-2003 Altera Corporation.All rights reserved.,#,#The DSP Builder software,including,without limitation,the clock-,#cycle limited,#versions of the MegaCore?Logic Functions included therein,may only be,#used to,#develop designs for programmable logic devices manufactured by Altera,#Corporation,#and sold by Altera Corporation and its authorized distributors.IN NO,#EVENT MAY,#SUCH SOFTWARE AND FUNCTIONS BE USED TO PROGRAM ANY PROGRAMMABLE LOGIC,#DEVICES,FIELD,#PROGRAMMABLE GATE ARRAYS,ASICS,STANDARD PRODUCTS,OR ANY OTHER,#SEMICONDUCTOR,#DEVICE MANUFACTURED BY ANY COMPANY OR ENTITY OTHER THAN ALTERA.For,#the complete,#terms and conditions applicable to your use of the software and,#functions,please,#refer to the Altera Program License directory,#,#,#TCL Script for Synplify,#Change to working directory,cd e:/myprj/sinwave,#Load VHDL libraries,add_file-vhdl-lib altera_mf c:/DSPBuilder/Altlib/altera_mf_components.vhd,add_file-vhdl-lib dspbuilder c:/DSPBuilder/Altlib/dspbuilderpack.vhd,add_file-vhdl-lib dspbuilder c:/DSPBuilder/Altlib/dspbuilder.vhd,#Load VHDL design files,add_file-vhdl-lib work e:/myprj/sinwave/sinout.vhd,#Set synthesis options,set_option-technology stratix,set_option-write_apr_constraint 1,set_option-resource_sharing 0,project-result_file e:/myprj/sinwave/sinout.vqm,#Run synthesis,project-run,project-close,2.打开Synplify Pro,打开综合器软件Synplify Pro,进入Synplify Pro集成环境,如图4-27所示。,打开菜单“Run”,选择“Run TCL Script.”项,以便运行TCL脚本。,在弹出的文件选择对话框上,定位到sinout模型所在的目录(e:myprjsinwave),选择sinout_spl.tcl,Synplify即自动按照TCL脚本完成综合过程。,图4-27 Synplify Pro启动后的界面,3.修改TCL脚本,在sinout_spl.tcl执行综合完毕后,会自动把项目关闭,而这通常是不希望看到的。当然,也可以手动地在Synplify Pro中建立项目。但由于DSP Builder需要一些库的支持,手动建立项目就比较繁复。,较好的方法是修改DSP Builder生成的用于Synplify综合的TCL脚本。在Synplify中通过选择菜单“File”“Open.”,然后选择文件类型为“TCL Files”,打开sinout_spl.tcl文件。修改文件的最后一行:,project-close,在“project”前面加上“#”注释号:,#project-close,然后保存文件并关闭。,4.执行修改后的TCL脚本,按照以上步骤2的方法,执行修改后的TCL脚本。,或者直接在Synplify Pro的TCL命令窗中执行下列TCL命令:,(注意:“e:/myprj/sinwave”是sinout模型所在的目录),cd e:/myprj/sinwave,source sinout_spl.tcl,现在,执行完sinout_spl.tcl后,综合项目就没有被关闭(图4-28)。,图4-28 综合完成,5.查看综合后的原理图,Synplify Pro提供了综合后的原理图查看功能,在Synplify Pro中被称为HDL Analyst(HDL分析),共分两大类:,RTL View(RTL级查看),Technology View(工艺级查看),“RTL View”显 示综合的通用原理图描述,不随选定的目标器件的不同而改变,它仅与VHDL/Verilog代码描述的功能有关。点击Synplify Pro工具栏上的按钮,打开sinout的“RTL View”(图4-29)。,“Technology View”取 决于选择的器件(随器件不同而不同),是针对选定器件的优化,它属于门级结构的原理图。,点击Synplify Pro工具栏上的按钮,打开sinout的“Technology View”(图4-30)。,图4-29 sinout的RTL View,图4-30 sinout的Technology View,6.修改综合约束条件,优化综合,按下Synplify Pro按钮面板上的按钮(Implementation Option),在弹出的对话框“Options for Implementation”中可以重新选择综合的目标器件,指定具体需要实现的器件。不过由于DSP Builder在生成VHDL代码时,对在SignalCompiler选择的器件系列有优化过程,所以在Synplify中就不要更改器件系列了。,一般情况下,在对输入的文件进行综合前,应根据源文件的不同设计特点作一些针对改善综合方式的控制。例如设计者希望在不改变源文件的情况下,对设计项目中的电路结构进行资源共享优化,或对其中的有限状态机进行优化,或对在最众多组合电路块中的触发器重新放置,以提高运行速度,可以分别选中左栏的控制选择项:,Resource Sharing、FSM Compiler、FSM Explorer、Retiming、Pipelining,它们的详细功能可以参考该软件的Help中提供的资料。,Synplify Pro还提供了“Constraint File(Scope)”进行复杂的综合约束的编辑,在这里就不详细讨论了。,4.3.3 Synplify与Quartus II的接口,Synplify只能完成综合功能,在综合后生成针对器件的门级网表文件(ATOM Netlist),把网表文件送Quartus II进行适配。,针对Altera器件,Synplify提供的网表文件一般是Verilog Quartus Mapping File(*.vqm)或者EDIF File(*.edf)。,Synplify提供了多种方式的与Quartus II的接口,下面简述两种:,1.在Synplify Pro中直接调用,选择菜单“Option”“Quartus”“Run Foreground Compiler”,Synplify会自动地打开Quartus II进行编译(见图4-31)。,2.在Quartus II中执行Synplify生成的TCL脚本,Synplify Pro在综合后会产生一些TCL脚本,其中“.tcl”是用于Quartus II的,在这个例子中为sinout.tcl。,打开Quartus II集成环境,在Quartus II的TCL控制台“TCL Console”中键入下列TCL命令:(详细情况请参见4.5节),cd e:/myprj/sinwave,source sinout.tcl,此时,Quartus II就自动完成适配编译的全过程。,图4-31 在Synplify Pro中调用Quartus II,4.4 使用LeonardoSpectrum进行综合,LeonardoSpectrum也是一套VHDL/Verilog综合器,是Mentor子公司Exemplar Logic的产品。LeonardoSpectrum综合器支持针对FPGA和ASIC的设计的HDL综合。对于FPGA/CPLD,LeonardoSpectrum支持众多的FPGA/CPLD厂商的产品。,LeonardoSpectrum也支持综合后的原理图生成,帮助设计者了解综合后的结果,同时还支持时延路径分析。,4.4.1 LeonardoSpectrum与DSP Builder的接口(自动流程),使用DSP Builder的自动流程,类似于Synplify,可以在SignalCompiler中自动地在后台调用LeonardoSpectrum综合器来完成综合过程。,在SignalCompiler窗口,选择综合“Synthesis”下拉框为“LeonardoSpectrum”(见图4-32),即选用LeonardoSpectrum对生成的VHDL代码进行综合。在进行综合这一步骤之前,还需要把mdl转换成VHDL,因为在mdl转为VHDL的过程中,SignalCompiler会自动生成操作综合器的TCL脚本。,图4-32 选择LeonardoSpectrum综合,点击SignalCompiler窗口右侧的按钮,把mdl转换成VHDL,同时生成针对LeonardoSpectrum综合器的TCL脚本。然后点击按钮,调用LeonardoSpectrum完成综合。自动流程中综合完毕后,在SignalCompiler窗口的下侧信息提示(Messages)框中提示综合的情况。,如果综合时出现错误,综合过程就会终止,同时在信息提示框中会简要地提示错误描述及可能造成错误的原因。,4.4.2 LeonardoSpectrum和DSP Builder的接口(手动流程),在DSP Builder设计的自动流程中,LeonardoSpectrum的调用是在后台进行的。与Synplfiy一样,对于复杂的DSP设计,有时需要使用手动流程来完成LeonardoSpectrum的综合过程,以使用LeonardoSpectrum强大的图形环境观察综合的效果,分析延时情况。,1.生成LeonardoSpectrum综合的TCL脚本,在此仍以sinout模型为例,讲述LeonardoSpectrum综合的手动过程。,重复自动流程的步骤,选择综合工具和设计约束。点击SignalCompiler窗口右侧的按钮,生成LeonardoSpectrum综合用TCL脚本。对于sinout模型且使用LeonardoSpectrum综合的情况,该TCL文件为:sinout_leo.tcl。,2.打开LeonardoSpectrum综合,打开综合器软件LeonardoSpectrum,进入LeonardoSpectrum综合环境,如图4-33所示。,打开菜单“File”,选择“Run Script.”项(见图4-34),以运行TCL脚本。在弹出的文件选择对话框上,定位到sinout模型所在目录(e:myprjsinwave),选择sinout_leo.tcl。LeonardoSpectrum自动按照TCL脚本完成综合过程。,或者直接在LeonardoSpectrum的TCL命令行中执行下列TCL命令,完成综合过程:,(注意:“e:/myprj/sinwave”是sinout模型所在的目录),cd e:/myprj/sinwave,source sinout_leo.tcl,图4-33 LeonardoSpectrum主界面,打开菜单“File”,选择“Run Script.”项(见图4-34),以运行TCL脚本。在弹出的文件选择对话框上,定位到sinout模型所在目录(e:myprjsinwave),选择sinout_leo.tcl。LeonardoSpectrum自动按照TCL脚本完成综合过程。,或者直接在LeonardoSpectrum的TCL命令行中执行下列TCL命令,完成综合过程:,(注意:“e:/myprj/sinwave”是sinout模型所在的目录),cd e:/myprj/sinwave,source sinout_leo.tcl,图4-34 在LeonardoSpectrum中执行TCL脚本,3.查看综合后的原理图,类似于Synplify Pro,LeonardoSpectrum也提供了综合后的原理图查看功能,在Leonardo-Spectrum中只有两种方式:,Vi展开阅读全文

咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。
咨信网小贴示:
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】


第4章DSPBuilder设计进阶.ppt
















自信AI助手














微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/14651434.html