IC Compiler II (简称ICCII)是Synopsys(纳斯达克股票代码:SNPS)公司推出的布局布线实现平台。ICCII包含了诸多新的优化技术,为汽车电子、云计算、智能网络以及AI领域的新一波前沿设计带了了卓越的质量和效率。和ICC相比,ICCII在功耗、面积以及时序方面有了较大的提升,不同的优化技术的应用和深度融合能够大大降低芯片设计周期。ICCII以其优越的布线布局算法在设计实现结果质量方面引领业界的地位,并帮助IC设计人员提供了差异化产品。
ICCII能够提供RTL-GDSII的物理设计解决方案。通俗的说,ICCII能够将一团代码(前端工程师综合后的网表)转换成一张图纸(Foundry能够识别并制造的图形化文件)。通常意义的物理设计主要包括以下部分:
1.布局规划(Floorplan)
主要实现芯片形状和大小的确认、端口的摆放、宏单元的布局以及电源网络的创建等。布局规划的好坏对后续设计的结果有很大的影响,不合理的布局规划可能回引起阻塞(Congestion)和时序的恶化。
2.单元摆放(Placement)
主要实现标准单元的摆放。在ICCII中,标准单元的摆放可以基于不同优化指标进行,比如基于优化时序摆放。ICCII提供了大量的针对单元摆放的优化方法,比如BAP/ATC/DTDP/CDR等(我们会在后面的文章依次进行详细介绍)。同时也提供了针对单元摆放不同的设计流程,比如SPG/Tw-pass等。总而言之,单元摆放的质量对整个物理设计流程具有重要影响。
3.时钟树综合(Clock Tree Synthesis)
主要为芯片创建时钟供给网络。时钟是整个数字芯片的“心脏”,时钟树的质量决定了整个芯片运行的稳定性和鲁棒性。ICCII为CTS阶段提供了Classic flow和CCD(Concurrent Clock and Data Optimization) flow, 为满足不同的设计需要提供了可能性。
4.布线(Route)
主要完成数字芯片内部各部分的物理连接工作。ICCII将Route分成了Global Route/Track Assignment/Detail Route三个阶段,方便设计人员针对每个阶段进行调整。同时,ICCII还提供了一系列PostRoute的优化方法,使得布线之后的电路在功耗、面积和时序方面得到最大程度优化。
ICCII 目前版本所具备的关键技术包括:
全新的基于Arc的everywhere时钟数据同步优化技术(CCD)
ICCII融合RedHawk Analysis Fusion的电源电压降优化
ICCII融合ECO Fusion实现时序的快速准确收敛
基于时序,面积和功耗优化的逻辑重组技术
核心引起算法加速、多场景同步优化、高效硬件扩展技术等
BAP/ATC/NPO/CDR等优化方法
我们将在下面的文章中详细介绍ICCII实现物理设计的整个过程,并且针对于ICCII中所使用到的一些关键优化方法和命令进行详细探讨。于此同时,随着ICCII版本的不断更新,我们也会给大家介绍每个版本新的特性和命令,方便大家的学习。