先进Fusion Compiler综合与布局布线技术驱动性能与周转时间提升

SNUG Silicon Valley 2023 2023 37 页

先进Fusion Compiler综合与布局布线技术驱动性能与周转时间提升

会议: SNUG Silicon Valley 2023 作者: Keerthi Penmetsa (Synopsys) 页数: 37


议程

低功耗技术

- 时钟门控改进 - 组合多位映射 - place_opt中的自门控支持 - commit_block的saif_map支持

布局技术

- 直接拥塞驱动布局 - 高级密度控制

优化技术

- IO优先级 - 基于端点的瓶颈优化 - 基于目标端点的优化 - 改进的常数传播 - 常数和未加载寄存器日志信息 - 并发合法化优化 - Wire-Opt增强 - 改进的VT处理 - Hold收敛更新

时钟树综合

- 多线程全局时钟偏斜优化 - 面积恢复中的场景缩减 - 新一代常规多源时钟树综合

参考方法论

总结


Synopsys数字设计家族

Synopsys数字设计家族包括:

融合架构 — 20%更好的结果质量,2倍更快的获得结果时间,锚定综合/布局布线/签核,融合算法/引擎/数据模型,两种融合类型:测试与签核

创新产品 — 业界独特的Fusion Compiler,Design Compiler NXT,TestMAX,IC Validator NXT,PrimeShield,PrimeClosure,RTL Architect

市场领导力 — ML增强工具,AI驱动应用,加速AI/汽车/多芯片系统,云就绪

后硅阶段工具包括:Monitor IP,SiliconDash,Yield Explorer;系统设计:3DIC Compiler。


融合:更好、更快、可预测的结果

基于全流程客户设计(跨越设计风格、跨越工艺)数据: - 设计面积平均减小 7% - 总功耗平均降低 16% - 完成时间加速 2-3X - 活跃功耗平均降低 15% - 空闲功耗平均降低 30%


关键技术与增强

各阶段技术分布:

compile_fusion / place_opt阶段: - 性能:自门控、时钟门控改进、端点瓶颈优化、改进常数传播 - 功耗:自门控、时钟门控改进、组合多位 - OOTB/运行时间:用户hold effort、多线程CTS、自动密度控制、并发合法化优化

clock_opt build_clock / final_opto阶段: - 性能:Hold修复努力、目标端点优化 - 功耗:改进VT处理 - OOTB/运行时间:多线程CTS、wire-opt

route_auto / route_opt阶段: - 性能:wire-opt、IO优先级 - 功耗:组合多位 - OOTB/运行时间:目标端点优化、并发合法化优化


低功耗技术

时钟门控改进 (T-2022.03-SP3)

自动时序驱动取消门控: - 完全取消关键时钟门的门控 - 选择性取消关键接收点的门控 - 创建更好的偏斜优化机会

自动时序驱动时钟门拆分: - 布局和时序驱动 - 考虑时钟和使能时序之间的权衡 - 更新时钟延迟

时钟门控改进(续)

估算时钟门延迟改进: - 精确延迟计算 — 缓冲器或反相器选择,通孔电阻感知 - 一致的CTS约束处理

自门控QoR改进: - 技术:面积vs功耗权衡 - 改进聚类以进一步降低功耗 - 自门控组的布局约束 - 与面积开销相比,功耗回报递减时停止

place_opt中的自门控支持 (T-2022.03-SP3)

- 通过关闭寄存器数据不变时的时钟信号降低动态功耗 Dynamic Power - 自门控单元可以在少数寄存器或多位组之间共享 - 通过实现比较树创建组合使能 - 在组合寄存器数量和使能质量之间权衡 - 工具还可以根据每个门控寄存器的静态概率自动选择XOR、OR或NAND作为比较树 - 从版本T-2022.03-SP3开始,工具支持place_opt中的自门控

place_opt中的自门控支持(续)(T-2022.03-SP3)

为确保QoR改进,自门控算法考虑时序和功耗。为候选寄存器插入自门控单元的条件: - 寄存器数据引脚有足够的时序余量 - 电路的内部动态功耗降低 - 候选寄存器的智能分组

使能place_opt中的自门控:

set_app_options –name place_opt.flow.enable_self_gating –value true

流程:

place_opt –from initial_place –to initial_drc

插入自门控单元

