壹海城三区:一种新型布线器ICC Z

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 00:31:01
一种新型布线器ICC Z_ROUTE的使用及性能分析
王松, 刘动, 赵继业
中国科学院计算技术研究所
wangsong@ict.ac.cn
liudong@ict.ac.cn
zhaojiye@ict.ac.cn
摘要
As the technology shrinks into the nanometer domain, the issue of DFM and DFY begins to draw much attention of IC designers. Meanwhile, the more and more complicated design rules bring many problems of litho to fabrication. All of them propose new challenge for back-end physical implementation, especially for routing engine. On the other hand, as the scale of the chip becomes larger and larger, the design period increases accordingly. This article mainly compares the difference of novel Zroute routing engine and traditional one, focusing on DFY and DFM.
We utilize ICC-zroute to complete all routing work during implementing Godson-2G, a high performance general microprocessor. It helps to improve the efficiency dramatically. The runtime reduces nearly 50% with the dual-thread condition and double-via ratio increases 10%. The QoR shows significant improvement as well.
1. 引言
随着集成电路按照摩尔定律迅速发展,世界上主要IC制造厂家的先进工艺已经相继进入了90nm及65nm特征尺寸阶段,IC设计也已正式进入了纳米时代。这时,制造工艺面对物理极限的挑战,出现了许多衍生效应和可变性,因此,被称为良率导向设计的芯片可制造性设计(DFM)成为设计者们关注的焦点。同时,伴随芯片设计规模越来越大,设计周期相对加长。面对市场竞争的巨大压力,如何缩短超大规模芯片的设计周期变得越来越重要。
提高芯片物理设计时间,可以有效地改善设计周期。物理实现的主要过程是布局布线,采用Synopsys公司的ICC-Zroute新型布线工具,应用任务多线程执行技术,大大缩短了物理设计时间,进而缩短了整个芯片的设计周期。ICC-Zroute布线工具可以在芯片物理设计阶段,更好地考虑DFM问题,有效提高产品良率。本文通过对Godson_2G中HT模块布线情况的详细分析,对比classic route布线方式和Zroute布线方式在性能上的差别,进一步说明了新型布线器ICC-Zroute的性能优势。
2. ICC-Zroute介绍
IC_Compiler工具是Synopsys公司开发的集版图规划、物理综合、时钟树综合 、布线、成品率优化和签核修正于一体的EDA工具,可以完成从RTL到GDSⅡ整个IC后端物理实现流程。在ICC_0809的版本里,工具集成了Zroute布线引擎。
2.1 ICC_Zroute特性介绍
ICC_Zroute的架构结合了尖端的布线技术,如直接支持软规则,以实现“刻蚀友好”的布线,并避免制造中出现的问题。结合先进的布线算法和多线程技术,在多核电脑上Zroute能够的大幅度提升布线速度。由于充分考虑到制造规则的影响、时序和其他设计目标,Zroute能够产生高质量的结果(QoR),同时提高制造质量。
Zroute特点之一是并行优化布线。它的布线引擎随着线程的增多也显现出运行时间的近线性缩短,从而在多核的设计平台上,可以确保显著的增速。现在的多核处理器可以提供数倍于单核处理器的性能,但原有的布线工具都是基于单线程的设计,无法发挥新处理器的性能。而Zroute就支持多线程处理技术,可充分发挥多核处理器的性能。
Zroute另一特点是对DFM的贡献。与在流程靠后阶段来解决良率问题不同的是,Zroute在流程每一步为良率优化保留布线资源,以确保良率的影响可以和其他的代价函数一起考虑。为支持DFM优化,Zroute在条件允许时会尽力满足软规则,提高产品的良率。Zroute可以同时进行布线和DFM优化,使得传统上需要两步执行的操作合并为一步,大大加快了布线速度。
2.2 启动Zroute布线引擎
新版IC_Compiler(如ICC_0809-SP1)已经嵌入Zroute布线引擎。Zroute布线流程和classic route布线流程没有本质区别。如图1所示,给出了整个物理设计的基本流程。图1(a)和图1(b)中红色边框中分别给出了布线阶段的基本流程。从图中可以看出,两者的实现流程基本是一致的。如果想启动Zroute引擎布线,则只需要通过set_route_mode_options –zroute true设置即可完成。

