[发明专利]基于可满足性问题SAT的可制造性热点拆线重布方法有效

专利信息
申请号: 201010195323.2 申请日: 2010-05-31
公开(公告)号: CN101894178A 公开(公告)日: 2010-11-24
发明(设计)人: 蔡懿慈;周强;杨帆 申请(专利权)人: 清华大学
主分类号: G06F17/50 分类号: G06F17/50
代理公司: 北京众合诚成知识产权代理有限公司 11246 代理人: 朱琨
地址: 100084 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 基于可满足性问题SAT的可制造性热点拆线重布方法属于VLSI物理设计领域,其特性在于:它以热点的拓扑结构约束和线网连通性约束为指导,对于区域内的所有重布线网同时建立SAT约束,通过求解该约束问题完成对多条线网同时布线的过程,可以有效的控制新的可制造性热点的产生;同时,由于方法采用了基于区域的拆线重布策略,使得其效率得以保障,又通过动态边界调整和带有偏移量的两阶段拆线重布过程大大提高了版图内的热点消除比率。实验结果证明该方法可以快速有效地消除版图中的可制造性热点,与传统的针对热点的拆线重布算法相比,其收敛性更好,可以更有效地避免新热点的产生,同时保证可以找到一种存在的可行的布线方案。
搜索关键词: 基于 满足 问题 sat 制造 热点 拆线 方法
【主权项】:
1.基于可满足性问题SAT的可制造性热点的拆线重布方法,其特性在于,所述方法是在计算机中,依次按以下步骤实现的:步骤(1),计算机初始化:输入已经完成详细布线的版图信息和该版图中所包含的所有热点信息,其中:所述版图表示成一个二维数组[vi,j]I×J来实现,二维数组的大小等于版图的网格数I×J,网格vi,j的大小等于一个设定的线间距加上一个设定的线宽,i表示网格的行号,j表示网格的列号,i=1,2,...,I,j=1,2,...,J,版图中的所有线网编号1,2,...,K,所述线网是由构成该线网的线网段连接而成,线网中心线沿网格中心线走线,版图中线网的布线信息和障碍信息通过网格vi,j的取值表示,vi,j取值K+1,即vi,j=K+1,表示该网格是布线障碍,也就是当网格的取值超过了线网最大编号K时,该网格视为布线障碍;取值0,即vi,j=0,表示网格空闲;取值k,即vi,j=k,1≤k≤K,表示该网格被编号为k的线网占据,所述的热点包括山型热点和锥型热点,所述两种类型的热点分别由一套对应的数据结构表示,数据结构中包括了构成山型或锥型热点的每个线网段两端的位置和长度信息,所述的热点信息是指一个由版图中所有热点构成的链表,链表的每一个元素包括热点类型,构成该热点的两个线网的编号,以及该热点所对应的所述的数据结构;步骤(2),在计算机中设定以下功能模块:无线形限制的端点连通性模块,无线形限制的非端点连通性模块,有线形限制的起点连通性模块,有线形限制的起点连通性模块,第一有线形限制的向上扩展的连通性模块,第二有线形限制的向上扩展的连通性模块,第三有线形限制的向上扩展的连通性模块,第一有线形限制的向下扩展的连通性模块,第二有线形限制的向下扩展的连通性模块,第三有线形限制的向下扩展的连通性模块,第一有线形限制的向左扩展的连通性模块,第二有线形限制的向左扩展的连通性模块,第三有线形限制的向左扩展的连通性模块,第一有线形限制的向右扩展的连通性模块,第二有线形限制的向右扩展的连通性模块,第三有线形限制的向右扩展的连通性模块,热点约束模块,障碍约束模块,其中,无线形限制的端点连通性模块,给出了在所述线网线形未设限制的条件下,版图中包含端点的网格为了满足线网正确连通所需要满足的约束的表达式,输入为一个包含端点的网格的行号i和列号j,和该端点属于的线网的编号k,输出为该包含端点的网格对应的约束表达式:[(vi-1,j=k)+(vi+1,j=k)+(vi,j-1=k)+(vi,j+1=k)]·[(vi-1,j=k)+(vi+1,j=k)+(vi,j-1≠k)+(vi,j+1≠k)]·[(vi-1,j=k)+(vi+1,j≠k)+(vi,j-1=k)+(vi,j+1≠k)]·[(vi-1,j=k)+(vi+1,j≠k)+(vi,j-1≠k)+(vi,j+1=k)]·[(vi-1,j=k)+(vi+1,j≠k)+(vi,j-1≠k)+(vi,j+1≠k)]·[(vi-1,j≠k)+(vi+1,j=k)+(vi,j-1=k)+(vi,j+1≠k)]·[(vi-1,j≠k)+(vi+1,j=k)+(vi,j-1≠k)+(vi,j+1=k)]·[(vi-1,j≠k)+(vi+1,j=k)+(vi,j-1≠k)+(vi,j+1≠k)]·[(vi-1,j≠k)+(vi+1,j≠k)+(vi,j-1=k)+(vi,j+1=k)]·[(vi-1,j≠k)+(vi+1,j≠k)+(vi,j-1=k)+(vi,j+1≠k)]·[(vi-1,j≠k)+(vi+1,j≠k)+(vi,j-1≠k)+(vi,j+1=k)]·[(vi-1,j≠k)+(vi+1,j≠k)+(vi,j-1≠k)+(vi,j+1≠k)]其中,“+”表示逻辑或的关系,“·”表示逻辑与的关系,后面的符号表示意义与此相同,无线形限制的非端点连通性模块,给出了在所述线网线形未设限制的条件下,版图中不包含端点的网格为了满足线网正确连通所需要满足的约束的表达式,输入为一个不包含端点的网格的行号i和列号j,和某待布线网编号k,1≤k≤K,输出为该不包含端点的网格对应的约束表达式:[(vi,j≠k)+(vi-1,j=k)+(vi+1,j=k)+(vi,j-1=k)+(vi,j+1=k)]·[(vi,j≠k)+(vi-1,j=k)+(vi+1,j=k)+(vi,j-1=k)+(vi,j+1≠k)]·[(vi,j≠k)+(vi-1,j=k)+(vi+1,j=k)+(vi,j-1≠k)+(vi,j+1=k)]·[(vi,j≠k)+(vi-1,j=k)+(vi+1,j≠k)+(vi,j-1=k)+(vi,j+1=k)]·[(vi,j≠k)+(vi-1,j=k)+(vi+1,j≠k)+(vi,j-1≠k)+(vi,j+1≠k)]·[(vi,j≠k)+(vi-1,j≠k)+(vi+1,j=k)+(vi,j-1=k)+(vi,j+1=k)]·[(vi,j≠k)+(vi-1,j≠k)+(vi+1,j=k)+(vi,j-1≠k)+(vi,j+1≠k)]·[(vi,j≠k)+(vi-1,j≠k)+(vi+1,j≠k)+(vi,j-1=k)+(vi,j+1≠k)]·[(vi,j≠k)+(vi-1,j≠k)+(vi+1,j≠k)+(vi,j-1≠k)+(vi,j+1=k)]·[(vi,j≠k)+(vi-1,j≠k)+(vi+1,j≠k)+(vi,j-1≠k)+(vi,j+1≠k)]有线形限制的起点连通性模块,给出了在所述线网线形设有限制的条件下,线网的起点为了满足该线网正确连通所需要满足的约束的表达式,其中,线网线形的限制是指该线网的连线最多包含两个拐点,输入为当前待布线网的起点所在网格的行号si,列号sj,输出为该线网起点所在网格对应的约束表达式:(vsi,sj=k)·[(vsi-1,sj=k)+(vsi,sj-1=k)+(vsi,sj+1=k)+(vsi+1,sj=k)]第一有线形限制的向上扩展的连通性模块,给出了在所述线网线形设有限制的条件下,若起点最初的扩展方向为向上时,位于线网起点与线网第一个拐点之间的网格为了满足该线网正确连通所需要满足的约束的表达式,其中,线网线形的限制是指该线网的连线最多包含两个拐点,输入为当前待布线网的起点所在网格的行号si,列号sj,布线区域的上边界T,该位于线网起点与线网第一个拐点之间的网格的行号i和列号j,T<i<si,j=sj,输出为对应的约束表达式:(vi,j≠k)·{[(vi,j+1=k)·(vi-1,j≠k)]+[(vi,j+1≠k)·(vi-1,j=k)]}第二有线形限制的向上扩展的连通性模块,给出了在所述线网线形设有限制的条件下,若起点最初的扩展方向为向上时,在线网走线发生第一个拐弯后,从这个拐弯到终点的路径上的网格为了满足该线网正确连通所需要满足的约束的表达式,其中,线网线形的限制是指该线网的连线最多包含两个拐点,输入为当前待布线网的起点所在网格的行号si,列号sj,布线区域的上边界T,连线发生第一个拐弯后到达的网格的行号i和列号j,T<i<si,j=sj+1,输出为对应的约束表达式:[(vsi-1,sj≠k)·(vi,j≠k)]·[(vi,sj+2=k)·(vi,sj+3=k)·...·(vi,tj=k)]·[(vm,tj=k)·(vm+1,tj=k)·...·(vM,tj=k)]其中,m=min(ti,i),表示m等于ti和i中较小的那个数,M=max(ti,i),表示M等于ti和i中较大的那个数,...表示连乘,后面公式中的符号...同样表示连乘,第三有线形限制的向上扩展的连通性模块,给出了在所述线网线形设有限制的条件下,若起点最初的扩展方向为向上且已经扩展到了布线区域的上边界时,整个连线路径上的网格为了满足该线网正确连通所需要满足的约束的表达式,其中,线网线形的限制是指该线网的连线最多包含两个拐点,输入为一个线网的起点所在网格的行号si,列号sj,终点所在网格的行号ti,列号tj,布线区域的上边界T,输出为对应的约束表达式:[(vsi-1,sj≠k)·(vT,sj≠k)]·[(vT,sj+1=k)·(vT,sj+2=k)·...·(vT,tj=k)]·[(vT,tj=k)·(vT+1,tj=k)·...·(vti,tj=k)]第一有线形限制的向下扩展的连通性模块,给出了在所述线网线形设有限制的条件下,若起点最初的扩展方向为向下时,位于线网起点与线网第一个拐点之间的网格为了满足该线网正确连通所需要满足的约束的表达式,其中,线网线形的限制是指该线网的连线最多包含两个拐点,输入为当前待布线网的起点所在网格的行号si,列号sj,布线区域的下边界B,该位于线网起点与线网第一个拐点之间的网格的行号i和列号j,si<i<B,j=sj,输出为对应的约束表达式:(vi,j≠k)·{[(vi,j+1=k)·(vi+1,j≠k)]+[(vi,j+1≠k)·(vi+1,j=k)]}第二有线形限制的向下扩展的连通性模块,给出了在所述线网线形设有限制的条件下,若起点最初的扩展方向为向下时,在线网走线发生第一个拐弯后,从这个拐弯到终点的路径上的网格为了满足该线网正确连通所需要满足的约束的表达式,其中,线网线形的限制是指该线网的连线最多包含两个拐点,输入为当前待布线网的起点所在网格的行号si,列号sj,终点所在网格的行号ti,列号tj,布线区域的下边界B,连线发生第一个拐弯后到达的网格的行号i和列号j,si<i<B,j=sj+1,输出为对应的约束表达式:[(vsi+1,sj≠k)·(vi,j≠k)]·[(vi,sj+2=k)·(vi,sj+3=k)·...·(vi,tj=k)]·[(vm,tj=k)·(vm+1,tj=k)·...·(vM,tj=k)]其中,m=min(ti,i),表示m等于ti和i中较小的那个数,M=max(ti,i),表示M等于ti和i中较大的那个数,第三有线形限制的向下扩展的连通性模块,给出了在所述线网线形设有限制的条件下,若起点最初的扩展方向为向下且已经扩展到了布线区域的下边界时,整个连线路径上的网格为了满足该线网正确连通所需要满足的约束的表达式,其中,线网线形的限制是指该线网的连线最多包含两个拐点,输入为当前待布线网的起点所在网格的行号si,列号sj,终点所在网格的行号ti,列号tj,布线区域的下边界B,输出为对应的约束表达式:[(vsi+1,sj≠k)·(vB,sj≠k)]·[(vB,sj+1=k)·(vB,sj+2=k)·...·(vB,tj=k)]·[(vB,tj=k)·(vB-1,tj=k)·...·(vti,tj=k)]第一有线形限制的向左扩展的连通性模块,给出了在所述线网线形设有限制的条件下,若起点最初的扩展方向为向左时,位于线网起点与线网第一个拐点之间的网格为了满足该线网正确连通所需要满足的约束的表达式,其中,线网线形的限制是指该线网的连线最多包含两个拐点,输入为当前待布线网的起点所在网格的行号si,列号sj,布线区域的左边界L,该位于线网起点与线网第一个拐点之间的网格的行号i和列号j,i=si,L<j<sj,输出为对应的约束表达式:(vi,j≠k)·{[(vi,j-1=k)·(vi+1,j≠k)]+[(vi,j-1≠k)·(vi+1,j=k)]}第二有线形限制的向左扩展的连通性模块,给出了在所述线网线形设有限制的条件下,若起点最初的扩展方向为向左时,在线网走线发生第一个拐弯后,从这个拐弯到终点的路径上的网格为了满足该线网正确连通所需要满足的约束的表达式,其中,线网线形的限制是指该线网的连线最多包含两个拐点,输入为当前待布线网的起点所在网格的行号si,列号sj,布线区域的左边界L,连线发生第一个拐弯后到达的网格的行号i和列号j,i=si+1,L<j<sj,输出为对应的约束表达式:[(vsi,sj-1≠k)·(vi,j≠k)]·[(vsi+2,j=k)·(vsi+3,j=k)·...·(vti,j=k)]·[(vti,m=k)·(vti,m+1=k)·...·(vti,M=k)]其中,m=min(tj,j),表示m等于tj和j中较小的那个数,M=max(tj,j),表示M等于tj和j中较大的那个数,第三有线形限制的向左扩展的连通性模块,给出了在所述线网线形设有限制的条件下,若起点最初的扩展方向为向左且已经扩展到了布线区域的左边界时,整个连线路径上的网格为了满足该线网正确连通所需要满足的约束的表达式,其中,线网线形的限制是指该线网的连线最多包含两个拐点,输入为当前待布线网的起点所在网格的行号si,列号sj,终点所在网格的行号ti,列号tj,布线区域的左边界L,输出为对应的约束表达式:[(vsi,sj-1≠k)·(vsi,L≠k)]·[(vsi+1,L=k)·(vsi+2,L=k)·...·(vsi,L=k)]·[(vti,L=k)·(vti,L+1=k)·...·(vti,tj=k)]第一有线形限制的向右扩展的连通性模块,给出了在所述线网线形设有限制的条件下,若起点最初的扩展方向为向右时,位于线网起点与线网第一个拐点之间的网格为了满足该线网正确连通所需要满足的约束的表达式,其中,线网线形的限制是指该线网的连线最多包含两个拐点,输入为当前待布线网的起点所在网格的行号si,列号sj,布线区域的右边界R,该位于线网起点与线网第一个拐点之间的网格的行号i和列号j,i=si,sj<j<R,输出为对应的约束表达式:(vi,j≠k)·{[(vi,j+1=k)·(vi+1,j≠k)]+[(vi,j+1≠k)·(vi+1,j=k)]}第二有线形限制的向右扩展的连通性模块,给出了在所述线网线形设有限制的条件下,若起点最初的扩展方向为向右时,在线网走线发生第一个拐弯后,从这个拐弯到终点的路径上的网格为了满足该线网正确连通所需要满足的约束的表达式,其中,线网线形的限制是指该线网的连线最多包含两个拐点,输入为当前待布线网的起点所在网格的行号si,列号sj,布线区域的右边界R,连线发生第一个拐弯后到达的网格的行号i和列号j,i=si+1,sj<j<R,输出为对应的约束表达式:[(vsi,sj+1≠k)·(vi,j≠k)]·[(vsi+2,j=k)·(vsi+3,j=k)·...·(vti,j=k)]·[(vti,m=k)·(vti,m+1=k)·...·(vti,M=k)]其中,m=min(tj,j),表示m等于tj和j中较小的那个数,M=max(tj,j),表示M等于tj和j中较大的那个数,第三有线形限制的向右扩展的连通性模块,给出了在所述线网线形设有限制的条件下,若起点最初的扩展方向为向右且已经扩展到了布线区域的右边界时,整个连线路径上的网格为了满足该线网正确连通所需要满足的约束的表达式,其中,线网线形的限制是指该线网的连线最多包含两个拐点,输入为一个线网的起点所在网格的行号si,列号sj,终点所在网格的行号ti,列号tj,布线区域的右边界R,输出为对应的约束表达式:[(vsi,sj+1≠k)·(vsi,R≠k)]·[(vsi+1,R=k)·(vsi+2,R=k)·...·(vti,R=k)]·[(vti,R=k)·(vti,R-1=k)·....·(vti,tj=k)]热点约束模块,在每个可能形成热点的位置添加热点约束,限制热点的形成,输入为该位置网格所在的行号i,列号j,以及该网格所属的线网编号k,1≤k≤K,输出为对应的约束表达式:其中,∏表示连乘,障碍约束模块,对每个布线障碍的网格添加障碍约束,使得该网格不被任何线网所占有且不空闲,输入为该网格的行号i,列号j,版图最大的线网编号K,输出为对应的约束表达式:vi,j=K+1步骤(3),按以下步骤把所述版图划分成由网格构成的区域:把整个所属版图划分成数个不相交但相互连接的大小由15×15~20×20个网格组成的区域,跨越多个区域的线网被由各区域边界与该线网的交点切分为多个线网段;步骤(4),遍历步骤(3)中所述的所有区域,对每个包含热点的所述区域,进行拆线重布:步骤(4.1),通过所述热点的位置信息判断当前区域是否包含没有经过拆线重布处理的热点图形,所述热点位置信息由热点中央线网段的两个端点中距离热点底部线网段较近的一个端点的位置表示,若该区域内部以及区域边界上没有热点,则重复该步骤(4.1)检查下一个区域,否则,执行步骤(4.2),步骤(4.2),若某热点恰好位于所述区域边界上,则通过对所述区域的四个边界平移1~2个网格单元使所述热点位于该区域内,然后记录新的边界,若不能使所述热点落到该区域内,则保留原区域边界,设区域的上、下、左、右边界分别为U、B、L、R,步骤(4.3),若所述区域内部包含热点,则执行拆线重布过程:步骤(4.3.1),标记所述区域内部的所有热点为已经过拆线重布处理,步骤(4.3.2),拆除构成所述所有热点的线网,每一个被拆除的线网作为重布阶段的一个待布线网,被拆除的线网的端点为待布线网的端点,步骤(4.4),把所述布线区域内的其他线网设置为布线障碍,步骤(5),初始化一个约束表达式集合Set,按以下步骤建立将待布线网需要满足的约束表达式添加到Set中,其步骤如下:步骤(5.1),遍历所述区域内的所有待布线网,对每个待布线网添加线网连通性约束,设该待布线网的编号为k,起点所在的网格为vsi,sj,终点所在的网格为vti,tj,其步骤如下:步骤(5.1.1),若该待布线网的线形未设限制,遍历所有所属区域内的网格,若该遍历到的网格vi,j包含该待布线网k的端点,则调用所述的无线形限制的端点连通性模块,输入该网格所在的行号i和列号j,将输出的约束表达式添加到Set中,若该遍历到的网格不包含该待布线网k的端点,则调用所述的无线形限制的非端点连通性模块,输入该网格所在的行号i和列号j和该待布线网编号k,将输出的约束表达式添加到Set中,步骤(5.1.2),若该待布线网的线形设有限制,即要求线网的连线最多包含两个拐点,步骤(5.1.2.1),对该待布线网的起点所在的网格vsi,sj调用有线形限制的起点连通性模块,输入该待布线网的起点所在网格的行号si,列号sj,将输出的约束表达式添加到Set中,步骤(5.1.2.2),若该待布线网的起点和重点所在的网格坐标满足tj>sj,即终点的横坐标大于起点的横坐标,则执行步骤(5.4.2.3),否则交换起点和终点,并将新的起点所在的网格设为vsi,sj,新的终点所在的网格设为vti,tj,步骤(5.1.2.3),遍历位于起点的垂直方向上且在起点上方的网格vi,j,T<i<si,j=sj,调用有线形限制的向上扩展的连通性模块一,输入该待布线网的起点所在网格的行号si,列号sj,布线区域的上边界T,该遍历到的网格的行号i和列号j,将输出的约束表达式添加到Set中,步骤(5.1.2.4),遍历位于网格vsi,sj+1的垂直方向上且在vsi,sj+1上方的网格vi,j,T<i<si,j=sj+1,调用有线形限制的向上扩展的连通性模块二,输入该待布线网的起点所在网格的行号si,列号sj,布线区域的上边界T,该遍历到的网格的行号i和列号j,将输出的约束表达式添加到Set中,步骤(5.1.2.5),对该待布线网调用有线形限制的向上扩展的连通性模块三,输入该待布线网的起点所在网格的行号si和列号sj,终点所在网格的行号ti和列号tj,布线区域的上边界T,将输出的约束表达式添加到Set中,步骤(5.1.2.6),遍历位于起点的垂直方向上且在起点下方的网格vi,j,si<i<B,j=sj,调用有线形限制的向下扩展的连通性模块一,输入该待布线网的起点所在网格的行号si,列号sj,布线区域的下边界B,该遍历到的网格的行号i和列号j,将输出的约束表达式添加到Set中,步骤(5.1.2.7),遍历位于网格vsi,sj+1的垂直方向上且在vsi,sj+1下方的网格vi,j,T<i<si,j=sj+1,调用有线形限制的向下扩展的连通性模块二,输入该待布线网的起点所在网格的行号si,列号sj,布线区域的下边界B,该遍历到的网格的行号i和列号j,将输出的约束表达式添加到Set中,步骤(5.1.2.8),对该待布线网调用有线形限制的向下扩展的连通性模块三,输入该待布线网的起点所在网格的行号si和列号sj,终点所在网格的行号ti和列号tj,布线区域的下边界B,将输出的约束表达式添加到Set中,步骤(5.1.2.9),若该待布线网的起点和重点所在的网格坐标满足ti>si,即终点的纵坐标大于起点的纵坐标,则执行步骤(5.4.2.10),否则交换起点和终点,并将新的起点所在的网格设为vsi,sj,新的终点所在的网格设为vti,tj,步骤(5.1.2.10),遍历位于起点的水平方向上且在起点左方的网格vi,j,i=si,L<j<sj,调用有线形限制的向左扩展的连通性模块一,输入该待布线网的起点所在网格的行号si,列号sj,布线区域的左边界L,该遍历到的网格的行号i和列号j,将输出的约束表达式添加到Set中,步骤(5.1.2.11),遍历网格vsi+1,sj的水平方向上且在vsi+1,sj左方的网格vi,j,i=si+1,L<j<sj,调用有线形限制的向左扩展的连通性模块二,输入该待布线网的起点所在网格的行号si,列号sj,布线区域的左边界L,该遍历到的网格的行号i和列号j,将输出的约束表达式添加到Set中,步骤(5.1.2.12),对该待布线网调用有线形限制的向左扩展的连通性模块三,输入该待布线网的起点所在网格的行号si和列号sj,终点所在网格的行号ti和列号tj,布线区域的左边界L,将输出的约束表达式添加到Set中,步骤(5.1.2.13),遍历位于起点的水平方向上且在起点右方的网格vi,j,i=si,sj<j<R,调用有线形限制的向右扩展的连通性模块一,输入该待布线网的起点所在网格的行号si,列号sj,布线区域的右边界R,该遍历到的网格的行号i和列号j,将输出的约束表达式添加到Set中,步骤(5.1.2.14),遍历网格vsi+1,sj的水平方向上且在vsi+1,sj右方的网格vi,j,i=si+1,L<j<sj,调用有线形限制的向右扩展的连通性模块二,输入该待布线网的起点所在网格的行号si,列号sj,布线区域的右边界R,该遍历到的网格的行号i和列号j,将输出的约束表达式添加到Set中,步骤(5.1.2.15),对该待布线网调用有线形限制的向右扩展的连通性模块三,输入该待布线网的起点所在网格的行号si和列号sj,终点所在网格的行号ti和列号tj,布线区域的右边界R,将输出的约束表达式添加到Set中,步骤(5.2),遍历所述区域内的所有待布线网,对每个待布线网的端点添加热点约束,设该待布线网的编号为k,起点所在的网格为vsi,sj,终点所在的网格为vti,tj,对起点所在的网格调用热点约束模块,输入行号si和列号sj,该待布线网的编号k,将输出的约束表达式添加到Set中,对终点所在的网格调用热点约束模块,输入行号ti和列号tj,该待布线网的编号k,将输出的约束表达式添加到Set中,步骤(5.3),遍历所述区域内的所有作为布线障碍的网格,对该遍历到的网格vi,j调用障碍约束模块,输入该网格的行号i和列号j,版图中最大的线网编号K,将输出的约束表达式添加到Set中,步骤(6),将约束表达式集合Set中的所有约束表达式合并为一个约束表达式F,该约束表达式F为Set中所有约束表达式的连乘,使得F取值为真当且仅当Set中的每个约束表达式都可以取值为真,即其中∈是属于的意思,s∈Set表示s是Set集合中的一个约束表达式,步骤(7),对所述的约束表达式F,利用求解器zChaff求解并还原为版图信息,完成重布线过程:若存在可行解,则在有热点约束下已完成布线,对于每个网格,其取值K+1就代表该网格被障碍覆盖,取值0代表该网格空闲,取值为k,1<k<K表示该网格被编号为k的线网占据,若不存在可行解,则说明该区域的热点无法消除,保留原版图区域,继续执行下一个版图区域,一直到全部区域执行完毕;步骤(8),在版图的水平和垂直方向上偏移设定的偏移之后再进行划分区域,以便对个别落在区域边界上的未处理的热点按步骤(3)~步骤(7)进行处理;步骤(9),计算机输出结果。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201010195323.2/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top