发明名称 用去耦合电容实现集成电路供电网络噪声优化的快速方法
摘要 用去耦合电容对集成电路供电网络进行噪声优化的方法属于VLSI物理设计领域,尤其是布局布线领域中RLC电源线/地线网络噪声优化的技术范畴。其特点在于:它是一种利用计算机针对基于标准单元布图模式的专用集成电路(ASIC)的布图结构特点及其供电网络的结构特点,对供电网络的优化问题进行建模,并采用非线性规划方法对问题进行有效求解的过程。发明中,新颖之处是将去耦电容的面积作为优化的目标,使优化后得到的去耦电容面积尽可能小,为后面阶段的工作,例如插buffer,留下了充足的空白面积。求解过程中我们利用了以前工作中的优秀成果—等效电路的方法,使求解规模大大降低,很大提高了求解速度并且节省了大量的计算机内存。实验证明,本发明可以快速有效的对供电网络进行优化,并具有优化大规模集成电路供电网络的能力。
申请公布号 CN1305127C 申请公布日期 2007.03.14
申请号 CN03157052.6 申请日期 2003.09.12
申请人 清华大学 发明人 洪先龙;蔡懿慈;傅静静;骆祖莹;潘著;谭向东
分类号 H01L21/82(2006.01);H01L27/00(2006.01);G06F17/50(2006.01) 主分类号 H01L21/82(2006.01)
代理机构 代理人
主权项 1.用去耦合电容实现集成电路供电网络噪声优化的快速方法,含有用放置去耦合电容于布图空白面积中以提高供电网络可靠性的步骤,其特征在于,它是一种利用计算机针对基于标准单元布图模式的专用集成电路的布图结构特点及其供电网络的结构特点,将用以保持节点电压平稳的去耦合电容的面积作为优化的目标,采用非线性规划的方法对供电网络噪声优化问题进行有效求解的方法,它把罚函数法、等效电路、共轭梯度法和扩展特勒根伴随网络的方法形成一个整体共同作用于电源/地线网络优化上,取得很好的优化效果;具体而言,它依次含有以下步骤:(1)计算机读入包含供电网络信息和单元布局信息的文件:供电网络信息包括供电网络节点之间的关联结构;节点之间的电阻值、电感值、电感初始电压和电流值、片上固有去耦合电容值(单元模块静止时表现出的电容特性)、电容初始电压和电流值以及各个节点连接的单元模块随时间变化的吸纳电流波形,利用PWL表示,据此在计算机内建立电路的信息,并且标记所有中间点和交汇点;单元布局信息包括每个单元行中的单元数目、单元坐标以及单元之间的相对位置关系,根据这些信息,我们可以得到单元之间的空白面积的信息和各单元行上空白面积的分布情况,附加的去耦合电容就添加在这些空白区域上;(2)利用输入的参数信息对供电网络进行基于等效电路的瞬态分析,得到每个节点的电压波形;(3)若各节点的电压没有违反约束的情况出现,则不需对供电网络做优化;否则执行以下步骤:(4)将各节点的电压波形分段线性纪录,用于优化过程中梯度的计算;(5)确定优化的目标函数为添加的去耦电容的面积,在对应的约束条件下求最小值:<maths num="001"><![CDATA[ <math><mrow><mi>min</mi><mi>A</mi><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>j</mi><mo>&Element;</mo><mi>M</mi></mrow></munder><mrow><mo>(</mo><msub><mi>w</mi><mi>j</mi></msub><mo>&times;</mo><mi>H</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>M是允许添加去耦合电容的节点集合,M={1,...,m},MN;N为供电网络中所有节点的集合,N={1,...,n};H是标准单元的高,w<sub>j</sub>是添加在节点j上的去耦电容c<sub>j</sub>的宽度;约束条件如下:(5.1)电压降约束:即各节点相对于电源电压的电压降,用能有效衡量电压降噪声的量值,即每个节点上低于电压阈值的电压部分的积分值S<sub>i</sub>表示:<maths num="002"><![CDATA[ <math><mrow><msub><mi>s</mi><mi>i</mi></msub><mo>=</mo><msubsup><mo>&Integral;</mo><mn>0</mn><mi>T</mi></msubsup><mi>max</mi><mrow><mo>(</mo><msub><mi>V</mi><mi>min</mi></msub><mo>-</mo><msub><mi>v</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo><mn>0</mn><mo>)</mo></mrow><mi>dt</mi><mo>=</mo><msubsup><mo>&Integral;</mo><msub><mi>t</mi><mn>1</mn></msub><msub><mi>t</mi><mn>2</mn></msub></msubsup><mrow><mo>(</mo><msub><mi>V</mi><mi>min</mi></msub><mo>-</mo><msub><mi>v</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>)</mo></mrow><mi>dt</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>[t<sub>1</sub>,t<sub>2</sub>]为i节点违反电压降约束的时间区间,V<sub>min</sub>为电压阈值,v<sub>i</sub>(t)为i节点的电压值;(5.2)电迁移约束:用[t’<sub>1</sub>,t’<sub>2</sub>]时间内,供电网络分支(p,q)两端节点电压差的绝对值和工艺允许的最大电流密度为σ时在分支长度l<sub>pq</sub>上的电压降之差的积分值来表示:<maths num="003"><![CDATA[ <math><mrow><msub><mi>u</mi><mrow><mi>p</mi><mo>,</mo><mi>q</mi></mrow></msub><mo>=</mo><msubsup><mo>&Integral;</mo><mn>0</mn><mi>T</mi></msubsup><mi>max</mi><mo>[</mo><mrow><mo>(</mo><mo>|</mo><msub><mi>v</mi><mi>p</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>v</mi><mi>q</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>|</mo><mo>-</mo><msub><mi>&rho;l</mi><mrow><mi>p</mi><mo>,</mo><mi>q</mi></mrow></msub><mi>&sigma;</mi><mo>)</mo></mrow><mo>,</mo><mn>0</mn><mo>]</mo><mi>dt</mi><mo>=</mo><msubsup><mo>&Integral;</mo><msub><msup><mi>t</mi><mo>&prime;</mo></msup><mn>1</mn></msub><msub><msup><mi>t</mi><mo>&prime;</mo></msup><mn>2</mn></msub></msubsup><mrow><mo>(</mo><mo>|</mo><msub><mi>v</mi><mi>p</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>v</mi><mi>q</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>|</mo><mo>-</mo><msub><mi>&rho;l</mi><mrow><mi>p</mi><mo>,</mo><mi>q</mi></mrow></msub><mi>&sigma;</mi><mo>)</mo></mrow><mi>dt</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>其中,v<sub>p</sub>和v<sub>q</sub>分别是电源分枝(p,q)两端节点的电压,v<sub>p</sub>-v<sub>q</sub>即该分枝上的电压差;ρ是方块电阻;l<sub>pq</sub>是分枝(p,q)的长度;(5.3)去耦电容面积约束:即每单元行中,添加的去耦电容面积小于等于本单元行中的空白面积,而单元行的高度H是定值,因此可直接用宽度表示面积大小:<maths num="004"><![CDATA[ <math><mrow><msub><mi>dw</mi><mi>r</mi></msub><mo>=</mo><mi>max</mi><mrow><mo>(</mo><munder><mi>&Sigma;</mi><mrow><mi>y</mi><mo>&Element;</mo><mi>ND</mi><mrow><mo>(</mo><mi>r</mi><mo>)</mo></mrow></mrow></munder><msub><mi>w</mi><mrow><mi>r</mi><mo>,</mo><mi>y</mi></mrow></msub><mo>-</mo><msub><mi>rw</mi><mi>r</mi></msub><mo>,</mo><mn>0</mn><mo>)</mo></mrow><mo>,</mo><mi>r</mi><mo>&Element;</mo><mi>NR</mi><mo>,</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>NR是单元行的集合;ND(r)是第r行中去耦电容的位置集合;w<sub>r,y</sub>是指位于第r行y位置的去耦电容的宽度;rw<sub>r</sub>是第r行上的空白面积的总宽度;dw<sub>r</sub>是第r行上违反去耦电容面积约束的惩罚量,将在后面的罚函数法中应用;(5.4)去耦电容最大宽度约束:在某单元行中添加的任意一个去耦电容的宽度小于或等于本行中最大空白面积的宽度;ew<sub>r,y</sub>=max(w<sub>r,y</sub>-rw<sub>r</sub>,0),r∈NR,y∈ND(r),——(5),ew<sub>r,y</sub>是第r行第y个位置上违反去耦电容最大宽度约束的惩罚量,将在后面的罚函数法中应用;(6)构造罚函数f,将非线性约束优化问题转化为无约束优化问题:<maths num="005"><![CDATA[ <math><mrow><mi>min</mi><mi>f</mi><mo>=</mo><mi>A</mi><mo>+</mo><msub><mi>p</mi><mi>t</mi></msub></mrow></math>]]></maths><maths num="006"><![CDATA[ <math><mrow><mo>=</mo><mi>A</mi><mo>+</mo><mi>&alpha;</mi><mo>&CenterDot;</mo><mrow><mo>(</mo><munder><mi>&Sigma;</mi><mrow><mi>i</mi><mo>&Element;</mo><mi>N</mi></mrow></munder><msubsup><mi>s</mi><mi>i</mi><mn>2</mn></msubsup><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>q</mi><mo>)</mo></mrow><mo>&Element;</mo><mi>B</mi></mrow></munder><msubsup><mi>u</mi><mi>pq</mi><mn>2</mn></msubsup><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mi>r</mi><mo>&Element;</mo><mi>NR</mi></mrow></munder><msubsup><mi>dw</mi><mi>r</mi><mn>2</mn></msubsup><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mi>r</mi><mo>&Element;</mo><mi>NR</mi><mo>,</mo><mi>y</mi><mo>&Element;</mo><mi>ND</mi><mrow><mo>(</mo><mi>r</mi><mo>)</mo></mrow></mrow></munder><msubsup><mi>ew</mi><mrow><mi>r</mi><mo>,</mo><mi>y</mi></mrow><mn>2</mn></msubsup><mo>)</mo></mrow><mo>,</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>其中,A是去耦电容总面积,B是电源网络中所有分枝的集合,P<sub>t</sub>是罚项,α为罚因子;(7)设置罚因子α的初始值;每个添加去耦电容的位置上的去耦电容初始值都设为允许的最小电容宽度,得到电容宽度向量作为下面无约束优化的初始解;另外给出误差限ε<sub>1</sub>>0;(8)求解当前无约束优化问题,得到当前最优解电容宽度向量W<sup>(l)</sup>;(8.1)设当前无约束优化问题的初始解为电容宽度向量W<sup>(0)</sup>,误差限为ε<sub>2</sub>>0;(8.2)初始优化方向设为罚函数关于电容宽度向量W<sup>(0)</sup>的负梯度方向:设初始优化方向为P<sup>(0)</sup>,梯度方向为f(W<sup>(0)</sup>),得P<sup>(0)</sup>=-f(W<sup>(0)</sup>)    —(7),(8.3)用扩展的伴随网络法求罚函数相对于电容宽度向量的梯度:<maths num="007"><![CDATA[ <math><mrow><mo>&dtri;</mo><mi>f</mi><mrow><mo>(</mo><mi>W</mi><mo>)</mo></mrow><mo>=</mo><msup><mrow><mo>[</mo><mfrac><mrow><mo>&PartialD;</mo><mi>f</mi></mrow><msub><mrow><mo>&PartialD;</mo><mi>w</mi></mrow><mn>1</mn></msub></mfrac><mo>,</mo><mfrac><mrow><mo>&PartialD;</mo><mi>f</mi></mrow><msub><mrow><mo>&PartialD;</mo><mi>w</mi></mrow><mn>2</mn></msub></mfrac><mo>,</mo><mi>L</mi><mo>,</mo><mfrac><mrow><mo>&PartialD;</mo><mi>f</mi></mrow><msub><mrow><mo>&PartialD;</mo><mi>w</mi></mrow><mi>j</mi></msub></mfrac><mo>,</mo><mi>L</mi><mo>,</mo><mfrac><mrow><mo>&PartialD;</mo><mi>f</mi></mrow><msub><mrow><mo>&PartialD;</mo><mi>w</mi></mrow><mi>m</mi></msub></mfrac><mo>]</mo></mrow><mn>2</mn></msup><mo>,</mo><mi>j</mi><mo>&Element;</mo><mi>M</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>宽度为w<sub>j</sub>的电容c<sub>j</sub>连接在供电网络的节点j上,假设节点j位于第rj行的yj位置,则罚函数f相对于w<sub>j</sub>的偏导数表示为:<maths num="008"><![CDATA[ <math><mrow><mfrac><mrow><mo>&PartialD;</mo><mi>f</mi></mrow><msub><mrow><mo>&PartialD;</mo><mi>w</mi></mrow><mi>j</mi></msub></mfrac><mo>=</mo><mi>H</mi><mo>+</mo><mn>2</mn><mi>&alpha;</mi><mrow><mo>(</mo><msub><mi>dw</mi><mi>rj</mi></msub><mo>+</mo><msub><mi>ew</mi><mrow><mi>rj</mi><mo>,</mo><mi>yj</mi></mrow></msub><mo>)</mo></mrow><mo>+</mo><mn>2</mn><mi>&alpha;</mi><mo>[</mo><munder><mi>&Sigma;</mi><mrow><mi>i</mi><mo>&Element;</mo><mi>N</mi></mrow></munder><msub><mi>s</mi><mi>i</mi></msub><mfrac><msub><mrow><mo>&PartialD;</mo><mi>s</mi></mrow><mi>i</mi></msub><msub><mrow><mo>&PartialD;</mo><mi>w</mi></mrow><mi>j</mi></msub></mfrac><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>q</mi><mo>)</mo></mrow><mo>&Element;</mo><mi>B</mi></mrow></munder><msub><mi>u</mi><mi>pq</mi></msub><mfrac><msub><mrow><mo>&PartialD;</mo><mi>u</mi></mrow><mi>pq</mi></msub><msub><mrow><mo>&PartialD;</mo><mi>w</mi></mrow><mi>j</mi></msub></mfrac><mo>]</mo><mo>,</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>rj∈NR,yj∈ND(rj)通过对原电路网络建立对应电路中各节点的一系列伴随网络,并作电路灵敏度分析后,得到:<img file="C031570520004C3.GIF" wi="1623" he="112" />rj∈NR,yj∈ND(rj),j∈M其中,Z(j)是一个位置选择向量,该向量除了j位置上的元素取值为1,其它元素全部为0,即Z(j)=[0,0,L,0,1,0,L,0];I<sub>total</sub>=I<sub>new</sub>(t)+EC(t)+EL(t);               —(11),<maths num="009"><![CDATA[ <math><mrow><msub><mi>I</mi><mi>new</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>i</mi><mo>&Element;</mo><mi>N</mi></mrow></munder><mo>[</mo><msub><mi>s</mi><mi>i</mi></msub><mo>&times;</mo><msub><mi>E</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>]</mo><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>q</mi><mo>)</mo></mrow><mo>&Element;</mo><mi>B</mi></mrow></munder><mo>{</mo><msub><mi>u</mi><mi>pq</mi></msub><mo>&times;</mo><mo>[</mo><msub><mi>E</mi><mi>p</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>E</mi><mi>q</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>]</mo><mo>}</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>12</mn><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>G是节点电压方程组G*V=I中的关系矩阵;<img file="C031570520004C5.GIF" wi="417" he="114" />是原电路网络中j节点的电压对时间t的导数;E<sub>i</sub>(t)是电流源向量,它的值是除节点i对应的元素值之外,其余的元素值全部为0,节点i对应的元素值当该节点违反电压降约束时为-1,当该节点不违反约束时为0;EC<sub>i</sub>(t)和EL<sub>i</sub>(t)是对应于节点i建立的伴随网络中的电容和电感元素做等效后得到的电流源向量;EC(t)和EL(t)是将I<sub>new</sub>作为伴随网络的电流激励时,电容和电感元素做等效后得到的电流源向量;ε<sub>ox</sub>和T<sub>ox</sub>分别是门氧化层的介电常数和厚度;(8.4)设迭代已经进行到了第k步,当前电容宽度向量和优化方向分别是为W<sup>(k)</sup>和P<sup>(k)</sup>,沿P<sup>(k)</sup>进行一维搜索,找到非负一维搜索因子λ<sub>k</sub>,使罚函数在P<sup>(k)</sup>方向上达到最优,即:f(W<sup>(k)</sup>+λ<sub>k</sub>P<sup>(k)</sup>)=minf(W<sup>(k)</sup>+λP<sup>(k)</sup>)    ——(13),(8.5)根据下式更新电容宽度向量W<sup>(k+1)</sup>:W<sup>(k+1)</sup>=W<sup>(k)</sup>+λ<sub>k</sub>P<sup>(k)</sup>           ——(14),(8.6)如果‖f(W<sup>(k+1)</sup>)‖<ε<sub>2</sub>,本次无约束优化结束退出,转步骤9;否则设电容宽度向量的维数是m,如果k=m,则W<sup>(0)</sup>=W<sup>(k+1)</sup>,f(G<sup>(0)</sup>)=f(G<sup>(k+1)</sup>),转向步骤8.2;如果k<m,根据下式更新优化方向,回到步骤8.4继续优化;<maths num="010"><![CDATA[ <math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>&beta;</mi><mi>k</mi></msub><mo>=</mo><mfrac><msup><mrow><mo>|</mo><mo>|</mo><mo>&dtri;</mo><mi>f</mi><mrow><mo>(</mo><msup><mi>W</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><msup><mrow><mo>|</mo><mo>|</mo><mo>&dtri;</mo><mi>f</mi><mrow><mo>(</mo><msup><mi>W</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msup><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup></mfrac></mtd></mtr><mtr><mtd><msup><mi>P</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>=</mo><mo>-</mo><mo>&dtri;</mo><mi>f</mi><mrow><mo>(</mo><msup><mi>W</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>)</mo></mrow><msub><mi>&beta;</mi><mi>k</mi></msub><msup><mi>P</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msup></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>15</mn><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>(9)根据优化结果计算罚项的值,如果p<sub>t</sub><ε<sub>1</sub>,当前电容宽度向量即是所求最优解,算法结束退出;否则更新罚因子α,设l=l+1,回到步骤8继续优化;(10)我们对最终得到的优化结果进行调整;若某位置添加的去耦电容值小于最小数值则将其合并到邻近的节点上,以形成较大的电容,并将这些电容调整为最小单位数值的倍数。
地址 100084北京市100084-82信箱