使用Design Compiler Graphical进行拥塞预测与缓解

SNUG San Jose 2009 2009 15 页

使用Design Compiler Graphical进行拥塞预测与缓解

作者: Dhivakaran Santhanam (Broadcom Corporation), Terry Lee (Synopsys, Incorporated) 会议: SNUG San Jose 2009 页数: 15 源文件: SNUG_2009_SanJose_Poppen_Congestion_Prediction_and_Alleviation_using_DesignCompiler_Graphical_Dhivakaran_paper.pdf


Page 1

Figure Figure Figure

使用Design Compiler Graphical进行拥塞预测与缓解

Dhivakaran Santhanam and Terry Lee

Broadcom Corporation 3151 Zanker Road Santa Clara, CA 95134 U.S.A. www.broadcom.com

Synopsys, Incorporated 700 East Middlefield Road Mountain View, CA 94043 U.S.A. www.synopsys.com

摘要

本文描述了一种使用Design Compiler Graphical的拥塞优化流程。该技术基于Design Compiler Topographical平台,为设计人员提供拥塞区域的可视化,并执行综合优化以最小化拥塞。由于该技术利用后端布局规划(floorplan),我们首先概述了为确保DC-T准确解析布局规划信息而采取的步骤。在用于评估的设计中,初始综合使用DC-T在未开启拥塞优化的情况下进行,当通过DC-G进行可视化时,预测到了严重的拥塞。当进入布局布线 PnR阶段时,该设计无法完成布线。同一设计使用DC-G开启拥塞优化后重新进行综合。综合后的网表 Netlist再次在DC-G中可视化,显示拥塞热点得到了显著缓解。当这个重新综合的网表进入布局布线阶段时,设计顺利完成布线,没有出现任何拥塞问题。


Page 2

Figure Figure Figure

目录

1. 引言 2. 评估指标 3. 综合方法学 4. 流程开发 5. 评估结果 6. 讨论 7. 结论 8. 致谢 9. 参考文献

图表目录

图1:使用DC-T和DC-G的拥塞预测流程图 图2:使用布局规划转换脚本后在Design Vision中看到的布局规划 图3:后端工具的布局规划 图4:修正后的DCT布局规划视图 图5:Design Compiler Topographical的Design Vision拥塞图 图6:后端P&R工具中看到的DC-T综合网表的拥塞图 图7:Design Compiler Graphical的Design Vision拥塞图 图8:后端P&R工具中看到的DC-G综合网表的拥塞图

表格目录

表1:Design Compiler Topographical结果质量 表2:Design Compiler Graphical结果质量 表3:后端P&R工具对DC-G网表的结果质量


Page 3

Figure Figure Figure

1.0 引言

本文描述了一种使用Design Compiler TopographicalDesign Compiler Graphical技术的流程,以及使用上述技术在测试用例上取得的结果。我们的标准流程使用Design Compiler Ultra进行综合。我们正在向DC-T迁移的过程中。在评估过程中,我们发现对于某些特别拥塞的设计(由于RTL 寄存器传输级编码或布局规划限制),我们的默认流程在综合后和布线后阶段均未产生理想的结果质量(QOR)。为了评估DC-G,我们制定了一系列指标作为成功标准。此外,我们还测量了综合后阶段与布线后阶段之间QOR的相关性。

流程开发的一个关键部分是确保DC-T和DC-G的输入数据准确。本文讨论了我们从后端工具将布局规划数据导入综合流程时遇到的一些挑战。我们讨论的两个主要问题涉及从后端流程将宏单元位置和各种类型的阻挡导入DC-T/DC-G。我们需要结合脚本编写和Design Vision调试来克服这些障碍。我们使用了一个样本测试用例进行流程开发工作。

最终用于DC-G评估的测试用例设计基于65nm工艺技术节点。可布局实例的单元数量为140万,宏单元数量为14个,最大工作频率为300MHz。

