结构化方法:利用相对布局与时钟网格优化ARM Cortex-A8 NEON单元的延迟、功耗与变异——基于90纳米工艺的案例研究
📑 目录
使用RP和时钟网格的结构化方法:延迟、功耗和变异
ARM Cortex-A8微处理器NEON单元在TSMC 90G工艺上对比相对布局/时钟网格与标准布局/标准时钟树的案例研究
会议: SNUG San Jose 2008
作者: Haroon Gauhar, Stephanie Miller, Ashutosh Mujumdar, Dermot O'Driscoll (ARM), Yuichi Kawahara, Mallik Devulapalli, Jason Binney, Tom Chau (Synopsys)
页数: 39
源文件: SNUG_2008_SanJose_Methods_Microsoft_Word_Snug_SanJose08_rp_clock_mesh_arm_snps_march17doc_paper.pdf
Page 1
结构化方法:延迟、功耗和变异
案例研究:使用ARM Cortex-A8微处理器的多媒体模块,在90纳米工艺节点上对比相对布局 Relative Placement和时钟网格 Clock Mesh与标准布局和标准时钟树
Haroon Gauhar, Stephanie Miller, Ashutosh Mujumdar, Dermot O'Driscoll, Yuichi Kawahara, Mallik Devulapalli, Jason Binney, Tom Chau (ARM / Synopsys)
Page 2
摘要
本案例研究在ARM Cortex-A8微处理器的NEON单元上,使用ARM物理IP(TSMC 90G工艺)探索了相对布局 Relative Placement(RP)和时钟网格 Clock Mesh(CM)的设计方法论。我们将相对布局目标定位于单元级数据通路,与时钟网格结构协同工作。这些功能是IC Compiler产品系列的一部分。虽然并非新概念,但它们正变得更加流行,尤其是由于近期的工艺影响和对更高性能目标的需求,通用ASIC设计社区的需求不断增加。
这两种能力被结合考虑,因为这些方法论在物理上是相互交织的。我们探索了ARM和Synopsys共同提出的相对布局流程,包括在布局阶段优化最佳路径延迟、RP保真度和功耗的方法。与标准单元布局流程相比,在延迟方面对比了RP方法所提供的紧凑性优势。
时钟网格上方的H-Tree结构对预网格驱动器的偏斜有影响。网格的再收敛节点结构特别影响偏斜,当考虑H-Tree的延迟变异时。我们使用几种不同方法测量了这种OCV 片上变异(OCV)影响。最后,我们比较了相同RP布局的时钟网格结果与平衡时钟树结构在OCV下的时钟功耗和偏斜。
Page 3-4
目录与图表列表
目录: 1. 引言 2. ARM Cortex-A8 NEON模块的相对布局(RP) 3. 时钟树设计 4. 变异分析与结构化时钟网格方法 5. 总结与结论 6. 致谢 7. 参考文献 8. 附录
图表共31幅,涵盖RP层次结构、H-Tree布线、时钟网格结构、SPICE蒙特卡洛变异分析、偏斜分布等。
Page 5-6
1. 引言
自180nm以下硅工艺引入以来,管理复杂SoC 系统级芯片的功耗耗散一直是关键设计考虑。此外,延迟(传统的首要目标)在更深的亚微米工艺中也变得更加难以实现,这归因于更高的电阻、对真实布线的更高敏感度以及更高的参数变异。降低峰值和平均功耗被广泛认为可以减少制造和封装成本并提高可靠性,因此继续具有至高重要性。
随着对具有更多功能、更长电池寿命但仍然保持方便形态的移动设备的需求增长,开发能够以更低功耗实现高性能的设计方法论的压力正在增加。由于电池技术发展不够快以满足这些需求,对廉价、高性能、低功耗、高能效的片上系统的需求已经增加。
ARM正试图通过开发新的结构化布局和时钟方法来应对这些挑战。数字CMOS电路中有三个主要功耗来源,可分为动态功耗(P_switching + P_short-circuit)和静态功耗(P_leakage):
$$P_{average} = \alpha \cdot C_L \cdot V_{dd}^2 \cdot f_{clk} + V_{dd} \cdot I_{sc} + V_{dd} \cdot I_{leakage}$$
为最小化动态功耗,应降低开关活动性(alpha)和电容负载(C_L)以及时钟频率(f_clk)。为减轻电容负载(C_L),相对布局 Relative Placement有助于增加总线规整性并最小化布线曲折,与非结构化粗布局相比,对功耗和时序都有影响。
由于时钟需要更高性能,时钟网格 Clock Mesh可以在网格后具有更好的偏斜性能。这种网格结构也以更大的电容和可能的更高开关功耗为代价。如果网格前偏斜在时钟网格结构上过大,那么公共连接的预网格时钟驱动器之间的短路功率(P_short-circuit)会变得更加显著。这是设计人员在选择时钟树实现风格时需要解决的关键权衡。
Page 7
-10
2. ARM Cortex-A8 NEON单元的相对布局 Relative Placement(RP)
我们使用了以TSMC 90G工艺和ARM Cortex-A8库实现的NEON子设计。ARM Cortex-A8库专为目标数据通路主导的设计方法论而设计。该NEON设计被布图规划为微处理器内的一个独立物理单元。NEON单元内19个(大多数)模块使用RP进行各自的数据通路布局。NEON单元中少数非RP模块最终在NEON物理级别进行优化时与RP或数据通路模块混合。RP以定期间隔设计为物理切片,以允许放置时钟网格 Clock Mesh和H-Tree驱动器单元而不破坏数据通路单元。
2.1 从EVE转换的相对布局
RP流程与ARM共同设计,以适应当前流程假设。EVE 增强型Verilog扩展(Enhanced Verilog Extensions)格式表示嵌入在Verilog文件中的相对布局指令。数据通路模块是高度布局约束的,代表仿真专用版本的RTL门被手工映射,诸如乘法器的运算符映射被手工选择以增强规整性。由于EVE格式嵌入在Verilog中,作为本工作一部分创建了一个链接将指令输出到IC Compiler的RP格式。RP结构是层次化的,以切片方式排列,为后续时钟驱动器布局需求保留区域。每个切片高度为几个寄存器,寄存器组与时钟门控单元垂直对齐。数据流总线主要在数据通路中的运算符之间水平传输。
图1:示例顶层RP组(左)及其子RP单元B组(中),在IC Compiler RP层次浏览器中高亮显示(右)
图2:示例中级RP子组的列,水平约束用于水平总线
2.2 NEON单元中的物理层次和RP使用
NEON单元是ARM Cortex-A8微处理器中的物理分区。在此级别以下是RP单元级别,具有关联的Verilog模块和物理RP约束。各个RP模块作为自己的物理分区并发独立设计。然后它们被合并或物理展平到NEON物理级别。RP物理子模块在展平到NEON物理单元时具有尺寸和位置或锚点。展平后保留单个模块的物理子模块逻辑层次和RP组约束。Tap单元可以在子模块的物理级别或NEON物理级别局部插入。
图3:19个NEON级别模块的相对布局
图4:相对布局切片为时钟驱动器保留区域
图5:相对布局在NEON级别插入的Tap单元周围断裂
Page 11-13
2.3 RP vs 非RP在物理综合 Physical Synthesis中的对比
在NEON单元级别,我们的案例研究在优化结果方面比较了两种布局风格。我们的基线比较点使用无可优化RP约束的标准单元布局和优化(或物理综合)。该基线设计也使用与RP布局设计相同的映射网表 Netlist。
RP物理综合试验使用19个模块的RP约束、每个RP模块顶层RP组左下角的锚定点,以及用于保留初始RP布局的RP组布局和优化约束:
# tap insertion
insert_tap -cell tapfiller -lib filltie1_nvt -spacing {58.88 0}
source RP constraint files for each of the blocks
foreach rp_file_prefix { block1 .... blockN } {
set rp_file $rp_file_prefix.rp.tcl
source -echo -verbose ./RP_scripts/$rp_file
}
anchor point settings
set physopt_rp_allow_x_move 0
set physopt_rp_allow_y_move 0
source –e –v ./RP_scripts/anchor.tcl
Soft placement keepout settings above the RP blocks
source –e –v ./RP_scripts/soft_over_the_sub_block_keepouts.tcl
place_opt
psyn_opt
对于非RP基线设计点,我们不为任何模块添加RP约束。然而我们为RP组的逻辑层次应用了"size_only"优化约束,并插入Tap单元以确保比较相似。
对于每个设计的时钟树前版本(RP和非RP),我们在布局和优化后测量了每个RP组的总负slack和最差负slack(TNS、WNS)。图6显示了各版本的RP与非RP优化结果。
图6:RP和非RP设计的模块级布局后优化结果
图7汇总了图6的聚合结果:
| 布局方法 | 失败模块数 | Sum(TNS) | Sum(WNS) |
| 非RP | 13 | -21.36 | -0.363 |
| RP | 4 | -1.26 | -0.133 |
图8:RP和非RP设计的聚合级别布局后功耗和面积结果
| 布局方法 | 功耗 | 面积 |
| 非RP | 281.7 mW | 2,274,109 |
| RP | 290.9 mW | 2,256,657 |
RP结果在功耗方面稍差但在面积方面稍好,这与主要目标是时序、其他目标为次要的定位一致。
Page 14-22
3. 时钟树设计
在IC Compiler中,可以选择使用经典的平衡时钟树综合 CTS方法或新兴的结构化时钟网格 Clock Mesh方法(当时客户可用性有限)。由于RP是考虑时钟网格结构设计的,本案例研究在此阶段选择在NEON设计的RP变体上比较两种方法。
我们考虑的指标包括时钟偏斜和变异下的时钟偏斜,以及时钟功耗作为对比这两种时钟树设计风格的有用指标。
3.1 IC Compiler中的时钟树设计方法论
对于时钟网格方法,流程从RP布局后开始,有四个主要构建步骤: 1. 时钟网格规划步骤——显式地为寄存器区域构建网格结构,并与电源布线交织 2. 通过阵列放置添加预网格时钟驱动器 3. 使用规则H-Tree布线模式显式规划和布线H-Tree驱动器 4. 从时钟网格到网格下方sink点的梳状布线
由于公共连接的再收敛结构对静态时序分析 STA是个问题,因此仅用于网格驱动器之前的部分,而使用快速SPICE工具(如NanoSim,嵌入在IC Compiler的Tcl命令中)计算从预网格驱动器通过时钟网格到网格sink单元的转换。STA用于时钟网格点以下的剩余路径。动态和静态分析数据在IC Compiler中无缝组合以进行后续时序报告。
对于平衡时钟树综合,过程更简单,使用更高级别的约束驱动方法。
3.2 时钟网格规划
要理解时钟网格,重要的是要理解它所交织的电源网格。图9和图10显示了电源网格和时钟网格的详细信息。
时钟网格的绑带被选择在金属层M7和M6上,并利用电源网格的一些屏蔽优势。 - M7层水平绑带:宽度0.42,数量12条 - M6层垂直绑带:宽度0.62,数量19条
3.3 预网格和H-Tree时钟驱动器
由于RP约束已为设计创建了带保留区域的数据通路,时钟驱动器和H-Tree级别驱动器的位置定位在这些区域内。图11显示了8x8阵列的时钟网格驱动器和H-Tree驱动器的布局。
图12-15依次展示了从根节点到各级H-Tree的布线。图16和图17展示了时钟网格和网格下方到sink单元(ICG单元和寄存器)的梳状布线连接。
图18总结了两种风格的所有测量点对比。时钟偏斜和插入延迟在信号布线后测量:
| 指标 | RP + 常规CTS | RP + 时钟网格 |
| 总单元数 | 914 | 88 |
| 网格线总量 | - | 21x11绑带 |
| 功耗 | 47.42 mW | 70.61 mW |
| 最长插入延迟 | 0.643 ns | 1.543 ns |
| 预网格驱动器偏斜 | - | 72 ps |
| 网格后ICG偏斜 | - | 14 ps |
| 全局偏斜(无OCV) | 117 ps | 28 ps |
| 全局偏斜(有OCV) | 175 ps | -(无模拟量) |
关键发现:时钟网格的插入延迟大于常规CTS,部分归因于网格的大尺寸和电容。偏斜从预网格驱动点的72 ps压缩到网格接收器的14 ps。即使网格后偏斜有所损失,仍然优于时钟树。常规CTS使用有界OCV降额后偏斜从117 ps显著恶化至175 ps。
Page 24-33
4. 变异分析与结构化时钟网格方法
本节使用SPICE建模和蒙特卡洛分析测量时钟偏斜,展示变异范围以及时钟网格结构提供的平滑效果。作为代价,由于相对较大的网格布线电容会影响功耗,以及网格预网格驱动器之间较高的短路电流 Short Circuit Current。
4.1 基于SPICE的蒙特卡洛仿真进行偏斜变异分析
在SPICE中,我们取完整的时钟网格子电路,使用蒙特卡洛 Monte Carlo(随机)变异应用了30组仿真。沟道长度参数lint被变化以使实际沟道长度从90nm绘制长度变化3个sigma。这让我们评估了每个时钟树驱动器的延迟如何随机变化(OCV 片上变异)及其如何反映在偏斜中。
图19-24展示了无变异到达时间、所有30种变异下的预网格/后网格到达时间分布、偏斜分布(SPICE中预网格最大偏斜91 ps,后网格接收器14 ps)、到达时间的空间图、HSPICE到达时间变异数据集等。
4.2 使用SPICE的预网格驱动器短路电流分析
图25-26显示了预网格驱动器输入引脚的转换时间和短路电流。短路电流与邻近驱动器具有高偏斜差异的网格区域对齐良好。这是理解两种时钟方法价值权衡的关键标准。
4.3 基于STA的随机单元延迟降额进行偏斜变异分析
我们执行了30种变异,并使用最大/最小偏斜的变异进行分析。
图27-31:STA降额变异下的预网格/后网格到达时间、空间可视化偏斜、以及总结比较表:
| 测量终点 | 最大偏斜 | 最小偏斜 | 差异 |
| 常规CTS(寄存器前一级单元) | 135 ps | 122 ps | 13 ps |
| 常规CTS(寄存器) | 136 ps | 117 ps | 19 ps |
| 时钟网格(网格驱动器) | 93 ps | 50 ps | 43 ps |
| 时钟网格(ICG单元) | 17.8 ps | 17.5 ps | ~0.3 ps |
| 时钟网格(寄存器) | 78.5 ps | 78 ps | ~0.5 ps |
最有趣的发现是时钟网格的偏斜在迭代间保持高度不变,而常规CTS方法则不是。
Page 34
5. 总结与结论
本案例研究与ARM高性能移动产品流程开发结合进行。相对布局流程相比标准单元布局方法在数据通路模块上展示了时序优势,总负slack降低20倍,19个模块中仅4个未时序收敛(vs 非RP的13个)。
时钟网格流程展示了相比经典平衡时钟树结构的偏斜优势。网格结构在变异下显示出对偏斜变化的高度免疫——单元延迟变异下时钟网格偏斜为78 ps,所有测量变异间的偏斜差异仅0.5 ps。与之相比,经典时钟树结构在基于STA的OCV测量下偏斜为175 ps。然而,这以功耗增加为代价——时钟功耗增加了约21 mW。
H-Tree预网格偏斜的重要性被强调,因为它在使用时钟网格时看到的短路功耗权衡中扮演重要角色。
Page 35
附录:示例RP文件和变异分析脚本
包含完整的RP层次结构文件和STA随机降额/HSPICE蒙特卡洛仿真脚本。
图片索引
本文为PPT型论文,共432张幻灯片图片。关键图表已嵌入正文对应位置,其余图片存放于原始 _images/ 目录:
| 页码 | 图片数 | 内容说明 |
| 第7页 | 3张 | 图1:RP层级结构 |
| 第8页 | 2张 | 图2:水平约束RP布局 |
| 第9页 | 2张 | 图3-5:NEON RP布局与芯片布局 |
| 第10页 | 1张 | RP详细实现 |
| 第12页 | 1张 | 图6:时序和优化结果对比 |
| 第13页 | 1张 | 图7-8:综合TNS/WNS与面积利用率 |
| 第16页 | 2张 | 图9-10:电源网格与时钟网格 |
| 第17页 | 1张 | 时钟树详细图 |
| 第18-21页 | 401张 | 详细RP实现流程幻灯片 |
| 第25-33页 | ~20张 | 实验结果对比数据 |