SuperV芯片的版图优化


中国科学院声学研究所
王东辉
Area, Timing, IR Drop and Crosstalk

摘要

深亚微米集成电路设计中,时序、面积、IR Drop和Crosstalk等都是设计者要不断面对的挑战。本文介绍了百万门级SuperV处理器版图设计中,如何利用Astro对芯片的时序、面积、IR Drop和Crosstalk等进行优化,并成功实现266MHz时钟频率、5mm×5mm版图面积和低于1W的平均功耗。

关键词:Area, Timing, IR Drop, Crosstalk, SuperV

随着集成电路设计技术和制造工艺的不断发展,以及市场需求的不断增加,人们对芯片的功能、性能、功耗、价格等的要求越来越高,对芯片设计周期的要求越来越短。然而面对越来越先进的制造工艺,如0.18μm,0.13μm,90nm,65nm,设计人员面对的是越来越艰巨的挑战——上市时间的急切要求,面积优化,时序收敛,功耗,IR Drop,串扰,信号完整性,天线效应,ESD……如何在规定的时间里完成复杂的版图设计已经成为越来越多的设计人员经常要面对的问题。中国有一句古语:“公欲善其事,必先利其器。”工具的选择对于成功来说非常重要。好的开始是成功的一半。选对了工具,就相当于成功了一半。那么成功的另一半呢?就是好的方法,也就是充分利用工具。这也是我们在设计中的一点体会。

芯片背景介绍

中国科学院声学研究所在1999年联合清华大学和中国传媒大学(原北京广播学院)共同承担了国家973基础研究项目“面向功能可重组结构DSP&CPU芯片及其软件的基础研究”。该项目以中科院声学所为主,重点对DSP和CPU的系统结构进行研究,并将两者无缝融合在一起,实现DSP与CPU的统一。在系统结构设计中,我们采用了RISC、VLIW和SIMD技术,将DSP和CPU有机地结合在一起,并将推断推测技术应用于SuperV架构设计。同时还在系统结构中采用了柔性可重构运算部件,在不增加硬件复杂度的前提下将多个32位乘法器重组成若干个16位乘法器或者8位乘法器。我们还采用了短向量技术,克服了传统向量处理器的固有缺陷。

设计要求

根据项目的设计要求,SuperV芯片的工作频率应不低于250MHz,采用SMIC 0.18μm CMOS工艺,芯片尺寸(包括PAD)不超过5mm×5mm,功耗不超过3W,版图设计和验证的周期不超过4周。为此,我们选择了Synopsys的流程,前端网表综合使用Design Compiler,后端布局布线使用Astro,时序验证使用PrimeTime,形式验证使用Formality,最后使用Star-RCXT进行参数提取并用Hercules进行版图的DRC检查。整个流程如图1所示。

面积的优化

芯片的面积与成本是紧密相连的。随着芯片的面积增大,其制造成本不断增加,与此同时,芯片的成品率却在急剧下降。有经验表明,芯片的成本与芯片面积的4次方成正比[Rabaey01]。不仅如此,芯片面积的增大将给时钟树的设计、电源网络设计、功耗控制等都带来困难。因此在版图设计中应尽可能减小芯片的面积。

当SuperV的网表综合完成并经过验证后,开始在Astro(2003.09-SP2)中进行布局布线工作。根据网表导入的结果,整个芯片的门数超过了100万门,其中标准单元折算之后约为56万门,宏单元(主要是片内存储器)约为60万门,另外还要考虑为锁相环留出足够的空间。

首先对芯片进行了初步的布局布线,以便调整整个芯片的布局和IO PAD的摆放。考虑到芯片的IO管脚数量较多,我们采用Stagger方式来排列IO PAD。这样,芯片变成了core limited,芯片核心部分的面积将决定最后整个芯片的面积。

在布局规划阶段,由于芯片功耗相对较大(平均功耗约1W),为了使芯片内部单元上的电压降(IR Drop)控制在合理的范围内,保证芯片正常工作,需要较多的电源PAD和较宽的电源环[时昕03]。由于受IO管脚数量的限制,在芯片周围使用了17对电源PAD对整个芯片供电,这样电源环(包括电源和地)的宽度将至少为70μm才能保证不出现严重的电迁移(EM)。如果考虑峰值功耗、IR Drop和电源分布的不均匀等因素,电源环的宽度至少应该在200μm左右。去掉PAD和电源环所占用的空间,真正留给芯片核心的面积将只有约3.8mm×3.8mm。按照这个面积对芯片的核心进行布局,芯片的利用率已经接近78%,这样对后期的布线将是非常严峻的考验,因为还要做时钟树综合和high-fanout-net综合。为此,考虑将电源环改为双层结构,也就是利用两层不同的金属并行做电源环。这样既可以减少电源环所占的芯片面积,又能够保证IR Drop和EM不出现问题。改进后,芯片中留给core的面积增加到约4mm×4mm,比原来增加了约11%。这样,core在布局时的利用率降到了约71%左右。由此可见,在电源环上的改进可以节省较多的面积。