(a)采用classic route布线流程               (b)采用Zroute布线流程
图1: 采用IC_Compiler进行芯片物理设计的基本流程
与classic route布线不同的是,Zroute布线引擎采用了多线程技术。因此,在布线之前需要通过set_route_zrt_common_options –max_number_of_threads value来定义在布线过程中占用几个CPU资源,从而实现多线程布线。
classic route通常会有一串参数设置(set_parameters_*)。在zroute中,通过set_route_zrt_*_options来完成布线前相应开关选项的设置。完成所有设置之后,可以通过report_zrt_*_options来报告已定义好的参数设置情况。如果当前的mw_cel是从较早版本拷贝过来的,而且在之前已经进行了参数设置,那么在流程里加入命令translate_zrt_parameters对相应参数设置进行转换即可。
最后,完成上面步骤后就可以启动Zroute布线引擎进行布线。与classic route不同的是,在ICC_0809版本里,布线命令是route_zrt_global、route_zrt_track、route_zrt_detail。布线之后,同样可以使用route_opt进行post route optimization,从而完成整个布线过程。
2.3 使用Zroute引擎的注意事项
使用Zroute布线引擎时,有一些操作的命令形式发生了变化。由于新版的IC_Compiler里同时含有classical route和Zroute两种引擎,如果本该使用Zroute布线模式下的命令而用了classic route布线模式下的命令,那么将产生一些不必要的问题,导致设计结果受到不良影响。如表1所示,本文简单列举了两种模式下几个常用且较为重要命令的使用差别。
需要特别注意的是:在完成布线工作以后,不能用verify_route来检查design rules violations,正确的方法应该采用verify_zrt_route命令。如果运行verify_route,将会发现工具报告大量的乃至无法修复的开路(open)信息,而实际上,由于两种引擎对于open的定义规则不同,classic route要求center_line的连接, 而Zroute只需要物理上有连接且满足设计规则即可。
功能实现
Route mode
加shielding
search repair修复
打双孔
Classic route
create_auto_shield \
-with_ground {gnd} \
-ignore_shielding_net_rails \
-ignore_shielding_net_pins
route_search_repair -loop 20\
-ignore_open_nets
insert_redundant_vias \
-auto_mode preview
insert_redundant_vias \
-auto_mode insert
Zroute
create_zrt_shield \
-with_ground {gnd} \
-ignore_shielding_net_rails true \
-ignore_shielding_net_pins true
route_zrt_detail \
-max_number_iterations 20 \
-incremental true
define_zrt_redundant_vias
insert_zrt_redundant_vias
表1: classic route和zroute的不同命令
3. ICC_Zroute应用及性能分析
3.1 Godson_2g HT模块介绍
HT模块是Godson_2g型芯片中较大的模块之一,约有7万多记忆单元(触发器),40多万个逻辑单元。如表2所示,给出了HT模块具体的参数信息,通过这些信息可以对该实验模块的实际规模有个基本了解。另外,HT模块的floorplan如图2所示。
表2: HT模块参数信息
Module
Godson2g_ht
Leaf Cell Count:
411108 /
Ref Cell
75384 /
Number of ports
1426 /
Combinational Area
1267906.086724 /μm2
Design Area:
8538707.752004 /μm2

图2: HT模块的floorplan图
3.2 实验流程介绍
首先,启动icc_shell(版本ICC_0809-SP3-1),分别采用classic route和Zroute布线引擎对同一个mw_cel(做完时钟树之后)进行布线。
1) 在开始布线之前,使用命令route_global –congestion_map_only和route_zrt_global -congestion_map_only true来报告不同布线引擎下的congestion情况。整个实验流程如图3所示。其中,左侧红框中内容(蓝色箭头指向)代表classic route流程,右侧红框中内容(绿色箭头指向)代表Zroute流程。
2) 采用classic route模式进行布线。在新版ICC里,布线流程不用做任何改变,可以直接运行已有的脚本,在完成route_global、route_track、route_detail之后,通过通过route_opt进行优化,以及使用Insert_redundant_vias命令对布线后的设计打双孔,最后使用save_mw_cel –as new_cel_name将已经布好线的mw_cel保存。
3) 使用close_mw_cel将当前运行的mw_cel关闭,然后再重新打开。

