一种新型布线器ICC Z_ROUTE的使用及性能分析_第1页
一种新型布线器ICC Z_ROUTE的使用及性能分析_第2页
一种新型布线器ICC Z_ROUTE的使用及性能分析_第3页
一种新型布线器ICC Z_ROUTE的使用及性能分析_第4页
一种新型布线器ICC Z_ROUTE的使用及性能分析_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/information/snug/2009/icc-z_route 一种新型布线器ICC Z_ROUTE的使用及性能分析王松, 刘动, 赵继业中国科学院计算技术研究所摘要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加shieldingsearch repair修复打双孔Classic routecreate_auto_shield -with_ground gnd -ignore_shielding_net_rails -ignore_shielding_net_pinsroute_search_repair -loop 20-ignore_open_netsinsert_redundant_vias -auto_mode previewinsert_redundant_vias -auto_mode insertZroutecreate_zrt_shield -with_ground gnd -ignore_shielding_net_rails true -ignore_shielding_net_pins trueroute_zrt_detail -max_number_iterations 20 -incremental truedefine_zrt_redundant_viasinsert_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模块参数信息ModuleGodson2g_htLeaf Cell Count:411108 /Ref Cell75384 /Number of ports1426 /Combinational Area1267906.086724 /m2Design 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运行结果比较datecputimeinfo hostnamememClassic routeSTARTMon Apr 6 08:43:36 20091117node215281064ENDMon Apr 6 14:18:18 20094627node218230256RESULT5hours 34mins 42secs3510secsZrouteSTARTWed Apr 6 16:50:42 20091042node215131908ENDWed Apr 6 19:31:11 20091388node215131908RESULT2hours 40mins 29secs346secs通过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 -physicalreport_design -physicalDouble Via rate for all layers: 78.7%Double Via rate for all layers: 89.7%Total Number of Contacts: 4722277Total Number of Contacts: 3937573Horizontal/Vertical Wire Distribution:Horizontal/Vertical Wire Distribution:LayerHor. Wire (% of Hor.)Ver. Wire (% of Ver.)LayerHor. Wire (% of Hor.)Ver. Wire (% of Ver.)Metal1519176.55 ( 3.78%)31099.85 ( 0.29%)Metal1422203.90 ( 3.12%)32695.59 ( 0.32%)Metal2273017.25 ( 1.99%)5272423.26 (48.83%)Metal295790.93 ( 0.71%)3746555.33 (37.02%)Metal35592692.10 (40.72%)134187.27 ( 1.24%)Metal35529322.00 (40.85%)24294.45 ( 0.24%)Metal4109807.18 ( 0.80%)4532516.12 (41.98%)Metal417614.44 ( 0.13%)5180472.18 (51.19%)Metal56014991.93 (43.79%)61997.68 ( 0.57%)Metal56251048.50 (46.18%)12661.46 ( 0.13%)Metal660842.26 ( 0.44%)742733.03 ( 6.88%)Metal63017.74 ( 0.02%)1123104.70 (11.10%)Metal71164662.11 ( 8.48%)22000.49 ( 0.20%)Metal71217322.20 ( 8.99%)753.09 ( 0.01%)Total13735189.3910796957.71Total13536319.6910120536.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_125Cclassic routezrouteResults:core_clockht_core_clockht_phy_rx_clk_hicore_clockht_core_clockht_phy_rx_clk_hiLevels of Logic5.0012.0015.0010.0012.0018.00Critical Path Length0.673.923.360.482.202.47Critical Path Slack-0.28-1.80-1.24-0.21-0.18-0.39Critical Path Clk Period1.252.502.501.252.502.50Total Negative Slack-169.74-47.77-15.36-124.84-1.11-34.29No. of Violating Paths1655.00143.0081.001414.004637No. of Hold Violations0.000.000.000.000.000.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 objectRoute modeClassic routeZrouteCell CountHierarchical Cell Count637637Hierarchical Port Count138787140061Hierarchical Port Count411108411108AreaCombinational Area1267906.0867241267906.086724Noncombinational Area7270801.6652807270801.665280Net Area0.0000000.000000Net XLength14220202.0013972819.00Net YLength11212

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论