电源环中,电源线和地线的分别为两层50μm宽的金属环,为了解决制造过程中对宽金属的限制,将50μm宽的金属环改为两个25μm宽的金属环,这样也就不需要在后期为宽金属挖slot了。

芯片的布局如图2所示。

图3a显示了电源环的局部示意图。另外,在锁相环附近,core的电源环使用了双层金属的单电源环,如图3b所示。这样也可以减小局部电源环所占的面积,为core留下更多的布局布线资源。分析证明,这部分的改进对IR Drop和EM的影响不大。

另外,在place之前,可以在水平Power Straps上创建place guide(使用命令aprSetDensity,或者PrePlace菜单中的Create Density Constraint命令)。创建的place guide可以设置指定区域面积的利用率。通常可以设置利用率(Utilization)为30%左右,这样既可以充分利用水平Power Straps下面的空间摆放标准单元,又保证不会引起布线时的阻塞,确保后续布线工作顺利进行。图4显示了创建了place guide的Power Straps,其中虚线部分为place guide,电源线下面已经摆放了标准单元。

在对面积进行优化的时候,timing仍然是第一位的。在保证timing的前提下对面积进行优化才是有意义的。面积的优化对timing和congestion都会有帮助。在布局阶段,可以通过对面积的优化降低芯片core的利用率,从而改善congestion和timing。例如,在进行pre-place之前,可以单独运行“pdsHFNCollapse 10”命令,将DC综合过程中fanout大于10的net中的buffer去掉,因为这些buffer可能会导致布线拥塞以及驱动能力的不匹配。这些net的优化可以留给Astro做。在Astro中,place之后标准单元和macro的位置已经基本确定,这时再对单元的驱动能力做优化将更加有效。在做Pre-place Optimization时也可以在菜单中选择这个选项。

其次,在做Pre-place Optimization时,如图5所示,选择Cell Downsize和Area Recovery可以对面积进行优化,选择Logic-Remapping也可以对面积进行一定程度的优化。使用Area Recovery选项,当芯片的利用率超过50%时,可以在不影响timing的情况下去掉不必要的buffer,并减小cell的驱动能力。在Astro的Timing Setup对话框中可以设置Area Recovery优化的阈值。

在时钟树综合和优化时,选择Gate Sizing和Gate Relocation选项,如图6所示,可以通过调整所使用的门的驱动能力而不是插入buffer来对时钟树进行优化。这样可以在一定程度上减少插入的buffer,从而降低芯片面积的利用率,使芯片更容易布通。这两个选项在默认情况下是选中的。

在Post Placement Optimization Phase 2阶段,Area Recovery选项也提供了很好的对面积的优化,如图7所示。

通过上述方法对面积的优化,我们最终实现了整个芯片(包括IO和压焊盘)面积控制在5mm×5mm以内的目标,同时timing也满足了要求。优化后芯片的标准单元约为62万门(主要增加了时钟树、reset等的buffer),Cell/Core Ratio约为75%,Cell/Pad Core Ratio约为71%,Cell/Chip Ratio约为84%。

IR Drop和EM的分析

随着集成电路制造技术的不断提高,金属线的宽度越来越窄,IR Drop和EM问题也越来越突出。解决IR Drop的主要方法是增加电源线和地线的宽度及数量,合理布置电源网络。解决EM问题的主要方法是增加电源和地PAD的数量,增加电源线和地线的宽度及数量,对于关键路径的连线(如Clock等)设置较宽的线宽。

Astro Rail可以利用poPGExtraction和poRailAnalysis命令对电源网络进行参数提取和分析,并利用poDisplayVoltageDropMap和poDisplayElectromigrationMap命令显示IR Drop和EM分析的结果,从而可以大大减轻计算工作。在布局阶段对IR Drop和EM进行粗略估算和分析,可以在早期预防EM和减小IR Drop。图8是布局早期我们进行的IR Drop和EM分析,可以看出,由于电源网络线宽较窄,IR Drop和EM问题都比较严重。

