发明名称 一个快速的集成电路可布性分析方法
摘要 本发明属于IC CAD领域,其特征在于,一次含有以下步骤:计算机初始化,并建立GRG图,读入布线资源和电路网表;用Prim算法拆分多端线网,得到曼哈顿距离下的最小生成树;预估计各边的走线概率:若两个引脚段的引脚处在边界框的对角处,用格路模型,若出在同一行或列时,用扩展边界框估计模型;快速布线:采用按走线概率反比结合随机选择等方式,选择布线路径。本发明通过快速完成拥挤估计,使可布性分析能服务于增量式布局或者指导布线。
申请公布号 CN100405379C 申请公布日期 2008.07.23
申请号 CN200610012271.4 申请日期 2006.06.15
申请人 清华大学 发明人 洪先龙;经彤;刘盛华;许静宇
分类号 G06F17/50(2006.01) 主分类号 G06F17/50(2006.01)
代理机构 代理人
主权项 1.一种快速的集成电路可布性分析方法,其特征在于,在计算机中该方法依次按以下步骤实现:步骤1初始化并建立总体布线图步骤1.1计算机读入在一个多层布线芯片上划分总体布线单元GRC网格所必需的行数Nrow、列数Ncol;步骤1.2求GRC的对偶图:以GRC中每个网格的中心为新的顶点,重连接各相邻网格的中心点形成新的边,从而得到总体布线图GRG;步骤1.3在步骤1.1所述的多层布线芯片上,以芯片中心为原点建立笛卡儿平面直角坐标系,并把各个布线层投影到该坐标平面上;步骤1.4标记步骤1.2中所述各新顶点的坐标为vrow,col(x,y),并把这些新顶点的集合记为V,其中row,col分别代表该新顶点所在GRG的行和列,x,y是步骤1.3所建坐标平面的坐标;步骤1.5为所述GRG顶点vrow,col以及连接每两个相邻顶点的GRG边ek分别编号,顶点用公式(row-1)×Ncol+col-1编号,边ek则先按行从下向上从左向右编号,再按列从左向右从下向上排号;步骤1.6计算机读入每条GRG边ek的容量ck,给边ek的通道使用量λk赋初始值为0;步骤2计算机读入表征电路详细的连接的网表步骤2.1读入电路中线网的总数Mnet;步骤2.2计算机对每一条线网执行:步骤2.2.1读入线网的源点s和漏点集T;步骤2.2.2把线网的源点s和漏点集T中所有点,映射到所述GRG的各顶点上,并用顶点编号对上述点标记;步骤2.2.3按读入顺序,为每条线网编号;步骤3拆分所述线网中的多端线网,但两端线网保持原状;对于每一条多端线网执行如下操作:利用Prim算法求得曼哈顿距离下的最小生成树来划分两引脚段,形成按两引脚段划分顺序所构成的两引脚段序列,从而把一个多端线网划分成为一个两引脚段序列,所述的两引脚段是指该多端线网的顶点集合中,由相距近的两点构成的点对集合,在由该点对构成的路径上不存在顶点集合的其它点;步骤4预估计GRG各边的走线概率;步骤4.1设定GRG每条边ek所对应的走线概率值pk的初始值为0;步骤4.2对每条两端线网或多端线网的每个两引脚段做如下操作:步骤4.2.1若两个引脚u,v分别处于GRG图的左下角和右上角的位置,u为左下角引脚,v为右上角引脚;则以u作为原点建立参考用笛卡儿平面直角坐标系,横轴以列为单位,并以水平向左为正方向,若经过m段水平网格,纵轴以行为单位,以垂直向上为正方向,若经过n段垂直网格,点v(m,n)处于第I象限,原点为u(0,0),以u(0,0),v(m,n)为对顶点构成矩形框称为边界框u-v,从u点到v点任何一条可能路径的长度等于边界框u-v的半周长;从而,按下式得到经过边界框u-v里某条设定水平边AB或垂直边AC的走线概率,其中:B点在A点右面,C点在A点的上面;经过水平边AB的走线概率为:pkl=H(x,y)/T(m,n)0≤x≤m-1,0≤y≤n,其中,T(m,n)表示从u(0,0)出发到点v(m,n)间可能存在的路径数,表达式为:<math><mrow><mi>T</mi><mrow><mo>(</mo><mi>m</mi><mo>,</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><mi>m</mi><mo>+</mo><mi>n</mi><mo>)</mo></mrow><mo>!</mo></mrow><mrow><mi>m</mi><mo>!</mo><mi>n</mi><mo>!</mo></mrow></mfrac><mo>,</mo><mi>m</mi><mo>></mo><mn>0</mn><mo>,</mo><mi>n</mi><mo>></mo><mn>0</mn><mo>;</mo></mrow></math> H(x,y)表示从原点u(0,0)出发到点A(x,y),并经过以点A(x,y)为左端点的某一特定水平边AB的路径数,用下式表示:H(x,y)=T(x,y)T(m-x-1,n-y),0≤x≤m-1,0≤y≤nT(x,y)表示从原点u(0,0)到点A(x,y)间可能存在的路径数,按下式得出:<math><mrow><mi>T</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>y</mi><mo>)</mo></mrow><mo>!</mo></mrow><mrow><mi>x</mi><mo>!</mo><mi>y</mi><mo>!</mo></mrow></mfrac><mo>,</mo><mi>x</mi><mo>></mo><mn>0</mn><mo>,</mo><mi>y</mi><mo>></mo><mn>0</mn><mo>,</mo></mrow></math> T(m-x-1,n-y)表示从点B(x+1,y)出发到点v(m,n)间可能存在的路径数,用下式表示:<math><mrow><mi>T</mi><mrow><mo>(</mo><mi>m</mi><mo>-</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>n</mi><mo>-</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mo>[</mo><mrow><mo>(</mo><mi>m</mi><mo>-</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mi>y</mi><mo>)</mo></mrow><mo>]</mo><mo>!</mo></mrow><mrow><mrow><mo>(</mo><mi>m</mi><mo>-</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>!</mo><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mi>y</mi><mo>)</mo></mrow><mo>!</mo></mrow></mfrac><mo>,</mo><mi>m</mi><mo>></mo><mi>x</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>n</mi><mo>></mo><mi>y</mi><mo>;</mo></mrow></math> 经过垂直边AC的走线概率为:pk2=V(x,y)/T(m,n),0≤x≤m,0≤y≤n-1,其中,V(x,y)表示从原点u(0,0)出发到点A( x,y)间经过以点A(x,y)为下端点的某一特定垂直边AC的路径数,用下式表示:V(x,y)=T(x,y)T(m-x,n-y-1),0≤x≤m,0≤y≤n-1,其中,T(m-x,n-y-1)表示从点C(x,y+1)出发到达点v(m,n)间可能存在的路径数,用下式表示:<math><mrow><mi>T</mi><mrow><mo>(</mo><mi>m</mi><mo>-</mo><mi>x</mi><mo>,</mo><mi>n</mi><mo>-</mo><mi>y</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mo>[</mo><mrow><mo>(</mo><mi>m</mi><mo>-</mo><mi>x</mi><mo>)</mo></mrow><mo>+</mo><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mi>y</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>]</mo><mo>!</mo></mrow><mrow><mrow><mo>(</mo><mi>m</mi><mo>-</mo><mi>x</mi><mo>)</mo></mrow><mo>!</mo><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mi>y</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>!</mo></mrow></mfrac><mo>,</mo><mi>m</mi><mo>></mo><mi>x</mi><mo>,</mo><mi>n</mi><mo>></mo><mi>y</mi><mo>+</mo><mn>1</mn><mo>,</mo></mrow></math> 再把所得的pk1,pk2分别累加到边AB,AC上的走线概率,k1,k2分别为边AB,AC的编号;步骤4.2.2若两个引脚u,v分别处于GRG图的右下角和左上角的位置,u为右下角引脚,v为右上角引脚;则以右下角的引脚u作为原点建立参考用笛卡儿平面直角坐标系,横轴以列为单位,并以水平向左为正方向,若向左经过m*段水平网格,纵轴以行为单位,以垂直向上为正方向,若经过n*段垂直网格,点v(m*,n*)处于第I象限,原点为u(0,0),以u(0,0),v(m*,n*)为对顶点构成矩形框称为为边界框u-v,从u点到v点任何一条可能路径的长度等于边界框u-v的半周长;从而,按照步骤4.2.1中的方法计算经过边界框u-v里某条设定水平边AB或垂直边AC的走线概率,其中,B点在A点左面,C点在A点的上面;只要把步骤4.2.1中的公式里的m,n分别换成m*,n*即可;最后,再把所得的pk1,pk2分别累加到边AB,AC上的走线概率,k1,k2分别为边AB,AC的编号;步骤4.2.3若两个引脚u,v分别处于GRG图的同一行或列时,称两引脚点为平点对,以一个引脚为原点建立参考用笛卡儿平面直角坐标系,并使另一个引脚落在横轴或纵轴的正半轴,当处于同一行,另一个引脚落在横轴的正半轴,当处于同一列,另一个引脚落在纵轴的正半轴,然后,用扩展边界框估计法,按下面方法计算边ek上的相应走线概率:步骤4.2.3.1按照下面方法建立扩展边界框:使同一行/列的平点对的边界框,向垂直/水平方向各扩展一行/列;步骤4.2.3.2在边界框内,在边界框扩展方向上,最多允许一次背离所述两引脚u,v所处的同一行或列的条件下,按下式计算经过的点(x,y)为左端点的某一特定的水平边的走线概率pk1和计算经过点(x,0)向上或向下的垂直边的走线概率pk2:当u,v处于同一行时,pk1=H*(x,y)/F(m′),0≤x≤m′-1,-1≤y≤1,其中,m’为点u,v间的列数,F(m’)表示在扩展边界框u-v中从u到v的可能路径数,按下面公式计算:F(m’)=m’2+m’+1,m’是u和v之间相隔的列数,H*(x,0)表示从点u(0,0)到点(x,0)间经过以该点(x,0)为左端点的水平边的可能路径数目,用下式计算:H*(x,0)=F(x)+F(m′-x-1)-1,0≤x≤m′-1,H*(x,±1)表示从点u(0,0)到点(x,±1)间经过以该点(x,±1)为左端点的水平边的可能路径数目,用下式计算:H*(x,±1)=(x+1)(m′-x),0≤x≤m′-1,其中,F(x)表示在扩展边界框u-v中从u到(x,0)的可能路径数,表达式为:F(x)=x2+x+1,F(m′-x-1)表示在扩展边界框u-v中从(x+1,0)到v(m’,0)的可能路径数,表达式为: F(m′-x-1)=(m′-x-1)2+(m′-x-1)+1;pk2=V*(x,y)/F(m′),0≤x≤m′-1,-1≤y≤1,其中,m’为点u,v间的列数,V*(x,0)表示从u(0,0)到点(x,0),并经过与点(x,0)向上或向下所连的垂直边的路径数,用下列表达式计算:V*(x,0)=m′,0≤x≤m′,当u,v位于同一列时,设u,v之间的行数为m”,将上述表达式中m’的值用m”代入便计算出相应的pk1,pk2,然后,再将pk1,pk2累加到各边对应的pk上,k1,k2分别为各边的编号;步骤5快速布线步骤5.1对每一条线网进行布线,具体操作如下:步骤5.1.1读入用Prim算法划分后,并按划分顺序标过序号的两引脚段序列;步骤5.1.2标记第一个两引脚段中的任一个引脚点;步骤5.1.3从5.1.2中所指的引脚段开始,按标号顺序依次对于两引脚段序列中的每一个两引脚段,执行下列操作:步骤5.1.3.1检查当前的两引脚段的两个引脚是否都被标记;步骤5.1.3.2如果是,那么取下一个两引脚段,并重新转到步骤5.1.3.1;否则,将未标记的引脚作为起点,并执行下面步骤;步骤5.1.3.3将起点设为当前点u*,并对其标记被访问过;步骤5.1.3.4按照边界框布线的约定,找到与u*相邻的两个可行顶点集合Vp 和两条可行边的集合Ep={ek1,ek2},按如下方法选择一条边:产生[0,1]之间的一个随机数,如果这个随机数不大于pk2ck1/(pk1ck2+pk2ck1),那么选择与分子ck1对应的边ek1,即i=k1,否则选择边ek2,即i=k2;步骤5.1.3.5将被选边ei的另一个端点vi作为新的当前点u*;步骤5.1.3.6检查当前点是否被标记,如果未被标记,则标记该点并依照步骤5.1.3.4的方法选择下一个点;如果被标记,则记录所有经过路径;步骤5.2所有线网布好线后,对每条线网经过的边的通道使用量λk累加1,统计每条边上的使用量;步骤5.3计算各个边的拥挤度值ηk=λk/ck;步骤6输出步骤6.1将拥挤估计结果和快速布线结果写入Si2推出的工业界标准的数据库平台OpenAccess;步骤6.2输出评测报告。
地址 100084北京市100084-82信箱