复杂SoC使用IC Compiler的层次化设计实现

SNUG San Jose 2009 2009 16 页

复杂SoC使用IC Compiler的层次化设计实现

作者: Harpreet Gill, Young S. Koog (Samsung Semiconductor, Inc., San Jose, USA), Tamiko Yoneyama (Synopsys, Inc., California, USA)


摘要

在紧张的时间表下实现大型复杂SoC 系统级芯片需要一个成熟的并行层次化设计方法。这包括设计可行性分析、探索、层次化设计规划、并行模块和顶层实现。关键是在可接受的周转时间内处理数百万门的设计,达到理想的时序QoR 结果质量。本文将讨论基于IC Compiler(ICC)的层次化设计流程,用于三星一个大型复杂设计的投片 Tape-Out,并与用户社区分享最佳实践。目标是确定设计规划和实现每个阶段的最佳流程,并建立一套指导方针以加快设计收敛 Design Closure


1 引言

我们都面临着为抢占市场窗口而承受的激进时间表压力。拥有一个成熟的并行层次化设计方法是帮助节省设计周转时间的有效方式,也是成功实现当今不断增长和复杂的SoC设计物理实现的关键因素之一。

在我们最近的SoC设计项目之前,我们探索了可行性分析和布局规划探索领域的各种选项和方法,以获得更好的可预测性。我们希望更好地估计设计目标的可行性,并减少设计项目后期代价高昂的迭代。简而言之,我们的目标是从最终网表输入到模块布局布线就绪数据实现一个晚上的周转时间。我们还探索了模块和顶层的并行设计方法,以改善整体布局布线周转时间。通过这些研究构建的流程/方法使我们成功按计划完成投片。

在本文中,我们将介绍我们的物理实现流程和遇到的挑战,并分享一些最佳实践和指导方针。

2 设计规格

该设计有超过500万个可布局标准单元和超过500个宏单元(存储器和其他IP 知识产权核)。设计中有超过50个时钟域。设计采用低功耗技术实现,如多电源域(带和不带保持)、多阈值电压 Vt流程和低功耗时钟树综合 CTS。物理设计在2个层次级别中实现,顶层被划分为12个软宏。封装类型为倒装芯片。

3 物理实现流程

设计使用的物理实现流程概览如图1所示。该流程包括三个部分: - 布局规划探索 - 布局规划确定 - 模块级和顶层的实现

图1:物理实现流程

布局规划探索阶段

在布局规划探索阶段,我们读取全芯片网表 Netlist,探索宏位置,创建和塑形plan groups,基于全局布线创建模块的引脚位置,最后提交层次以创建每个软宏的布局布线起始数据。一般来说,在此阶段我们会有多次迭代以及顶层和模块之间的数据交接。布局规划探索阶段的目标是最终确定与布局规划相关的变量,如引脚位置和宏位置,以及验证和确定模块时序约束。一旦这些变量被确定,就不再需要执行详细流程,可以跳过几个步骤如IPO和时序预算,以更快地获得模块布局布线就绪数据。

布局规划确定阶段

在布局规划确定阶段,我们读取预先确定的设计和布局规划信息,快速通过虚拟平坦布局、提交和引脚分配,以产生模块的实现就绪数据。我们将此阶段的周转时间目标设定为一个晚上。

图2:布局规划探索流程

实现阶段

在实现阶段,布局布线的工作在模块级和顶层同时进行。ILM 接口逻辑模型在place_opt、clock_opt、route_opt和chip_finish结束后为所有顶层时序驱动的步骤生成。

图3:布局规划确定流程 图4:设计实现流程

4 层次化设计的挑战

时序约束

层次化设计中最关键的挑战之一是在模块级定义正确的时序约束。不正确或不完整的时序约束可能导致过多的迭代,浪费宝贵的项目时间。

时序模型精度

ILM和ETM 提取时序模型的精度对顶层时序收敛至关重要。必须在模块级实现过程中持续的时序模型验证。

电源域和时钟域的复杂性

多电源域和50多个时钟域增加了设计的复杂性,使得时序约束和验证更加困难。

5 结论

通过精心规划的并行层次化设计方法,我们成功按计划完成了这个包含500多万标准单元的复杂SoC的投片。关键的成功因素包括早期布局规划探索、并行模块和顶层实现、以及持续的ILM生成和验证。我们建议设计团队在项目初期就建立明确的层次化策略,并从项目一开始就考虑时序约束的完整性和一致性。

6 附录

附加的流程细节和脚本示例。


图片索引

本文共4张图片,存放于 _images/ 目录。