在所选用的PAD库中,单个电源PAD所能提供的电流约为40mA。虽然17对电源PAD可以提供约680mA的电流,可以满足平均功耗的要求,但考虑到EM和峰值功耗,需要更多的电源PAD。由于芯片外部引脚数量有限,电源和地的引脚数量不可能很多,因此在设计电源引脚时,采用将三个电源PAD压焊到一个外部引脚的策略,如图9所示,这样既保证了EM和IR Drop满足要求,又没有增加额外的芯片引脚。

在增加电源PAD的同时,还调整了芯片的电源网格分布及电源网格中电源线和地线的宽度。在设计电源网格时,尽管金属6的厚度比金属2大,相同宽度的金属6的电阻会小一些,我们还是选用了金属2做垂直电源和地线。这样考虑的原因主要是有利于后续的布线。如果选用金属6做垂直电源和地线,当标准单元的电源和地线连接到垂直的电源线上时,将占用via5、m5、via4、m4、via3、m3、via2、m2和via1布线资源,使得垂直电源线附近将出现布线拥塞,尤其对于芯片利用率很高的情况,这种拥塞将更加突出,甚至导致芯片不能布通。而选用金属2做垂直电源线和地线,可以将金属2以上的布线资源留给工具布信号线。在电源网格中,水平电源和地线使用金属5,这样可以使摆放在水平电源和地线下面的标准单元布线更加容易。

图10是整个芯片最终的IR Drop和EM分析。为了简化,在分析中假设各节点的翻转概率为25%。从分析结果可以得知,最大的IR Drop约为-90mV,并且数量很少,而EM已明显改善,可以满足要求。

Timing的优化

Timing一直都是高性能电路设计中工程师最头痛的问题之一。如果说面积决定了芯片的成本,那么timing则决定了芯片的性能。在Astro中,timing优化的基本流程如图11所示。

在timing优化过程中,我们在Pre-Placement Optimization之后采用了magnet placement。

首先选择macro作为magnet,然后运行astMagnetPlace命令。当完成magnet placement之后,再运行astPlaceDesign命令,摆放其它的标准单元,并进行in-placement optimization。这样的好处是把与macro联系密切的标准单元摆放在macro附近,改善了这些单元的timing和布通率。

在pre-placement optimization phase 1(PPO1)阶段,我们在做PPO1之前首先设置了几个参数,以保证得到更好的优化效果。设置的主要参数如下。

axSetIntParam “pds” “move_flip_flop” 1

这个命令允许在post-placement optimization阶段移动触发器以改善setup和hold时间。

axSetIntParam “pds” “large_mv_in_ppo” 1

这个命令允许在post-placement optimization阶段在较大范围内移动触发器,改善setup和hold时间。

axSetIntParam “pds” “more_loc_in_ppo” 1

这个命令允许在post-placement optimization阶段为插入的buffer寻找更好的位置,但需要花费较长的时间。

需要注意的是,上面三个参数要在时钟树综合之前先设置为1,进行PPO1优化,然后进行时钟树综合。时钟树综合之后再将这三个参数设置为0,再进行第二阶段的post-placement optimization。

另外,axSetIntParam “pds” “effort” 2命令可以设置post-placement optimization阶段Astro进行timing优化的努力程度。2表示高,1表示中等,0表示低。

改进后的流程如图12所示。

在时钟树综合之前,首先要为时钟网络设置不同的布线规则(axgDefineVarRule)。通常要为时钟走线设置较宽的线间距以减小时钟信号线之间的串扰。如果需要,还可以为时钟走线设置较宽的线宽。利用axgSetNetConstraint命令可以设置时钟树综合时所采用的布线规则和布线所使用的金属层,如图13所示。通常会选择两层金属作为时钟的走线,如metal3和metal4,这样可以较好地解决后续布线的congestion问题。此外,为时钟走线加shield和使用timing-driven spacing也可以解决时钟信号的串扰问题。对于其它关键的信号线,也可以根据需要设置不同的布线规则。

在设置时钟常规选项(astClockOptions)时,在skew type设置中我们选择了local skew,并在Buffers/Inverters中指定时钟树综合时所使用的buffer和inverter。由于标准单元库中既有常规的buffer和inverter,又有专门为时钟设计的buffer和inverter,因此这里必须指定在时钟树综合时使用那些专门为时钟设计的buffer和inverter,这些buffer和inverter具有相同的上升时间和下降时间,可以更好地控制时钟树的skew和引入的延迟。