在第1节中,我们描述了评估指标。在第2节中,我们解释了流程中使用的方法学。在第3节中,我们讨论了从后端工具正确地将布局规划数据导入DC-T/DC-G的具体挑战。在第4节中,我们基于我们的指标展示了结果。

2.0 评估指标

以下指标被用作评估标准,用于比较各种流程之间的结果:

- 最差负时序余量(WNS):衡量最差关键路径距离满足时序还差多少。

- 总负时序余量(TNS):该指标显示最大时序路径的最差负时序余量总和。

- 面积:该指标用于衡量前端和后端优化工作之间的相关性。

- 布线后DRC:该指标用于衡量设计的布线质量,特别是在引入DC-G时。


Page 4

Figure Figure Figure

综合后的QOR报告主要通过Design Compiler获取上述指标。这些指标与后端工具在布局、时钟树综合 CTS和布线阶段之后获得的结果进行比较。

3.0 综合方法学

以下流程图说明了用于评估综合技术(DC-T和DC-G)的过程。

使用Design-Compiler-Topographical和Design-Compiler-Graphical的拥塞预测流程

(流程图:编码/重新编码RTL → 第一轮DCT综合(无布局规划信息) → 是否为第一轮?→ 是:布局规划 → 第二轮DCT综合(带布局规划) → 使用DC-Graphical分析拥塞 → 是否拥塞?→ 是:DCT综合带拥塞优化 → 是否拥塞?→ 否:网表移交布局布线)

图1:使用DC-T和DC-G的拥塞预测流程

Page 5

Figure Figure Figure

如上述流程图所示,我们在第一轮综合中不使用布局规划,直接使用DC-T进行综合,然后在布局规划可用后,使用相同的RTL进行第二次重新综合。然后通过DC-G以可视化方式并使用report_congestion命令分析拥塞情况,并根据拥塞报告开启DC-G的拥塞优化。

4.0 流程开发

本节描述了用于促进评估过程的额外脚本/工具。

我们从基准DC-T脚本开始,进行了一些更改以启用DC-G。我们发现以下命令在流程开发过程中非常有用:

1. 数据导入和完整性检查命令:

- check_library:该命令有助于交叉检查逻辑库和物理Milkyway库之间的一致性。

- create_wiring_keepout:该命令有助于模拟布局规划中应用的布线阻挡。

- create_bounds:该命令有助于在设计内创建区域或边界。

- extract_physical_constraints -pre_route:该命令用于从布局规划DEF文件中提取物理约束。pre_route开关从DEF中提取预布线信息,并在输出的tcl文件中写入create_net_shape命令。

2. 拥塞优化和报告命令:

- compile_ultra -congestion:这是使DC-G能够执行拥塞优化的关键命令。 - set_congestion_optionsremove_congestion_options:这两个命令可以对DC-G在拥塞优化过程中使用的设置提供更多控制。 - report_congestion_options:该命令报告当前生效的拥塞设置。 - report_congestion:该命令是DC-G所观察到的设计中全局布线拥塞的文本表示,是对拥塞可视化表示的补充。

3. Design Vision调试:

- start_gui:该命令启动Design Vision GUI。由于数据导入和完整性检查占流程开发工作的很大一部分,我们广泛使用了Design Vision GUI进行调试。


Page 6

Figure Figure Figure

此外,为了确保布局规划信息从后端工具到DC-T和DC-G的准确转换,我们需要开发一些额外的脚本。这些脚本本质上将后端工具生成的布局规划TCL文件转换为DCT中的等效构造。以下是大致勾勒DCT等效语法的脚本快照:

# 1) 矩形布局规划区域
set_placement_area -coordinate { x y z w }

2) 多边形布局规划区域

set_rectilinear_outline -coordinate {a b c d e f g h...}

3) 宏单元位置

set_cell_location ss_fr_sf_buffer_a_sf_buffer_upper_mem1_ram -coordinate { m n o p } -orientation W -fixed

4) 软布局阻挡

create_placement_blockage -type soft -name def_obstruction_1 -bbox { x y z w }

5) 硬布局阻挡

create_placement_blockage -type hard -name def_obstruction_39 -bbox { u v w x }

