一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

芯片设计的布线方法及装置、设备、存储介质与流程

2022-04-24 19:57:10 来源:中国专利 TAG:


1.本技术实施例涉及芯片设计技术,涉及但不限于芯片设计的布线方法及装置、设备、存储介质。


背景技术:

2.芯片设计过程中总会存在一些重要的时钟信号,在芯片后端设计时需要设置非缺省规则(ndr,non-default routing rule),通过增加布线宽度和布线间距以保证信号传输稳定和减小布线延时,提高芯片性能。然而,这些重要的信号线,以前需要工程师手工设计完成,近些年电子设计自动化(eda,electronic design automation)工具也开始介入解决这个问题。
3.针对工程师手工布线,存在耗时过长的缺点。尽管工程师手工布线质量是有保证的,然而,手工布线花费的时间是很长的,尤其ndr布线数量成百上千的情况下,这在竞争异常激烈的芯片设计领域可能导致设计时间过长,芯片流片延期等问题,这是很难接受的。
4.对于现有eda工具布线的方案,尽管解决了工程师手工布线需要很长时间的问题,但是,由于这些工具处理的是ndr布线工作,与以往的正常连线设计方案存在很大差别,导致工具定制出来的金属线段可能不能够满足芯片设计要求。这样就需要后期工程师对这些线段进行手工修正,从而导致芯片设计周期依然较长。


技术实现要素:

5.有鉴于此,本技术实施例提供的芯片设计的布线方法及装置、设备、存储介质,能够自动得到无设计规则检查(design rule check,drc)违例的目标线段,即得到满足布线间距要求的目标线段,从而无需后期人工修正,进而缩短芯片设计周期。本技术实施例提供的芯片设计的布线方法及装置、设备、存储介质是这样实现的:
6.本技术实施例提供的芯片设计的布线方法,包括:根据芯片设计所需布线的连线信息,在布线层上进行布线,得到初始线段;判断所述初始线段与邻居线段之间是否满足所述布线层的布线间距要求,得到判断结果;根据所述判断结果,自动处理所述初始线段,直至得到满足所述布线间距要求的目标线段。
7.本技术实施例提供的一种芯片设计的布线装置,包括:布线模块,用于根据芯片设计所需布线的连线信息,在布线层上进行布线,得到初始线段;判断模块,用于判断所述初始线段与邻居线段之间是否满足所述布线层的布线间距要求,得到判断结果;处理模块,用于根据所述判断结果,自动处理所述初始线段,直至得到满足所述布线间距要求的目标线段。
8.本技术实施例提供的一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本技术实施例所述的芯片设计的布线方法。
9.本技术实施例提供的一种计算机可读存储介质,其上存储有计算机程序,该计算
机程序被处理器执行时实现本技术实施例所述的芯片设计的布线方法。
10.在本技术实施例中,提供一种芯片设计的布线方法,根据芯片设计所需布线的连线信息,在布线层上进行布线,得到初始线段之后,不是继续生成下一金属线段,而是先自动检查该初始线段与邻居线段之间的间距是否满足布线间距要求;然后,根据检测结果自动处理该初始线段,直至得到满足布线间距要求的目标线段。也就是说,所述芯片设计的布线方法能够自动生成满足布线间距要求的目标线段;如此,避免了引入不满足布线间距要求的目标线段,从而使得工程师无需在后期再手工进行修正,进而缩短了芯片设计周期。
附图说明
11.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本技术的实施例,并于说明书一起用于说明本技术的技术方案。
12.图1为芯片每层布线示意图;
13.图2为本技术实施例提供的芯片设计的布线方法的实现流程示意图;
14.图3为本技术实施例提供的芯片设计的布线方法的实现流程示意图;
15.图4为本技术实施例提供的确定可用的布线层的示意图;
16.图5为本技术实施例提供的初始线段的形状示意图;
17.图6为本技术实施例提供的包围区的示意图;
18.图7为本技术实施例提供的更新前一次得到的目标线段的示意图;
19.图8为本技术实施例提供的线段的交汇点的示意图;
20.图9为本技术实施例提供的芯片设计的布线方法的实现流程示意图;
21.图10为本技术实施例提供的曼哈顿连线的示意图;
22.图11为本技术实施例提供的待连线的起始点和终点坐标示意图;
23.图12为本技术实施例提供的布线初步规划形状示意图;
24.图13为本技术实施例提供的布线drc检查示意图;
25.图14为本技术实施例提供的metalb线段形状示意图;
26.图15为本技术实施例提供的metalc导致metalb出现drc的示意图;
27.图16为本技术实施例提供的新的metalb形状解决metalc引入的drc问题并确定metala形状示意图;
28.图17为本技术实施例提供的完成布线形状生成工作的结果示意图;
29.图18为本技术实施例提供的添加通孔完成布线的示意图;
30.图19为本技术实施例芯片设计的布线装置的结构示意图;
31.图20为本技术实施例提供的电子设备的结构示意图。
具体实施方式
32.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术的具体技术方案做进一步详细描述。以下实施例用于说明本技术,但不用来限制本技术的范围。
33.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,
不是旨在限制本技术。
34.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
35.需要指出,本技术实施例所涉及的术语“第一\第二\第三”用以区别类似或不同的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
36.在芯片设计中,布线金属层通常有4至15层不等,当然也不限于此。同一层的布线方向一致,且相邻两层布线方向是垂直的。例如,图1所示,第mn层102的布线方向为纵向,相邻的上下两层,即第mn-1层101和第mn 1层103的布线方向为横向。这是芯片设计中布线的基本规则。
37.发明人在研究的过程中发现:尽管使用eda等工具进行芯片设计,但是这些工具做出来的布线结果,通常出现drc违例问题。例如,设计的线段有的不能够满足布线间距要求。这样,后期还是需要工程师逐个手工修正,可见,芯片设计周期较长的问题依然没有得到有效的改善。
38.有鉴于此,本技术实施例提供一种芯片设计的布线方法,该方法能够一次性自动完成布线,布线结果不存在drc违例问题,这样工程师在后期就无需再对布线结果进行修正,从而有效改善芯片设计周期较长的问题。
39.所述方法可以应用于电子设备,所述电子设备可以是手机、平板电脑、笔记本电脑或台式计算机等具有信息处理能力的设备。所述芯片设计的布线方法所实现的功能可以通过所述电子设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中。可见,所述电子设备至少包括处理器和存储介质。
40.图2为本技术实施例提供的芯片设计的布线方法的实现流程示意图,如图2所示,该方法可以包括以下步骤201至步骤203:
41.步骤201,根据芯片设计所需布线的连线信息,在布线层上进行布线,得到初始线段。
42.连线信息中可以包括一组或多组待连线的起始点和终点的坐标。在一些实施例中,电子设备可以通过如下实施例的步骤301至步骤303实现该步骤201。
43.步骤202,判断所述初始线段与邻居线段之间是否满足所述布线层的布线间距要求,得到判断结果。
44.可以理解地,邻居线段是指在同一布线层上与初始线段紧挨着的已存在的金属线段。也就是说,邻居线段与初始线段之间不存在其他线段。
45.不同的布线层,对应的布线间距要求可能是相同的,也可能是不同的。在一些实施例中,电子设备可以根据初始线段所在布线层的标识,通过查表法获取该布线层对应的布线间距要求。
46.在一些实施例中,若初始线段与任一邻居线段之间的间距不满足布线间距要求,则得到的判断结果为不满足布线间距要求;若初始线段与每一邻居线段之间的间距均满足布线间距要求,则得到的判断结果为满足布线间距要求。
47.步骤203,根据所述判断结果,自动处理所述初始线段,直至得到满足所述布线间距要求的目标线段。
48.不同的判断结果,自动处理初始线段的方式是不同的。例如,判断结果为不满足布线间距要求时,电子设备可以通过如下实施例的步骤306和步骤307对初始线段进行处理,直至得到满足布线间距要求的初始线段(即目标线段)。又如,判断结果为满足布线间距要求时,电子设备则可以直接将该初始线段确定为目标线段。如此,电子设备可以重复上述步骤201至步骤203,直至完成芯片设计所需的布线需求,即完成每一组起始点和终点之间的连线。
49.在本技术实施例中,提供一种芯片设计的布线方法,根据芯片设计所需布线的连线信息,在布线层上进行布线,得到初始线段之后,不是继续生成下一金属线段,而是先自动检查该初始线段与邻居线段之间的间距是否满足布线间距要求;然后,根据检测结果自动处理该初始线段,直至得到满足布线间距要求的目标线段。也就是说,所述芯片设计的布线方法能够自动生成满足布线间距要求的目标线段;如此,避免了引入不满足布线间距要求的目标线段,从而使得工程师无需在后期再手工进行修正,进而缩短了芯片设计周期。
50.本技术实施例再提供一种芯片设计的布线方法,图3为本技术实施例提供的芯片设计的布线方法的实现流程示意图,如图3所示,该方法可以包括以下步骤301至步骤314:
51.步骤301,从芯片设计所需布线的连线信息中,获取当前待连线的起始点和终点的坐标;
52.步骤302,根据所述起始点的坐标和所述终点的坐标,确定可用的布线层。
53.所谓可用的布线层,是指能够满足起始点至终点之间连线需求的布线层。举例来说,如图4所示,假设起始点的坐标为(x1,y1),终点的坐标(x2,y2),x1<x2,y1<y2,布线层401和布线层402相邻,二者的布线间距要求均为s。在起止点的位置,既可以在布线层401上横向布线,也可以在布线层402上纵向布线。但是,如果从起始点(x1,y1)处横向布线至(x2,y1)处,由于在(x1,y1)和(x2,y1)之间已经存在金属线段403,显然这样就不能再生成(x1,y1)至(x2,y1)的线段,而需要在距离金属线段403的s处进行纵向布线,而这样就会增加起始点和终点之间的布线复杂度和通孔数目。如果在起始点(x1,y1)处纵向布线至(x1,y2)处,由于在(x1,y1)和(x1,y2)之间既没有已存在的金属线段,也没有其他器件。因此,可以将布线层402作为可用的布线层。当然这只是一个示例,不应造成对所述可用的布线层的保护范围的限制。
54.又如,假设起始点的坐标为(x1,y1),终点的坐标(x2,y1),则可以将布线层401作为可用的布线层;类似地,假设起始点的坐标为(x1,y1),终点的坐标(x1,y2),则可以将布线层402作为可用的布线层。
55.步骤303,根据所述起始点的坐标、所述终点的坐标和所述可用的布线层的布线宽度要求,在所述可用的布线层上进行布线,得到初始线段。
56.可以理解地,在本技术实施例中,在可用的布线层上进行布线,如此,能够避免引入新的布线问题,从而加快布线速度,缩短芯片设计周期。
57.布线的线段具有一定的宽度。不同的布线层的布线宽度要求可能是相同的,也可能是不同的。在一些实施例中,电子设备可以根据所述可用的布线层的标识,通过查表法,获得该布线层的布线宽度要求。
58.在一些实施例中,若可用的布线层是横向布线,则初始线段的长度可以为起始点的横坐标与终点的横坐标之间的距离。在另一些实施例中,若可用的布线层是纵向布线,则初始线段的长度可以为起始点的纵坐标与终点的纵坐标之间的距离。如图5所示,以起始点的坐标为(x1,y1),终点的坐标(x2,y2),x1<x2,y1<y2,横线布线的布线层501和纵向布线的布线层502的布线宽度要求均为w。那么,如图5所示,初始线段既可以是线段503,也可以是线段504。
59.可以理解地,初始线段的长度设计为起始点的横坐标与终点的横坐标之间的距离,或者设计为起始点的纵坐标与终点的纵坐标之间的距离;这种布线规则较为简单,能够尽可能地减少用以连接起始点和终点的金属线段的数目,从而加快布线速度,缩短芯片设计周期。
60.步骤304,判断所述初始线段与邻居线段之间是否满足所述可用的布线层的布线间距要求;如果是,执行步骤305;否则,执行步骤306;
61.在一些实施例中,电子设备可以这样实现步骤304:根据所述布线间距要求,确定所述初始线段的包围区,所述包围区的每一边界与对应平行的所述初始线段的边界之间的间距均满足所述布线间距要求;判断是否有邻居线段越过所述包围区的边界,得到所述判断结果。例如,如果没有邻居线段越过所述包围区的边界,则得到的判断结果为所述初始线段与每一邻居线段之间均满足所述布线间距要求;同理,如果有邻居线段越过包围区的边界,得到的判断结果为所述初始线段与邻居线段之间不满足所述布线间距要求。
62.举例来说,假设布线间距要求为相邻两个线段之间的间距需大于或等于s。如图6所示,初始线段601(图中阴影区域)的包围区为602,包围区602的每一边界与对应平行的初始线段的边界之间的间距均等于s,通过判断发现线段603越过了包围区602的边界,因此,确定初始线段与邻居线段之间不满足布线间距要求。
63.需要说明的是,对于任一新生成的线段,电子设备均可按照上述方法判断该线段与它的邻居线段之间是否满足布线间距要求。
64.步骤305,将所述初始线段确定为满足所述布线间距要求的目标线段;然后进入步骤308;
65.步骤306,自动生成新的初始线段。
66.例如,在一些实施例中,电子设备可以通过如下实施例的步骤908至步骤910实现步骤306。
67.步骤307,根据所述新的初始线段与对应的邻居线段之间是否满足所述布线间距要求的判断结果,自动处理所述新的初始线段,直至得到满足所述布线间距要求的目标线段;然后进入步骤308。
68.可以理解地,在本技术实施例中,若初始线段不满足布线间距要求时,自动生成新的初始线段,并自动判断该新的初始线段与对应的邻居线段之间是否满足所述布线间距要求,基于此自动处理所述新的初始线段,直至得到满足所述布线间距要求的目标线段;如此,就能够确保电子设备自动制图得到的每一线段均不会出现drc违例问题,这样在后期工程师就无需再手工对其进行修正了,从而缩短了芯片设计周期。
69.需要说明的是,在本技术实施例中,自动处理每一生成的线段的方法是一样的,最终都是为了获得满足布线间距要求的目标线段。
70.步骤308,确定所述目标线段的端点是否包括所述终点;如果是,执行步骤309;否则,执行步骤310。
71.可以理解地,判断当前得到的目标线段的端点是否包括所述终点,其目的是为了确定是继续完成当前起始点和终点之间的布线任务,还是执行下一待连线的起始点和终点之间的布线任务。如果当前得到的目标线段的端点包括了终点,则给目标线段的两端添加通孔即可完成当前连线的布线任务;否则,执行如下步骤310。
72.步骤309,在所述目标线段的两端添加通孔,从而完成所述当前待连线的布线任务。
73.可以理解地,电子设备完成当前待连线的布线任务之后,继续根据连线信息,按照本技术实施例所述的芯片设计的布线方法,完成下一待连线的布线任务,直至每一组的起始点和终点均被通过金属线段连接起来。
74.步骤310,以所述终点的坐标为一端点位置,在另一可用的布线层上生成所述目标线段的垂直线段。
75.可以理解地,在将起始点和终点通过布线连接起来的过程中,下一线段的规划以终点的坐标为端点位置,如此,可以尽可能地减少该过程中的布线次数,从而缩短芯片设计周期。
76.步骤311,根据所述垂直线段与对应的邻居线段之间是否满足所述另一可用的布线层的布线间距要求的判断结果,处理所述垂直线段,直至得到满足所述另一可用的布线层的布线间距要求的目标线段。
77.可以理解地,步骤311中所述对应的邻居线段,是指垂直线段的邻居线段。在前文提到过,在芯片设计的布线过程中,自动处理每一新生成的线段的方法是一样的,最终都是为了获得满足布线间距要求的目标线段。
78.步骤312,根据当前得到的目标线段,更新前一次得到的目标线段,以使更新后的目标线段与所述当前得到的目标线段呈l形。
79.可以理解地,前一次得到的目标线段和当前得到的目标线段是相互垂直的,前一次得到的目标线段随之当前得到的目标线段而更新,这样就保证的相互垂直的两个线段总是呈l形。如此,使得最终用于连通起始点和终点的每一线段没有多余部分,从而在提高布线质量的同时,缩短两点之间的连线总长度。
80.举例来说,如图7所示,假设当前得到的目标线段为701,前一次得到的目标线段为702,更新目标线段702之前,两个线段是呈t形的;更新之后,两个线段呈l形,显然,相比于更新前,目标线段702的长度缩短了。
81.步骤313,确定所述另一可用的布线层的目标线段的端点是否包括所述终点;如果是,执行步骤314;否则,重复上述步骤310至步骤313,直至得到包括所述终点的目标线段,进入步骤314。
82.需要说明的是,依据所述另一可用的布线层的目标线段(即当前得到的目标线段),更新所述可用的布线层的目标线段(即前一次得到的目标线段),以使更新后的目标线段与所述另一可用的布线层的目标线段呈l形。该步骤(也即步骤312)与步骤313的执行顺序可以是多种多样的,在本技术中对这两个步骤的执行顺序不做限定,可以先执行步骤312,也可以先执行步骤313,还可以并行执行这两个步骤。
83.步骤314,在得到的各个目标线段的节点处添加通孔,以完成所述起始点和所述终点之间的连线。
84.可以理解地,所谓节点,是指两个相互垂直的线段的交汇点(汇合点)。例如,图8所示,起始点801和终点802之间连通需要目标线段803至805,其中,目标线段803和目标线段804相互垂直,交汇点为811;目标线段804和目标线段805相互垂直,交汇点为812;那么,电子设备可以在交汇点811和812处分别添加通孔,以将目标线段803和目标线段804连通,将目标线段804和目标线段805连通。
85.本技术实施例再提供一种芯片设计的布线方法,图9为本技术实施例提供的芯片设计的布线方法的实现流程示意图,如图9所示,该方法可以包括以下步骤901至步骤911:
86.步骤901,从芯片设计所需的连线信息中,获取当前待连线的起始点和终点的坐标;
87.步骤902,根据所述起始点的坐标和所述终点的坐标,确定可用的布线层;
88.步骤903,根据所述起始点的坐标和所述终点的坐标,确定所述起始点与所述终点之间转折最少的曼哈顿连线;
89.步骤904,将所述曼哈顿连线所确定的矩形区域,确定为目标区域。
90.在描述曼哈顿连线之前,这里先简单介绍下曼哈顿,曼哈顿是一个极为繁华的街区,高楼林立,街道都是横屏竖直,如图10所示,从a地点到达b地点,没有直线路径,必须绕道,绕道时必须横平竖直地走,才能到达b地点。例如,从a地点到达b地点的路径有图10所示的路径a、b、c和d,从中可以看出,路径a和d的转折最少,只有一个直角,因此这两个路径即为曼哈顿连线。同理,把a地点理解为起始点,把b地点理解为终点,那么在芯片设计中,这两个路径包围的区域即为目标区域,也即最佳布线区域。
91.步骤905,根据所述起始点的坐标、所述终点的坐标和所述布线宽度要求,在所述可用的布线层的所述目标区域上进行布线,得到初始线段。
92.可以理解地,在可用的布线层的目标区域上进行布线,而不是在超出目标区域的范围内进行布线,这样能够使得最终两点之间的连线距离最短,从而能够有效提高布线层的利用率。
93.在一些实施例中,所述初始线段的宽度满足所述布线宽度要求,所述初始线段的长度为所述起始点的横坐标与所述终点的横坐标之间的距离,或者所述初始线段的长度为所述起始点的纵坐标与所述终点的纵坐标之间的距离。
94.步骤906,判断所述初始线段与邻居线段之间是否满足所述可用的布线层的布线间距要求;如果是,执行步骤907;否则,执行步骤908;
95.步骤907,将所述初始线段确定为满足所述布线间距要求的目标线段。
96.需要说明的是,电子设备在得到所述目标线段之后,还需要执行确定所述目标线段的端点是否包括所述终点等步骤,即执行如上述实施例所述的步骤308至步骤314,以完成所述起始点和所述终点之间的连线,然后进行下一待连线的起始点和终点的布线任务。
97.在一些实施例中,在目标线段的端点不包括所述终点的情况下,以所述终点的坐标为一端点位置,电子设备可以在另一可用的布线层的所述目标区域上生成所述目标线段的垂直线段。
98.可以理解地,初始点与终点之间连线所用的线段均部署在该目标区域上,这样可
以使得两点之间的连线距离最短,从而提高布线层的利用率。
99.步骤908,确定不满足所述布线间距要求的目标邻居线段与所述初始线段的物理位置关系。
100.在一些实施例中,电子设备可以先获取目标邻居线段的形状信息,然后根据该形状信息和初始线段的形状信息,确定这两个线段之间的物理位置关系。
101.步骤909,根据所述物理位置关系,确定所述初始线段的平移方向和平移距离。
102.在一些实施例中,可以这样实现步骤909:根据所述物理位置关系和所述目标区域,确定所述平移距离和所述平移方向,以使电子设备依据该平移方向,对该初始线段进行平移后,使得平移后的所述初始线段在所述可用的布线层的所述目标区域内。
103.可以理解地,电子设备自动处理每一新生成的线段时,均可按照上述步骤对其进行自动处理,这样的好处在于,能够使得两点最终的连线距离最短,从而提高布线质量。
104.步骤910,根据所述平移方向和平移距离,将所述初始线段进行平移,以使平移后的所述初始线段与所述目标邻居线段之间满足所述布线间距要求,将所述平移后的所述初始线段作为所述新的初始线段。
105.步骤911,根据所述新的初始线段与对应的邻居线段之间是否满足所述布线间距要求的判断结果,自动处理所述新的初始线段,直至得到满足所述布线间距要求的目标线段。
106.同样地,这里,电子设备在得到所述目标线段之后,还需要执行确定所述目标线段的端点是否包括所述终点等步骤,即执行如上述实施例的步骤308至步骤314,以完成所述起始点和所述终点之间的连线,然后进行下一待连线的起始点和终点的布线任务。
107.下面将说明本技术实施例在一个实际的应用场景中的示例性应用。
108.在本技术实施例中,为了避免手工布线导致的芯片设计周期过长的问题,同时,充分利用eda工具所具有的基本布线能力,如:利用命令行直接自动画金属线段、打孔及判断金属线段物理位置关系等,加速布线自动化,同时避免引入额外的drc违例问题,达到一次布线完成,无需后期修正的目的。本技术实施例提供一种芯片设计的布线方法,该方法可以包括以下步骤1)至步骤8):
109.步骤1)后端设计完成floorplan阶段工作,根据所需布线的连线信息获取当前待连线的起始点的坐标(x1,y1)和终点的坐标(x2,y2),如图11所示。假设x1≤x2,y1<y2,ndr所需布线宽度为w,布线间距为s。
110.步骤2)判断起始点附近在满足ndr间距要求的前提下可用的布线层。
111.步骤3)如图11所示,根据坐标间曼哈顿(manhattan)连线所确定的矩形区域111,即((x1,y1)(x2 w,y2 w)),初步作为最佳布线区域,即所述目标区域;
112.步骤4)如图12所示,在所述可用的布线层的最佳布线区域121上,规划布线的初步形状为线段metala(即所述初始线段),即((x1,y1)(x2 w,y1 w));
113.步骤5)如图13所示,判断区域131(即所述包围区),即((x1-s,y1-s)(x2 w s,y1 w s))是否满足drc,即是否满足该布线层对象的布线间距要求;如果满足,执行步骤a);如果不满足,执行步骤b);
114.步骤a)确定该线段形状为metala(即目标线段),即((x1,y1)(x2 w,y1 w));然后,进入步骤6);
115.步骤b)根据drc反馈信息,按照接下来类似于6)b)的方法生成新的线段形状并最终获得合适的形状,即最终获得目标线段。
116.步骤6)如图14所示,在另一可用的布线层上,规划与线段metala垂直的线段metalb的形状为((x2,y1)(x2 w,y2 w)),判断区域141,即((x2-s,y1-s)(x2 w s,y2 w s))是否满足drc;如果满足,执行以下步骤a);如果不满足,执行以下步骤b),例如,图15所示,区域151(即图14中的区域141)上线段metalc存在,线段metalc即为所述不满足布线间距要求的目标邻居线段的一种示例;
117.步骤a)如图14所示,将线段metalb的形状确定为((x2,y1)(x2 w,y2 w)),即另一目标线段。
118.步骤b)如图15所示,区域151上线段metalc(即所述目标邻居线段的一种示例)存在,则根据drc反馈信息,如图16所示,生成新的线段metalb,即形状((x2-x0,y1)(x2-x0 w,y1 w)),判断区域161,即((x2-x
0-s,y1-s)(x2-x0 w s,y1 w s))是否满足drc,循环执行本操作,直至找到满足drc的线段metalb(即另一目标线段),同时基于满足drc的线段metalb,更新线段metala的形状至最终状态。
119.在一些实施例中,drc反馈信息可以包括线段metalc的形状信息,根据drc反馈信息和线段metalb的形状信息,确定线段metalb和线段metalc的物理位置关系;根据该物理位置关系和最佳布线区域,可以确定将线段metalb进行平移所需的平移距离和平移方向,如图15所示,平移距离为x0,平移方向为h指向k。
120.步骤7)重复步骤6)的操作方法直至最终完成起始点到终止点的连线,结果如图17所示;
121.步骤8)如图18所示,通过通孔连接各个布线形状节点,完成最终布线。
122.在本技术实施例中,提供一种布线方法,该方法布线规则简单,工具实现速度快;并且,完成布线不会引入drc违例而导致的后期繁琐修复工作。
123.在本技术实施例中,以最短的manhattan连线方式,结合drc检查,转化为工具可以识别的布线方法,加速ndr布线速度,提高布线质量。
124.基于前述的实施例,本技术实施例提供一种芯片设计的布线装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(cpu)、微处理器(mpu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)或图像处理器(gpu)等。
125.图19为本技术实施例芯片设计的布线装置的结构示意图,如图19所示,所述装置190包括布线模块191、判断模块192和处理模块193,其中:
126.布线模块191,用于根据芯片设计所需布线的连线信息,在布线层上进行布线,得到初始线段;
127.判断模块192,用于判断所述初始线段与邻居线段之间是否满足所述布线层的布线间距要求,得到判断结果;
128.处理模块193,用于根据所述判断结果,自动处理所述初始线段,直至得到满足所述布线间距要求的目标线段。
129.在一些实施例中,布线模块191,用于:从所述连线信息中,获取当前待连线的起始点和终点的坐标;根据所述起始点的坐标和所述终点的坐标,确定可用的布线层;根据所述
起始点的坐标、所述终点的坐标和所述可用的布线层的布线宽度要求,在所述可用的布线层上进行布线,得到所述初始线段。
130.在一些实施例中,布线模块191,用于:根据所述起始点的坐标和所述终点的坐标,确定所述起始点与所述终点之间转折最少的曼哈顿连线;将所述曼哈顿连线所确定的矩形区域,确定为目标区域;根据所述起始点的坐标、所述终点的坐标和所述布线宽度要求,在所述可用的布线层的所述目标区域上进行布线,得到所述初始线段。
131.在一些实施例中,所述初始线段的宽度满足所述布线宽度要求,所述初始线段的长度为所述起始点的横坐标与所述终点的横坐标之间的距离,或者所述初始线段的长度为所述起始点的纵坐标与所述终点的纵坐标之间的距离。
132.在一些实施例中,处理模块193,用于:在所述判断结果为所述初始线段与邻居线段之间不满足所述布线间距要求的情况下,自动生成新的初始线段;根据所述新的初始线段与对应的邻居线段之间是否满足所述布线间距要求的判断结果,自动处理所述新的初始线段,直至得到所述目标线段。
133.在一些实施例中,处理模块193,用于:确定不满足所述布线间距要求的目标邻居线段与所述初始线段的物理位置关系;根据所述物理位置关系,确定所述初始线段的平移方向和平移距离;根据所述平移方向和平移距离,将所述初始线段进行平移,以使平移后的所述初始线段与所述目标邻居线段之间满足所述布线间距要求,将所述平移后的所述初始线段作为所述新的初始线段。
134.在一些实施例中,处理模块193,用于:根据所述物理位置关系和所述目标区域,确定所述平移距离和所述平移方向,以使平移后的所述初始线段在所述可用的布线层的所述目标区域内。
135.在一些实施例中,布线模块191,还用于在所述目标线段的端点不包括所述终点的情况下,以所述终点的坐标为一端点位置,在另一可用的布线层上生成所述目标线段的垂直线段;处理模块193,用于:根据所述垂直线段与对应的邻居线段之间是否满足所述另一可用的布线层的布线间距要求的判断结果,处理所述垂直线段,直至得到满足所述另一可用的布线层的布线间距要求的目标线段;所述装置在190所述另一可用的布线层的目标线段的端点不包括所述终点的情况下,重复上述步骤,直至得到包括所述终点的目标线段,通过布线模块191在各个目标线段的节点处添加通孔,以完成所述起始点和所述终点之间的连线。
136.在一些实施例中,布线模块191,还用于根据当前得到的目标线段,更新前一次得到的目标线段,以使更新后的目标线段与所述当前得到的目标线段呈l形。
137.在一些实施例中,处理模块193,用于在所述另一可用的布线层的所述目标区域上生成所述目标线段的垂直线段。
138.以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
139.需要说明的是,本技术实施例中图19所示的芯片设计的布线装置对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是单独物理存在,也可以
两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。也可以采用软件和硬件结合的形式实现。
140.对应地,如图20所示,本技术实施例提供的电子设备200,该电子设备200可以包括:包括存储器201和处理器202,所述存储器201存储有可在处理器202上运行的计算机程序,所述处理器202执行所述程序时实现上述实施例中提供的方法中的步骤。
141.存储器201配置为存储由处理器202可执行的指令和应用,还可以缓存待处理器202以及电子设备200中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。
142.需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述的译码方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本技术实施例不限制于任何特定的硬件和软件结合。
143.本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的芯片设计的布线方法中的步骤。
144.本技术实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例提供的芯片设计的布线方法。
145.这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术存储介质、芯片和终端设备实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
146.应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“一些实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
147.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
148.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的触摸屏系统的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的
各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
149.上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
150.另外,在本技术各实施例中的各功能模块可以全部集成在一个处理单元中,也可以是各模块分别单独作为一个单元,也可以两个或两个以上模块集成在一个单元中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
151.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
152.或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
153.本技术所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
154.本技术所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
155.本技术所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
156.以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献