DC综合全过程及使用的命令.docx

上传人:hw****26 文档编号:2398679 上传时间:2019-05-11 格式:DOCX 页数:6 大小:123.69KB
下载 相关 举报
DC综合全过程及使用的命令.docx_第1页
第1页 / 共6页
DC综合全过程及使用的命令.docx_第2页
第2页 / 共6页
DC综合全过程及使用的命令.docx_第3页
第3页 / 共6页
DC综合全过程及使用的命令.docx_第4页
第4页 / 共6页
DC综合全过程及使用的命令.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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

2、.v /tcl 工作模式读取 vhdl 格式 读取源程序的另外一种方式是配合使用 analyzer 命令和 elaborate 命令; Analyzer 是分析 HDL 的源程序并将分析产生的中间文件存于 work(用户可以自己指定)的目录下 Elaborate 则在产生的中间文件中生成 verilog 的模块或者 VHDL 的实体 缺省情况下, elaborate 读取的是 work 目录中的文件 当读取完所要综合的模块后,需要使用 link 命令将读到 DC 存储区中的模块或实体 连接 起来 注意:如果在使用 link命令后,出现 unresolved design reference 的

3、警告信息,需要重新读取该模块,或者在 .synopsys_dc.setup文件中添加 link_library,告诉 DC 到库中去找这些模块,同时还要注意 search_path 中的路径是否指向该模块或单元电路所在的目录 Link 命令执行后, DC 就将模块按照 RTL 级 或者门级的描述将电路连接起来,之后的各种限制条件就可以对该电路的顶层模块施加 DC 限制条件施加的对象 针对以下电路成分:输入输出端口、模块、子模块的实例化、单元电路、连线及电路的引脚。在使用 DC 命令的时候,不要使用模糊的对象,例如,如下面的电路: Set_load 3 Clk 由于在电路中含有名称为 CLK 的

4、 pin、 port 和 net,因此, DC 无法知道该处的 load 是施加在哪个对象上,注意到一般连线会驱动负载,该命令就改为: Set_load 3 get_nets Clk TCL mode Set_load 3 find(net,”Clk”) dc_shell mode 路径的划分与合法路径 DC 综合的时候是基于路径的优化,对于 DC 来说,合法的路径必须满足以下条件 路径的起点为输入端口或者是触发器的数据端 路径终点为输出端口或者是触发器的时钟端 DC 设定的限制条件的值都是无单位的,这些单位都是由工艺库中给定的 可以用 report_lib lib_name 来查看所有 在工

5、艺库中设定的各个参数的单位 定义电路的工作环境和综合环境 1.Set_operating_conditions 不同的工作环境对应的单元电路的延迟不相同 温度升高、电压降低、电路的特征线宽增大都会使得单元电路的延迟增大 电路的工作环境一般在工艺库中都有给定 命令格式: set_operating_conditions min min_condition max max_condition -min_library min_lib max_library max_lib 命令使用说明 指定 DC 进行优化时使用的工作环境,其中工作环境的指定必须在库中指定,或者在 link_library 中的其

6、中一个库中指定,如果不指定 operating_conditions, DC 自动搜索 link_library 中的第一个库的工作环境作为优化时使用的工作环境 可以用 get_attributes 语句取得库中缺省的工作环境 -max 选项指定电路最大延迟分析(分析电路是否满足触发器建立时间 set up 的要求)的工作环境 -min 选项用于指定电路最小延迟分析(分析电路是否满足触发器保持时间 hold time 的要求)的工作环境,该选项不能单独使用,必须与 -max 同时使用 如果不指定用于分析最小延迟的库,则只使用 -max 中指定的库用于电路的延迟分析 -min_library 选

7、项指定用于电路最大延迟分析的工艺库 -max_library 选项指定用于电路最小延迟分析的工艺库 2.set_min_library Vendor 可能提供多个不同的工艺库,用于分析电路的时序,不同工艺库定义了不同的工作环境、不同的线负载模型、不同的单元延迟时间,这是可以将这些苦都指定用于分析电路的延迟 命令格式: set_min_library max_library min_version min_library | -none 命令的使用说明: 该命令指定 max_library 用于分析电路的最大延迟, min_library 用于分析电路的最小延迟。当 DC 需要计算路径的最小延迟

8、时,首先在 max_library 中找到单元电路,如果在 min_library 中有和该单元电路有相同名称、相同的引脚名、相同的时序弧时,则使用 min_library 中给出的时序信息用于计算电路中路径的延迟 使用 -none 选项可以取消设定 min_library 不要在 target library 中设置 min_library 对应的库 该命令只有当 vendor 提供两个库时才使用 3.set_wire_load_model 在 DC 计算路径的延迟时,工具会估计连线的延迟,该命令是设置一个连线延迟估计的模型。 但是在综合完成后,用 report_timing nets 一般

