CN114970439A - 自动布线方法、装置、计算机设备、存储介质 - Google Patents
自动布线方法、装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN114970439A CN114970439A CN202110204640.4A CN202110204640A CN114970439A CN 114970439 A CN114970439 A CN 114970439A CN 202110204640 A CN202110204640 A CN 202110204640A CN 114970439 A CN114970439 A CN 114970439A
- Authority
- CN
- China
- Prior art keywords
- port
- list
- path
- netlist
- coordinates
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Optical Integrated Circuits (AREA)
Abstract
一种用于硅光芯片版图的自动布线方法、装置、计算机设备、存储介质和程序产品。该自动布线方法包括:读取网表以建立器件列表和端口列表,且器件列表包括硅光芯片版图中的至少一个器件,并且端口列表包括与至少一个器件相关联的至少一个起点端口和至少一个终点端口;基于网表中的网表信息构建二维网格模型;基于器件列表和端口列表,利用路径搜索算法在二维网格模型中确定从至少一个起点端口到至少一个终点端口中的对应终点端口的相应路径;以及得出相应路径在二维网格模型中的相应路径坐标。
Description
技术领域
本公开涉及光电集成芯片领域,特别是涉及一种用于硅光芯片版图的自动布线方法、装置、计算机设备、存储介质、程序产品。
背景技术
尽管集成电路芯片的布局布线技术已得到推广,但关于硅光芯片版图的布局布线工具的研发目前还处于起步阶段,因此无法满足硅光版图自动化设计的需求。与集成电路芯片可用多个金属层不同,硅光芯片的布线通常只能用一个光波导层且规则十分复杂,因此相比于集成电路,硅光芯片布线的量级较小,但布线规则复杂,难度相对更大。
发明内容
提供一种缓解、减轻或者甚至消除上述问题中的一个或多个的机制将是有利的。
根据本公开的一方面,提供了一种用于硅光芯片版图的自动布线方法,包括:读取网表以建立器件列表和端口列表,其中器件列表包括硅光芯片版图中的至少一个器件,并且端口列表包括与至少一个器件相关联的至少一个起点端口和至少一个终点端口;基于网表中的网表信息构建二维网格模型;基于器件列表和端口列表,利用路径搜索算法在二维网格模型中确定从至少一个起点端口到至少一个终点端口中的对应终点端口的相应路径;以及得出相应路径在二维网格模型中的相应路径坐标。
根据本公开的另一方面,提供了一种用于硅光芯片版图的自动布线装置,包括:读取单元,读取网表以建立器件列表和端口列表,其中器件列表包括硅光芯片版图中的至少一个器件,并且端口列表包括与至少一个器件相关联的至少一个起点端口和至少一个终点端口;建模单元,用于基于网表中的网表信息构建二维网格模型;运算单元,用于基于器件列表和端口列表,利用路径搜索算法在二维网格模型中确定从至少一个起点端口到至少一个终点端口中的对应终点端口的相应路径;以及结果单元,用于得出相应路径在二维网格模型中的相应路径坐标。
根据本公开的又另一方面,提供了一种计算机设备,包括:存储器、处理器以及存储在存储器上的计算机程序。处理器被配置为执行计算机程序以实现第一方面任一项方法的步骤。
根据本公开的再另一方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序。计算机程序被处理器执行时实现第一方面任一项方法的步骤。
根据本公开的还另一方面,提供了一种计算机程序产品,包括计算机程序。计算机程序被处理器执行时实现第一方面任一项方法的步骤。
根据在下文中所描述的实施例,本公开的这些和其它方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:
图1示出了根据示例性实施例的可以在其中实施本文描述的各种方法的布图应用场景的示意图;
图2示出了根据示例性实施例的用于硅光芯片的自动布线方法的流程图;
图3示出了根据示例性实施例的图2的方法中构建二维网格模型的步骤的示例过程的流程图;
图4示出了根据示例性实施例的图2的方法中在考虑固定长度约束的情况下确定路径的步骤的示例过程的流程图;
图5示出了根据另一示例性实施例的用于硅光芯片的自动布线方法的流程图;
图6示出了根据示例性实施例的用于硅光芯片的自动布线装置的示意性框图;
图7是示出能够应用于示例性实施例的示例性计算机设备的框图。
具体实施方式
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。如本文使用的,术语“多个”意指两个或更多,并且术语“基于”应解释为“至少部分地基于”。此外,术语“和/或”以及“……中的至少一个”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
在介绍本公开的示例性实施例之前,首先对本文中涉及的一些示例性设计因素进行解释。
1.硅光布线规则,包括:
1)器件端口约束条件。根据波长和偏振不同,典型的集成光电子器件端口波导类型大致可分为450nm和380nm宽度或深刻、浅刻及全刻波导。器件不同端口之间互联首先要完成端口转换,即以统一标准的端口进行布线;或完成端口识别,将不同端口的转换放置在布线波导中完成。因此,在对器件进行建模时需要通过特定方法(例如,辅助图层)标识出端口类型(例如,端口波导类型、角度等),用于布线算法识别。
2)布线用波导约束条件。由于布线用硅波导本身也是一种功能器件,因此需要对其进行约束,使其满足无设计规则违反条件。例如,波导与波导之间的间隔通常不可低于例如2微米。其次,不同于金属线波导可以直角转弯,硅波导通常只允许弯角转弯,同时对本地转弯半径有严格要求。添加S-bend或Spiral形状的波导到布线算法中可以极大减少算法的收敛时间。另外,在手动布线时常用到浅刻蚀波导布线来降低波导自身的传输损耗,因此布线波导自身必须满足可选择性。最后,不同于电信号在金属线中的传输,光信号在波导中传输会伴随自身相位的改变,因此波导的长度必须在算法中被精确控制。
3)布线路由约束条件。该约束条件类似于印刷电路板(PCB)电路布线,需要布线波导满足绕障等条件。但不同于电路布线的是,光学波导允许利用光学交叉器件进行直角交叉布线,但对于交叉点的数量和位置必须做严格要求。
2.硅光版图设计规则
器件范围内的坐标设为障碍,线路不允许通过。针对硅光版图设计,为了避免器件与波导之间的光场相互影响,器件与波导通常需间隔例如5微米以上,因此器件范围外5微米内不可进行走线。
下面结合附图详细描述本公开的示例性实施例。
图1示出了根据示例性实施例的可以在其中实施本文描述的各种方法的布图应用场景100的示意图。
参考图1,该布图应用场景100包括二维平面网格以及待连接的器件和端口,如器件121-125的端口131-135。这些端口与多条光波导路径(例如路径141-145)构成集成光路。
每个器件都有对应的端口。如图1所示,器件121的端口是131,器件122的端口是132。在硅光芯片中,每个光电器件通常都有要连接的器件,因此,与之对应的每个端口也有其要连接的对象。也就是说,通常硅光芯片包括分别连接至少一个起点端口和至少一个终点端口的至少一条波导路径。
以从器件121的端口131为起点到器件122的端口132为终点的波导路径141为例,在芯片布图设计中,首先设定起点为端口131、终点为端口132,则会出现多种布线方案,再择优筛选出满足需求的路线141。通过不断重复该方法,重新确定需要被连接的起点端口和终点端口,直到网格中所有器件端口完成连接。
目前光电集成芯片设计还是以手动布局布线为主,设计者在自身经验基础上完成器件选取、版图绘制等工作,存在设计效率低下,容易出现违反设计规则的结构,难以满足大规模器件集成或更高层级设计需求等问题,而集成电路布局的布线规则与方案无法直接应用到光电子芯片设计中。因此,开展应用于光电子芯片设计规则的自动布局布线技术的研究,对提升芯片设计效率,减少人为判断的失误,降低设计门槛有重要的意义。
图2示出了根据示例性实施例的用于硅光芯片的自动布线方法200的流程图。在下文中,详细描述方法200的各个步骤。
参考图2,在步骤210,读取网表以建立器件列表和端口列表。器件列表包括硅光芯片版图中的至少一个器件,并且端口列表包括与至少一个器件相关联的至少一个起点端口和至少一个终点端口。
在本实施例中,具体地,所读入的网表中的网表信息可以包括版图布线范围和器件信息。版图布线范围限制了线路的上下左右四个方向的走线边界,超过边界的部分不允许走线。器件信息包括器件对应的轮廓(例如,矩形)的四个顶点坐标、起点端口和终点端口的坐标、起点端口和终点端口的方向。在本实施例中,端口有上、下、左、右四个方向。在一些实施例中,由于光波导允许多种角度走线,也可以加入上左、上右、下左、下右四个方向。
在步骤220,基于网表中的网表信息构建二维网格模型。
在本实施例中,构建一个带有横坐标和纵坐标的平面网格(例如,如图1中所示的网格),网格的大小应适应布线区域的大小。并在上、下、左、右四个方位设立边界,边界之内的格点属性包括格点的横坐标、纵坐标和格点路径代价。同时,网格内还可以包含网表中的器件、设计规则和已布线网信息。
在步骤230,基于器件列表和端口列表,利用路径搜索算法在二维网格模型中确定从至少一个起点端口到至少一个终点端口中的对应终点端口的相应路径。
在一些实施例中,步骤230可以包括,在每条路径的搜索过程中,对该条路径进行转弯控制,以满足硅光芯片的设计规则。进一步地,转弯控制包括:限定每个转弯都是转弯半径至少为第一值的弧形。在示例中,在转弯完成之后,必须向前搜索至少3个微米之后才能再次转弯,也即,最小转弯半径的长度不可低于3微米,且根据波导类型的不同有一定变化。因此,在搜索路径时,当线路方向发生变化时,搜索路径固定为向前至少3个微米,之后再进行正常搜索。进一步地,转弯控制还可以包括,每增加一个转弯,该路径的总路径代价增加一个第二值。在一些实施例中,第一值是根据该路径所使用的波导的类型确定的,且第二值是根据多个格点中除该增加的转弯所在的格点之外的其他格点的格点路径代价确定的。
在一些实施例中,路径搜索算法可以包括Dijkstra算法,以保证搜索结果为路径代价最小的路径。
具体地,首先创建一个起点集open_set和一个终点集close_set。
进一步地,将起始端口的坐标为(x0,y0)的格点P0作为起始点,终点端口的坐标为(xend,yend)的格点Pend作为终点。起始点的路径代价(cost)为0,路径最短距离(distance)为0,父节点(father)为0,父节点的路径最短距离(father.distance)为0,将起始点P0(x0,y0)放入close_set。
进一步地,将邻近的上、下、左、右四个方向的格点放入open_set,然后进行搜索,选择open_set中路径代价最小的格点P1(x1,y1),将P1加入close_set,并将P1从open_set中移除,将P0作为P1的父节点,P1的路径最短距离(distance)等于P1的cost。
进一步地,将close_set中新增格点邻近的并且不在close_set中的格点加入open_set。
进一步地,计算open_set中每个格点的cost加上该点的父节点的distance,并选取其中cost+father.distance数值最小的点P2(x2,y2)。
进一步地,将P2加入close_set中,并将P2从open_set中删除,P2的路径最短距离P2.distance=P2.cost+P2.father.distance。
进一步地,当Pn(xn,yn)=Pend(xend,yend)(即xn=xend且yn=yend)时,搜索完成,找到终点端口。
进一步地,从终点端口开始反向搜索,依次回溯close_set中的所有父节点,到起始坐标为止,该回溯路径即是起点端口至终点端口的最佳路径。
进一步地,如果所有格点搜索完成,且未在close_set中发现终点坐标Pend(xend,yend),则表明未找到路径。
在步骤240,得出相应路径在二维网格模型中的相应路径坐标。
根据本公开的实施例,通过对硅光芯片应用路径算法得出自动布线的结果实现了硅光版图自动线路生成功能,从而在实际应用中,使用带有自动布线功能的版图工具进行硅光芯片版图设计时,设计效率得到有效提升,人为判断失误显著减少。
图3示出了根据示例性实施例的图2的方法200中构建二维网格模型的步骤220的示例过程的流程图。在下文中,详细描述步骤220的各个操作。
参考图3,在本实施例中,网表信息包括关于硅光芯片版图的布线范围的边界信息,以用于构建二维网格模型。
在步骤310,按照边界信息,构建尺寸与布线范围相对应的平面网格阵列作为二维网格模型。在示例中,构建一个包括多个格点的平面网格阵列,多个格点具有各自的横坐标、纵坐标和格点路径代价。该平面网格阵列还可以包括已布线路和已布线路周围的格点路径代价,以进一步提高路径算法的准确度,有利于布线结构最优化。
进一步地,网表信息还可以包括关于硅光芯片版图中的至少一个器件的器件信息,器件信息包括相应路径所使用的波导的波导形状和波导类型中的至少一项。
在步骤320,基于波导形状和波导类型中的至少一项设置格点路径代价。
格点路径代价是基于工艺信息和设计规则而加入的,以满足光波导布线约束条件。可选地,工艺信息和设计规则可以包括但不限于波导形状、波导类型、对线路的长度约束和转弯控制等条件。
进一步地,网表信息还可以包括关于硅光芯片版图中的至少一个器件的器件信息。器件信息包括器件列表中的每个器件的顶点坐标。
在步骤330,基于每个器件的顶点坐标,得到每个器件的轮廓坐标。
在步骤340,将每个器件的轮廓坐标加入障碍列表。障碍列表中的坐标不允许布线通过。设置障碍是用于不违反设计规则检查(DRC)的绕障条件,以防止布线通过。
进一步地,器件信息还可以包括每个起点端口的坐标和方向以及每个终点端口的坐标和方向。
在步骤350,针对每个器件,将该器件的轮廓坐标沿着朝向该器件外部的方向扩展第一距离,以得到器件的扩展后的轮廓坐标。
此步骤是为了避免器件与波导之间的光场相互影响。在一些实施例中,器件与波导需间隔例如5微米以上,因此器件轮廓(例如,为矩形)范围外5微米内不可进行走线。通过器件信息中的四个顶点,得到所有器件的轮廓坐标。轮廓可以包括矩形的四个边,并且扩展后的轮廓包括扩展后的矩形的四个边。
在本实施方式中,扩展器件轮廓坐标的步骤,包括但不限于:根据端口方向,将器件端口的坐标平移5微米至扩展后的轮廓上。如果端口向上,则y坐标增加5个微米。如果端口向下,则y坐标减少5个微米。如果端口朝左,则x轴坐标增加5个微米。如果端口朝右,则x坐标减少5个微米。
步骤360,将每个器件的扩展后的轮廓坐标加入到障碍列表中。在将扩展后的轮廓坐标加入障碍列表的情况下,当搜索到障碍列表内的坐标时,不可访问这些坐标用于布线,从而实现绕障。
步骤370,将至少一个起点端口和至少一个终点端口中的每一端口的坐标,沿该端口的方向平移第一距离至至少一个器件中的对应器件的扩展后的轮廓上。
步骤380,删除障碍列表中的每个器件的扩展之前的轮廓坐标。通过将原始器件的矩形轮廓删除,只保留扩展后的矩形轮廓坐标,可以避免访问障碍列表时,障碍列表过大,导致网格坐标读取时耗时过长的问题。
步骤390,得到二维网格模型。
根据本公开的实施例,遵循硅光版图设计规则和光电器件规则构建二维网格模型,从而实现了高准确度、高效率、满足多种设计需求且不违反DRC规则的硅光版图自动线路生成方法。
图4示出了根据示例性实施例的图2的方法200中在考虑固定长度约束的情况下确定路径的步骤230的示例过程的流程图。在下文中,详细描述方法230的各个步骤。
参考图4,在步骤410,对于相应路径中的指定路径,在考虑固定长度约束的情况下进行路径搜索。此步骤是为了满足线路的长度需要进行固定的定制化需求。进一步地,可以基于固定长度决定路径代价。在一些实施例中,端口到端口之间连接需保证路径长度例如为30微米,因为大于或小于30微米将影响两条波导的光程差,导致最终光强无法达到预期输出。因此需进行线路长度的固定,最终线路长度需与设定值相同。
步骤420,响应于确定搜索得到的指定路径的长度不等于固定长度,提高固定长度约束相对于路径代价约束的优先级,并重复执行路径搜索算法。
在本实施例中,用于第一路径搜索时的路径代价是基于波导类型、波导形状、转弯个数和固定长度决定的。当搜索结果不等于固定长度时,将路径代价设置为优先考虑固定长度,再执行搜索。
步骤430,确定是否至少存在一条候选路径等于固定长度。
步骤440,响应于确定通过重复执行路径搜索算法得到的至少一条候选路径的长度等于固定长度,从至少一条候选路径中选择一条候选路径作为指定路径,所选择的候选路径在至少一条候选路径中具有最小的总路径代价。在本实施例中,最小的总路径代价可以取决于波导类型、波导形状、转弯个数或者其他定制化需求。
步骤450,响应于确定通过重复执行路径搜索算法得到的多条候选路径的长度均不等于固定长度,并且多条候选路径中的至少一条候选路径的长度小于固定长度,从多条候选路径中选择长度最小的一条候选路径。
在步骤460,删除所选择的候选路径中的一段直线部分,并利用一段S字形布线替换已删除的一段直线部分,直到剩余线路长度+延长线路=需求线路长度,以使得所选择的候选路径的长度等于固定长度。采用S字形布线可以避免波导的直角转弯,同时与直线布线相比,延长了路径长度。
在一些实施例中,为了满足设计需求,延长的S字形线路还可以被设计为不能与其他已存在的线路相交。
步骤470,确定从至少一个起点端口到至少一个终点端口中的对应终点端口的相应路径。
根据本公开的实施例,使自动布线方法满足更多的定制化需求,从而优化了自动布线生成功能。
图5示出了根据另一示例性实施例的用于硅光芯片的自动布线方法500的流程图。在下文中,详细描述方法500的各个步骤。
在步骤510,从硅光芯片版图中提取网表信息。
在本实施例中,网表信息可以包括器件位置、端口位置、端口方向和端口连接关系。
在步骤520,将网表信息录入网表。
在步骤530,读取网表以建立器件列表和端口列表。
在步骤540,基于网表信息,构建二维网格模型。
在步骤550,基于器件列表和端口列表,利用路径搜索算法在二维网格模型中确定从至少一个起点端口到至少一个终点端口中的对应端口的相应路径。
在该实施例中,步骤530、540和550的操作可以分别与上文描述的步骤210、220和230的操作相同,并且因此为了简洁性起见不再赘述。
在步骤560,响应于确定端口列表中存在未被连接的端口,重复执行路径搜索算法,直到端口列表中的所有端口完成连接。此步骤是确保所有端口完成连接,从而得到的布线结果是正确的,提高了自动布线方法的准确度。
在一些实施例中,遍历读取的端口列表中的所有需连接的端口,直到网表中的所有端口完成连接。如果未能成功连接,可以记录未连接的端口坐标以供检查。
在步骤570,响应于确定相应路径之间存在交点,从包含交点的路径中删除该交点,以将包含交点的所述路径分割为不含交点的路径,并且在已删除的交点处添加交叉器件,以使得被分割的路径仍然形成完整路径。
在一些实施例中,区别于集成电路走线,集成光路走线的交点需添加交叉器件,以实现光路的交叉。因此,当布线结果出现交点时,需删除相交点处的格点坐标,并将完整的线路根据交点位置分割为若干条不含交点的较短线段。然后,在已删除的交点处添加交叉器件,以使得被分割的路径仍然形成完整路径。
在步骤580,得出相应路径在二维网格模型中的相应路径坐标。
在本实施例中,路径坐标可以包括最终延长和分割之后的路径格点坐标和路径的交点坐标。
根据本公开的实施例,用于硅光芯片的自动布线方法实现了高准确度、高效率、满足多种设计需求且不违反DRC规则的硅光版图自动线路生成功能。在实际应用中,使用带有自动布线功能的版图工具进行硅光芯片版图设计时,设计效率得到有效提升,人为判断失误显著减少。
虽然各个操作在附图中被描绘为按照特定的顺序,但是这不应理解为要求这些操作必须以所示的特定顺序或者按顺行次序执行,也不应理解为要求必须执行所有示出的操作以获得期望的结果。
图6示出了根据示例性实施例的用于硅光芯片的自动布线装置600的示意性框图。在下文中,详细描述该装置600。如图6所示,自动布线装置600包括读取单元610、建模单元620、路径确定单元630和坐标得出单元640。
读取单元610被配置为读取网表以建立器件列表和端口列表,其中器件列表包括硅光芯片版图中的至少一个器件,并且端口列表包括与至少一个器件相关联的至少一个起点端口和至少一个终点端口。
建模单元620被配置为基于网表中的网表信息构建二维网格模型。
路径确定单元630被配置为基于器件列表和端口列表,利用路径搜索算法在二维网格模型中确定从至少一个起点端口到至少一个终点端口中的对应终点端口的相应路径。
坐标得出单元640被配置为得出相应路径在二维网格模型中的相应路径坐标。
在一种实施例中,坐标得出单元640还可包括输出单元(未示出),用于输出得到的路径坐标。
根据本公开的实施例,通过对硅光芯片应用路径算法得出自动布线的结果实现了硅光版图自动线路生成功能。在实际应用中,使用带有自动布线功能的版图工具进行硅光芯片版图设计时,设计效率得到有效提升,人为判断失误显著减少。
应当理解,图6中所示装置600的各个单元可以与参考图2描述的方法200中的各个步骤相对应。由此,上面针对方法200描述的操作、特征和优点同样适用于装置600及其包括的单元。为了简洁起见,某些操作、特征和优点在此不再赘述。
虽然上面参考特定单元讨论了特定功能,但是应当注意,本文讨论的各个单元的功能可以分为多个单元,和/或多个单元的至少一些功能可以组合成单个单元。本文讨论的特定单元执行方法包括该特定单元本身执行该方法,或者替换地该特定单元调用或以其他方式访问执行该方法(或结合该特定单元一起执行该方法)的另一个组件或单元。因此,执行方法的特定单元可以包括执行方法的该特定单元本身和/或该特定单元调用或以其他方式访问的、执行方法的另一单元。例如,上面描述的读取单元610/建模单元620在一些实施例中可以组合成单个单元。又例如,坐标得出单元640在一些实施例中可以包括输出单元。
还应当理解,本文可以在软件硬件元件或程序单元的一般上下文中描述各种技术。上面关于图6描述的各个单元可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些单元可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些单元可以被实现为硬件逻辑/电路。例如,在一些实施例中,读取单元610、建模单元620、路径确定单元630、坐标得出单元640中的一个或多个可以一起被实现在片上系统(System on Chip,SoC)中。SoC可以包括集成电路芯片(其包括处理器(例如,中央处理单元(Central ProcessingUnit,CPU)、微控制器、微处理器、数字信号处理器(Digital Signal Processor,DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。
根据本公开的一方面,提供了一种计算机设备,其包括存储器、处理器以及存储在存储器上的计算机程序。该处理器被配置为执行计算机程序以实现上文描述的任一方法实施例的步骤。
根据本公开的一方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上文描述的任一方法实施例的步骤。
根据本公开的一方面,提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现上文描述的任一方法实施例的步骤。
在下文中,结合图7描述这样的计算机设备、非暂态计算机可读存储介质和计算机程序产品的说明性示例。
图7示出了可以被用来实施本文所描述的方法的计算机设备700的示例配置。上述用于硅光芯片的自动布线装置也可以全部或至少部分地由计算机设备700或类似设备或系统实现。
计算机设备700可以是各种不同类型的设备,例如服务提供商的服务器、与客户端(例如,客户端设备)相关联的设备、片上系统、和/或任何其它合适的计算机设备或计算系统。计算机设备700的示例包括但不限于:台式计算机、服务器计算机、笔记本电脑或上网本计算机、移动设备(例如,平板电脑、蜂窝或其他无线电话(例如,智能电话)、记事本计算机、移动台)、可穿戴设备(例如,眼镜、手表)、娱乐设备(例如,娱乐器具、通信地耦合到显示设备的机顶盒、游戏机)、电视或其他显示设备、汽车计算机等等。因此,计算机设备700的范围可以从具有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏控制台)到具有有限的存储器和/或处理资源的低资源设备(例如,传统的机顶盒、手持游戏控制台)。
计算机设备700可以包括能够诸如通过系统总线714或其他适当的连接彼此通信的至少一个处理器702、存储器704、(多个)通信接口706、显示设备708、其他输入/输出(I/O)设备710以及一个或更多大容量存储设备712。
处理器702可以是单个处理单元或多个处理单元,所有处理单元可以包括单个或多个计算单元或者多个核心。处理器702可以被实施成一个或更多微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。除了其他能力之外,处理器702可以被配置成获取并且执行存储在存储器704、大容量存储设备712或者其他计算机可读介质中的计算机可读指令,诸如操作系统716的程序代码、应用程序718的程序代码、其他程序720的程序代码等。
存储器704和大容量存储设备712是用于存储指令的计算机可读存储介质的示例,所述指令由处理器702执行来实施前面所描述的各种功能。举例来说,存储器704一般可以包括易失性存储器和非易失性存储器二者(例如RAM、ROM等等)。此外,大容量存储设备712一般可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘(例如CD、DVD)、存储阵列、网络附属存储、存储区域网等等。存储器704和大容量存储设备712在本文中都可以被统称为存储器或计算机可读存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非暂态介质,所述计算机程序代码可以由处理器702作为被配置成实施在本文的示例中所描述的操作和功能的特定机器来执行。
多个程序单元可以存储在大容量存储设备712上。这些程序包括操作系统716、一个或多个应用程序718、其他程序720和程序数据722,并且它们可以被加载到存储器704以供执行。这样的应用程序或程序单元的示例可以包括例如用于实现以下部件/功能的计算机程序逻辑(例如,计算机程序代码或指令):读取单元610、建模单元620、路径确定单元630、坐标得出单元640、方法200和/或方法500(包括方法200、500的任何合适的步骤)、和/或本文描述的另外的实施例。
虽然在图7中被图示成存储在计算机设备700的存储器704中,但是单元716、718、720和722或者其部分可以使用可由计算机设备700访问的任何形式的计算机可读介质来实施。如本文所使用的,“计算机可读介质”至少包括两种类型的计算机可读介质,也就是计算机存储介质和通信介质。
计算机存储介质包括通过用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,所述信息诸如是计算机可读指令、数据结构、程序单元或者其他数据。计算机存储介质包括而不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用盘(DVD)、或其他光学存储装置,磁盒、磁带、磁盘存储装置或其他磁性存储设备,或者可以被用来存储信息以供计算机设备访问的任何其他非传送介质。
与此相对,通信介质可以在诸如载波或其他传送机制之类的已调数据信号中具体实现计算机可读指令、数据结构、程序单元或其他数据。本文所定义的计算机存储介质不包括通信介质。
计算机设备700还可以包括一个或更多通信接口706,以用于诸如通过网络、直接连接等等与其他设备交换数据,正如前面所讨论的那样。这样的通信接口可以是以下各项中的一个或多个:任何类型的网络接口(例如,网络接口卡(NIC))、有线或无线(诸如IEEE802.11无线LAN(WLAN))无线接口、全球微波接入互操作(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、BluetoothTM接口、近场通信(NFC)接口等。通信接口706可以促进在多种网络和协议类型内的通信,其中包括有线网络(例如LAN、电缆等等)和无线网络(例如WLAN、蜂窝、卫星等等)、因特网等等。通信接口706还可以提供与诸如存储阵列、网络附属存储、存储区域网等等中的外部存储装置(未示出)的通信。
在一些示例中,可以包括诸如监视器之类的显示设备708,以用于向用户显示信息和图像。其他I/O设备710可以是接收来自用户的各种输入并且向用户提供各种输出的设备,并且可以包括触摸输入设备、手势输入设备、摄影机、键盘、遥控器、鼠标、打印机、音频输入/输出设备等等。
虽然在附图和前面的描述中已经详细地说明和描述了本公开,但是这样的说明和描述应当被认为是说明性的和示意性的,而非限制性的;本公开不限于所公开的实施例。通过研究附图、公开内容和所附的权利要求书,本领域技术人员在实践所要求保护的主题时,能够理解和实现对于所公开的实施例的变型。在权利要求书中,词语“包括”不排除未列出的其他元件或步骤,并且词语“一”或“一个”不排除多个。在相互不同的从属权利要求中记载了某些措施的仅有事实并不表明这些措施的组合不能用来获益。
方面1.一种用于硅光芯片版图的自动布线方法,所述方法包括:
读取网表以建立器件列表和端口列表,其中所述器件列表包括所述硅光芯片版图中的至少一个器件,并且所述端口列表包括与所述至少一个器件相关联的至少一个起点端口和至少一个终点端口;
方面基于所述网表中的网表信息构建二维网格模型;
基于所述器件列表和所述端口列表,利用路径搜索算法在所述二维网格模型中确定从所述至少一个起点端口到所述至少一个终点端口中的对应终点端口的相应路径;以及
得出所述相应路径在所述二维网格模型中的相应路径坐标。
方面2.根据方面1所述的方法,
其中,所述网表信息包括关于所述硅光芯片版图的布线范围的边界信息,
其中,所述基于所述网表中的网表信息构建二维网格模型包括:
按照所述边界信息,构建尺寸与所述布线范围相对应的平面网格阵列作为所述二维网格模型,
其中,所述平面网格阵列包括多个格点,所述多个格点具有各自的横坐标、纵坐标和格点路径代价。
方面3.根据方面2所述的方法,
其中,所述网表信息还包括关于所述硅光芯片版图中的所述至少一个器件的器件信息,所述器件信息包括所述相应路径所使用的波导的波导形状和波导类型中的至少一项,
其中,所述按照所述网表信息,构建尺寸与所述布线范围相对应的平面网格阵列作为所述二维网格模型,包括:
基于所述波导形状和波导类型中的至少一项设置所述格点路径代价。
方面4.根据方面2所述的方法,
其中,所述网表信息还包括关于所述硅光芯片版图中的所述至少一个器件的器件信息,所述器件信息包括所述器件列表中的每个器件的顶点坐标,
其中,所述按照所述网表信息,构建尺寸与所述布线范围相对应的平面网格阵列作为所述二维网格模型,还包括:
基于每个器件的顶点坐标,得到每个器件的轮廓坐标;以及
将每个器件的轮廓坐标加入障碍列表,其中所述障碍列表中的坐标不允许布线通过。
方面5.根据方面4所述的方法,
其中,所述器件信息还包括每个起点端口的坐标和方向以及每个终点端口的坐标和方向,
其中,所述按照所述网表信息,构建尺寸与所述布线范围相对应的平面网格阵列作为所述二维网格模型,还包括:
针对每个器件,将该器件的轮廓坐标沿着朝向该器件外部的方向扩展第一距离,以得到该器件的扩展后的轮廓坐标;
将每个器件的扩展后的轮廓坐标加入到所述障碍列表中;以及
将所述至少一个起点端口和所述至少一个终点端口中的每一端口的坐标,沿该端口的方向平移所述第一距离至所述至少一个器件中的对应器件的扩展后的轮廓上。
方面6.根据方面5所述的方法,其中,所述按照所述网表信息,构建尺寸与所述布线范围相对应的平面网格阵列作为所述二维网格模型,还包括:
删除所述障碍列表中的每个器件的扩展之前的轮廓坐标。
方面7.根据方面2所述的方法,其中,所述基于所述器件列表和所述端口列表,利用路径搜索算法在所述二维网格模型中确定从所述至少一个起点端口到所述至少一个终点端口中的对应终点端口的相应路径,包括:
在每条路径的搜索过程中,对该条路径进行转弯控制,所述转弯控制包括:
限定每个转弯都是转弯半径至少为第一值的弧形;且
每增加一个转弯,该路径的总路径代价增加一个第二值。
方面8.根据方面7所述的方法,其中,所述第一值是根据该路径所使用的波导的类型确定的。
方面9.根据方面7所述的方法,其中,所述第二值是根据所述多个格点中除该增加的转弯所在的格点之外的其他格点的格点路径代价确定的。
方面10.根据方面2所述的方法,其中,所述基于所述器件列表和所述端口列表,利用路径搜索算法在所述二维网格模型中确定从所述至少一个起点端口到所述至少一个终点端口中的对应终点端口的相应路径,包括:
对于所述相应路径中的指定路径,在考虑固定长度约束的情况下进行路径搜索;并且
响应于确定搜索得到的所述指定路径的长度不等于所述固定长度,提高所述固定长度约束相对于路径代价约束的优先级,并重复执行所述路径搜索算法。
方面11.根据方面10所述的方法,其中,对所述相应路径中的指定路径施加固定长度约束还包括:
响应于确定通过重复执行所述路径搜索算法得到的至少一条候选路径的长度等于所述固定长度,从所述至少一条候选路径中选择一条候选路径作为所述指定路径,所选择的候选路径在所述至少一条候选路径中具有最小的总路径代价。
方面12.根据方面10所述的方法,其中,对所述相应路径中的指定路径施加固定长度约束还包括:
响应于确定通过重复执行所述路径搜索算法得到的多条候选路径的长度均不等于所述固定长度,并且所述多条候选路径中的至少一条候选路径的长度小于所述固定长度,从所述多条候选路径中选择长度最小的一条候选路径;并且
修改所选择的候选路径,以使得修改后的该候选路径的长度等于所述固定长度。
方面13.根据方面12所述的方法,其中,所述修改所选择的候选路径包括:
删除所选择的候选路径中的一段直线部分;
利用一段S字形布线替换已删除的所述一段直线部分,以使得所选择的候选路径的长度等于所述固定长度。
方面14.根据方面1至13中任一项所述的方法,其中,所述基于所述器件列表和所述端口列表,利用路径搜索算法在所述二维网格模型中确定从所述至少一个起点端口到所述至少一个终点端口中的对应终点端口的相应路径,包括:
响应于确定所述端口列表中存在未被连接的端口,重复执行所述路径搜索算法,直到所述端口列表中的所有端口完成连接。
方面15.根据方面1至13中任一项所述的方法,还包括:
响应于确定所述相应路径之间存在交点,从包含所述交点的路径中删除该交点,以将包含所述交点的所述路径分割为不含所述交点的路径;并且
在已删除的所述交点处添加交叉器件,以使得被分割的所述路径仍然形成完整路径。
方面16.根据方面1至13中任一项所述的方法,其中,所述路径搜索算法包括Dijkstra算法。
方面17.根据方面1至13中任一项所述的方法,还包括:
在所述读取网表以建立器件列表和端口列表之前:
从所述硅光芯片版图中提取所述网表信息;以及
将所述网表信息录入所述网表。
方面18.一种用于硅光芯片版图的自动布线装置,包括:
读取单元,被配置为读取网表以建立器件列表和端口列表,其中所述器件列表包括所述硅光芯片版图中的至少一个器件,并且所述端口列表包括与所述至少一个器件相关联的至少一个起点端口和至少一个终点端口;
建模单元,被配置为基于所述网表中的网表信息构建二维网格模型;
路径确定单元,被配置为基于所述器件列表和所述端口列表,利用路径搜索算法在所述二维网格模型中确定从所述至少一个起点端口到所述至少一个终点端口中的对应终点端口的相应路径;以及
坐标得出单元,被配置为得出所述相应路径在所述二维网格模型中的相应路径坐标。
方面19.一种计算机设备,包括:
存储器、处理器以及存储在所述存储器上的计算机程序,其中,所述处理器被配置为执行所述计算机程序以实现方面1-17中任一项所述方法的步骤。
方面20.一种非暂态计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现方面1-17中任一项所述方法的步骤。
方面21.一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现方面1-17中任一项所述方法的步骤。
Claims (10)
1.一种用于硅光芯片版图的自动布线方法,所述方法包括:
读取网表以建立器件列表和端口列表,其中所述器件列表包括所述硅光芯片版图中的至少一个器件,并且所述端口列表包括与所述至少一个器件相关联的至少一个起点端口和至少一个终点端口;
基于所述网表中的网表信息构建二维网格模型;
基于所述器件列表和所述端口列表,利用路径搜索算法在所述二维网格模型中确定从所述至少一个起点端口到所述至少一个终点端口中的对应终点端口的相应路径;以及
得出所述相应路径在所述二维网格模型中的相应路径坐标。
2.根据权利要求1所述的方法,
其中,所述网表信息包括关于所述硅光芯片版图的布线范围的边界信息,
其中,所述基于所述网表中的网表信息构建二维网格模型包括:
按照所述边界信息,构建尺寸与所述布线范围相对应的平面网格阵列作为所述二维网格模型,
其中,所述平面网格阵列包括多个格点,所述多个格点具有各自的横坐标、纵坐标和格点路径代价。
3.根据权利要求2所述的方法,
其中,所述网表信息还包括关于所述硅光芯片版图中的所述至少一个器件的器件信息,所述器件信息包括所述相应路径所使用的波导的波导形状和波导类型中的至少一项,
其中,所述按照所述网表信息,构建尺寸与所述布线范围相对应的平面网格阵列作为所述二维网格模型,包括:
基于所述波导形状和波导类型中的至少一项设置所述格点路径代价。
4.根据权利要求2所述的方法,
其中,所述网表信息还包括关于所述硅光芯片版图中的所述至少一个器件的器件信息,所述器件信息包括所述器件列表中的每个器件的顶点坐标,
其中,所述按照所述网表信息,构建尺寸与所述布线范围相对应的平面网格阵列作为所述二维网格模型,还包括:
基于每个器件的顶点坐标,得到每个器件的轮廓坐标;以及
将每个器件的轮廓坐标加入障碍列表,其中所述障碍列表中的坐标不允许布线通过。
5.根据权利要求4所述的方法,
其中,所述器件信息还包括每个起点端口的坐标和方向以及每个终点端口的坐标和方向,
其中,所述按照所述网表信息,构建尺寸与所述布线范围相对应的平面网格阵列作为所述二维网格模型,还包括:
针对每个器件,将该器件的轮廓坐标沿着朝向该器件外部的方向扩展第一距离,以得到该器件的扩展后的轮廓坐标;
将每个器件的扩展后的轮廓坐标加入到所述障碍列表中;以及
将所述至少一个起点端口和所述至少一个终点端口中的每一端口的坐标,沿该端口的方向平移所述第一距离至所述至少一个器件中的对应器件的扩展后的轮廓上。
6.根据权利要求5所述的方法,其中,所述按照所述网表信息,构建尺寸与所述布线范围相对应的平面网格阵列作为所述二维网格模型,还包括:
删除所述障碍列表中的每个器件的扩展之前的轮廓坐标。
7.一种用于硅光芯片版图的自动布线装置,包括:
读取单元,被配置为读取网表以建立器件列表和端口列表,其中所述器件列表包括所述硅光芯片版图中的至少一个器件,并且所述端口列表包括与所述至少一个器件相关联的至少一个起点端口和至少一个终点端口;
建模单元,被配置为基于所述网表中的网表信息构建二维网格模型;
路径确定单元,被配置为基于所述器件列表和所述端口列表,利用路径搜索算法在所述二维网格模型中确定从所述至少一个起点端口到所述至少一个终点端口中的对应终点端口的相应路径;以及
坐标得出单元,被配置为得出所述相应路径在所述二维网格模型中的相应路径坐标。
8.一种计算机设备,包括:
存储器、处理器以及存储在所述存储器上的计算机程序,其中,所述处理器被配置为执行所述计算机程序以实现权利要求1-6中任一项所述方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1-6中任一项所述方法的步骤。
10.一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1-6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110204640.4A CN114970439A (zh) | 2021-02-23 | 2021-02-23 | 自动布线方法、装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110204640.4A CN114970439A (zh) | 2021-02-23 | 2021-02-23 | 自动布线方法、装置、计算机设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114970439A true CN114970439A (zh) | 2022-08-30 |
Family
ID=82972768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110204640.4A Pending CN114970439A (zh) | 2021-02-23 | 2021-02-23 | 自动布线方法、装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114970439A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116011386A (zh) * | 2023-01-31 | 2023-04-25 | 本源科仪(成都)科技有限公司 | 版图自动布线方法、装置、存储介质及电子设备 |
CN116306468A (zh) * | 2023-03-24 | 2023-06-23 | 上海华大九天信息科技有限公司 | 一种自适应分配端口电阻的布线方法 |
CN116341478A (zh) * | 2023-02-16 | 2023-06-27 | 北京百度网讯科技有限公司 | 量子芯片的布线方法、装置、设备及存储介质 |
CN117291140A (zh) * | 2023-10-10 | 2023-12-26 | 北京市合芯数字科技有限公司 | 自动布线工具的绕线违例减少方法、装置、存储介质及电子终端 |
WO2024066407A1 (zh) * | 2022-09-30 | 2024-04-04 | 腾讯科技(深圳)有限公司 | 电路版图的布线方法、装置、设备、存储介质及产品 |
CN117973312A (zh) * | 2023-12-29 | 2024-05-03 | 苏州异格技术有限公司 | 芯片布线方法、装置、计算机设备及存储介质 |
CN118133765A (zh) * | 2024-02-26 | 2024-06-04 | 苏州异格技术有限公司 | 芯片布线方法、装置、设备及存储介质 |
-
2021
- 2021-02-23 CN CN202110204640.4A patent/CN114970439A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024066407A1 (zh) * | 2022-09-30 | 2024-04-04 | 腾讯科技(深圳)有限公司 | 电路版图的布线方法、装置、设备、存储介质及产品 |
CN116011386A (zh) * | 2023-01-31 | 2023-04-25 | 本源科仪(成都)科技有限公司 | 版图自动布线方法、装置、存储介质及电子设备 |
CN116341478A (zh) * | 2023-02-16 | 2023-06-27 | 北京百度网讯科技有限公司 | 量子芯片的布线方法、装置、设备及存储介质 |
CN116341478B (zh) * | 2023-02-16 | 2023-12-05 | 北京百度网讯科技有限公司 | 量子芯片的布线方法、装置、设备及存储介质 |
CN116306468A (zh) * | 2023-03-24 | 2023-06-23 | 上海华大九天信息科技有限公司 | 一种自适应分配端口电阻的布线方法 |
CN117291140A (zh) * | 2023-10-10 | 2023-12-26 | 北京市合芯数字科技有限公司 | 自动布线工具的绕线违例减少方法、装置、存储介质及电子终端 |
CN117973312A (zh) * | 2023-12-29 | 2024-05-03 | 苏州异格技术有限公司 | 芯片布线方法、装置、计算机设备及存储介质 |
CN118133765A (zh) * | 2024-02-26 | 2024-06-04 | 苏州异格技术有限公司 | 芯片布线方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114970439A (zh) | 自动布线方法、装置、计算机设备、存储介质 | |
US10503865B2 (en) | Methods and apparatus for automated design of semiconductor photonic devices | |
US9449140B2 (en) | Conflict detection for self-aligned multiple patterning compliance | |
US9552450B2 (en) | Determining a user-specified location in a graphical user interface of an electronic design automation tool | |
JP2021121960A (ja) | 画像注釈方法、装置、電子設備、記憶媒体、及びプログラム | |
CN116822452B (zh) | 芯片布局优化方法及相关设备 | |
US11829697B2 (en) | Region-based layout routing | |
US8914755B1 (en) | Layout re-decomposition for multiple patterning layouts | |
US11281817B2 (en) | Systems and methods for generating programmatic designs of structures | |
WO2023160556A1 (zh) | 量子芯片版图的构建方法和装置及存储介质 | |
CN104834759A (zh) | 电子设计的实现方法和装置 | |
US10902175B1 (en) | Cross-hierarchical block pin placement | |
US10452803B2 (en) | Power grid insertion technique | |
CN111666100A (zh) | 软件框架生成方法、装置、电子设备及存储介质 | |
US10885260B1 (en) | Fin-based fill cell optimization | |
US8875075B2 (en) | Generating pattern-based estimated RC data with analysis of route information | |
WO2023036031A1 (en) | Sweepline triangulation for spanning graphs | |
US10460064B1 (en) | Partition-aware grid graph based hierarchical global routing | |
WO2023216562A1 (zh) | 硅光器件布局方法、装置及硅光芯片 | |
US20160232275A1 (en) | Method and apparatus for logical design connectivity-based automatic macro placement | |
CN116911224A (zh) | 用于优化数字逻辑电路的方法、计算机设备及存储介质 | |
US8132141B2 (en) | Method and apparatus for generating a centerline connectivity representation | |
CN116888599A (zh) | 一种集成电路的电路单元布局方法及装置 | |
US20230237233A1 (en) | Power staple avoidance for routing via reduction | |
CN116956810B (zh) | 布线方法及装置、计算装置和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |