发明内容
为解决现有技术中集成电路物理版图数据处理速度慢、耗时长的问题,本发明提供一种针对集成电路物理版图设计的、基于计算机辅助的,利用区域划分、区域同构以及计算复用来提高集成电路物理版图分析和优化速度的方法,包括:
步骤1:输入集成电路物理版图数据;
步骤2:对物理版图进行区域划分;
步骤3:将不同的区域交给不同的计算节点;
步骤4:各计算节点对分配的区域进行分析和优化;
步骤5:输出集成电路物理版图分析结果;
所述步骤4具体包括:
步骤41:对计算节点内的区域再进行多级划分得到更小的区域;
步骤42:分别对各计算节点内的区域进行同构分析,确定相同的区域;
步骤43:对各计算节点之间的区域进行同构分析,确定相同的区域;
步骤44:根据同构步骤42、步骤43的分析结果,确定各计算节点内及相互之间的区域分析顺序;
步骤45:按顺序对区域进行分析和优化,在分析和优化过程中复用计算节点之间同构区域分析和优化的结果。
本发明的另一优选方式:所述步骤42、步骤43中同构分析方法如下:
(1)从未被同构的区域中选定一个计算节点的区域为基本区域,对所述基本区域的一个顶角进行旋转和/或以X/Y轴做镜像操作,产生多个选定角度状态下的变体图形区域;
(2)对各个变体图形区域进行编码,得到变体之后各自的编码值CODEA;
(3)将用来对比的一个计算节点的区域作为待同构分析的比较区域,对所述比较区域进行编码;
(4)把基本区域的变体图形区域的编码值CODEA和比较区域的编码值分别进行比较;
(5)若基本区域的任一变体的编码值和比较区域编码值相同,则该两区域为同构的区域,否则该两区域为异构的区域。
本发明的另一优选方式:所述步骤(1)具体包括:所述顶角为基本区域最小外接矩形的左下角点,镜像时以最小外接矩形的底边或左边为镜像轴,旋转和/或镜像之后,将最小外接矩形的左下角移植到原基本区域最小外接矩形的左下角点的坐标处,产生这些状态下的八个变体图形区域。
本发明的另一优选方式:所述编码的方法如下:
(1)选择最靠左侧的图形在其左侧作Y轴的平行线,选择最靠底边的图形在其下侧作平行于Y轴的平行线,以这两条线的交点作为参考点;
(2)以固定的间距从参考点处开始,将覆盖待编码的区域内的所有图形的区域在Y轴方向分为若干个区域带,沿着Y轴方向分别处理这些区域带;
(3)在每一区域带内沿X轴方向逆时针扫描,以确定新的未编码的图形;
对未编码的图形按如下规则进行编码:选择该图形最低的点作为起始点;若同时存在若干个Y值相同的最低点,则选择其中X值最小的点作为起始点;从起始点开始按逆时针遍历图形的顶点得到该图形的顶点坐标值序列;对这些顶点坐标值序列的顶点坐标值以参考点作平移变换,以替换顶点序列中的坐标值从而得到新的顶点坐标值序列,以此作为该图形在区域内的编码值,同时对处理过的图形作标识;
(4)以每个计算节点处理区域内图形的顺序,对每一图形的顶点坐标值序列进行排序,从而得到区域的编码值。
本发明利用多级区域分割算法对物理版图进行划分,考虑到海量物理版图上局部区域之间有完全相同的区域,它们的分析和优化过程及结果也应该完全相同。因此利用同构分析方法对划分后的图形区域进行相互分析,找出其中相同的区域,编制整个物理版图的计算顺序,使时间顺序上在后分析和优化的相同区域,不用再进行计算,而是直接复用与其完全相同的再先相同区域的计算结果,从而节约时间,提高速度。本方案不但可以在各计算节点内进行同构分析,还可以在各计算节点之间同构分析,使各计算节点的同构信息共享,并支持所有计算结果的复用。本技术方案可有效地、多层次地缩小计算规模和计算结果,利用复用方法大大加快了海量物理版图的分析和优化速度。
具体实施方式
下面结合附图和实施例,对本发明技术方案作进一步描述。
本发明利用多级区域分割算法对物理版图进行划分,以区域同构算法对计算结果进行复用,多层次地缩小计算规模和计算结果复用大大加快了海量物理版图的分析和优化速度。
参见图2,本发明实施例的集成电路物理版图分析和优化的方法如下:
步骤201:输入集成电路物理版图数据;即将需要分析和处理的物理版图数据输入计算机。
步骤202:对物理版图进行区域划分;划分是利用多级区域分割算法。
步骤203:将不同的区域交给不同的计算节点;由单独的计算节点负责一个独立的划分区域。
步骤204:各计算节点对分配的区域进行分析和优化;其中的分析包括首先对区域进行同构分析:对计算节点内的区域再进行多级划分得到更小的区域;即对每个计算节点内的区域再进行多级划分以得到符合同构分析标准的最小区域。
步骤205:分别对各计算节点内的区域进行同构分析,确定相同的区域;利用同构分析确定每个计算节点内的区域是否存在相同区域。
步骤206:对各计算节点之间的区域进行同构分析,确定相同的区域;也就是对划分的不同计算节点之间的区域进行横向同构分析,进一步找出相同的区域。
步骤207:根据上述计算节点内和计算节点之间的区域同构分析结果,确定各计算节点内及相互之间的区域分析顺序;即确定计算节点内及相互之间各个同构区域位置,并确定一个分析顺序,顺序的排列需要保证不同计算节点之间,不会同时进行两个相同区域的计算,并记录相同区域各区域先后计算的顺序;
步骤208:按顺序对物理版图进行分析和优化,在分析和优化过程中复用计算节点之间同构区域分析和优化的结果;即按照上步的分析顺序开始对整个物理版图进行分析,在分析的过程中,顺序在前的某个计算节点已经计算过相同区域中的一个区域,则顺序再后的计算节点在计算相同区域的另一个区域时,只需要调用在先计算节点已经计算过的相同区域结果即可,这种复用的方式大大加快了整个物理版图的计算过程。
步骤209:最后输出集成电路物理版图分析结果。
本方法中对两个区域进行同构分析的方法如下:
(1)从未被同构的区域中选定一个计算节点的区域为基本区域,对所述基本区域的一个顶角进行旋转和/或以X/Y轴做镜像操作,产生多个选定角度状态下的变体图形区域;所说的顶角为基本区域最小外接矩形的左下角点,镜像时以最小外接矩形的底边或左边为镜像轴,旋转和/或镜像之后(操作可以是单项,也可以是复合的),将最小外接矩形的左下角移植到原基本区域最小外接矩形的左下角点的坐标处,产生这些状态下的八个变体图形区域MNR0,MNR90,MNR180,MNR270,MXR0(MYR180),MXR90(MYR270),MXR180(MYR0),MXR270(MYR90);其中代表符号后面的数值就表示区域旋转和/或镜像的选定角度,如MXR270就是指区域以X轴旋转270度时镜像得到的角度。
(2)对基本区域的各个变体图形区域进行编码,得到变体之后各自的编码值CODEA,如CODE1、CODE2、CODE3、CODE4、CODE5、CODE6、CODE7、CODE8。从区域同构的角度讲这些编码值是等价,因此只要基本区域的八个编码值中的任一个与比较区域的编码值一致,就可得到基本区域的编码值与比较区域的编码值一致的判定。
(3)将用来对比的一个计算节点的区域作为待同构分析的比较区域,对所述比较区域进行编码;确定待比较区域的编码值。
(4)把基本区域的变体图形区域的编码值CODEA和比较区域的编码值分别进行比较;即将基本区域产生的八个变体图形区域的图形编码值CODE1、CODE2、CODE3、CODE4、CODE5、CODE6、CODE7、CODE8分别与比较区域的编码值进行比较。
(5)若基本区域的任一变体的编码值和比较区域编码值相同,则该两区域为同构的区域,否则该两区域为异构的区域;即确定比较区域的编码值与某个角度下的变体图形区域的编码值CODEA相同时,只需记住基本区域的各变体图形区域之间编码值的相互关系,在对物理版图进行分析和计算时,按对应关系转换即可得到比较区域的编码值,也就不用再次计算相同的比较区域的编码值,从而达到节省整个处理时间的目的。
参见图3,在同构分析中的用到的编码方法如下:
步骤301:选择最靠左侧的图形在其左侧作Y轴的平行线,选择最靠底边的图形在其下侧作平行于Y轴的平行线,以这两条线的交点作为参考点;
步骤302:以固定的间距从参考点处开始,将覆盖待编码的区域内的所有图形的区域在Y轴方向分为若干个区域带,沿着Y轴方向分别处理这些区域带;
步骤303:在每一区域带内沿X轴方向逆时针扫描,以确定新的未编码的图形;
步骤304:以每个计算节点处理区域内图形的顺序,对每一图形的顶点坐标值序列进行排序,从而得到区域的编码值。
参见图4,其中对未编码的图形按如下规则进行编码:
步骤401:选择该图形最低的点作为起始点;若同时存在若干个Y值相同的最低点,则选择其中X值最小的点作为起始点;
步骤402:从起始点开始按逆时针遍历图形的顶点得到该图形的顶点坐标值序列;
步骤403:对这些顶点坐标值序列的顶点坐标值以参考点作平移变换,以替换顶点序列中的坐标值从而得到新的顶点坐标值序列,以此作为该图形在区域内的编码值,同时对处理过的图形作标识。作了标识可减少在实际处理物理版图时,多次同构分析调用中可能产生的不必要的同构分析过程。
本发明实施例中同构分析方法的比较过程如下:如图5、6、7所示,将图5中的基本区域进行等效变体,得到图7所示的8个变体图形区域,以下是8个变体图形区域的编码:
CODE1.MNR0:(0,0)L(XL1+XL2,0)L(0,YL1+YL2)L(XL3,0)L(0,-YL1-YL2)L(XL4,0)L(0,YL1+YL2+YL3)L(-XL2-XL3-XL4-XL5,0)L(0,-YL2-YL3)L(-XL1,0)L(0,-YL1)“+”
(XL1+XL2+XL3+XL4+XL5,YL4)L(XL6+XL7,0)L(0,YL5+YL6)L(X8,0)L(0,YL5+YL6)L(XL9,0)L(0,YL5+YL6+YL7)L(-XL7-XL8-XL9,0)L(0,-YL6-YL7)L(-XL6,0)L(0,YL5)
CODE2.MNR90:(0,XL1+XL2+XL3+XL4+XL5+Xl6)L(YL6+YL7,0)L(0,-XL6)L(YL5,0)L(XL6+XL7)L(-YL5-YL6,0)L(0,-XL8)L(YL5+YL6,0)L(0,XL9)L(-YL5-YL6-YL7,0)L(0,-XL7-XL8-XL9)“+”
(YL4+YL5-+YL6+YL7-YL1-YL2-YL3,XL1)L(YL2+YL3,0)L(0,-XL1)L(YL1,0)L(0,XL1+XL2)L(-YL1-YL2,0)L(0,XL3)L(YL1+YL2,0)L(0,XL4)L(-YL1-YL2-YL3,0)L(0,-XL2-XL3-XL4)
CODE3.MXR270(MYR90):(0,0)L(YL1,0)L(0,XL1)L(YL2+YL3,0)L(0,XL2+XL3+XL4)L(-YL1-YL2-YL3,0)L(0,-XL4)L(YL1+YL2,0)L(0,-XL3)L(-YL1-YL2,0)L(0,-XL1-XL2)“+”
(YL4,XL1+XL2+XL3+Xl4+Xl5)L(YL5,0)L(0,XL6)L(YL6+YL7,0)L(0,XL7+XL8+XL9)L(-YL5-YL6-YL7,0)L(0,XL9)L(YL5+YL6,0)L(0,-XL8)L(-YL5-YL6,0)L(0,-XL6-XL7)
CODE4.MNR180:(0,0)L(XL7+XL8+XL9)L(0,YL6+YL7))L(XL6,0)L(0,YL5)L(-XL6-XL7,0)L(0,-YL5-YL6)L(-XL8,0)L(0,YL5+YL6)L(-XL9,0)L(0,-YL5-YL6-YL7)“+”
(XL5+XL6+XL7+XL8+XL9,YL4+YL5+YL6+YL7-YL1-YL2-YL3)L(XL2+XL3+XL4)L(0,YL2+YL3)L(XL1,0)L(0,YL1)L(-XL1-XL2,0)L(0,-YL1-YL2)L(-XL3,0)L(0,YL1+YL2)L(-XL4,0)L(0,-YL1-YL2-YL3)
CODE5.MXR0(MYR180):(0,YL4+YL5+YL6+YL7)L(XL1,0)L(0,-YL2-YL3)L(XL2+XL3+XL4,0)L(0,YL1+YL2+YL3)L(-XL4,0)L(0,-YL1-YL2)L(-XL3,0)L(0,YL1+YL2)L(-XL1-XL2,0)L(0,-YL1)“+”
(XL1+XL2+XL3+XL4+XL5,YL6+YL7)L(XL6,0)L(0,-YL6-YL7)L(XL7+XL8+XL9,0)L(0,YL5+YL6+YL7)L(-XL9,0)L(0,-YL%-YL6)L(-XL8,0)L(0,YL5+YL6)L(-XL6-XL7,0)L(0,-YL5)
CODE6.MXR180(MYR0):YL4)L(XL9,0)L(0,YL5+YL6)L(XL8,0)L(0,-YL5-YL6)L(XL6+XL7,0)L(0,YL5)L(-XL6-XL7)L(0,YL6+YL7)L(-XL7-XL8-XL9,0)L(0,-YL5-YL6-YL7)“+”
(XL5+XL6+XL7+XL8+XL9,0)L(XL4,0)L(0,YL1+YL2)L(XL3,0)L(0,-YL1-YL2)L(XL1+XL2,0)L(0,YL1)L(-XL1,0)L(0,YL2+YL3)L(0,-XL2-XL3-XL4)L(0,-YL1-YL2-YL3)
CODE7.MNR270:(0,XL5+XL6+XL7+XL8+XL9)L(YL1+YL2+YL3,0)L(0,XL2+XL3+XL4)L(-YL2-YL3,0)L(0,XL1)L(-YL1,0)L(0,-XL1-XL2)L(YL1+YL2,0)L(0,-XL3)L(-YL1-YL2,0)L(0,-XL4)“+”
(YL4,0)L(YL5+YL6+YL7,0)L(0,XL7+XL8+XL9)L(-YL6-YL7,0)L(0,XL6)L(-YL5,0)L(0,-XL6-XL7)L(YL5+YL6,0)L(0,-XL8)L(-YL5-YL6,0)L(0-XL9)
CODE8.MXR90(MYR270):(0,0)L(YL5+YL6+YL7,0)L(0,XL9)L(-YL5-YL6,0)L(0,XL8)L(YL5+YL6,0)L(0,XL6+XL7)L(-YL5,0)L(0,-XL6)L(-YL6-YL7,0)L(0,-XL7-XL8-XL9)“+”
(YL4+YL5+YL6+YL7-YL1-YL2-YL3,XL5+XL6+XL7+XL8+XL9)L(0,XL4)L(-YL1-YL2,0)L(0,XL3)L(YL1+YL2,0)L(0,XL1+XL2)L(-YL1,0)L(0,-XL1)L(-YL2-YL3,0)L(0,-XL2-XL3-XL4)
如图6所示的比较区域的编码值为:(0,0)L(YL1,0)L(0,XL1)L(YL2+YL3,0)L(0,XL2+XL3+XL4)L(-YL1-YL2-YL3,0)L(0,-XL4)L(YL1+YL2,0)L(0,-XL3)L(-YL1-YL2,0)L(0,-XL1-XL2)“+”
(YL4,XL1+XL2+XL3+Xl4+Xl5)L(YL5,0)L(0,XL6)L(YL6+YL7,0)L(0,XL7+XL8+XL9)L(-YL5-YL6-YL7,0)L(0,XL9)L(YL5+YL6,0)L(0,-XL8)L(-YL5-YL6,0)L(0,-XL6-XL7)
将比较区域的编码值分别与基本区域的八个变体图形区域的编码值进行比较,得到CODE3的编码值与比较区域的编码值相同,即确定参考区域与比较区域为同构区域。
本方案将各计算节点内及各计算节点之间的同构区域和异构区域进行统计,以按先后顺序进行排列,再先比较计算后的同构区域内容,再后的相同同构区域只需复用即可,即直接调用即可,不用再次进行同复的计算,从而节省大量的时间。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。