IC Compiler

工具概述

定位与起源

定位与起源:IC Compiler(ICC)是Synopsys的物理设计平台——完成从门级网表到GDSII的完整物理实现流程:布局(placement)、时钟树综合(CTS)、布线(routing)、优化(optimization)。ICC于2005年发布——整合了Synopsys此前收购的多项技术——是物理设计领域的标准工具之一。

ICC的核心价值:将综合后的门级网表"画"到芯片的硅平面上——决定每个标准单元的(x,y)坐标、每根连线的金属层和走线路径——同时满足时序、面积、功耗、可制造性的全部约束。

核心技术

时序驱动的布局:ICC在placement时预估线延迟——将关键路径上的cell放得近——减少线延迟。placement密度在70-80%最优——太高→congestion→线延迟反而增加。

CCD(并发时钟数据优化):ICC可以在优化数据路径时同时调整时钟延迟——自动分配useful skew——比传统"先CTS后数据优化"的流程在WNS上改善20-50ps。

多corner优化(MCMM):ICC在多个PVT corner下同时优化——setup corner负责性能——hold corner负责功能正确——保证全corner时序收敛。

ECO友好设计:ICC支持增量ECO——只改动violation附近的cell——不影响已有时序收敛的区域。支持spare cell管理和自动ECO布线。

主要功能

* Floorplanning:放置macro/IO/blockage——定义标准单元区域——规划电源网格。 * Placement:标准单元全局布局+legalization(消除overlap)。 * CTS:构建时钟树——buffer插入——skew优化。 * Routing:全局布线+详细布线——天线规则修复——DFM优化。 * ECO:时序/功能ECO——增量placement+增量布线——等价性检查。

实战案例

- 某GPU用ICC CCD救局:传统流程WNS=-30ps修3轮ECO。开CCD→自动给8条关键路径加5-15ps useful skew→WNS=+5ps hold全clean。 - Congestion调控:某设计placement密度85%→布线后局部WNS=-80ps。降密度到78%→WNS=-5ps。 - MCMM优化:某SoC有32个PVT corner——ICC MCMM一次优化全部满足——单corner优化则需要32次迭代。

常见误区

误区一:ICC=按个按钮就行。 ICC做局部优化——全局决策(macro位置/电源网格密度/CTS拓扑)必须由工程师决定。

误区二:placement密度越高越好。 85%以上→congestion→线延迟增大→WNS恶化。最优密度70-80%。

误区三:ICC和ICC II是一样的。 ICC II是完全重写的新一代引擎——基于Fusion数据模型——ICC是上一代产品。新项目应选用ICC II或Fusion Compiler。

版本演进

- 2005:ICC 1.0:整合Physical Compiler+Astro+其他收购技术。业界第一个完整的netlist-to-GDSII平台。 - 2008–2012:ICC成熟期:加入CCD、MCMM、低功耗支持(UPF)。 - 2014:ICC II发布:完全重写——基于Fusion数据模型——性能远超ICC。 - 2020s:ICC逐渐退出:被ICC II和Fusion Compiler取代——ICC进入维护模式。

相关论文

