资讯详情

资讯详情

Design Compiler:Early Data Flow(Early Data Check Manager与Low-Effort Flow)

相关阅读Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482目录使用Early Data Check Manager使用Low-Effort Flow物理数据检查逻辑数据检查SDC约束检查在设计周期的早期迭代中设计数据可能是不完整的、错误的或不一致的。这会阻碍你对设计进行实现、探索等工作。拓扑模式的Design Compiler NXT在2022版本推出了Early Data Flow允许用户执行数据检查并指定综合工具如何处理这些检查。该功能可以改善运行时间但可能会对结果质量(QoR)产生一定影响。Early Data Flow由Early Data Check Manager和Low-Effort Flow组成其中Early Data Check Manager允许用户在设计周期的早期阶段检查设计中的问题Low-Effort Flow则可以关闭高强度优化过程降低引擎的努力等级在结果质量(QoR)与运行时间之间取得平衡。使用Early Data Check Manager使用set_early_data_check_policy命令即可启动Early Data Check Managerset_early_data_check_policy命令的BNF范式有关BNF范式可以参考以往文章为set_early_data_check_policy [-checks checks] -policy [error | tolerate | repair | strict | lenient] //注-policy选项的error, tolerate, repair参数只有在指定-checks选项时可以使用即无法当做全局策略设置Design Compiler提供了一套检查项每个检查项支持一些策略在error、tolerate、repair之中选择若干用户需要首先在set_early_data_check_policy -policy strict和set_early_data_check_policy -policy lenient命令之中选择其一执行不指定-checks选项即设置全局策略strict表示检查项被设置为其所支持的最高严重级别策略即按照error、tolerate、repair的顺序尝试设置lenient表示检查项被设置为其所支持的最低严重级别策略即按照repair、tolerate、error的顺序尝试设置随后用户可以指定-checks选项以设置各检查项的策略覆盖之前的全局策略工具将出现以下提示表明开启了Early Data Check Manager。Information: Early data checks are enabled. (DCT-453)使用report_early_data_checks命令可以报告所有检查项设置的策略、出现次数以及支持的策略如下所示。dcnxt_shell-topo report_early_data_checks **************************************** Report : report_early_data_checks Design : TOP Version: W-2024.09-SP2 Date : Fri Dec 12 00:18:06 2025 **************************************** Check Applied Policy Fail Count Supported Policies ------------------------------------------------------------------------------------------------ ldc_busBitBlasted error 0 error,repair ldc_busWidthMismatch error 0 error,repair ldc_missingLogicalPins error 2 error,repair ldc_missingLogicalReference error 0 error,repair ldc_missingPhysicalCells tolerate 0 tolerate ldc_missingPhysicalPins tolerate 0 tolerate ldc_pinDirectionMismatch tolerate 1 tolerate ldc_pinNameSynonym error 0 error,repair ldc_unconnectedInterfacePins error 0 error,repair pdc_blockedPins tolerate 0 tolerate pdc_emptyRegions tolerate 0 error,tolerate pdc_groupsOverlap tolerate 0 error,tolerate pdc_ignoreSpecialpgNets tolerate 1 tolerate,repair pdc_macroOutsideCore tolerate 0 error,repair,tolerate pdc_macrosOverlap tolerate 0 error,repair,tolerate pdc_physicalOnlyCells tolerate 0 error,tolerate pdc_placerOverUtil tolerate 0 error,tolerate pdc_regionOutsideCore tolerate 0 error,tolerate pdc_voltageAreaOverUtil tolerate 3 error,tolerate ------------------------------------------------------------------------------------------------使用remove_early_data_check_records命令即可重置所有检查项的出现次数。使用Low-Effort Flow在Design Compiler简化性能、功耗和面积(PPA)的优化设置set_qor_strategy命令一文中我们了解了如何使用set_qor_strategy命令设置应用变量其中-mode选项可用于指定目标模式默认为balanced在Early Data Flow中需要将其设置为early_design如下所示此时工具会自动关闭PPA相关的高强度优化设置如表1所示并在综合时将物理数据检查项的全局策略设置为lenient该设置的优先级低于set_early_data_check_policy命令。dcnxt_shell-topo set_qor_strategy -mode early_design -stage synthesis表1 Low-Effort Flow设置的变量变量名目标值compile_timing_high_effort_tnsfalsecompile_enhanced_tns_optimization _in_incrementalfalsecompile_high_effort_areafalsecompile_prefer_muxfalsecompile_enable_total_power_optimizationfalsecompile_optimize_netlist_area_in_incrementalfalsecompile_final_drc_fixnoneplacer_congestion_effortautoplacer_enable_enhanced_routerfalsetiming_enable_multiple_clocks_per_regfalsespg_icc2_rc_correlationfalse物理数据检查在之前的版本中compile_ultra或compile_ultra -check_only命令可以对物理数据进行检查并产生警告或错误例如当宏单元被发现放置在核心区域外时会产生PDC-029警告或PDC-028错误Early Data Check Manager拓展了更多检查项这些检查项被命名为pdc_**如表2所示。表2 物理数据检查项检查项支持的策略描述提示信息pdc_groupsOverlaperror、tolerate检查bound与电压域是否发生重叠PDC-024、PDC-025、PDC-026、PDC-027pdc_regionOutsideCoreerror、tolerate检查bound与电压域是否位于核心区域外PDC-022、PDC-023pdc_emptyRegionserror、tolerate检查是否存在空的bound或电压域PDC-020、PDC-021pdc_physicalOnlyCellserror、tolerate检查物理仅有单元是否超过阈值PDC-033、PDC-034pdc_blockedPinstolerate检查在全局布线中阻塞布线的实例通过report_congestion命令PDC-035pdc_voltageAreaOverUtilerror、tolerate检查电压域是否过度利用可能导致布局问题PDC-037、PDC-038pdc_placerOverUtilerror、tolerate检查布局器是否处于过度利用状态PDC-039、PDC-040pdc_macroOutsideCoreerror、tolerate、repair检查是否有宏单元位于核心区域外PDC-028、PDC-029、PDC-032pdc_macrosOverlaperror、tolerate、repair检查是否有宏单元发生重叠PDC-031、PDC-031a、PDC-032pdc_ignoreSpecialpgNetserror、tolerate忽略特殊的电源/地线网需要注意的是如果检查项的策略是repair则需要调用IC Compiler II Link需要工具处于Milkyway模式且使用了set_icc2_options命令或工具处于NDM模式否则会出现下面的警告。Warning: The repair policy is ignored due to absense of NDM reference libraries. (DCT-424)逻辑数据检查从2023版本开始除了物理数据Design Compiler还支持逻辑数据检查这是原本来自于DC Explorer的功能它是一款用于RTL早期探索和快速综合预测的工具。这些检查项被命名为ldc_**如表3所示。表3 逻辑数据检查项检查项支持的策略描述提示信息ldc_missingLogicalReferenceerror、repair逻辑库中缺失单元库单元vs叶单元或缺少模块顶层模块vs子模块LINK-5、LINK-909、LINK-919、DESH-017ldc_missingLogicalPinserror、repair库单元缺失引脚库单元vs叶单元或模块缺失引脚顶层模块vs子模块LINK-1、LINK-5、LINK-902、LINK-903、LINK-911、DESH-017ldc_busWidthMismatcherror、repair位宽不匹配库单元vs叶单元或顶层模块vs子模块LINK-3、LINK-5、LINK-903、LINK-904、LINK-911、DESH-017ldc_unconnectedInterfacePinserror、repair引脚未连接库单元vs叶单元或顶层模块vs子模块DESH-017ldc_pinNameSynonymerror、repair由于别名(Synonym)导致的引脚名称不匹配库单元vs叶单元或顶层模块vs子模块LINK-1、LINK-5、LINK-901、DESH-017ldc_busBitBlastederror、repair由于位拆分(Bit-Blast)导致的引脚名称不匹配库单元vs叶单元或顶层模块vs子模块将enable_bit_blasted_bus_linking变量设置为true也可以修复该问题LINK-1、LINK-5、LINK-912、DESH-017如果检查项的策略是repair可以使用report_design_mismatch命令报告有哪些被修复的逻辑数据问题如下所示但修复可能导致验证或形式验证失败。dcnxt_shell-topo report_design_mismatch **************************************** Report : design mismatches Design : top Version: W-2024.09-SP2 Date : Sat Dec 13 22:08:01 2025 **************************************** Number of missing pins on logical library cells : 1 Design Object Type Mismatch ----------------------------------------------------------------------- top U1 cell BOG_IN pin on U1 cell in top design is missing from the AND4X4_HVT reference. Number of unconnectable nets due to missing pins : 1 Design Object Type Mismatch ----------------------------------------------------------------------- top BOG_IN net Unable to connect BOG_IN net to the BOG_IN pin of U1 cell in top design. Number of linker anchor cells : 1 Design Object Type Mismatch ----------------------------------------------------------------------- top U1_SNPBSBIT_BOG_IN cell Linker anchor cell inserted for unconnectable pin on U1 cell.在2024版本中新增了三个检查项如表4所示。表4 逻辑数据检查项检查项支持的策略描述提示信息ldc_missingPhysicalCellstolerate逻辑库存在单元但物理库中不存在PSYN-024、PSYN-039ldc_missingPhysicalPinstolerate单元引脚存在于逻辑库但不存在于物理库PSYN-024、PSYN-039、PSYN-200ldc_pinDirectionMismatchtolerate单元引脚逻辑库与物理库中的引脚方向不一致PSYN-024、PSYN-039、PSYN-058关于逻辑数据的详细修复方式可以参考DC Explorer User Guide。SDC约束检查在Design CompilerSDC相关运行时间问题的报告和修复一文中我们了解了如何通过2018版本引入的sdc_runtime_analysis_enable变量以及check_timing -sdc_runtime命令报告关于SDC约束复杂性的反馈信息在2025版本中Design Compiler将其引入了Early Data Check Manager。这些检查项被命名为sdc_**如表5所示。表5SDC约束检查检查项检查项支持的策略描述提示信息sdc_duplicateClockstolerate、repair当大量周期和波形相同的时钟到达同一个时钟引脚综合工具在优化时会将这些时钟逐一考虑导致运行时间显著增加TIM-612sdc_infeasiblePathstolerate、repair当设计中存在不可行路径时TIM-604sdc_highFanoutNetstolerate、repair如果设计中存在高扇出线网且这些网络未使用set_ideal_network和set_dont_touch_network等命令约束综合时对这些线网进行缓冲可能会增加运行时间TIM-606sdc_missingTimingExceptionstolerate、repair如果设计中出现很高的WNS可能的原因之一就是缺少多周期(set_multicycle_path)或虚假路径约束(set_fasle_path)在这种情况下优化设计可能会增加运行时间TIM-608sdc_unusedClockstolerate、repair设计中有些时钟并未被实际使用但仍然存在于数据库中这会成为综合工具额外运行时间的来源TIM-601sdc_noPathExiststolerate、repair约束可能被施加在实际上不存在的时序路径上这会导致综合工具运行时间变长TIM-610sdc_multipleClocksOnPortstolerate、repair当输入/输出端口被大量时钟约束时综合工具为了优化会增加运行时间TIM-607sdc_multipleClocksOnPintolerate、repair多时钟交互多个时钟到达同一个触发器的时钟引脚可能导致运行时间显著上升TIM-099、TIM-605、TIM-613、TIM-614、sdc_overConstrainingtolerate、repair当大量存在严格约束的时序组共享同一个时钟驱动时优化可能会显著增加运行时间TIM-603可以使用report_sdc_fixes命令报告有哪些被修复的SDC约束问题如下所示。dcnxt_shell-topo report_sdc_fixes **************************************** Report : sdc fixes Design : ORCA_TOP Version: X-2025.06-DEV Date : Thu Apr 24 14:17:57 2025 **************************************** Number of duplicate clocks fixed/repaired in the design : 2 Design Clock Name Constraint File ---------------------------------------------------------------------------------------------------- ORCA_TOP clk_dup_24 /remote/testcases/TC19/9001410001_9001410500/9001410404/early_data_SDC_4_X_Proj/TESTCASES_0305/DATABASE_1/test.sdc:34 ORCA_TOP clk_dup_23 /remote/testcases/TC19/9001410001_9001410500/9001410404/early_data_SDC_4_X_Proj/TESTCASES_0305/DATABASE_1/test.sdc:33 Number of unused clocks fixed/repaired in the design : 2 Design Clock Name Constraint File ---------------------------------------------------------------------------------------------------- ORCA_TOP clk_unused_24 /remote/testcases/TC19/9001410001_9001410500/9001410404/early_data_SDC_4_X_Proj/TESTCASES_0305/DATABASE_1/test.sdc:44 ORCA_TOP clk_unused_23 /remote/testcases/TC19/9001410001_9001410500/9001410404/early_data_SDC_4_X_Proj/TESTCASES_0305/DATABASE_1/test.sdc:43SDC约束问题的修复与Design CompilerSDC相关运行时间问题的报告和修复类似可以通过2018版本引入的sdc_runtime_analysis_log_file变量设置报告保存的文件如果将其设置为空则输出至标准输出默认情况下报告保存在sdc_runtime_timestamp.log文件中生成的包含推荐修复方案的Tcl文件名为报告名.tcl。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →