ICC中的focal_opt命令讲解
在ICC中,我们可以使用focal_opt命令对postroute设计执行更加积极的、基于拓扑的优化,该优化着重(focus)修复在执行route_opt命令优化之后遗留的setup、hold或逻辑DRC(max cap、max tran、max fanout)违反。还可以使用focal_opt命令执行寄存器到寄存器的优化、减少串扰、最终阶段的leakage recovery。
对于每次运行,必须指定优化的焦点。
•要修复setup违规,使用-setup_endpoints选项。
要修复所有setup违规,请将此选项设置为all。要修复特定的setup违规,需要提供endpoints文件或包含endpoints的集合来指定endpoints。注:endpoints文件格式见文末。
默认情况下,该工具仅优化数据路径。使用-etup_endpoints all选项时,可以使用-concurrent_clock_and_data选项启用时钟和数据路径的并发优化。使用此选项时,可以通过使用set_concurrent_clock_and_data_strategy命令设置以下选项来控制优化的范围:
-adjust_boundary_registers,-ignore_boundary_path_timing,-ignore_path_groups和-adjustment_limit。对于整体设计收敛,使用route_opt -incremental命令在并发时钟和数据优化之后执行增量布线和后期优化的最后一次传递。
•要修复hold违规,使用-hold_endpoints选项。
要修复所有hold违规,请将此选项设置为all。要修复特定的hold违规,可以使用endpoints文件或提供包含endpoints的集合来指定endpoints。
•要修复net上的逻辑DRC违规,使用-drc_nets选项。
要修复所有net上的DRC违规,请将此选项设置为all。修复特定net上的DRC,通过使用net文件或提供包含net的集合来指定这些net。注:net文件格式见文末。
•要修复引脚上的逻辑DRC违规,使用-drc_pins选项。
要修复所有引脚上的DRC违规,请将此选项设置为all。要修复特定引脚上的DRC违规,请使用endpoints文件或提供包含引脚的集合来指定这些Pin。
•要执行寄存器到寄存器优化,使用-register_to_register选项。
默认情况下,当启用register-to-register优化时,focal_opt命令会修复setup、hold和逻辑DRC违规。您可以使用-setup_endpoints,-hold_endpoints,-drc_nets或-drc_pins选项来对优化的内容进行限制。
•要减小特定net上的串扰,可以使用-xtalk_reduction选项。
提供net文件或提供包含net的集合指定要在其上执行串扰减少的操作。
•要执行最终阶段的leakage recovery,请使用-power选项。
注意:执行最终阶段的leakage recovery时,必须启用一个leakage scenario。
Endpoints文件格式 要修复特定endpoints上的setup、hold或逻辑DRC违规,可以使用focal_opt命令,并提供存在上述违规的endpoints文件,在endpoints文件中指定这些endpoints,从而告诉工具对这些违规的点进行着重优化。 此文件可以是未压缩的,也可以是gzip格式压缩的。当文件是gzip文件时,它必须具有.gz文件扩展名。 指定endpoints有以下几种格式: •仅指定endpoint I_STACK_TOP/I3_STACK_MEM/Stack_Mem_reg_2__1_/d •指定Endpoint同时提供slack值 I_STACK_TOP/I3_STACK_MEM/Stack_Mem_reg_2__1_/D 0.58 0.44 r -0.14 默认情况下,当你将此格式与-setup_endpoints或-hold_endpoints选项一起使用时,该工具将在执行focal优化期间使用你提供的endpoint文件中指定的slack值。然而如果要使用计算的slack值,需要将focalopt_endpoint_margin变量设置为false。 将此格式与-drc_pins一起使用时,工具将忽略文件中的slack信息,仅使用其中的pin信息。
生成该文件的最佳方法是编辑report_constraint命令生成的文件。想将该命令生成的信息保存为某个文件,可以使用管道符>,例如: > report_constraint -all_violators \ -scenario [all_scenarios] -nosplit > ./rpts/init_design.rpt 注意:最好在导出文件的时候后边加上-nosplit选项,意思是在报告中某行内容太长的时候不分行,否则的话换行之后再读入工具,工具可能会认为格式错误。 可以在命令后边加上-all_violators来报告所有存在违反的endpoints: report_constraint -all_violators 我们可以在后边继续追加-max_delay或者-min_delay等来只报告setup、hold、max_cap、max_tran的违反,例如: report_constraint -all_violators -min_delay -nosplit \ -significant_digits 5 还可以加上-scenarios选项指定特定的scenario,例如: > report_constraint -all_violators \ -scenario [all_scenarios] -nosplit > ./rpts/init_design.rpt
Net文件格式 要修复特定Net上的逻辑DRC违规,您必须在Net文件中指定这些Net。 指定net支持以下格式: •仅指定net名称 I_STACK_TOP/n342 •带Violations值的net名称 I_STACK_TOP/n342 0.70 0.89 -0.19 (VIOLATED) 将此格式与-drc_nets选项一起使用时,该工具会忽略其中的slack信息并仅使用net信息。 生成该按文件的最佳方法是编辑report_constraint命令生成的文件。具体方法可以参见Endpoints文件格式。 |
公告![]()
本公众号在网易云课堂上线了,名为“随芯所欲”,最近新出了《Calibredrv教程-提高流程自动化》和《搭建IC设计的EDA虚拟机/服务器》,谢谢关注与支持。
链接:https://study.163.com/course/introduction/1005909004.htm
网易云课堂
《Calibredrv教程-提高流程自动化》
《搭建IC设计的EDA虚拟机/服务器》
如果喜欢本公众号也请多多分享哟,谢谢您的关注