DC综合全过程及使用的命令.docx_第1页
DC综合全过程及使用的命令.docx_第2页
DC综合全过程及使用的命令.docx_第3页
DC综合全过程及使用的命令.docx_第4页
DC综合全过程及使用的命令.docx_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

DC综合全过程及使用的命令DC的初始化文件.synopsys.dc.setup,该文件是隐藏文件,需要用ls a显示 读取文件DC支持多种硬件描述格式, .db .v .vhd等对于dcsh工作模式来说,读取不同的文件格式需要不同的参数Read -format Verilogdbvhdl ect file /dcsh工作模式对于tcl工作模式来说,读取不同文件格式使用不同的命令。Read_db file.db /tcl工作模式读取db格式Read_verilog file.v /tcl工作模式读取verilog格式Read_vhdl file.v /tcl工作模式读取vhdl格式读取源程序的另外一种方式是配合使用analyzer命令和elaborate命令;Analyzer是分析HDL的源程序并将分析产生的中间文件存于work(用户可以自己指定)的目录下Elaborate则在产生的中间文件中生成verilog的模块或者VHDL的实体缺省情况下,elaborate读取的是work目录中的文件当读取完所要综合的模块后,需要使用link命令将读到DC存储区中的模块或实体连接起来注意:如果在使用link命令后,出现unresolved design reference的警告信息,需要重新读取该模块,或者在.synopsys_dc.setup文件中添加link_library,告诉DC到库中去找这些模块,同时还要注意search_path中的路径是否指向该模块或单元电路所在的目录Link命令执行后,DC就将模块按照RTL级或者门级的描述将电路连接起来,之后的各种限制条件就可以对该电路的顶层模块施加DC限制条件施加的对象针对以下电路成分:输入输出端口、模块、子模块的实例化、单元电路、连线及电路的引脚。在使用DC命令的时候,不要使用模糊的对象,例如,如下面的电路:Set_load 3 Clk由于在电路中含有名称为CLK的pin、port和net,因此,DC无法知道该处的load是施加在哪个对象上,注意到一般连线会驱动负载,该命令就改为:Set_load 3 get_nets Clk TCL modeSet_load 3 find(net,”Clk”) dc_shell mode路径的划分与合法路径DC综合的时候是基于路径的优化,对于DC来说,合法的路径必须满足以下条件 路径的起点为输入端口或者是触发器的数据端 路径终点为输出端口或者是触发器的时钟端DC设定的限制条件的值都是无单位的,这些单位都是由工艺库中给定的可以用report_lib lib_name来查看所有在工艺库中设定的各个参数的单位定义电路的工作环境和综合环境1.Set_operating_conditions不同的工作环境对应的单元电路的延迟不相同温度升高、电压降低、电路的特征线宽增大都会使得单元电路的延迟增大电路的工作环境一般在工艺库中都有给定命令格式: set_operating_conditions min min_condition max max_condition-min_library min_lib max_library max_lib命令使用说明 指定DC进行优化时使用的工作环境,其中工作环境的指定必须在库中指定,或者在link_library中的其中一个库中指定,如果不指定operating_conditions,DC自动搜索link_library中的第一个库的工作环境作为优化时使用的工作环境 可以用get_attributes语句取得库中缺省的工作环境 -max选项指定电路最大延迟分析(分析电路是否满足触发器建立时间set up的要求)的工作环境 -min选项用于指定电路最小延迟分析(分析电路是否满足触发器保持时间hold time的要求)的工作环境,该选项不能单独使用,必须与-max同时使用 如果不指定用于分析最小延迟的库,则只使用-max中指定的库用于电路的延迟分析 -min_library选项指定用于电路最大延迟分析的工艺库 -max_library选项指定用于电路最小延迟分析的工艺库2.set_min_library Vendor可能提供多个不同的工艺库,用于分析电路的时序,不同工艺库定义了不同的工作环境、不同的线负载模型、不同的单元延迟时间,这是可以将这些苦都指定用于分析电路的延迟命令格式:set_min_library max_library min_version min_library | -none命令的使用说明: 该命令指定max_library用于分析电路的最大延迟,min_library用于分析电路的最小延迟。当DC需要计算路径的最小延迟时,首先在max_library中找到单元电路,如果在min_library中有和该单元电路有相同名称、相同的引脚名、相同的时序弧时,则使用min_library中给出的时序信息用于计算电路中路径的延迟 使用-none选项可以取消设定min_library 不要在target library中设置min_library对应的库 该命令只有当vendor提供两个库时才使用3.set_wire_load_model在DC计算路径的延迟时,工具会估计连线的延迟,该命令是设置一个连线延迟估计的模型。但是在综合完成后,用report_timing nets一般看到的连线延迟都是0,这是因为在做综合之前,工具使用的线负载模型是比较粗糙的,所以连线延迟比较小。另外,不仅互连线本身有延迟,互连线的寄生电容、寄生电阻会影响到单元电路的延迟注意:在深亚微米、超级亚微米阶段互连线的延迟在整个路径的延迟中占一半左右。因此,现在一般在综合之前会做一次floorplan,然后提取出线负载模型来供综合工具使用,以便更加准确的估计连线延迟。Synopsys的另外一个工具physical compiler就可以将floorplan跟综合放在一起做命令的格式为:set_wire_load_model name model_name lib_name library max min设置综合时使用的线负载模型,用于估计电路的连线延迟。由于布线之前没有准确的电路走线。因此,即使设置该模型,也不能准确估计电路的互连线延迟。如果没有wire_load_model,可以将auto_wire_load_selection参数设置为true,则DC自动根据综合之后的面积来选择一个统计的线负载模型用于估计连线延迟Set auto_wire_load_selection true-max min选项同上,分别指定该模型用于估计最大路径延迟和最小路径延迟。 -lib_name指定包含该线负载模型的工艺库一个线负载模型的例子:1: Name : 320KGATES 模块名称,用于引用该模块2: Location : ssc_core_slow 该模块库的位置3: Resistance : 0.000271 单位长度的连线电阻4: Capacitance : 0.00017 单位长度的连线电容5: Area : 0 连线所占面积6: Slope : 55.6653 外推计算连线长度的斜率7: Fanout Length Points Average Cap Std Deviation8: -9: 1 34.79 按照连线的扇出估计连线长度,从而估计连线延迟10: 2 90.4611: 3 146.1212: 4 201.7913: 5 257.45set_wire_load_mode如果只是在子模块综合中设置了线负载模型,那么跨模块边界的连线延迟如何估计,该命令就是用于设置模块互连线延迟估计所使用的模块该模式有三种选择:Top 指定模块互连线延迟的估计使用顶层模块的线负载模型Enclosed 指定模块互连线延迟的估计使用包含该连线的最小模块的线负载模型Segmented 将连线按模型边界分段,各段的延迟分别按照各自模块的线负载模型估计延迟,然后把估计结果相加得到该连线的延迟命令的格式为: set_wire_load_mode mode 其中mode 为top、enclosed、segmented4.set_drive为了更加准确的估计输入电路的延迟,DC需要知道信号到达输入端口的过渡时间(transition time)。Set_drive使用确定的值来估计输入端的输入电阻,从而得到输入端口的延迟;而set_driving_cell是假定一个实际的外部驱动单元来估计输入的transition time该命令用于设置输入端口或者双向端口上的电阻值,该电阻值是用于驱动输入端口的单元的输入电阻,因此,该值越大,就说明输入端口的驱动能力越弱,连线的延迟也就越大。更常用的是set_driving_cell命令,以库中某个单元电路的引脚驱动能力为基准来模拟输入端口的驱动能力。命令的格式: set_drive resistance_value max min rise fall 命令使用要点缺省情况下,该值为0,即输入具有无限大的驱动能力电路的优化阶段,输入端口的驱动能力用于计算输入端口到门电路延迟,一般来说,输入端口的驱动能力可以按照以下公式影响延迟Time = arrive_time + drive*net_load + connect_delay5.set_driving_cell该命令实现的功能和set_drive命令基本相同,set_driving_cell是指定使用库中某一个单元来驱动输入端口。该命令是在输入端口之前假想一个驱动单元,然后按照该单元的输出电阻来计算transition time,从而计算输入端口到门单元电路的延迟,如:set_driving_cell lib_cell buf1a3 pin Y Reset 即设置Reset端口的驱动能力与单元bufla3的Y引脚驱动能力相同 用set_driving_cell命令后,会出现很多警告,因为加上driving_cell约束之后,相当于人为的给很多引脚加上设计规则的限制条件6.set_load由于外部电路的负载将会影响到接到端口上单元电路

温馨提示

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

评论

0/150

提交评论