6) 硬布局阻挡和局部利用率

create_placement_blockage -type hard -name def_obstruction_1 -bbox { m n o p } set_congestion_options -max_util 0.55 -coordinate { q r s t}

7) 软布局阻挡和局部利用率

set_congestion_options -max_util 0.85 -coordinate { f g h i } create_placement_blockage -type soft -name def_obstruction_6 -bbox { a1 a2 a3.. }

8) 布线禁止区域(布线引导)

create_wiring_keepouts -name def_route_blockage_130 -layer metal1 -coordinate { 0 p x u }

9) 端口位置

set_port_location bond_efp_slice_depth -coordinate { x y } -layer_name metal4 -layer_area {a1 a2 a3 a4}

为了验证布局规划导入DC-T的流程,我们拿了一个样本设计并运行了布局规划转换脚本。虽然上述脚本允许DC-T读取布局规划,但我们注意到所有方向不是N(北)的宏单元都出现了错误的布局,如下图所示:


Page 7

Figure Figure Figure 图2:使用布局规划转换脚本后在Design Vision中看到的布局规划

如图所示,一些宏单元甚至被放在了右下角的边界之外。


Page 8

Figure Figure Figure

正确的后端P&R工具布局规划如下所示:

图3:后端工具的布局规划

经过调查,我们发现DCT与后端工具生成的布局规划TCL文件之间对宏单元方向的解释不一致。然而,我们注意到后端工具生成的DEF 设计交换格式中输出的宏单元方向是正确的,并且被DCT正确解析。为了解决这个问题,我们编写了一个Perl脚本来修改布局规划TCL文件,调整宏单元的方向以匹配实际方向。

我们不只使用DEF进行布局规划导入的主要原因是,DEF中的所有布局阻挡都是硬类型(因为DEF目前不支持软阻挡),而在我们的后端流程中,我们同时使用了软布局阻挡和硬布局阻挡。


Page 9

Figure Figure Figure

因此,为确保DCT获得正确的布局阻挡类型,我们解析了后端工具的布局规划TCL文件。

以下是同一设计在修正后的DCT布局规划TCL命令输入DCT之后,带有拥塞图的正确布局规划图片。

图4:修正后的DCT布局规划视图

或者,我们也可以使用以下流程来确保导入DCT的布局规划问题得到缓解:

1. 使用后端P&R工具输出宏单元布局的DEF文件。 2. 其他内容使用后端P&R工具的布局规划TCL文件。 3. 运行Perl脚本解析布局规划TCL文件和DEF文件,生成DC-T等效的布局规划TCL文件。


Page 10

Figure Figure Figure

5.0 评估结果

本节概述了使用常规DC-T流程(无拥塞优化)的结果,以及然后引入DC-G拥塞优化以缓解观察到的拥塞热点后的结果。两种流程使用相同的RTL和布局规划。两个综合后的网表然后都经过后端P&R流程以评估QOR和可布线性。

以下表格概述了使用DC-T(未开启拥塞优化)实现的QOR,图中显示了同一网表在Design Vision中看到的拥塞图。

表1:Design Compiler Topographical结果质量

DC-T
CLK (ns)3.5
WNS (ns)-0.35
TNS (ns)-196.84
AREA (uM)2123738
PATH (ns)3.44
#1166
Hold (ns)0
图5:Design Compiler Topographical的Design Vision拥塞图

如上述拥塞图所示,设计的标准单元区域中可以看到拥塞热点。

report_congestion命令的输出显示:

Both Dirs: Overflow = 569423 Max = 24 (3 GRCs) GRCs = 91485 (8.41%)

Page 11

Figure Figure Figure
H routing: Overflow = 223320 Max = 14 (1 GRCs) GRCs = 69552 (6.40%)
V routing: Overflow = 346103 Max = 17 (11 GRCs) GRCs = 71264 (6.55%)

该网表经过后端P&R流程,在布线后阶段测量了QOR和可布线性。

后端流程的拥塞图如下图所示。

