总览
前面完成了IO pad 及macro cell的placement及congestion的消除,本节课开始说明PG network的放置并满足congestion与timing delay;
整体学习目标:①了解PG Structure整体结构;②如何评价PG做的好坏;
(本节后面所属的PG structure针对9层metal的普遍ASIC芯片设计,如果是高性能芯片,那么对PG的要求可能更高,那么可能所有金属层全都有PG mesh;如果只有5层金属,那么也不适合我们后面说的空出M5 & M6来走信号线的设计,可以每层都要走pg mesh ,但中间几层可以走的密度小一些,尽可能节省绕线资源)
两个概念:①PG structure:PG的整体结构;②PG pattern:某些部分的PG结构,如PG ring,PG rail等;
IR drop:电压降,用来评估PG的强壮程度,因为当我们从power source通过wire连到某个cell时,中间的导线是有电阻的,存在电压降,当压降过大时,就会导致cell延时增大影响时序,甚至无法翻转;一般我们要保证电压降<5%;当存在较大电压降不满足IR drop需求时,就增加PG pad,即增加Power source pad/增加供电线;
PNS简介
ICC提供的PG network工具称为Power network Synthesis--PNS,PNS中有两种模型来构建PG network,分别为template-based / constraint-based,此处介绍了contraint-based的一些功能;
其中,工具会自动计算出能够满足功耗及电压降的金属线宽度及个数;
当我们”committing“后,就不能在返回了,只能通过其他办法返回去做;
PNS Flow
Define logical PG connections
这里说明一下net和pin的区别,可以理解为:pin是属于power source,是power进来的地方;而net则是core内部的power网络,将power输送到每个cell;
此处定义了三个power: VDD & VDDO & VDDQ,表明该设计是多电源设计;
最后构建tie和power / GND的连接;
Create PG Rings around Macro Groups
这里的macro groups就可以理解为macro array,即把一些mem分成一组,然后摆的很近,如上图所示,那么可以手动给macro array创建一个pg ring来给macro array供电,这一圈的pg ring也称为macro ring;
当然,也可以通过PNS自动创建PG rings;在使用PNS自动创建之前,需要先建立一个group ring;
PG straps:电源条,我们理解的PG rings是外围围绕的一圈PG network,图中我们也可以看出,除了外面的一圈pg ring外,内部各macro bnak之间也是有走线的,这些称为pg straps;
Block rings:在Hire设计中,围绕block周边的一圈PG ring也成为block ring;
Core ring:前面提过,在pad和core之间,围绕着一圈PG ring,又称为core ring;
对macro array创建PG ring的命令:
①首先就是定义一个region约束区域,规定macro array所处的区域,
②然后分别约束group ring & strap 的一些基本约束,如所用的layer层,线宽,offset偏离值(离macro bank最近的一条PG ring的距离)等;
③完成约束后就进行”commit“, 来创建实际的PG走线,这样一个macro array的PG ring就完成了,后面再重复对不同的macro array进行设置;
④全部完成后,将最后一个macro array规定的region约束remove移除;
Apply Power network constraints
在进行PNS之前,我们还需要对工具进行一些PG network约束设置,工具提供了多种层面约束的选项,这里列出了三个:Layers & Rings and straps & Global constraints;我们简单看一下:
①Layers中,Density指的是布线的数量,有两个选项,By strap number是直接指定数量,而By pitch则是根据布线trace中心距来布置;
PG spacing就是PG的摆放方式,Minimum就是VSS/VDD根据最小中心距依次摆放,如两根VDD之间的中心距为10,那么VDD-VSS之间的中心距就是5;interleaving就是根据总的PG线数量及总间距均匀摆放;
②Ringa and Straps中,Extand strap就是指的core内部的PG线可以延伸到core ring/Top boundary/pad ring上面去;
③Global中,stac