place_opt –from initial_opto –to initial_opto

组合多位支持 (T-2022.03-SP3)

- 组合多位单元是单个单元实现多个逻辑功能的库单元 - Fusion Compiler可以: - 将单比特组合单元合并为多位组合单元 - 延迟/面积/功耗恢复步骤可通过重构反合并单元以改善时序和功耗 - 在不降低时序QoR的情况下提供面积或功耗节省

组合多位库单元包括:多输出NAND/NOR、2位Mux(非反相/反相输出)等。

组合多位支持(续)(T-2022.03-SP3)

使能组合多位映射:

set_app_options -list {
  opt.common.enable_combinational_multibit true
}
- 在initial_opto和final_opto阶段启用组合多位映射

流程中各阶段: - compile_fusion:放置感知的banking(基于物理接近度)、放置感知的debanking - clock_opt:放置感知的debanking(通过重构) - 合并单元:所有有共享输入和无共享输入的组合单元

saif_map对commit_block的支持 (T-2022.03-SP3)

简化层次化流程中PrimePower映射文件的编写:

- 加载和实现全芯片设计数据在内存和周转时间方面资源密集 — 许多用户转向层次化流程 - saif_map命令在提交块之前跟踪所有名称更改 - 在版本T-2022.03-SP3中,执行commit_block命令时saif_map数据库被传输到新块 - 现在可以在经历了名称更改的已提交块中使用RTL saif_map数据库并编写PrimePower映射文件

流程:设置库 → 读取和展开RTL → 应用时序约束,加载功耗意图 → 解组或分组 → 网表更改 → commit_block(saif_map -start)


布局技术

核心布局器创新 (T-2022.03-SP3)

直接拥塞驱动布局 (DCDP): - 在布局期间动态优化拥塞 - 改进角落拥塞和可布线性 - U-2022.12版本功能

高级密度控制: - 密度平坦化 - 占用空间扩展 - 单侧密度代价 - 更好的QoR - 密度热点影响可布线性

直接拥塞驱动布局 (U-2022.12)

- 概述: - 当前的拥塞驱动布局使用单元扩展技术在拥塞区域分散单元,允许布局间接优化拥塞 - 此功能在布局器中添加了一个新度量,测量区域中的线网数量(称为"线网密度"),布局器然后在线网密度上设置限制以引导布局器分散线网和连接单元 - 优势: - DCDP专注于改进角落拥塞和可布线性 - 无需在拥塞角落使用自定义布局阻塞(硬/软/部分)来改善可布线性

高级密度控制 (T-2022.03-SP3)

- 背景和概述: - 工具支持自动密度控制功能,以同时控制单元密度以实现良好时序和良好拥塞。但仍需要手动调整密度设置以获得更好的QoR - 这种新的密度处理功能无需手动调优即可获得更好的QoR - 优势: - 专注于缓解密度热点,控制扩散和聚集密度目标之间的振荡,以及更有针对性的拥塞扩展 - 密度平坦化通过动态针对局部密度热点来改善它们 - 占用空间扩展通过考虑局部密度的预期变化来提高单元扩展的准确性 - 单侧密度代价避免了单元在流程中的布局上扩散和聚集的振荡 - 基线显示密度热点导致可布线性问题


优化技术

IO优先级 (T-2022.03-SP3)

- 许多用户手动降低I/O优先级: - 避免在I/O上消耗面积和功耗 - 避免为了改善IOTNS而降低R2RTNS - 目标:通过整个流程以一致的方式处理I/O来改善开箱即用的结果 - 影响所有引擎:优化、布局器、布线器、DRC、CUS、CCD、CTS等 - 在Fusion CompilerIC CompilerI的RTL2GDS流程中工作 - 优势: - 整个流程中一致地处理IO路径 - 脚本简化。无需自定义IO路径组和权重来驱动QoR轨迹 - 对用户透明

IO优先级 — 用户界面 (T-2022.03-SP4)

set_app_options –name flow.common.io_priority –value 
描述
high(默认)IO路径和R2R路径具有相同优先级(现有行为)
mediumR2R路径优先于IO路径,由不同引擎处理

要求:time.enable_io_path_groups 必须为true(默认值)

基于端点的瓶颈优化 (T-2022.03-SP3)