图6:后端P&R工具中看到的DC-T综合网表的拥塞图

为了缓解拥塞热点,在综合流程中开启了拥塞优化选项,并生成了新的网表。

report_congestion命令的输出显示:

Both Dirs: Overflow = 22037 Max = 13 (2 GRCs) GRCs = 12204 (1.12%)

Page 12

Figure Figure Figure
H routing: Overflow = 15815 Max = 13 (1 GRCs) GRCs = 9157 (0.84%)
V routing: Overflow = 6222 Max = 12 (1 GRCs) GRCs = 3066 (0.28%)

DC-G综合的QOR报告和拥塞图如下所示:

表2:Design Compiler Graphical结果质量

DC-G
CLK (ns)3.5
WNS (ns)-0.28
TNS (ns)-65.83
AREA (uM)2002829
PATH (ns)0.75
#928
Hold (ns)0

注:DCT的QOR报告是寄存器到寄存器的路径,而DCG的QOR报告是从输入端口起的路径。DC脚本在报告关键路径长度之前移除了输入端口的输入延迟。

图7:Design Compiler Graphical的Design Vision拥塞图

该网表经过后端P&R流程,在布线后阶段测量了QOR和可布线性。


Page 13

Figure Figure Figure

后端流程的拥塞图如下图所示。

图8:后端P&R工具中看到的DC-G综合网表的拥塞图

Page 14

Figure Figure Figure

下附表格展示了DCT和DC-G网表在后端获得的QOR对比。

表3:后端P&R工具对DC-G网表的结果质量

DRCsWNS (ps)TNS (ns)StdCell Area (sq. mm)Cell CountWireLength (m)Utilization
DC-T网表(无拥塞优化)2684-510-3650002.84561884748.0461.4
DC-G网表(有拥塞优化)1115-282-2376482.81361141445.960.8

从上述QOR和可布线性结果可以看出,使用DC-G开启拥塞优化算法生成的网表,其质量明显优于DC-T生成的网表。这些结果确实验证了对于拥塞严重的设计,使用DC-G进行综合有助于缓解标准单元区域的拥塞热点,使设计更具可布线性。

6.0 讨论

在评估过程中,我们发现DC-G可以在多个方面进一步改进。以下是一些改进建议:

- DC-G应该有更易读的拥塞报告。目前,作为前端设计人员,拥塞报告很难阅读。虽然DC-G的可视化有助于定位拥塞热点,但拥塞报告的文本形式可以改进,以提供更用户友好的设计可布线性评估。DC-G还可以允许用户指定全局布线单元的大小。为了在拥塞评估中给用户更多控制权,DC-G可以提供诸如控制用于拥塞预测的窗口等选项。

- DC-G应分析输入的RTL,并对其质量提供反馈,例如是否存在更难优化且会导致拥塞的交叉总线。除了通过优化消除拥塞外,DC-G还可以进一步改进,在需要重新编码RTL以缓解拥塞时向前端设计人员提供反馈。


Page 15

Figure Figure Figure

7.0 结论

总之,我们成功建立了一个将适当的物理数据导入DC-T和DC-G的流程。Design Vision GUI提供了方便的物理和逻辑约束调试能力。此外,我们力求评估DC-G在拥塞预测和优化方面对我们设计的价值,并成功达到了我们设定的成功标准。我们得出结论:DC-G减少了整体周转时间,并使前端逻辑设计人员能够轻松地评估设计的可布线性问题。使用DC-G后,布线后QOR在我们用于评估的设计上得到了改善。

8.0 致谢

我们要感谢Broadcom其他同事在评估期间的努力,以及在本文准备、草稿和终稿审阅中的帮助。

9.0 参考文献

[1] Design_Compiler_Graphical_Application_Note.pdf https://solvnet.synopsys.com/retrieve/023334.html


图片索引

本文共 7 张图片,存放于 SNUG_2009_SanJose_Poppen_Congestion_Prediction_and_Alleviation_using_DesignCompiler_Graphical_Dhivakaran_paper_images/ 目录。