在时钟树综合之后的pre-placement optimization phase 2(PPO2)阶段,除了利用astPostPS命令进行优化外,还可以利用一些独立的命令针对setup time、hold time、transition和capacitance等进行优化。这些命令包括astSetupFix、astHoldFix、astTranFix、astCapFix等。另外,pdsMoveCell命令可以通过移动单元(非触发器)来对setup time和hold time进行优化。

在PPO2之后,还要对时钟树做优化,以改善时钟的skew。之后根据结果还要再进行pre-placement optimization,对setup time等进行优化。

此外,在detail route之后还可以进行Post-Route Optimization(astPostRT)和Advanced Postrouting Optimization(  axgAdvRouteOpt),对timing进行进一步优化。

在Astro中,CTS工具还可以对High-fanout Net(例如reset、scan enable等)进行综合(astHFCTS)。High-fanout Net通常是全局信号,如果处理不好,将影响整个芯片的timing和congestion。利用CTS工具对High-fanout Net综合可以使High-fanout Net上的skew和插入的延时尽可能小,从而保证了芯片的timing。

Crosstalk

串扰(crosstalk)会引起信号的上升沿或者下降沿变快或变慢,从而影响setup time和hold time,严重时还可能引起信号的状态发生瞬时改变。随着深亚微米工艺中晶体管的尺寸不断减小,一方面晶体管的供电电压不断降低,其阈值电压和信号的电压摆幅也越来越低,另一方面信号连线的间距越来越近,信号线之间的耦合电容不断增加,而信号的速度越来越快,相邻信号线之间的噪声和串扰问题越来越突出,已经成为深亚微米设计中必须要考虑的一个重要因素。

在Astro中提供了解决串扰的方法,主要包括前面提到的增加连线间距,为信号线加屏蔽(shield),此外还包括改变驱动能力、插入buffer等。为了更有效地预防和减小串扰的发生,主要在以下几个阶段进行设置。

首先,在Timing Setup中设置“Enable CrossTalk Effects”,并在“Xtalk”选项中设置串扰噪声的阈值。

其次,在PPO1(astPostPS1)阶段,可以选中Prevent Xtalk选项并设置串扰噪声的阈值。

第三,在Global Route阶段,通过设置Crosstalk Route Options(axgSetXtalkRouteOptions)可以让Astro在Global Route和Track Assign时尽可能减小crosstalk,从而减小由此带来的延迟。

第四,在布线之后,可以在Advanced Route Optimization(axgAdvRouteOpt)时对timing和crosstalk进行优化,如图14所示。优化的内容包括Transition Time,Max Capacitance,Crosstalk-Induced Delay等。

最后,可以利用Crosstalk Analysis(xtXTalkAnalysis)在Astro中对串扰进行详细分析。

另外,对于一些重要的net(如clock等),如果需要,可以为这些net添加屏蔽线(shield)。

在版图完成后,需要利用PrimeTime SI对串扰进行分析。

我们在版图设计和优化阶段将串扰的阈值设置为0.35V,经过Astro的优化,最后仅有少数net的串扰超过了这一阈值,但都在0.45V以内。

DFM

在完成布线和对串扰的修复之后,还要考虑的问题就是芯片的可制造性,即DFM(Design for manufacture)。主要是修复antenna问题,优化过孔(via),对timing进一步优化,以及插入filler cell和dummy metal。

结果

经过流片验证,我们的SuperV可以稳定工作在266MHz的时钟频率。SuperV是目前国内第一款基于多发射VLIW和SIMD技术的具有可重组结构的高性能微处理器,它兼具DSP和CPU功能,指令处理能力达1200MIPS,32位、16位、8位峰值数据处理能力分别为2.9GOPS、5.1GOPS和9.3GOPS,采用SMIC 0.18μm工艺设计,版图面积5mm×5mm(包括PAD和压焊盘),平均功耗小于1W。

参考文献

[Rabaey01] Jan M. Rabaey, Digital Integrated Circuits–A Design Perspective, pp12, 清华大学出版社,2003。

[时昕03] 时昕,王东辉,侯朝焕,深亚微米SoC中的电源/地网络设计,微电子学与计算机,2004年,第21卷,第12期,p198-202。

Synopsys用户手册。