图3: 实验流程图
4) 采用Zroute模式进行布线。使用Zroute布线引擎,create_mw_cel、open_mw_lib、copy_mw_cel、open_mw_cel、set_route_option、set_routing_rules等的设置和使用同classic route模式是一样的。打开mw_cel后,完成环境和一些必要选项的设置。按照2.2节里启动Zroute工具的方法,完成Zroute设置并打开Zroute引擎,本设计采用2个CPU线程。对准备好的mw_cel进行布线工作。布线之后,同样采用route_opt进行优化,并使用Insert_zrt_redundant_vias命令对布线优化后的设计打双孔,最后保存mw_cel。
3.3 运行结果及分析
通过2.1节对ICC_Zroute的特性分析,本文主要在runtime、double_vias_rate、qor等几个方面对classic route引擎和 Zroute 引擎的布线结果进行了比较和分析。
3.3.1 运行时间比较
在运行route_global、route_track、route_detail的前后加上echo命令:
echo “START:[date] -cputime [cputime] -HOST:[info hostname] -MEMORY:[mem]”
echo “END :[date] -cputime [cputime] -HOST:[info hostname] -MEMORY:[mem]”
可以得到如表3所示的运行时间结果:
表3: runtime运行结果比较
date
cputime
info hostname
mem
Classic route
START
Mon Apr 6 08:43:36 2009
1117
node21
5281064
END
Mon Apr 6 14:18:18 2009
4627
node21
8230256
RESULT
5hours 34mins 42secs
3510secs
——
——
Zroute
START
Wed Apr 6 16:50:42 2009
1042
node21
5131908
END
Wed Apr 6 19:31:11 2009
1388
node21
5131908
RESULT
2hours 40mins 29secs
346secs
——
——
通过3的数据可以得出,使用classic route布线引擎完成route_global、route_track、route_detail所用时间约是5个半小时,MEMORY使用大约是7G左右。而使用Zroute布线,完成route_zrt_global、route_zrt_track、route_zrt_detail的运行时间约为2个半小时,MEMORY占用时5G左右。分析可得:在采用两个cpu线程条件下,Zroute运行时间缩短了约50%,MEMORY的使用也小于classic route。
3.3.2 双孔率比较
在完成布线和优化之后,使用insert_redundant_vias和insert_zrt_redundant_vias打双孔。双孔率的报告如表4所示:
表4: double vias rate结果比较
report_design -physical
report_design -physical
Double Via rate for all layers: 78.7%
Double Via rate for all layers: 89.7%
Total Number of Contacts: 4722277
Total Number of Contacts: 3937573
Horizontal/Vertical Wire Distribution:
Horizontal/Vertical Wire Distribution:
Layer
Hor. Wire (% of Hor.)
Ver. Wire (% of Ver.)
Layer
Hor. Wire (% of Hor.)
Ver. Wire (% of Ver.)
Metal1
519176.55 ( 3.78%)
31099.85 ( 0.29%)
Metal1
422203.90 ( 3.12%)
32695.59 ( 0.32%)
Metal2
273017.25 ( 1.99%)
5272423.26 (48.83%)
Metal2
95790.93 ( 0.71%)
3746555.33 (37.02%)
Metal3
5592692.10 (40.72%)
134187.27 ( 1.24%)
Metal3
5529322.00 (40.85%)
24294.45 ( 0.24%)
Metal4
109807.18 ( 0.80%)
4532516.12 (41.98%)
Metal4
17614.44 ( 0.13%)
5180472.18 (51.19%)
Metal5
6014991.93 (43.79%)
61997.68 ( 0.57%)
Metal5
6251048.50 (46.18%)
12661.46 ( 0.13%)
Metal6
60842.26 ( 0.44%)
742733.03 ( 6.88%)
Metal6
3017.74 ( 0.02%)
1123104.70 (11.10%)
Metal7
1164662.11 ( 8.48%)
22000.49 ( 0.20%)
Metal7
1217322.20 ( 8.99%)
753.09 ( 0.01%)
Total
13735189.39
10796957.71
Total
13536319.69
10120536.80
通过比较表4中的数据,可见使用classic route的双孔率只有78.7%,而采用Zroute布线后所打的双孔率接近90%,提高了10个百分点。双孔率可以保证在制造过程中的良品率,因此双孔率被看成是提高良率的一个重要指标。采用Zroute布线引擎大大提高了双孔率,更好地保证了芯片可制造性设计(DFM)的优化。
3.3.3 qor比较
通过report_qor来报告HT模块布线后的timing以及total net length等情况。报告结果如表5和表6所示。表5分别列出了两种布线引擎布线结果在worst corner下三个重要时钟(core_clock ht_core_clock ht_phy_rx_clk_hi)的setup time情况;同时表6列出了两种布线引擎布线后总的线长报告。
表5: 布线后的timing结果比较
wc_1.05V_125C
classic route
zroute
Results:
core_clock
ht_core_clock
ht_phy_rx_clk_hi
core_clock
ht_core_clock
ht_phy_rx_clk_hi
Levels of Logic
5.00
12.00
15.00
10.00
12.00
18.00
Critical Path Length
0.67
3.92
3.36
0.48
2.20
2.47
Critical Path Slack
-0.28
-1.80
-1.24
-0.21
-0.18
-0.39
Critical Path Clk Period
1.25
2.50
2.50
1.25
2.50
2.50
Total Negative Slack
-169.74
-47.77
-15.36
-124.84
-1.11
-34.29
No. of Violating Paths
1655.00
143.00
81.00
1414.00
46
37
No. of Hold Violations
0.00
0.00
0.00
0.00
0.00
0.00
分析表5,在worst corner(wc_1.05V_125C)下,HT模块的三个关键时钟(core_clock ht_core_clock ht_phy_rx_clk_hi),在Zroute布线引擎下的qor结果要好一些。比如:ht_phy_rx_clk_hi时钟在关键路径上的slacks violation减少了85ps;ht_core_clock时钟在关键路径上的slacks violation减少了162ps。可见,Zroute布线工具对timing的贡献也是很理想的。
表6: 布线后的total net length结果比较
Report object
Route mode
Classic route
Zroute
Cell Count
Hierarchical Cell Count
637
637
Hierarchical Port Count
138787
140061
Hierarchical Port Count
411108
411108
Area
Combinational Area
1267906.086724
1267906.086724
Noncombinational Area
7270801.665280
7270801.665280
Net Area
0.000000
0.000000
Net XLength
14220202.00
13972819.00
Net YLength
11212087.00
10874030.00
Cell Area
8538707.752004
8538707.752004
Design Area
8538707.752004
8538707.752004
Net Length
25432288.00
24846848.00
Design Rules
Total Number of Nets
483206
484850
Nets With Violations
2503
2928
分析表6可以得到,在classical route模式下:Total Number of Nets为483206条,线总长度Net Length为25432288.00μm。在Zroute模式下:总的线条数有所增加,但是线总长度减少了585440μm。
通过分析可以看出,Zroute timing报告中几个时钟的Critical Path Slack和Total Negative Slack值均小于的classic route timing报告值,可见使用Zroute引擎布线的timing结果要明显优于classic route 布线的结果。虽然使用Zroute布线后的线的总数略大于classic route布线的线总数,但是在总线长的数值上使用Zroute的结果还是要好于classic route的结果。
通过,对以上几个方面的分析比较,充分证明了Synopsys公司开发的Zroute布线引擎具有良好的特性,为本研究中心对于新一代高性能微处理器芯片的研发提供了有力的支持。
4. 结论
在通用高性能处理器芯片龙芯2G的物理设计中,采用Synopsys公司的ICC_Zroute布线工具大大缩短了设计周期,提高了qor的质量,改善了DFM问题,保证了芯片的顺利流片。通过对实验数据的分析比较,充分体会到新型布线工具的实用意义。感谢Synopsys公司在专业方面的不断努力,这对于我们未来的工作有着巨大的意义。最后,衷心的感谢Synopsys公司的齐伟女士对于本文在撰写过程中所给予的建议和帮助.
5. 参考文献
[1] Zroute Training Lab.
[2] www .EDNChina.com
[3] 虞希清 ASIC Design Practical Course[M].杭州:浙江大学出版社,2007