- 在45nm使用IC Compiler中Zroute技术改善布线QoR、DFM和运行时间 - 用户开发UPF低功耗流程的经验 - DC-T与ICC之间相关性的系统分析 - DC Graphical:承诺与现实 - 小延迟缺陷 ATPG 的用户实践经验 - 扫描与压缩对物理设计影响的案例研究 - 百万门设计构建方法论:DC Topographical与ICC协同 - 高级IC设计流程优化与自动化策略 - 在复杂 VLSI 上使用 Synopsys Galaxy 流程进行可测试性设计插入 - 以可承受的 TAT 完成超大型 65nm ASIC 设计的流片 - STMicroelectronics MiniChip物理设计 - 寄存器克隆加速设计收敛 - 使用Galaxy平台层次化实现Cortex-A9 MPCore多核处理器 - Qualcomm芯片设计中的物理实现挑战与解决方案 - 基于ICC相对布局的流程实现45nm大型IP核最佳面积与频率 - 使用IC Compiler进行45nm高性能处理器设计 - 使用IC Compiler设计45nm高性能处理器 - 先进设计方法论 - ICC中影响功耗的布局问题 - 使用IC Compiler收敛最后几皮秒:65nm案例研究 - 层次化设计流程中的布局规划与版图优化:案例研究 - SOI技术中的天线效应分析与修复 - IP模块电源控制电路设计方法论 - 缩小综合与布局布线之间的差距 - 不要让噪声延迟你的投片 - 结构化方法:利用相对布局与时钟网格优化ARM Cortex-A8 NEON单元的延迟、功耗与变异——基于90纳米工艺的案例研究 - 综合与布局相关性:DC-Topography是解决综合布局失配的圣杯吗? - 使用ICC CTS流程实现良好的时钟偏斜和跨时钟平衡结果 - 90nm IP库的功耗门控实现技术 - DFT MAX扫描压缩流程实践经验 - UMC-Synopsys 65nm低功耗UPF参考设计流程 - 瑞昱项目中Astro与ICC的CTS比较:针对时钟门控结构的处理方法 - 低功耗IP与UPF:高性能低功耗CPU设计的使能技术 - 构建百万门级设计方法论 - 构建百万门级设计方法论 - DC Graphical:承诺与现实 - 双模GPS接收器的实现方法论 - 电源门控设计——UPF能为你做什么,以及不能做什么 - 使用 IC Compiler 进行布局规划和可行性分析 - 使用IC Compiler实现无天线效应设计 - 降低高性能可综合处理器核心功耗的自动化设计流程 - 使用IC Compiler进行复杂SoC的层次化设计实现 - 先有鸡还是先有蛋:如何在网表生成之前获得布图规划 - 与设计同步的DFT:层次化扫描压缩 - 利用IC Compiler中Zroute技术在45nm改善布线QoR、DFM和运行时间 - 复杂SoC使用IC Compiler的层次化设计实现 - 降低高性能可综合处理器核心功耗的自动化设计流程 - 使用IC Compiler低功耗CTS降低时钟树功耗的可预测方法 - 先有鸡还是先有蛋:如何在网表之前获得布图规划 - 基于 ICC UPF 流程的低功耗 ARM Cortex-A9 实现 - 使用PrimeTime进行快速时序ECO经验分享 - 使用IC Compiler UPF模式改善Gas Station设计的周转时间 - 基于UPF的多电压MCMM实现经验 - 通过使用 IC Compiler UPF 模式改善加油站设计的周转时间 - DC Explorer:早期设计探索的快速综合 - DC Explorer:用于早期设计探索的快速综合 - 部署全定制时序壳方法学以在Custom Designer与ICC之间交付宏单元_Deployment_of_full_custom_created_timing_shell_methodology_paper.md) - Synopsys实现工具的高效统一降额方法 - CTMesh 还是 CTS:高性能设计的时钟树拓扑比较 - 定制设计中的 STA:为什么仿真不够 - UPF 2.0:期望与经验 - 层次化设计实现策略的最佳实践 - Hippo Lake:高速设计中自动化设计规划的案例研究 - AOCV在时序分析及收敛中的高效使用方法研究——基于Synopsys EDA工具 - 重定时流水线多种低功耗方法的优异权衡 - 一种可以自动完善物理约束的快速综合设计方法 - 利用多位寄存器合并技术提升芯片设计功耗效率 - 使用多位寄存器和 Design Compiler Graphical/IC Compiler 降低高性能设计中的动态功耗 - 使用多位寄存器结合DC Graphical和IC Compiler降低高性能设计中的时钟动态功耗 - 比特币低功耗流程与方法学 — 实现篇:一个'完全酷'的案例研究 - Socionext UPF设计流程的演进——Socionext与Synopsys的成功合作 - 使用UPF进行低功耗设计的原则 - 不同设计的动态功耗优化策略 - 使用BAM和ETM混合方法的SoC层次化实现框架 - 约束开发与时序收敛:使用SDC约束的最佳实践 - 一种加速设计收敛的有效时序约束方法学 - 一种有效的时序约束方法学加速设计收敛 - 编写高效时序约束并加速时序收敛 - 测试点决胜局——覆盖率、成本与QoR的DFT帽子戏法 - 67nm设计可布线性分析与改进 - 更快、更好、更短的ICC II -- 使用ARM POP IP实现Cortex-A73 - 使用DCG中的多位寄存器映射低功耗设计技术 - POCV:从综合、实现到签核的全流程OCV解决方案 - 多位寄存器组化的实现流程 - 28nm Cortex-A7核心的时钟树实现策略 - 复杂时钟结构设计的 CTS 挑战