DC使用全书(Design_Compiler).doc_第1页
DC使用全书(Design_Compiler).doc_第2页
DC使用全书(Design_Compiler).doc_第3页
DC使用全书(Design_Compiler).doc_第4页
DC使用全书(Design_Compiler).doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

DC学习-第一章 基本概念作者:未知 时间:2010-08-15 15:02:50 来自:网络转载 1.1 启动文件启动文件用来指定综合工具所需要的一些初始化信息。DC使用名为“.synopsys_dc.setup”的启动文件,启动时,DC会以下述顺序搜索并装载相应目录下的启动文件:1)、DC的安装目录;2)、用户的home目录;3)、当前启动目录。注意:后装载的启动文件中的设置将覆盖先装载的启动文件中的相同设置。下面是一个DC启动文件的实例,它包含了几乎所有重要的设置,下文将结合该实例解释启动文件中各项设置的具体含义。例1-1(一个DC启动文件):search_path= search_path + “.”, synopsys_root + “/dw/sim_ver” search_path= search_path + “/risc32/synthesis/libraries” target_library= tcb773stc.db synthetic_library=dw_foundation.sldblink_library = “*”, dw_foundation.sldb, tcb773stc.db symbol_library = tcb773s.sdb synlib_wait_for_design_license = DesignWare-Foundationalias rt “report_timing”designer= XXXXXcompany= “ASIC Lab, Fudan Univ.”search_path指定了综合工具的搜索路径。target_library为综合的目标库,它一般是由生产线提供的工艺相关的库。synthetic_library是综合库,它包含了一些可综合的与工艺无关的IP。dw_foundation.sldb是Synopsys提供的名为Design Ware的综合库,它包含了基本的算术运算逻辑、控制逻辑、可综合存储器等IP,在综合是调用这些IP有助于提高电路性能和减少综合时间。link_library是链接库,它是DC在解释综合后网表时用来参考的库。一般情况下,它和目标库相同;当使用综合库时,需要将该综合库加入链接库列表中。symbol_library为指定的符号库。synlib_wait_for_design_license用来获得DesignWare-Foudation的许可(license)。alias语句与UNIX相似,它定义了命令的简称。最后的designer和company项则表明了设计者和所在公司。另外,在启动文件中用符号 “/*” 和 “*/” 进行注释。1.2 设计实体在DC中,总共有8种设计实体:l 设计(Design):一种能完成一定逻辑功能的电路。设计中可以包含下一层的子设计。 单元(Cell):设计中包含的子设计的实例。ll 参考(Reference):单元的参考对象,即单元是参考的实例。 端口(Port):设计的基本输入输出口。ll 管脚(Pin):单元的输入输出口。 连线(Net):端口间及管脚间的互连信号。ll 时钟(Clock):作为时钟信号源的管脚或端口。 库(Library):直接与工艺相关的一组单元的集合。l1.3 寻找设计实体在DC中使用find命令寻找设计实体,其语法为:find -hierarchyl :上节所述的8种类型l :用来匹配的关键词,其中可带 “*” 统配符l -hierarchy:指令DC搜索所有设计层次例1-2(find命令的使用):find (cell, *U*)find (net, “*”)find (design, A_*, B_* -hierarchy)另外,使用all_inputs()和all_outputs()可以得到设计所有的输入端口和输出端口。1.4 编译器指示语句有时,可以利用HDL描述中的一些特定的注释语句来控制综合工具的工作,从而弥补仿真环境和综合环境之间的差异,这些注释语句称为编译器指示语句(Compiler Directives)。1.4.1 Verilog编译器指示语句1) translate_off/ translate_on这组语句用来指示DC停止翻译 “/synopsys translate_off”之后的Verilog描述,直至出现 “/synopsys translate_on”。当Verilog代码中含有供仿真用的不可综合语句时,这项功能能使代码方便地在仿真工具与综合工具之间移植。 例1-3(translate_off/ translate_on指示语句的使用):/synopsys translate_off/*仅供仿真用语句*/synopsys translate_on/*可综合语句*/2) parallel_case/ full_caseDC可能使用带优先级的结构来综合Verilog的case语句,为避免这种情况,可以使用“/synopsys parallel_case”指示DC将case语句综合为并行的多路选择器结构。例 1-4(parallel_case指示语句的使用):always (state)begincase (state) /synopsys parallel_case2b00: new_state = 2b01;2b01: new_state = 2b10;2b10: new_state = 2b00;default: new_state = 2b00;endcaseend另外,Verilog允许case语句不覆盖所有可能情况,当这样的代码由DC综合时将产生锁存器。为避免这种情况,可以使用 “/synopsys full_case”指示DC所有可能已完全覆盖。例 1-5(full_case指示语句的使用):always (sel or a1 or a2)begincase (sel) /synopsys full_case2b00: z = a1;2b01: z = a2;2b10: z = a1 & a2;endcaseend1.4.2 VHDL编译器指示语句1) translate_off/ translate_on作用同Verilog,注意需要使用符合VHDL语法的注释:-synopsys translate_off-synopsys translate_on也可以使用:-pragma translate_off-pragma translate_on需要注意的是,在VHDL中使用了以上编译指示语句后,DC仍会对translate_off/on之间的描述进行语法检查,若想避免这一点,可以改变以下变量的值:hdlin_translate_off_skip_text = true2) synthesis_off/ synthesis_on其作用和语法均类似于translate_off和translate_on,只是它的作用不受上述变量控制。DC学习-第二章 设计入口作者:未知 时间:2010-08-15 15:04:19 来自:网络转载 2.1 软件的启动在UNIX下执行dc_shell即可启动DC的命令行界面,执行design_analyzer& 即可启动相应的图形界面。启动以后的图形界面如图2-1所示。 在图形界面中若需要执行命令行,可以用Setup-Command Window菜单打开命令行功能,如图2-2所示。在软件启动时,启动文件中所定义的变量均已加载,若希望改变其他变量的值,可以在Setup-Variable中进行,如图2-3所示。2.2 设计的读入设计的读入有两种方法:analyze + elaborate和read。2.2.1 analyze + elaborateanalyze命令用以分析、翻译RTL代码,并将中间结果存入指定的库中。其语法为:analyze-library -format -libraryl :指定中间结果所存放的库,即UNIX下的一个目录,缺省为当前目录(WORK)-formatl :RTL源文件的类型,即Verilog或vhdll :所有需要分析的源文件名,若有多个文件,则用“”括起例 2-1 (将直接数字频率合成器的所有设计源文件读入lib1库中):hdlin_enable_presto = false /*禁止Presto编译器功能*/define_design_lib lib1 -path “./lib1” /*将目录 ./lib1 映射为一个设计库*/analyze library lib1 format verilog croma.v, cromb.v, ddfs.v, froma.v, fromb.v在图形界面中,选择File - Analyze,在弹出的Analyze File 对话框的File域中填入源文件名,并在Library域中填入 “lib1”,选中 “Create New Library if it Doesnt Exist” 复选框,点OK即可(如图2-4所示)。 Elaborate命令用于为设计建立一个结构级的与工艺无关的描述,为下一步的工艺映射做好准备。命令的一般格式为:elaborate -library -architecture -parameters -update l :需要描述的设计 -libraryl :设计的分析结果所在的库 -architecturel :需要分析的构造体,针对VHDL描述中同一个实体对应多个构造体的情况;对于Verilog描述,改选项可缺省或为verilogl -parameters :在这里给设计中的参数重新赋值,若省略则参数使用缺省值l -update:要求综合器自动更新所有过期的文件例 2-2 (将先前读入的设计产生结构级描述,并设置相应的参数值):elaborate ddfs library lib1 architecture “verilog” parameters “PAL_sub = 32h20098ACB, NTSC_sub = 32h06F07BD6” update由于重置了参数值,顶层的设计名称变为 “ddfs_20098acb_06f07bd6”,为方便起见,将顶层设计名改为 “ddfs”:rename_design ddfs_20098acb_06f07bd6 ddfs在图形界面中,选择 File - Elaborate 菜单,在弹出的 “Elaborate Design” 对话框的Library域中选择lib1,在Design域中选择ddfs,填入相应的参数值并选择 “Re-Analyze Out-of-Date Libraries” 复选框后点OK(如图2-5所示)。完成以上步骤后,即可看到所有成功读入的设计模块,如前所述,利用命令行将顶层设计名改为 “ddfs”。在图形界面中,双击ddfs设计即可看到该设计的符号描述(如图2-6所示);点击界面左栏中的与门标志按钮即可看到电路级描述(如图2-7所示),该描述是由DC生成的与工艺无关的中间结果,将来用户通过Compile命令将该结果映射到相应的工艺库上。点击界面左栏中的芯片标志按钮又可回到符号描述。 2.2.2 read命令使用read命令可以一步完成analyze+elaborate的工作,并且read命令还可以用来读取db、EDIF等格式的设计(analyze+elaborate仅能用于VHDL和verilog)。但是,read命令无法支持参数修改、VHDL中的构造体选择等功能。该命令的语法为:read-format -formatl :源文件的类型,如verilog, vhdl, edif, db等l :所有需要读入的源文件名,若有多个文件,则用“”括起例 2-3 (利用read命令将读取直接数字频率合成器的所有设计源文件):read -format verilog croma.v, cromb.v, ddfs.v, froma.v, fromb.v在图形界面中,选择 File - Read 菜单,在弹出的 “Read File” 对话框中选择相应的文件打开即可(如图2-8所示)。2.3 链接在进一步工作之前,需要将设计中调用的子模块与链接库中定义的模块建立对应关系,这一过程叫做链接。这一过程可以利用link命令显式地完成,也可以将来综合时利用compile命令隐式地进行。推荐每次设计读入以后都用link命令执行一次链接。注意:由于该命令以及以后提到的大部分命令均对当前设计(current_design)进行操作,所以在执行该命令前应正确设置current_design变量。例 2-4(链接直接数字频率合成器的顶层设计:ddfs):current_design ddfs /*将ddfs设置为当前设计*/link在图形界面中,单击选中ddfs模块,选择Analysis - Link Design菜单即可看到设计链接对话框。对话框中的 “Search Path” 和 “Link Library” 域就是用户在启动文件中定义的值。选中 “Search Memory First” 复选框将指示DC首先搜索内存来匹配相应的模块。设计链接菜单和对话框如图2-9所示。一般有两种情况可能导致链接过程出错:1)、设计中所调用子模块的描述文件没有读入;2)、设计中使用了工艺库中的单元,但该工艺库没有加入链接库(link_library)或因为搜索路径(search_path)设置有误而导致DC无法正确定位链接库。2.4 实例唯一化当设计中的某个子模块被多次调用时就要对设计进行实例唯一化。实例唯一化就是将同一个子模块的多个实例生成为多个不同的子设计的过程。之所以要进行实例唯一化是因为DC在综合时可能使用不同的电路形式来实现同一个子模块的不同实例,从而这些实例在DC看来是一些不同的设计(尽管它们来源于同一个模块并且具有相同的逻辑功能)。使用uniquify命令可以完成实例唯一化的工作(该命令对当前设计有效)。例 2-5(将ddfs设计进行实例唯一化):current_design ddfsuniquify在图形界面中,选中ddfs模块,选择Edit - Uniquify - Hierarchy菜单即可完成实例唯一化(如图2-10所示)。注意:若设计中不存在同一子模块被多次调用的情况(比如上例中的ddfs设计),可不必进行实例唯一化,但仍推荐进行。DC学习-第三章 设计环境作者:未知 时间:2010-08-15 15:07:55 来自:网络转载 设计环境是指电路工作时的温度、电源电压等参数,以及输入驱动、输出负载、线上负载等情况。3.1 设置电路的工作环境一般的工艺库将温度、电源电压、工艺偏差、互连模型等参数的影响均归结为工作环境(operating_conditions),采用report_lib命令可以列出工艺库中的各项参数(包括工作环境)。例 3-1(列出工艺库tcb773stc中的各项参数):report_lib tcb773stc生成报告的头部如下所示(其中黑体部分就是该工艺库中定义的工作环境):*Report : libraryLibrary: tcb773stcVersion: 2000.05-1Date : Jun 30 12:14:58 2002*Library Type : TechnologyTool Created : 1998.08Date Created : Fri Aug 27 14:02:39 EAT 1999 Library Version : 210Comments : Copyright TSMCTime Unit : 1nsCapacitive Load Unit : 1.000000pfPulling Resistance Unit : 1kilo-ohmVoltage Unit : 1VCurrent Unit : 1mAPower Unit : 1pWLeakage Power Unit : 1pWBus Naming Style : %s%d (default)Operating Conditions:Name Library Process Temp Volt Interconnect Model-WCCOM tcb773stc 1.30 125.00 3.00 worst_case_treeNCCOM tcb773stc 1.00 25.00 3.30 balanced_treeBCCOM tcb773stc 0.76 0.00 3.60 best_case_tree注意:WCCOM是 “Worst-Case-COMmercial” 的缩写;NCCOM是 “Normal-Case-COMmercial” 的缩写;BCCOM是 “Best-Case-COMmercial” 的缩写。set_operating_conditions命令用来设置设计的工作环境(该命令对当前设计有效),其语法为:set_operating_conditions-library -libraryl :定义工作环境的库,若当前仅读入唯一的目标库,则改选项可省略l :设置的工作环境例 3-2(将ddfs设计的工作环境设为 “WCCOM” ):current_design ddfsset_operating_conditions -library tcb773stc WCCOM在图形界面中,选中ddfs设计,选择Attributes - Operating Environment - Operating Conditions菜单,即弹出工作环境对话框。在此对话框中即可选择相应的工作环境(此例中选择WCCOM)。这一过程如图3-1所示。 3.2 设置连线负载连线负载用来估算设计内部互连线上的寄生参数,从而估计由于连线造成的时间延迟,使得综合结果能够尽量接近实际中的物理情况。DC中的连线负载设定包括两部分:连线负载大小和连线负载模式。3.2.1 设置连线负载大小一般的工艺库通过设计的规模来表征连线负载的大小,在使用时,根据实际设计的规模选用相应的连线负载即可。下文所示的是对tcb773stc运行report_lib而生成报告的一部分,他描述了该库中可供选择的连线负载大小的种类以及各自对应的设计规模,例如:设计面积在360000m2到810000m2之间则对赢得连线负载为TSMC16K。此外,相同的设计规模所对应的连线负载还有保守的(Conservative)和激进的(Aggressive)之分。 Wire Loading Model Selection Group:Name : WireAreaConSelection Wire load namemin area max area-0.00 360000.00 TSMC8K_Conservative360000.00 810000.00 TSMC16K_Conservative810000.00 1690000.00 TSMC32K_Conservative1690000.00 3240000.00 TSMC64K_Conservative3240000.00 5760000.00 TSMC128K_ConservativeWire Loading Model Selection Group:Name : WireAreaAgrSelection Wire load namemin area max area-0.00 360000.00 TSMC8K_Aggresive360000.00 810000.00 TSMC16K_Aggresive810000.00 1690000.00 TSMC32K_Aggresive1690000.00 3240000.00 TSMC64K_Aggresive3240000.00 5760000.00 TSMC128K_AggresiveWire Loading Model Mode: segmented.使用set_wire_load_model命令来设置连线负载,其语法为:set_wire_load_model-name -library -namel :设定的连线负载 -libraryl :定义工作环境的库,若当前尽读入唯一的目标库,则改选项可省略l :设定连线负载的对象例 3-3(将ddfs的连线负载设为TSMC8K_Conservative):set_wire_load_model name TSMC8K_Conservative -library tcb773stc ddfs在图形界面中,选中ddfs设计,选择Attributes - Operating Environment - Wire Load菜单,即弹出连线负载设置对话框。在此对话框中即可选择所需的连线负载(此例中选择TSMC8K_Conservative)。这一过程如图3-2所示。 3.2.2 设置连线负载模式连线负载模式规定了跨越多个模块层次的连线其连线负载的计算方式,DC供支持三种连线负载模式:l top:某一模块的连线负载设为top模式意味着该模块及其子模块中所有连线的连线负载大小均取该模块的值l enclosed:某一模块的连线负载设为enclosed模式意味着该模块及其子模块中所有连线的连线负载大小的取值与恰好能完全包含该连线的最底层模块的连线负载大小一致。segmented:这是一种分段模式,意味着一根连线上不同段的连线负载不同,某一段地连线负载与恰好包含该段的最底层模块的连线负载大小一致。lset_wire_load_mode命令用来设置连线负载模式(该命令对当前设计有效),该命令的格式如下:set_wire_load_mode l :连线负载模式的名称,为 “top”、“enclosed”、“segmented”中的一项例 3-4(将ddfs的连线负载模式设为top):current_design ddfsset_wire_load_mode top注意:该功能无法通过图形界面实现3.3 设置输出负载为了更精确地计算电路的延时,DC需要知道设计的输出端驱动的负载大小(主要是电容)。用户可以通过set_load命令来为输出端设置负载(该命令对当前设计有效),其语法为:set_loadl :设定的负载电容值,必须为非负数,其单位在库文件中定义l :设定负载电容的对象,可以是输出口、输出管脚、互连线等例 3-5(将ddfs的所有输出口的输出负载设为0.1pF)current_design ddfsset_load 0.1 all_ouputs()在图形界面中,进入ddfs设计的符号描述,选中一组输出端口,选择Attributes - Operating Environment - Load菜单。在弹出的Load对话框的Capacitive load域中填入1.00即可(如图3-3所示)。 3.4 设置输入驱动为了精确计算电路的延时,DC还需知道设计输入端的驱动能力的情况。用户可以利用set_driving_cell命令来指定一个驱动设计输入端的外部单元(该命令对当前设计有效),该命令的格式如下:set_driving_cell-lib_cell -library -pin -no_design_rule -lib_celll :用于驱动设计输入端的外部单元名称 -libraryl :上述单元所在库的名称,若当前仅读入唯一的目标库且驱动单元就在该库中,则改选项可省略 -pinl :用于驱动设计输入端的外部单元管脚的名称l -no_design_rule:改选项要求DC忽略外部驱动单元管脚上的设计规则l :设置驱动的设计端口 例 3-6(将ddfs的所有输入端的驱动单元设置为DFF1的管脚Q,并忽略该管脚上的设计规则) current_design ddfs set_driving_cell lib_cell DFF1 pin Q no_design_rule all_inputs()注意:该项功能无法通过图形界面实现。由于通常情况下,设计的时钟和复位端都由驱动能力很大的单元或树形缓冲来驱动,所以可以用set_drive命令将这两个端口的驱动设为无穷大(该命令对当前设计有效),命令语法为:set_drivel :非负的驱动阻抗,该值越小表示驱动能力越大l :设置驱动能力的端口名例 3-7(将ddfs的时钟和复位端的驱动设为无穷大,即驱动阻抗设为零):current_design ddfsset_drive 0 clk, reset在图形界面中,进入ddfs设计的符号描述,选中其中一个输入端口,选择Attributes - Operating Environment - Drive Strength菜单。弹出Drive Strength对话框后,将Rise Strength和Fall Strength域都设为0即可(如图3-4所示)。 DC学习-第四章 设计约束作者:未知 时间:2010-08-15 15:09:34 来自:网络转载 设计约束描述了设计的目标,这里所说的设计目标主要包括时延目标和面积目标两部分,相应的,设计约束也由时延约束和面积约束两部分组成。4.1 时序电路的时延约束时序电路的时延约束主要包括时钟主频、输入延时、输出延时等内容。4.1.1 创建时钟在DC中使用create_clock命令创建系统时钟(该命令对当前设计有效),该命令的语法如下:create_clock -period -waveform :设计的时钟端口-period :时钟周期,单位一般为ns-waveform :时钟上升沿和下降沿的时刻,从而决定时钟信号的占空比。一般上升沿的时刻设为0例4-1 (为ddfs设计创建一个5ns的时钟,时钟端口为clk,占空比为1:1)current_design ddfscreate_clock clk period 5 waveform 0 2.5由于时钟端的负载很大, DC会使用Buffer来增加其驱动能力。但是一般情况下,设计者都使用布局布线工具来完成这项工作,所以有必要指示DC不要对时钟网络进行修改,可以使用以下命令:set_dont_touch_network clk在图形界面中,进入ddfs的符号描述,选中其时钟端(clk),选择Attributes - Clocks - Specify菜单。在弹出的Specify Clock对话框的Period域中填入指定的周期值(本例中是10),并选择Dont Touch Network复选框即可(如图4-1所示)。完成以上步骤后,可以在ddfs的clk端口上看到红色的方波标志(如图4-2所示)。 4.1.2 设置输入延时输入延时的概念可用图4-3来解释。 在图4-3中,假设时钟周期为Tc,外部逻辑中,触发器的传输延时为Td,组合逻辑M的延时为TM,待综合的逻辑中,组合逻辑N的延时为TN,触发器的建立时间为TS。则有:Tc = Td + TM + TN + Ts (1)即:TN + Ts = Tc ( Td + TM ) (2)当系统时钟设置完毕后,Tc已经确定,对待综合模块的输入部分加以约束(即设定TN+Ts的值),可以通过设定Td + TM来实现。这里的Td + TM就是DC定义的(对于待综合模块的)输入延时。若外部逻辑是寄存器直接输出,则TM = 0,输入延时就是外部逻辑触发器的延时,一般为1ns或更小。在DC中,可以使用set_input_delay命令来设置输入延时(该命令对当前设计有效),其命令格式如下:set_input_delay-clock -max-min-clock :输入延时所参考(关联)的时钟-max:指定输入延时的最大值-min:指定输入延时的最小值:输入延时的大小,单位一般为ns:设定输入延时的端口例4-2(将ddfs设计的mode输入端的输入延时最大值设为1ns,最小值设为0,参考(关联)时钟为clk):current_design ddfsset_input_delay clock clk max 1 find (port, “mode”)set_input_delay clock clk min 0 find (port, “mode”)在图形界面中,进入ddfs的符号描述,选中mode端口,选择Attribute - Operating Environment - Input Delay菜单。在弹出的Input Delay对话框的关联时钟选择框中选择clk,在Max域中填入1.00,在Min域中填入0.00,并选中Same Rise and Fall复选框即可(如图4-4所示)。 4.1.3 设置输出延时输出延时的概念可以用图4-5来说明。 在图4-5中,假设时钟周期为Tc,外部逻辑中,触发器的建立时间为TS,组合逻辑M的延时为TM,待综合的逻辑中,组合逻辑N的延时为TN,触发器的传输延时为Td。则有:Tc = Td + TN + TM + Ts (1)即:Td + TN = Tc (TM + Ts ) (2)当系统时钟设置完毕后,Tc已经确定,对待综合模块的输出部分加以约束(即设定Td+TN的值),可以通过设定TM + Ts来实现。这里的TM + Ts就是DC定义的(对于待综合模块的)输出延时。若待综合模块是寄存器直接输出,则TN = 0,又由于触发器的传输延时(Td)基本固定,所以待综合模块的输出部分可以不必约束,既可以不设输出延时。在DC中,可以使用set_output_delay命令来设置输出延时(该命令对当前设计有效),其命令格式如下:set_output_delay-clock -max-min所有参数、开关含义均与set_input_delay命令相同例4-3(将ddfs设计所有输出端的输出延时最大、最小值设为4ns,参考时钟为clk):current_design ddfsset_output_delay clock clk 4 all_outputs()在图形界面中,进入ddfs的符号描述,选中一组输出端口,选择Attribute - Operating Environment - Output Delay菜单。弹出Output Delay对话框后,在关联时钟选择框内选择clk,在Max和Min域中填入9.00,并选中Same Rise and Fall复选框即可(如图4-6所示)。对另外一组输出端口可同样设置。 4.2 组合电路的时延约束由于组合电路中不带有时钟,所以对它的时延约束主要是规定其输出端到输入端的最大时延,这可以通过set_max_delay来实现(该命令对当前设计有效),该命令的格式如下:set_max_delay-from -to :延时的大小,单位一般为ns-from :延时约束的起点-to :延时约束的终点例4-4(将16位加法器设计所有输入端到所有输出端的最大延时设为2ns):read adder_16.v /*读入16位加法器的设计源文件*/set_max_delay 2 from all_inputs() to all_outputs()在图形界面中,读入源文件后进入设计的符号描述,选中所有的输出端口,选择Attributes - Optimizations Constraints - Timing Constraints菜单,弹出Timing Constraints对话框后,在Maximum - Rise域中填入2.00,并选中Same Rise and Fall复选框即可(如图4-7所示)。 4.3 设计的面积约束使用set_max_area命令可以对设计的最大面积进行约束(该命令对当前设计有效),其命令格式为:set_max_area-ignore_tns-ignore_tns:忽略负时延裕量总和(TNS)来优化面积。DC的缺省优化算法是先使TNS最小,在此基础上优化面积。使用该开关将使得DC忽略TNS而优先考虑面积优化:约束面积的大小,其单位由不同的工艺库决定例4-5(将ddfs设计的面积约束设为0,这将指示DC尽可能的优化面积):current_design ddfsset_max_area 0在图形界面中,选中ddfs设计,选择Attributes - Optimizations Constraints - Design Constraints,弹出Design Constraints对话框后在Max Area域中填入0即可(如图4-8所示)。 DC学习-第五章 设计的综合与结果报告作者:未知 时间:2010-08-15 15:12:15 来自:网络转载 5.1 设计综合设计综合使用compile命令进行(该命令对当前设计有效),该命令的格式如下:compile-map_effort low | medium | high-area_effort none | low | medium | high -incremental_mapping-map_effort:综合器映射的努力程度,有low, medium, high三个选项,缺省为medium-area_effort:综合器面积优化的努力程度,有low, medium, high三个选项,缺省为同map_effort的值-incremental_mapping:值是综合器在前一次综合结果的基础上进行进一步优化,不改变电路结构例5-1(综合ddfs设计,各选项均使用缺省值):current_design ddfscompile在图形界面中,选中ddfs设计,选择Tools - Design Optimization菜单。在弹出的对话框中点OK即可(如图5-1所示)。 综合过程中,屏幕上会显示综合的进程,如图5-2所示。其中第一栏为综合所花费的时间;第二栏为电路面积;第三栏为负的时延裕量;第四栏为所有负的时延裕量的总和(TNS);第五栏反映了设计规则的违反程度。从图5-2中可以看出,该电路的面积为118107.5m2,时延比约束值相差0.07ns,即时钟周期可以达到5.07ns(约束值为5ns)。 例5-2(在刚才总和结果的基础上用高映射努力程度进行进一步优化):current_design ddfscompile map_effort high incremental_mapping在图形界面中,选中ddfs设计,打开前面提到的设计优化对话框,点击More Map Options按钮,即可弹出Map Options对话框。在其中选中Incremental Mapping复选框,点OK。在设计优化对话框中的Map Effort下选中High选项,点OK即可(如图5-3所示)。 这一次综合的进程如图5-4所示,可见虽然在时延上没有改进,但电路面积较上一次综合已经有所减小。 5.2 设计结果报告5.2.1 报告时延信息使用report_timing命令可以报告时延信息(该命令对当前设计有效),命令的格式如下:report_timing-to -from -nworst -to :需要计算时延的路径的终点-from :需要计算时延的路径的起点-nworst :报告的路径数(缺省为1,由时延裕量最小的路径开始报起)注意:缺省情况下,报告向屏幕输出,若要将报告写入文件,可在命令行后用 “” 或 “”引出文件名。其中, “”将新建一个文件,获将原文件覆盖; “”用于在原文件末尾填加。例5-3(将ddfs设计中的时延信息输出到文件 “./report/report1.rpt” 中,共输出5条路径):current_design ddfsreport_timing nworst 5 “./report/report1.rpt”5.2.2 报告面积信息使用report_area命令可以报告时延信息(该命令对当前设计有效)。例5-4(将ddfs设计中的面积信息添加到文件 “./report/report1.rpt” 中):current_design ddfsreport_area “./report/report1.rpt”在图形界面中,选中ddfs设计,选择Analysis - Report菜单,在弹出的Report对话框中,选择Area和Timing即可获得设计的面积和时延信息。可以通过选择Send Output To选项来控制输出到屏幕或文件(如图5-5所示)。这时,报告出来的关键路径只有一条,若要增加报告的路径,可点Report对话框中的Set Options按钮,在弹出的Report Options对话框的Max Paths to Show域中填如适当的数值,点OK即可(如图5-6所示)。 DC学习-第六章 设计的保存与时序文件的导出作者:未知 时间:2010-08-15 15:13:41 来自:网络转载 6.1 设计的

温馨提示

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

评论

0/150

提交评论