- 瓶颈驱动器选择器: - 聚焦于对端点影响大的引脚进行优化 - 改进时序,减少面积和功耗代价 - 基于灵敏度的全局代价: - 在局部代价计算期间考虑端点影响 - 改进局部-全局时序相关性和PPA 功耗性能面积

此功能仅在 compile_fusion/place_opt 中可用。

基于目标端点的优化 (TEP) (T-2022.03-SP3)

- 启用基于TEP的优化以进一步收敛特定指标(setup、hold或ldrc) - 在clock_opt final_opto、route_opt和hyper_route_opt之后可用 - 新的-auto选项引导引擎处理所有违例端点,无需手动创建端点集合

route_opt / hyper_route_opt阶段:

set_route_opt_target_endpoints -setup_endpoints_collection $setup_collection
route_opt

或者使用auto模式

set_route_opt_target_endpoints –auto setup route_opt

clock_opt final_opto阶段:

set_clock_opt_target_endpoints -setup_endpoints_collection $setup_collection
clock_opt –from final_opto

或者使用auto模式

set_clock_opt_target_endpoints –auto setup clock_opt –from final_opto

改进的常数传播 (T-2022.03-SP3)

- 在先前版本中,传播常数的检测依赖于组合优化步骤,如冗余移除 - 在版本T-2022.03-SP3中,改进的常数传播默认开启 - 常数检测在流程早期进行: - 减少对其他优化步骤的依赖 - 有助于发现以前可能遗漏的常数 - 常数检测和寄存器合并基础设施相结合 - 早期检测改善QoR和运行时间

常数和未加载寄存器的日志信息 (T-2022.03-SP3)

- 优化技术(如冗余移除)优化寄存器周围的逻辑可能使寄存器变为常数或未加载 - 在版本T-2022.03-SP3中,当寄存器变为常数或未加载时,冗余移除步骤打印一条日志消息 - 使能该功能:

set compile.flow.print_messages_for_redundant_registers true

日志消息示例:

Info: Register pin A/B_reg/D has been identified as constant by the redundancy
removal engine and may be removed as constant register in later optimization steps. (CGRR-0001)

并发合法化优化 (T-2022.03-SP3)

- 在CLO(并发合法化优化)中集成引脚访问优化: - 单元放置在合法位置 - 优化单元放置以实现可布线性

CLO改进带来的收敛性提升: - 通过"始终合法"CLO改进处理: - 优化后无需额外调用合法化放置 - 间距规则 - 跨行VT规则 - NDR相关的PG-DRC规则

CLO → ALMap → 优化引擎 → 批量合法化(compile_fusion / clock_opt / route_opt)

Wire-Opt增强 (T-2022.03-SP3)

- 利用新能力: - 自动对工具选择的线网应用非默认布线规则(NDR) - 工具在优化和布线过程中内部优先处理这些线网 - 布线器自动推导设计和工艺特定的NDR选项 - 通过更新的引擎优化via ladder插入 - 新的VL流程改变了PMJ、EMVL和性能VL的插入时机 - 提取期间的增量覆盖率更新认知此变化 - 使用 enable_wireopt_improvements 命令: - 通过-mode vlo-mode andr参数自动化上述增强 - 可以使用-mode all参数同时启用两者 - 在route_opt / hyper_route_opt阶段保持启用状态 - 流程结束时更好的时序(R2R TNS)

优化过程中改进的VT处理 (T-2022.03-SP3)

- 在版本T-2022.03-SP3中,引擎级增强以改善流程中的VT使用: - 通过动态VT聚类以及优化改进,限制在流程早期使用漏电大的单元 - 限制低VT单元用于时序关键路径 - 有利于漏电功耗设计,增益取决于功耗vs时序的权衡

Hold修复努力 (T-2022.03-SP3)

- 在大规模进入hold违例时平衡hold修复运行时间vs QoR - 在clock_opt、route_opt和hyper_route_opt之前启用 - 使用低/中hold effort时Setup TNS、功耗和可布线性相当或有所改善 - 使用 set_qor_strategy -mode early_design 时自动应用"low" effort

set_app_options –name opt.common.hold_effort -value "high | medium | low"
描述
high(默认)面向有合理hold QoR的普通设计
medium面向高局部密度区域的难以插入hold缓冲器的设计
low面向有较大hold违例的早期/脏设计

时钟树综合 (CTS)

多线程全局偏斜优化 (T-2022.03-SP3)

