使用IC Compiler设计45nm高性能处理器

SNUG India 2008 2008 7 页

使用IC Compiler设计45nm高性能处理器

作者: Ananth Somayaji, Amit Jain, Abhishek Mishra, Sudipto Sarkar (Texas Instruments India), Harissh Swaminathan (Synopsys India) 会议: SNUG India 2008 页数: 7 源文件: SNUG_2008_India_Somayaji_snug2k8DiabloFinal_paper.pdf


Page 1

Figure

使用IC Compiler设计45nm高性能处理器

Ananth Somayaji, Amit Jain, Abhishek Mishra, Sudipto Sarkar Harissh Swaminathan*

Texas Instruments India * Synopsys India

gs_ananth@ti.com

摘要

随着工艺尺寸缩小和市场竞争加剧,从功耗、性能和面积角度来看,应用处理器的设计变得极具挑战。所有这一切都需要"一流"的EDA电子设计自动化工具配合"一流"的设计流程。我们通过Diablo——TI一款45nm高性能应用处理器,重点阐述设计收敛的这两个方面。我们描述了在综合、布局和时钟树综合 CTS中采用的多种方法学。最后还描述了在该设计中进行的变异分析工作。


Page 2

Figure

目录

1.0 引言 2.0 综合方法学 3.0 布局优化手段 4.0 时钟 5.0 布线 6.0 考虑变异的时序修复 7.0 结论与建议 8.0 致谢

图表目录

图1:磁铁布局 图2:隔离单元和端口的相对布局 图3:Corner vs Stat Slack 对比


Page 3

Figure

1.0 引言

随着工艺尺寸缩小和市场竞争加剧,从功耗、性能和面积角度来看,应用处理器的设计变得极具挑战。由于手机市场对处理能力需求增加,应用处理器的设计更加困难。高级UI和视频播放以及其他图形应用的需求反过来需要大量的处理能力,因此对越来越高频率的需求也随之增加。在更高频率必须以很少或不影响面积和功耗的方式实现的情况下,这一需求变得更加具有挑战性。

所有这一切都需要"一流"的EDA电子设计自动化工具配合围绕这些工具的标杆方法学,以将频率推向超越工艺本身所能提供的水平。我们将在本文中详细描述我们在TI 45nm工艺应用处理器设计中所采用的方法学。在第2节中描述综合方法学,第3节描述布局优化手段,第4节描述时钟方法学,第5节讨论修复变异感知时序违例的经验,第6节展示结果。在每个章节中,我们除了突出QoR收益外,还强调运行时间收益。最后进行总结。

2.0 综合方法学

在之前的执行中,我们无法使用自顶向下的综合方法,因为用这种方法无法获得所需的频率。因此,我们不得不采用自底向上的方法,这既繁琐又耗时。然而,使用新版Design Compiler以及glo_more_opto开关配合compile_ultra -timing,我们能够通过自顶向下的编译本身获得所需的频率。仅凭这一特性,我们就节省了大量时间,更不用说减轻了工程师的工作负担。

3.0 布局优化手段

在我们的应用处理器中,从存储器出发的路径在设计中已知是关键路径。因此,大多数布局工具难以收敛这些时序路径,通常会在那里停滞不前。为了缓解这个问题,我们使用了IC Compiler中的magnet_placement命令,在开始布局之前,将来自存储器的所有端点放置在最靠近存储器的最近合法位置。通过这样做,我们为布局工具提供了一个难度大大降低的问题,从而提高了布局优化中实现的QoR。磁铁布局(magnet placement)是ICC中可用于有效实现此目的的技术。它指定一个磁铁(通常是任何固定布局单元,如宏单元或端口),然后将来自磁铁的端点拉到靠近磁铁的最近合法位置。还有其他选项可以仅拉动一级单元或将已布局的单元标记为固定等。下图展示了我们设计中的磁铁布局结果。


Page 4

Figure 图1:磁铁布局

我们在布局前使用的另一个手段是对与端口通信的功耗管理隔离单元使用相对布局(RP, Relative Placement)。这确保了端口具有足够的驱动能力,有助于IO时序收敛 Timing Closure。这也确保了在隔离单元和端口之间没有单元进入,因为这会导致功耗管理违例。图2显示了我们设计中端口RP的图片。