9、看到的连线延迟都是 0,这是因为在做综合之前,工具使用的线负载模型是比较粗糙的,所以连线延迟比较小。另外,不仅互连线本身有延迟,互连线的寄生电容、寄生电阻会影响到单元电路的延迟 注意:在深亚微米、超级亚微米阶段互连线的延迟在整个路径的延迟中占一半左右。因此,现在一般在综合之前会做一次floorplan,然后提取出线负载模型来供综合工具使用,以便更加准确的估计连线延迟。 Synopsys 的另外一个工具 physical compiler就可以将 floorplan 跟综合放在一起做 命令的格式为: set_wire_load_model name model_name lib_name lib

10、rary max min 设置综合时使用的线负载模型,用于估计电路的连线延迟。由于布线之前没有准确的电路走线。因此,即使设置该模型,也不能准确估计电路的互连线延迟。 如果没有 wire_load_model,可以将 auto_wire_load_selection 参数设置为 true,则 DC 自动根据综合之后的面积来选择一个统计的线负载模型用于估计连线延迟 Set auto_wire_load_selection true -max min 选项同上,分别指定该模型用于估计最大路径延迟和最小路径延迟。 -lib_name 指定包含该线负载模型的工艺库 一个线负载模型的例子: 1: Name

11、 : 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 Deviation 8: - 9: 1 34.79 按照连线的扇出估计连线长度,从而估计连线延迟 10: 2 90.46 11: 3 146.12 12:

12、4 201.79 13: 5 257.45 set_wire_load_mode 如果只是在子模块综合中设置了线负载模型,那么跨模块边界的连线延迟如何估计,该命令就是用于设置模块互连线延迟估计所使用的模块 该模式有三种选择: Top 指定模块互连线延迟的估计使用顶层模块的线负载模型 Enclosed 指定模块互连线延迟的估计使用包含该连线的最小模块的线负载模型 Segmented 将连线按模型边界分段,各段的延迟分别按照各自模块的线负载模型估计延迟,然后把估计结果相加得到该连线的延迟 命令的格式为: set_wire_load_mode mode 其中 mode 为 top、 enclosed

13、、 segmented 4.set_drive 为了更加准确的估计输入电路的延迟, DC 需要知道信号到达输入端口的过渡时间( transition time)。 Set_drive 使用确定的值来估计输入端的输入电阻,从而得到输入端口的延迟; 而 set_driving_cell 是假定一个实际的外部驱动单元来估计输入的 transition time 该命令用于设置输入端口或者双向端口上的电阻值,该电阻值是用于驱动输入端口的单元的输入电阻,因此,该值越大,就说明输入端口的驱动能力越弱,连线的延迟也就越大。 更常用的是 set_driving_cell 命令,以库中某个单元电路的引脚驱动能力

14、为基准来模拟输入端口的驱动能力。 命令的格式: set_drive resistance_value max min rise fall 命令使用要点 缺省情况下,该值为 0,即输入具有无限大的驱动能力 电路的优化阶段,输入端口的驱动能力用于计算输入端口到门电路延迟,一般来说,输入端口的驱动能力可以按照以下公式影响延迟 Time = arrive_time + drive*net_load + connect_delay 5.set_driving_cell 该命令实现的功能和 set_drive 命令基本相同, set_driving_cell 是指定使用库中某一个单元来驱动输入端口。该命令

15、是在输入端口之前假想一个驱动单元,然后按照该单元的输出电阻来计算 transition time,从而计算输入端口到门单元电路的延迟,如: set_driving_cell lib_cell buf1a3 pin Y Reset 即设置 Reset 端口的驱动能力与单元 bufla3 的 Y 引脚驱动能力相同 用 set_driving_cell 命令后,会出现很多警告,因为加上 driving_cell 约束之后,相当于人为的给很多引脚加上设计规则的限制条件 6.set_load 由于外部电路的负载将会影响到接到端口上单元电路的延迟,因此需要对端口的带负载能力做限制。为了比较精确地计算输 出电路的延迟, DC 需要知道输出电路驱动的所有负载。 命令的格式: set_load load_of(ssc_core_slow/buf1a2/A) all_outputs 即使用 ssc_core_slow 库中 bufla2 单元 A 引脚的电容负载来计算所有输出端口延迟。 电路负载的大小会影响到它的延迟,而且负载越大,延迟越大 DC 在缺省情况下认为端口的负载电容都是 0,因此具有无穷大的驱动能力

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。