相关阅读Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482SDC相关运行时间问题的报告SDC约束的复杂性、过多的时序路径等因素可能导致综合工具运行时间过长在早期版本中综合工具不会提供反馈来帮助识别这些潜在原因从2018版本开始Design Compiler会提供关于SDC约束复杂性的反馈信息。有两种方法可以启用该功能设置2018版本引入的sdc_runtime_analysis_enable变量默认值为false后进行综合对综合命令没有要求或者使用check_timing -sdc_runtime命令如图1所示。前者适合新设计由于进行了优化因此运行时间较长后者适合已综合的设计只会进行报告因此运行时间较短。图1 解决SDC相关运行时间问题的流程可以通过2018版本引入的sdc_runtime_analysis_log_file变量设置报告保存的文件如果将其设置为空则输出至标准输出默认情况下报告保存在sdc_runtime_timestamp.log文件中。下面将列举一些报告中会出现的TIM信息。TIM-601设计中有些时钟并未被实际使用但仍然存在于数据库中这会成为综合工具额外运行时间的来源当设计中的未使用时钟数量超过2019版本引入的sdc_runtime_unused_clocks_threshold变量默认值为5时将会产生TIM-601信息。TIM-602对存在严格约束的时序组进行优化通常会导致综合工具运行时间变长当时序组的关键路径的负裕量超过时钟周期的一定比例由2018版本引入sdc_runtime_tightly_constrained_path_group_slack_percentage变量控制默认值为75时被认为是严格约束的将会产生TIM-602信息。TIM-603当大量存在严格约束的时序组由2018版本引入的sdc_runtime_tightly_constrained_same_clock_path_groups变量控制共享同一个时钟驱动时优化可能会显著增加运行时间将会产生TIM-603信息。TIM-604当设计中存在不可行路径时将会产生TIM-604信息。TIM-605多时钟交互多个时钟到达同一个触发器的时钟引脚可能导致运行时间显著上升TIM-605信息表示没有遗漏的跨时钟域约束默认情况下只会产生TIM-099信息。设置timing_enable_multiple_clocks_per_reg变量也可以解决这个问题但更建议使用显式约束。TIM-606如果设计中存在高扇出线网由2018版本引入的sdc_runtime_nets_missing_exceptions_fanout_threshold变量控制默认值为500且这些网络未使用set_ideal_network和set_dont_touch_network等命令约束综合时对这些线网进行缓冲可能会增加运行时间TIM-606信息将列出此类线网数量由2018版本引入的sdc_runtime_top_fanout_nets_missing_exceptions变量控制默认值为100。TIM-607当输入/输出端口被大量时钟约束时由2018版本引入的sdc_runtime_port_clock_constraint_threshold变量控制默认值为20综合工具为了优化会增加运行时间将会产生TIM-607信息。TIM-608如果设计中出现很高的WNS或者说严格约束由sdc_runtime_tightly_constrained_path_group_slack_percentage变量控制默认值为75可能的原因之一就是缺少多周期(set_multicycle_path)或虚假路径约束(set_fasle_path)在这种情况下优化设计可能会增加运行时间将会产生TIM-608信息每个时序组报告的路径数量由2018版本引入的sdc_runtime_paths_missing_inter_clock_constraints变量控制默认值为5。TIM-609当大量时序弧穿过ETM(Extracted Timing Model)或BAM(Block Abstraction Model)的引脚时会导致运行时间变长当某个层级引脚承载超过一定数量由2018版本引入的sdc_runtime_hier_block_pins_timing_path_threshold变量控制默认值为500的时序路径时将会产生TIM-609信息报告的引脚数量由2018版本引入的sdc_runtime_hier_block_pins_top_timing_paths变量控制默认值为100。关于这两种层次模型的更多介绍可以参考下面的博客。Design Compiler层次模型(Interface Logic Model(ILM)和Block Abstraction Model(BAM))的简介https://blog.csdn.net/weixin_45791458/article/details/150593613?ops_request_miscelastic_search_miscrequest_id6e25a8c004f44e072afc902a37368808biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~all~ElasticSearch~search_v2-3-150593613-null-null.541^v3^controlutm_termTiming%20MOdelspm1018.2226.3001.4450TIM-610约束可能被施加在实际上不存在的时序路径上这会导致综合工具运行时间变长将会产生TIM-610信息使用report_timing_requirements -ignored命令也是一种解决方案。TIM-612当大量周期和波形相同的时钟到达同一个时钟引脚综合工具在优化时会将这些时钟逐一考虑导致运行时间显著增加将会产生TIM-612信息。TIM-613多时钟交互多个时钟到达同一个触发器的时钟引脚可能导致运行时间显著上升TIM-613信息表示部分遗漏了跨时钟域约束默认情况下只会产生TIM-099信息。设置timing_enable_multiple_clocks_per_reg变量也可以解决这个问题但更建议使用显式约束。TIM-614多时钟交互多个时钟到达同一个触发器的时钟引脚可能导致运行时间显著上升TIM-614信息表示遗漏了全部跨时钟域约束默认情况下只会产生TIM-099信息。设置timing_enable_multiple_clocks_per_reg变量也可以解决这个问题但更建议使用显式约束。TIM-615、TIM-616、TIM-617这三个信息类似TIM-605、TIM-613、TIM-614也是由于跨时钟路径缺少约束导致的。SDC相关运行时间问题的修复从Design Compiler NXT 2019版本开始综合工具会在报告SDC相关运行时间问题的同时自动生成包含推荐修复方案的Tcl文件文件名为报告名.tcl表1列出了针对各种信息Tcl文件中推荐的修复措施。表1 信息及对应修复措施信息修复措施TIM-601使用remove_clock命令移除未使用的时钟TIM-602、TIM-608使用set_multicycle_path命令设置多周期路径TIM-604使用set_false_path命令设置虚假路径TIM-606使用set_ideal_network命令设置理想网络TIM-607使用remove_input_delay或remove_output_delay命令移除端口约束TIM-609、TIM-610使用reset_path命令移除约束TIM-612使用set_clock_sense -stop_propagation命令阻止时钟传播TIM-605、TIM-613、TIM-614、TIM-615、TIM-616、TIM-617使用set_clock_groups命令创建时钟组图2展示了修复SDC相关运行时间问题的流程。图2 修复SDC相关运行时间问题的流程综合过程中由于解组等原因生成的Tcl文件可能包含修改后的名称将enable_rule_based_query变量设置为true可以解决这个问题默认值为false另外线网也可能会被重命名如果这些线网在Tcl文件中被TIM-606信息作为高扇出线网报告应检查该信息并将set_ideal_network命令应用到原始线网名上。自动修复Design Compiler NXT 2019版本支持在综合时自动修复检测到的SDC相关运行时间问题自动修复内容与生成的Tcl文件中的修复内容相同这有助于评估在下一次工具运行中应用Tcl文件修复的收益该功能默认开启如果将2019版本引入的sdc_runtime_fixing_enable变量设置为false则可以关闭自动修复默认值为true。Information: The sdc_runtime_fixing_enable variable is enabled. SDC changes can cause QoR changes. (TIM-619)写在最后该功能已经在 Design Compiler NXT 2025版本中被包含在Early Data Flow中的Early Data Check Manager里如果可以使用最新版本的软件就不必设置sdc_runtime_analysis_enable变量了具体如下文所示。Design CompilerEarly Data Flowhttps://blog.csdn.net/weixin_45791458/article/details/155830404?spm1001.2014.3001.5501