Page 5

Figure 图2:隔离单元和端口的相对布局

在布局中,我们认真做的一件事是查看模块布局。我们查看和研究模块布局,确保模块被放置在有利于时序和可布线性的位置。我们使用不同的技术来调整布局,例如创建边界(create_bounds)以及针对不同设计使用不同的粗略布局命令,如create_placement -timingcreate_placement -cong

此外,我们在流程中使用了ALO 自适应泄漏优化,旨在多阈值电压 Vt环境中减少泄漏。然而,我们仅使用单一Vt库进行了优化。但即使使用单一Vt库,我们也观察到除了默认优化所做的面积恢复之外,还获得了显著的面积减少。

我们还在整个流程中(布局、CTS)使用扫描链重排序。这通过在布局前导出扫描DEF并将其读入ICC来完成。扫描链重排序通过place_opt -optimize_dft启用。我们注意到使用此功能后,线长显著减少了8-10%。

通过使用上述所有手段,我们能够以比以前大大减少的周转时间达到良好的布局时序状态。周转时间的改进轻松达到2倍-3倍的量级。因此,在设计的布局阶段,我们能够以大幅减少的周转时间获得更好的QoR。

4.0 时钟

我们设计中时钟树综合 CTS使用的关键手段之一是使用ICC v2007.03及以后版本中可用的新聚类算法。该算法的关键区别在于对时钟功耗和缓冲器面积的重视。工具尝试使用较小驱动能力的缓冲器,并不断增加由该缓冲器驱动的触发器簇数量,直到违反时钟DRC约束(如max-cap和max-trans)。这显著减少了约40%的时钟缓冲器面积,同时时钟树功耗也大幅降低。虽然任何团队都可以使用这一功能,但需要调优提供给ICC的时钟单元。由于变异性的担忧,我们限制了极低驱动能力单元的使用;由于时钟功耗的担忧,我们限制了极高驱动能力单元的使用。我们调优了要提供给工具的时钟树缓冲器,以在最小的时钟插入延迟影响下看到最大的时钟功耗收益。


Page 6

Figure

5.0 布线

在布线方面,我们使用ICC布线器没有任何问题。与其他工具相比,我们获得了更好的运行时间和更低的DRC 设计规则检查数量。在我们的设计中,布线运行时间减少了约3倍,需要修复的DRC减少了10倍。这些DRC被发现与我们的signoff DRC检查工具(Hercules)100%相关。此外,我们能够添加冗余通孔以考虑DFM 可制造性设计效应,并且获得了非常高比例的通孔添加率。

6.0 考虑变异的时序修复

除了使用PrimeTimePrimeTime SI进行常规时序收敛外,在本设计中,我们首次使用PrimeTime VX分析了设计的变异性。为了做到这一点,我们使用Liberty NCX特征化工具对库进行了变异性特征化。然后我们将这些库读入PTVX,查看数据并手动修复PTVX报告的违例。需要注意的一点是,在运行PTVX时,我们必须使用较小的derate参数运行,因为局部失配(通常通过derate来裕量化)在PTVX中是内部处理的。因此,使用正常的derate运行PTVX会过于悲观。

对于我们的设计,我们需要大约3-4次ECO 工程变更指令来修复PTVX违例。我们必须手动增大路径中表现不佳的单元。虽然我们已经围绕PTVX构建了自动化流程来运行变异分析并导出报告,但我们仍在构建脚本以试验自动修复和智能报告与分析。


Page 7

Figure 图3:Corner vs Stat Slack 对比

7.0 结论与建议

总之,我们成功地使用IC Compiler作为布局工具完成了多个设计。我们使用了ICC作为完整的布局布线 PnR工具,即布局、CTS和布线。由于卓越的布局引擎和多种优化手段的可用性,我们看到了使用ICC的显著优势,这些手段帮助我们实现所需的性能并降低功耗。我们还首次使用PrimeTime VX查看了变异感知时序,并修复了工具指出的违例。

8.0 致谢

衷心感谢各位关键的Synopsys同仁,特别是Harissh Swaminathan和Sumitha Mathai,他们帮助我们实现了这些具有挑战性的目标。