- 从版本T-2022.03开始,新的时钟树优化(CTO)引擎建立在新基础设施之上,以并行执行多个优化 - 不同问题的GR布线和时序评估都是多线程的 - 场景缩减用于时钟优化以进一步改善运行时间 - 此技术在以下CTO步骤中实施: - 初始DRC修复 - 全局偏斜和延迟优化 - 面积恢复 - 最终DRC修复

面积恢复中的场景缩减 (T-2022.03-SP3)

- 在T-2022.03版本中,在clock_opt build_clock的偏斜优化阶段默认引入了场景缩减 - 从版本T-2022.03-SP3开始,场景缩减默认扩展到clock_opt build_clock期间的面积恢复步骤 - 在偏斜优化和面积恢复步骤中使用场景缩减,根据corner和时钟数量预计运行时间有所改善或保持中性

新一代基于H树的多源时钟树 (T-2022.03-SP3)

全自动H树 — 改进布线和延迟驱动抽头分配

自动化灵活H树综合: - 自动推导抽头驱动器和配置 - 单次常规MSCTS设置 - 最小时钟插入延迟 - 延迟感知的抽头插入 - 延迟感知的抽头分配 - 无需用户驱动的探索流程 - 更快的周转时间和工作量

增强的引脚布线: - H树主干(GCR) - 从主干到引脚的详细布线指导 - 改进引脚连接到Zroute - 定制布线器和详细布线之间改进的握手 - 改善物理DRC收敛

延迟驱动抽头分配: - 延迟和线长感知以改善接收点分布 - 更好的时钟延迟和时钟线长


参考方法论 (RM)

通用建议

- 使用最新的工具版本 — 利用最新的工具增强和改进,默认工具结果持续改进 - 使用Fusion Compiler参考方法论(RM): - 从R-2020.09-SP3起:Fusion Compiler GUI "Help" → "Generate RM scripts" - 可选从SolvNet下载RM脚本:https://solvnet.synopsys.com/rmgen - 应用mega开关以获得更好的开箱即用结果: - 工艺mega开关 — set_technology –node - 参考方法论mega开关 — set_qor_strategy, set_stage - ARM内核mega开关 — set_hpc_options –core - 运行时间mega开关 — enable_runtime_improvements

RM流程脚本

init_design
set_technology –node $node

Technology Specific Side files

set_qor_strategy –stage synthesis –metric timing/total_power/leakage_power set_stage –step synthesis compile_fusion –to logic_opto insert_dft compile_fusion –to initial_opto set_stage –step compile_place compile_fusion –from final_place set_qor_strategy –stage pnr –metric timing/total_power/leakage_power set_stage –step cts clock_opt –from build_clock –to route_clock set_stage –step post_cts_opto clock_opt –from final_opto set_stage –step route route_auto set_stage –step post_route route_opt endpoint_opt

RM 2.0流程建议使用mega开关快速配置设计: - 首先使用set_technology应用所有节点特定推荐设置 - 使用set_qor_strategy应用从客户合作中学到的最佳工具设置 - 随着新功能和技术可用以推动你的设计指标,set_qor_strategy开关将更新


关键技术与增强(总结)

各阶段综合视图:

阶段性能功耗OOTB/运行时间
compile_fusion/place_opt自门控、时钟门控改进、组合多位、端点瓶颈优化、改进常数传播自门控、IO优先级、Wire-Opt、时钟门控改进、组合多位、saif_map支持用户hold effort、多线程CTS、自动密度控制、并发合法化优化
clock_opt build_clock/final_optoHold修复努力、TEP优化、wire-opt、改进VT处理、IO优先级改进VT处理多线程CTS
route_auto/route_opt/hyper_route_optIO优先级、wire-opt组合多位TEP优化、并发合法化优化、自动密度控制

图片索引

本文共112张图片,存放于 SNUG_2023_Penmetsa_Fusion_Compiler_paper_images/ 目录。

由于本文为PPT格式,图片数量众多,完整图片索引请参考原始图片目录。关键图片包括: - Synopsys数字设计家族概览 - 融合架构QoR改进数据图表 - 各阶段关键技术分布图 - 时钟门控改进示意图 - 组合多位库单元结构图 - DCDP和高级密度控制对比图 - RMS流程图 - 新一代H树MSCTS架构图