CN115758989A - 用于修复数字芯片版图设计规则时序违例的方法及系统 - Google Patents
用于修复数字芯片版图设计规则时序违例的方法及系统 Download PDFInfo
- Publication number
- CN115758989A CN115758989A CN202310033774.3A CN202310033774A CN115758989A CN 115758989 A CN115758989 A CN 115758989A CN 202310033774 A CN202310033774 A CN 202310033774A CN 115758989 A CN115758989 A CN 115758989A
- Authority
- CN
- China
- Prior art keywords
- load
- loads
- driver
- buffer
- digital chip
- 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.)
- Granted
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供了用于修复数字芯片版图设计规则时序违例的方法及系统。本发明技术方案所提供的方法将由驱动器驱动的负载切分为至少一个组,然后分析所有组中的负载的分布情况,并进一步根据具体情形给出推荐的插缓冲器解决设计规则时序违例方案,从而利用新插入的缓冲器分担驱动器的负载,以修复时序工程修改阶段的设计规则时序违例。本发明所提供的技术方案能够提高以插入缓冲器的方式来修复时序工程修改阶段中设计规则时序违例的处理效率且无需另行搭建环境。
Description
技术领域
本发明涉及用于修复数字芯片版图设计规则时序违例的方法及系统。
背景技术
在当前数字电路物理实现阶段,修复设计规则违例(DRV)时序违例主要采用Synopsys公司的PrimeTime和华大九天公司的XTOP这两个工具,PrimeTime和XTOP修复DRV的手段包含Size Cell和Insert Buffer两种方式。其中,Size Cell为主要方式,对于违例较大或者违例较复杂的情况,这两个工具会使用Insert Buffer方式进行修复。
然而,无论是Prime Time还是XTOP,其采用Insert Buffer方式修复DRV时均收效甚微,大部分情况下甚至无法解决Capacitance违例,
具体而言,这两个工具在使用Insert Buffer方式修复DRV时序违例时存在如下技术问题:
1. 缺乏对tran/cap复杂场景的分析能力,导致新插Buffer的物理位置计算能力十分有限,甚至需要人工指定每一个新插Buffer的坐标,且新Buffer所分担的load不一定能适用于所有场景。如果违例较多,则十分费时费力;
2. 缺乏对超过100um的长线、多扇出(fanout)等情况的处理功能;
3. 无法判断违例是否是因为过度绕线或兜圈绕线的情形(net detour)引起;
4. 对于跨电源域的模块,这两个工具要么无法提供解决方案,例如,PrimeTime会误插buffer到错误的电源域中,反而会导致更严重的违例,且使得模块失去电压转换功能;要么需要搭建复杂的流程和环境才能给出一定的推荐解决方案(如XTOP)。
基于此,如何设置一种用于修复设计规则违例的方法,以优化以Insert Buffer的方式修复DRV的技术方案,便成为了一个亟需解决的技术问题。
发明内容
鉴于此,本发明提供了用于修复数字芯片版图设计规则时序违例的方法及系统。
根据本发明的一个方面,提供了用于修复数字芯片版图设计规则时序违例的方法,数字芯片包括驱动器、多条网络线以及分布在网络线上的多个端口,多个端口包括多个驱动端口以及多个负载端口,多个驱动端口与多个负载端口相对应,多个负载端口与由驱动器驱动的多个负载相连接,驱动器通过网络线与多个负载端口连接,该方法包括:
S1:从时序报告中摘取存在时序违例的至少一个驱动端口,并分别识别出至少一个驱动端口所对应的至少一个负载端口;
S2:根据至少一个负载端口的位置,将与至少一个负载端口相连接的至少一个负载划分为至少一个负载组;
S3:获取至少一个负载组的负载划分情况;
S4:根据至少一个负载组的负载划分情况,在数字芯片版图中插入缓冲器,以分担至少一个负载组中的部分或者全部负载。
根据本发明的另一个方面,提供了用于修复数字芯片版图设计时序规则违例的系统,数字芯片包括驱动器、多条网络线以及多个分布在网络线上的多个端口,多个端口包括多个驱动端口以及多个负载端口,多个驱动端口与多个负载端口相对应,多个负载端口与由驱动器驱动的多个负载相连接,驱动器通过网络线与多个负载端口连接,该系统包括:
识别模块,被配置用于从时序报告中摘取存在时序违例的至少一个驱动端口,并分别识别出至少一个驱动端口所对应的至少一个负载端口;
划分模块,被配置用于根据至少一个负载端口的位置,将与至少一个负载端口相连接的至少一个负载划分为至少一个负载组;
获取模块,被配置用于获取至少一个负载组的负载划分情况;
插入模块,被配置用于根据至少一个负载组的负载划分情况,在数字芯片版图中插入缓冲器,以分担至少一个负载组中的部分或者全部负载。
根据本发明的又另一方面,提供了一种电子设备,该电子设备包括一个或多个处理器,还包括用于存储可执行指令的存储器,该一个或多个处理器被配置为经由该可执行指令来实现上述方法的操作。
根据本发明的再另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,使处理器执行上述的方法。
根据本发明的再另一方面,提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时,使处理器执行上述的方法。
本发明提供了一个全新的模型,能够解决PrimeTime工具和XTOP工具在insertbuffer方式上分析能力不足的缺陷。从以上技术方案可以看出,本发明所提供的技术方案至少存在以下优点:
1. 能够对input pin / output pin / net的违例进行去重,使问题归一化;
2. 能够自动化地以脚本形式给出推荐的插缓冲器方案,从而分担驱动器的负载;
3. 能够判断绕线(detour)情形并对存在detour的网络线(net)进行处理;
4. 能够分析跨电源域(Multi-Voltage design)的情形并保证新插入缓冲器的电源域是正确的;
5. 可直接根据用户给的违例点在ICC2工具里修DRV,无需搭建任何额外的环境。
本发明的其它特征和优点将在随后的说明书中阐述,或者通过实施本发明的具体实施例而了解。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,但并不构成对本发明技术方案的限制。
图1示出了本发明中用于修复设计规则时序违例的方法的流程图;
图2示出了本发明一实施例中插入缓冲器的过程示意图;
图3示出了本发明一实施例中插入缓冲器的过程示意图;
图4示出了本发明中按象限划分多个负载的划分示意图;
图5示出了本发明中按象限划分多个负载的划分示意图;
图6示出了本发明中按象限划分多个负载的划分示意图;
图7示出了本发明中按象限划分多个负载的划分示意图;
图8示出了本发明中用于修复数字芯片版图设计规则时序违例的系统的模块图;
图9示出了本发明一实施例中示例性电子设备的框图。
具体实施方式
下面将参照附图来详细描述本发明的各种示例性实施例。对示例性实施例的描述仅仅是说明性的,并不作为对本发明及其应用或使用的任何限制。本发明可以以许多不同的形式实现,不限于这里所述的实施例。提供这些实施例是为了使本发明透彻且完整,并且向本领域技术人员充分表达本发明的范围。
除非上下文另外明确地表明,如果未特意限定要素的数量,则该要素可以是一个也可以是多个。如本说明书使用的,术语“多个/若干”意指两个或更多,并且术语“基于”应解释为“至少部分地基于”。此外,术语“和/或”以及“……中的至少一个”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
另外,本说明书中有涉及“第一”、“第二”等的描述,该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。
为解决现有技术在插入缓冲器方式上分析能力不足的问题,本发明提出一种用于修复设计规则违例的方法,能够结合具体场景进行优化分析并给出合理的修复策略。
本说明书以下部分将结合附图详细描述本发明的实施例。
请参考图1,其示出了本发明中用于修复设计规则时序违例的方法的流程图。
在数字芯片版图中,包括驱动器(driver)、多条网络线(net)、多个由驱动器进行驱动的负载(load)以及多个分布在网络线上的端口(pin),其中,端口中包括多个驱动端口以及多个负载端口,多个驱动端口与多个负载端口之间是相对应的,驱动器通过网络线与多个负载端口连接,本发明所提供的方法依序执行以下步骤以修复设计规则违例:
S1:从时序报告中摘取存在时序违例的至少一个驱动端口,并分别识别出至少一个驱动端口所对应的至少一个负载端口;
S2:根据至少一个负载端口的位置,将与该至少一个负载端口相连接的至少一个负载划分为至少一个负载组;
S3:获取至少一个负载组的负载划分情况;
S4:根据至少一个负载组的负载划分情况,在数字芯片版图中插入缓冲器,以分担至少一个负载组中的部分或者全部负载。
需要说明的是,S2中的划分包括但不限于按象限划分、聚类划分、按坐标系划分、切割负载系统划分,以及与前述技术手段实质等同的多种划分方式,这些方式均包括在本发明所要求保护的范围内。
具体而言,在按象限划分的方式中,以驱动器作为原点对数字芯片版图进行划分,分别形成四个象限区域;在聚类划分的方式中,对各个负载按分布位置进行聚类从而形成至少一个组;在按坐标系划分的方式中,以驱动器作为中心对数字芯片版图进行划分,利用x轴与y轴分别形成多个区域;在切割负载系统划分中,对多个负载按照分布位置进行切割从而形成至少一个组。
此外,本领域技术人员可以理解,在负载划分情况中,多个负载既可以被划分为一个负载组,也可以被划分为多个负载组。
当负载划分情况为多个负载仅划分为一个负载组时,则执行以下步骤以插入缓冲器:
获取该一个负载组中所有负载的中心位置;
计算中心位置与驱动器的距离;
以距离的半量作为偏移量(offset),在距离的中点处插入缓冲器,以分担多个负载中的一半,并且这半数负载是距离驱动器较远的那一半。
如何获取距离驱动器较远的那一半负载存在多种方式。在一个优选实施例中,半数负载的获取方式为:分别计算多个负载中的每一个与驱动器的欧拉距离,然后依次进行两两比较,多次比较后即可获得多个负载中欧拉距离较大的那一半。
在另一个优选实施例中,半数负载的获取方式为:遍历多个负载的坐标并按降序方式对多个负载进行排序,排序后的前一半即为多个负载中欧拉距离较大的那一半。
请参考图2至图3,其分别示出了本发明一实施例中插入缓冲器的过程示意图。
在图2至图3中,多个负载被按照象限划分的方式分入同一个组中。虽然图中显示负载均分布在第一象限,但本发明并非以此为限,多个负载也可被分入到第二、第三或者第四象限中。依序执行以下步骤来插入缓冲器:
首先,获取所有负载的中心位置,即图2中“所有负载的中心位置”所在点;
然后,计算中心位置与驱动器的距离;
最后,以距离的一半值作为偏移量,插入新缓冲器(new buffer),以分担多个负载中的一半,即图3中与新缓冲器相连的那些负载。
本领域技术人员应当理解,当多个负载的总数为奇数时,其半数并非为整数,在此种情况下,可向上取整以确定新缓冲器需要分担的负载数目。例如共计有9个负载,其半数为4.5,此时则取4.5向上进位的整数,即5个负载。
请参考图4至图7,其分别示出了本发明中按象限划分多个负载的划分示意图。
当负载划分情况为多个负载仅划分为多个负载组时,则执行以下步骤以插入缓冲器:
S4-1’:判断这些多个负载组中每个组中的负载分布数目:
若多个负载组中每个组的负载数目均相同(例如图4所示),则执行S4-2’:任选一个组,并在该组中插入缓冲器以分担负载组中的所有负载;
若多个负载组中存在两个负载组的负载数目相同且大于其他负载组(例如图5所示),则执行S4-3’:在两个负载组中任选一个组,并在该组中插入缓冲器以分担负载组中的所有负载;
若多个负载组中存在某一负载组的负载数目例如、但不限于1倍以上3倍以下于其他负载组(例如图6所示),则执行S4-4’:在该负载组中插入缓冲器,以分担其中的所有负载;
若多个负载组中存在某一负载组的负载数目例如、但不限于3倍以上于其他负载组(例如图7所示),则执行S4-5’:在该负载组中插入缓冲器,以分担该负载组中距离驱动器较远的那一半负载。
本领域技术人员应当理解,缓冲器的插入位置通常为:某一负载组中所有负载的中心位置点与驱动器所在位置点的连线段的中点位置处。
需要说明的是,在以象限进行划分的方式中,可能会存在负载正好落在象限轴上的情况,此时,根据负载的坐标不同,可采用如下方式进行归类:
若x=0, y>0, 则将该负载归入第一象限处理;
若x>0, y=0, 则将该负载归入第一象限处理;
若x<0, y=0, 则将该负载归入第三象限处理;
若x=0, y<0, 则将该负载归入第三象限处理。
此外,本领域技术人员可以理解,当某一负载组中各个负载之间的距离过大时(以按象限划分为例进行说明,距离过大可为例如各负载在X或Y方向的差异超过了100um),此时仅在中点位置处插入缓冲器可能无法获得很好的驱动能力,因此为解决此类问题,可以每隔一段距离即插入一个缓冲器,采用多个缓冲器分段进行驱动的方式来保证良好的驱动能力。需要说明的是,在用户不另行设定的情况下,前文“每隔一段距离”中的距离默认为60um,但本发明在实施时并不限于此。进一步地,用户可根据具体情况自行设定(本发明所提供的方法具有给用户的接口,用户可以自行输入一个特定的值)。
进一步地,本发明所提供的方法还可以对多种特殊场景进行识别,以判断是否需要采用插入缓冲器的方式来修复设计规则违例。具体而言,本发明所提供的方法在执行完S1后,可先行执行判断多条网络线中的每一条是否存在过度绕线或兜圈绕线的情形(detour)或者芯片内部是否存在跨电源域情形(Multi-Voltage)的步骤S1-1。判断情况与后续执行步骤分别如下:
如果存在过度绕线或兜圈绕线的情形,则执行S1-2:将过度绕线或兜圈绕线的情形直接输出给用户(user)并结束执行方法;
如果存在跨电源域情形,则执行S1-3:首先判断跨电源域情形是否是由于跨模块的输入输出接口(IO)与电平转换器(Level shift cell,,LVL)相连接而导致的,如果是,则将此情况直接输出给用户并结束执行方法;否则,在LVL前一级的驱动器(驱动器 cell)的电源域(power domain)中插入缓冲器,以使得缓冲器所属的电源域与LVL前一级的电源域相一致,然后结束执行方法。
如何判断一条网络线是否存在过度绕线或兜圈绕线的情形以及这条网络线具体到哪个端口存在上述情形,如何计算以及划分过度绕线或兜圈绕线的严重程度,均是实际操作中的难点。针对于此,在一个优选实施例中,本发明所提供的技术方案可采用如下方式判断S1-1中是否存在过度绕线或兜圈绕线的情形:
首先,分别获取负载与驱动器的欧氏距离(Route_Length)与曼哈顿距离(Manhattan_Distance);
计算欧氏距离与曼哈顿距离的比值(Route_Length / Manhattan_Distance);
当Route_Length / Manhattan_Distance≥3且Manhattan_Distance ≥20um时,可认为当前设计存在过度绕线或兜圈绕线的情形,否则认为不存在过度绕线或兜圈绕线的情形。
上述判断是否存在过度绕线或兜圈绕线的情形的标准可作为过度绕线或兜圈绕线的定义,即满足Route_Length / Manhattan_Distance≥3且Manhattan_Distance ≥20um两个条件的情形即可认定为是过度绕线或兜圈绕线。
请参考图8,示出了本发明中用于修复数字芯片版图设计规则时序违例的系统的模块图。
本发明提供了一种用于修复数字芯片版图设计规则时序违例的系统,其中数字芯片包括驱动器、多条网络线以及多个分布在网络线上的多个端口,多个端口包括多个驱动端口以及多个负载端口,多个驱动端口与多个负载端口之间相对应,多个负载端口与由驱动器驱动的多个负载相连接,驱动器通过网络线与多个负载端口连接。该系统包括:
识别模块,被配置用于从时序报告中摘取存在时序违例的至少一个驱动端口,并分别识别出至少一个驱动端口所对应的至少一个负载端口;
划分模块,被配置用于根据多个负载端口的位置,将多个负载划分为至少一个负载组;
获取模块,被配置用于获取至少一个负载组的负载划分情况;
插入模块,被配置用于根据至少一个负载组的负载划分情况,在数字芯片版图中插入缓冲器,以分担至少一个负载组中的部分或者全部负载。
在一个优选实施例中,识别模块还包括:
判断模块,被配置用于判断多条net中的每一条是否存在过度绕线或兜圈绕线的情形或者芯片内部是否存在跨电源域情形,若存在过度绕线或兜圈绕线的情形,则执行S1-2,若存在跨电源域情形,则执行S1-3,若不存在过度绕线或兜圈绕线的情形与跨电源域情形,则执行S2;
输出模块,被配置用于将过度绕线或兜圈绕线的情形直接输出给用户并结束执行;
跨电源域模块,被配置用于若跨电源域情形是因跨模块的IO与LVL相连接导致的,则将此情况直接输出给用户并结束执行;否则,在LVL前一级的驱动器的电源域中插入缓冲器,以使得buffer所属的电源域与LVL前一级的电源域相一致,然后结束执行。
在一个优选实施例中,本发明所提供的系统还包括绕线模块,并且该绕线模块包括:
距离获取模块,被配置用于分别获取负载与驱动器的Route_Length与Manhattan_Distance;
比值计算模块,被配置用于计算Route_Length / Manhattan_Distance的比重;
绕线确定模块,被配置用于当Route_Length / Manhattan_Distance≥3且Manhattan_Distance≥20um时,可确定当前设计存在过度绕线或兜圈绕线的情形,否则认为不存在过度绕线或兜圈绕线的情形。
缓冲器的插入位置为负载组中所有负载的中心位置点与驱动器之间的中点位置;当负载组中负载之间的距离过大时,还可采用每隔一段距离插一个缓冲器的方式插入多个缓冲器。
多个负载可被划分为一个组,或者划分为多个组。
(1)当划分为一个组时,则插入模块包括以下模块来执行插入缓冲器:
中心获取模块,被配置用于获取所有负载的中心位置;
中心计算模块,被配置用于计算中心位置与驱动器的距离;
中心插入模块,被配置用于在距离的中点处插入缓冲器,以分担多个负载中的半数负载,半数负载为多个负载中距离驱动器较远的一半。
半数负载的获取方式为:分别计算多个负载中的每一个与驱动器的欧拉距离,然后依次进行两两比较,即可获得多个负载中欧拉距离较大的那一半。
半数负载的获取方式为:遍历多个负载的坐标并按降序方式对多个负载进行排序,排序后的前一半即为多个负载中欧拉距离较大的那一半。
(2)当划分为多个组时,则插入模块包括以下模块来执行插入缓冲器:
负载判断模块,被配置用于判断每个组中的负载分布数目:
若多个负载组中每个组的负载数目均相同,则执行第一插入模块,其中第一插入模块被配置用于任选一个组,并在该组中插入缓冲器以分担负载组中的所有负载;
若多个负载组中存在两个负载组的负载数目相同且大于其他负载组,则执行第二插入模块,其中第二插入模块被配置用于在两个负载组中任选一个组,并在该组中插入缓冲器以分担负载组中的所有负载;
若多个负载组中存在某一负载组的负载数目例如、但不限于1倍以上3倍以下于其他负载组,则执行第三插入模块,其中第三插入模块被配置用于在该负载组中插入缓冲器,以分担其中的所有负载;
若多个负载组中存在某一负载组的负载数目例如、但不限于3倍以上于其他负载组,则执行第四插入模块,其中第四插入模块被配置用于在该负载组中插入缓冲器,以分担该负载组中距离驱动器较远的那一半负载。
应当理解,图8中所示的系统的各个模块可以与本说明书前文描述的方法中的各个步骤相对应。由此,上面针对方法描述的操作、特征和优点同样适用于系统及其包括的模块。为了简洁起见,某些操作、特征和优点在此不再赘述。
虽然上面参考特定模块讨论了特定功能,但是应当注意,本发明技术方案中各个模块的功能也可以分为多个模块进行实现,和/或多个模块的至少一些功能可以组合成单个模块进行实现。本发明技术方案中特定模块执行动作的方式包括,该特定模块本身执行动作,或者由该特定模块调用或以其他方式访问执行动作(或结合该特定模块一起执行动作)。因此,执行动作的特定模块可以包括执行动作的该特定模块本身和/或该特定模块调用或以其他方式访问的、执行动作的另一模块。
除上述技术方案外,本发明还提供了一种电子设备,该电子设备包括一个或多个处理器以及用于存储可执行指令存储器。其中,该一个或多个处理器被配置为经由可执行指令来实现上述。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,使得处理器执行上述。
本发明还提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时,使得处理器执行上述。
在本说明书的以下部分,将结合图9来描述前述电子设备、非暂态计算机可读存储介质和计算机程序产品的说明性示例。
图9示出了可以被用来实施本发明所描述的方法的电子设备300的示例配置。本发明技术方案所提供的神经网络切分系统也可以全部或至少部分地由电子设备300或类似设备或系统实现。
电子设备300可以是各种不同类型的设备。电子设备300的示例包括但不限于:台式计算机、服务器计算机、笔记本电脑或上网本计算机、移动设备(例如,平板电脑、蜂窝或其他无线电话(例如,智能电话)、记事本计算机、移动台)、可穿戴设备(例如,眼镜、手表)、娱乐设备(例如,娱乐器具、通信地耦合到显示设备的机顶盒、游戏机)、电视或其他显示设备、汽车计算机等。
电子设备300可以包括能够诸如通过系统总线311或其他适当的连接彼此通信的至少一个处理器302、存储器304、(多个)通信接口309、显示设备301、其他输入/输出(I/O)设备310以及一个或更多大容量存储设备303。
处理器302可以是单个处理单元或多个处理单元,所有处理单元可以包括单个或多个计算单元或者多个核心。处理器302可以被实施成一个或更多微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。除了其他能力之外,处理器302可以被配置成获取并且执行存储在存储器304、大容量存储设备303或者其他计算机可读介质中的计算机可读指令,诸如操作系统305的程序代码、应用程序306的程序代码、其他程序307的程序代码等。
存储器304和大容量存储设备303是用于存储指令的计算机可读存储介质的示例,指令由处理器302执行来实施前面所描述的各种功能。举例来说,存储器304一般可以包括易失性存储器和非易失性存储器二者(例如RAM、ROM等)。此外,大容量存储设备303一般可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘(例如CD、DVD)、存储阵列、网络附属存储、存储区域网等。存储器304和大容量存储设备303在本发明中都可以被统称为存储器或计算机可读存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非暂态介质,计算机程序代码可以由处理器302作为被配置成实施在本发明的示例中所描述的操作和功能的特定机器来执行。
多个程序可以存储在大容量存储设备303上。这些程序包括操作系统305、一个或多个应用程序306、其他程序307和程序数据308,并且它们可以被加载到存储器304以供执行。这样的应用程序或程序模块的示例可以包括例如用于实现以下部件/功能的计算机程序逻辑(例如,计算机程序代码或指令):在云计算系统中部署多个进程的方法(包括该方法的任何合适的步骤)和/或本申请描述的另外的实施例。
虽然在图9中被图示成存储在电子设备300的存储器304中,但是模块305、306、307和308或者其部分可以使用可由电子设备300访问的任何形式的计算机可读介质来实施。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
通信介质包括例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(例如电缆和线(例如光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,例如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(例如载波、或例如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
作为示例而非限制,计算机可读存储介质可包括以用于存储例如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括但不限于,易失性存储器,例如随机存储器(RAM、DRAM、SRAM);以及非易失性存储器,例如闪存、各种只读存储器(ROM、PROM、EPROM、EEPROM)、磁性和铁磁/铁电存储器(MRAM、FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
一个或更多通信接口309用于诸如通过网络、直接连接等与其他设备交换数据。这样的通信接口可以是以下各项中的一个或多个:任何类型的网络接口(例如,网络接口卡(NIC))、有线或无线(诸如IEEE 802.11无线LAN(WLAN))无线接口、全球微波接入互操作(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、BluetoothTM接口、近场通信(NFC)接口等。通信接口309可以促进在多种网络和协议类型内的通信,其中包括有线网络(例如LAN、电缆等)和无线网络(例如WLAN、蜂窝、卫星等)、因特网等。通信接口309还可以提供与诸如存储阵列、网络附属存储、存储区域网等中的外部存储设备(图中未示出)的通信。
在一些示例中,可以包括诸如监视器之类的显示设备301,以用于向用户显示信息和图像。其他I/O设备310可以是接收来自用户的各种输入并且向用户提供各种输出的设备,并且可以包括触摸输入设备、手势输入设备、摄影机、键盘、遥控器、鼠标、打印机、音频输入/输出设备等。
本发明描述的技术方案可以由电子设备300的这些各种配置来支持,并且不限于本发明所描述的技术方案的具体示例。
虽然在附图和前面的描述中已经详细地说明和描述了本发明,但是这样的说明和描述应当被认为是说明性的和示意性的,而非限制性的;对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,本发明所要求保护的范围由权利要求而非上述说明限定,落在权利要求的等同要件的含义和范围内的所有变化均涵盖在本发明的保护范围内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。
Claims (25)
1.一种用于修复数字芯片版图设计规则时序违例的方法,所述数字芯片包括驱动器、多条网络线以及分布在所述网络线上的多个端口,所述多个端口包括多个驱动端口以及多个负载端口,所述多个驱动端口与所述多个负载端口相对应,所述多个负载端口与由所述驱动器驱动的多个负载相连接,所述驱动器通过所述网络线与所述多个负载端口连接,其特征在于,所述方法包括:
S1:从时序报告中摘取存在时序违例的至少一个驱动端口,并分别识别出所述至少一个驱动端口所对应的至少一个负载端口;
S2:根据所述至少一个负载端口的位置,将与所述至少一个负载端口相连接的至少一个负载划分为至少一个负载组;
S3:获取所述至少一个负载组的负载划分情况;
S4:根据所述至少一个负载组的负载划分情况,在数字芯片版图中插入缓冲器,以分担所述至少一个负载组中的部分或者全部负载。
2.根据权利要求1所述的修复数字芯片版图设计规则时序违例的方法,其特征在于,所述方法在S1后还可包括执行以下步骤:
S1-1:判断所述多条网络线中的每一条是否存在过度绕线或兜圈绕线的情形或者数字芯片内部是否存在跨电源域情形,若存在过度绕线或兜圈绕线的情形,则执行S1-2,若存在跨电源域情形,则执行S1-3,若不存在过度绕线或兜圈绕线的情形与跨电源域情形,则执行S2;
S1-2:将所述过度绕线或兜圈绕线的情形直接输出给用户并结束执行所述方法;
S1-3:若跨电源域情形是因跨模块的输入输出接口与电平转换器相连接导致的,则将此情况直接输出给用户并结束执行所述方法;否则,在电平转换器前一级的驱动器的电源域中插入缓冲器,以使得所述缓冲器所属的电源域与所述电平转换器前一级的电源域相一致,然后结束执行所述方法。
3.根据权利要求2所述的修复数字芯片版图设计规则时序违例的方法,其特征在于,S1-1中所述过度绕线或兜圈绕线的情形是否存在采用如下步骤进行判断:
分别获取所述网络线上的负载与所述驱动器的欧氏距离与曼哈顿距离;
计算所述欧氏距离与所述曼哈顿距离的比值;
当所述比值大于等于3且所述曼哈顿距离大于等于20um时,则存在过度绕线或兜圈绕线的情形,否则不存在过度绕线或兜圈绕线的情形。
4.根据权利要求1所述的修复数字芯片版图设计规则时序违例的方法,其特征在于,所述划分包括按象限划分。
5.根据权利要求4所述的修复数字芯片版图设计规则时序违例的方法,其特征在于,所述按象限划分中以驱动器为原点划分出四个象限区域,所述至少一个负载被划分入所述四个象限区域中的至少一个内。
6.根据权利要求1所述的修复数字芯片版图设计规则时序违例的方法,其特征在于,所述缓冲器的插入位置为所述至少一个负载组中所有负载的中心位置点与驱动器之间的中点位置;当所述至少一个负载组中各负载之间的距离过大时,还可采用每隔一段距离插一个缓冲器的方式插入多个缓冲器。
7.根据权利要求6所述的修复数字芯片版图设计规则时序违例的方法,其特征在于,S4中所述负载划分情况包括仅划分为一个负载组,以及划分为多个负载组。
8.根据权利要求7所述的修复数字芯片版图设计规则时序违例的方法,其特征在于,当所述负载划分情况为仅划分为一个负载组时,则执行以下步骤以插入缓冲器:
获取所述一个负载组中所有负载的中心位置;
计算所述中心位置与所述驱动器的距离,以及计算出所述距离的中点位置;
在所述中点位置处插入缓冲器,以分担所述所有负载中的半数负载,所述半数负载为所述所有负载中距离驱动器较远的一半。
9.根据权利要求8所述的修复数字芯片版图设计规则时序违例的方法,其特征在于,所述半数负载的获取方式为:分别计算所述所有负载中的每一个与驱动器的欧拉距离,然后依次进行两两比较,即可获得所述所有负载中欧拉距离较大的那一半。
10.根据权利要求8所述的修复数字芯片版图设计规则时序违例的方法,其特征在于,所述半数负载的获取方式为:遍历所述所有负载的坐标并按降序方式对所述所有负载进行排序,排序后的前一半即为所述所有负载中欧拉距离较大的那一半。
11.根据权利要求7所述的修复数字芯片版图设计规则时序违例的方法,其特征在于,当所述负载划分情况为划分为多个负载组时,则执行以下步骤以插入缓冲器:
S4-1’:判断所述多个负载组中每个组中的负载分布数目:
若所述多个负载组中每个组的负载数目均相同,则执行S4-2’;
若所述多个负载组中存在两个负载组的负载数目相同且大于其他负载组,则执行S4-3’;
若所述多个负载组中存在某一负载组的负载数目1倍以上3倍以下于其他负载组,则执行S4-4’;
若所述多个负载组中存在某一负载组的负载数目3倍以上于其他负载组,则执行S4-5’;其中,
S4-2’:在所述多个负载组中任选一个负载组,并在其中插入缓冲器以分担所述负载组中的所有负载;
S4-3’:在所述两个负载组中任选一个负载组,并在其中插入缓冲器以分担所述负载组中的所有负载;
S4-4’:在所述某一负载组中插入缓冲器,以分担所述某一负载组中的所有负载;
S4-5’:在所述某一负载组中插入缓冲器,以分担所述某一负载组中距离所述驱动器较远的那一半负载。
12.一种用于修复数字芯片版图设计规则时序违例的系统,所述数字芯片包括驱动器、多条网络线以及多个分布在所述网络线上的多个端口,所述多个端口包括多个驱动端口以及多个负载端口,所述多个驱动端口与所述多个负载端口相对应,所述多个负载端口与由所述驱动器驱动的多个负载相连接,所述驱动器通过所述网络线与所述多个负载端口连接,其特征在于,所述系统包括:
识别模块,被配置用于从时序报告中摘取存在时序违例的至少一个驱动端口,并分别识别出所述至少一个驱动端口所对应的至少一个负载端口;
划分模块,被配置用于根据所述至少一个负载端口的位置,将与所述至少一个负载端口相连接的至少一个负载划分为至少一个负载组;
获取模块,被配置用于获取所述至少一个负载组的负载划分情况;
插入模块,被配置用于根据所述至少一个负载组的负载划分情况,在数字芯片版图中插入缓冲器,以分担所述至少一个所述负载组中的部分或者全部负载。
13.根据权利要求12所述的修复数字芯片版图设计规则时序违例的系统,其特征在于,所述识别模块还包括:
判断模块,被配置用于判断所述多条网络线中的每一条是否存在过度绕线或兜圈绕线的情形或者数字芯片内部是否存在跨电源域情形,若存在过度绕线或兜圈绕线的情形,则执行输出模块,若存在跨电源域情形,则执行跨电源域模块,若不存在过度绕线或兜圈绕线的情形与跨电源域情形,则执行划分模块;
输出模块,被配置用于将所述过度绕线或兜圈绕线的情形直接输出给用户并结束执行;
跨电源域模块,被配置用于当跨电源域情形是因跨模块的输入输出接口与电平转换器相连接导致时,将此情况直接输出给用户并结束执行;否则,在电平转换器前一级的驱动器的电源域中插入缓冲器,以使得所述缓冲器所属的电源域与所述电平转换器前一级的电源域相一致,然后结束执行。
14.根据权利要求13所述的修复数字芯片版图设计规则时序违例的系统,其特征在于,所述系统还包括绕线模块,所述绕线模块包括:
距离获取模块,被配置用于分别获取所述网络线上的负载与所述驱动器的欧氏距离与曼哈顿距离;
比值计算模块,被配置用于计算所述欧氏距离与所述曼哈顿距离的比值;
绕线确定模块,被配置用于当所述比值大于等于3且所述曼哈顿距离大于等于20um时,则存在过度绕线或兜圈绕线的情形,否则不存在过度绕线或兜圈绕线的情形。
15.根据权利要求12所述的修复数字芯片版图设计规则时序违例的系统,其特征在于,所述划分包括按象限划分。
16.根据权利要求15所述的修复数字芯片版图设计规则时序违例的系统,其特征在于,所述按象限划分中以驱动器为原点划分出四个象限区域,所述至少一个负载被划分入所述四个象限区域中的至少一个内。
17.根据权利要求12所述的修复数字芯片版图设计规则时序违例的系统,其特征在于,所述缓冲器的插入位置为所述至少一个负载组中所有负载的中心位置点与驱动器之间的中点位置;当所述至少一个负载组中各负载之间的距离过大时,还可采用每隔一段距离插一个缓冲器的方式插入多个缓冲器。
18.根据权利要求17所述的修复数字芯片版图设计规则时序违例的系统,其特征在于,S4中所述负载划分情况包括仅划分为一个负载组,以及划分为多个负载组。
19.根据权利要求18所述的修复数字芯片版图设计规则时序违例的系统,其特征在于,当所述负载划分情况为仅划分为一个负载组时,则所述插入模块包括:
中心获取模块,被配置用于获取所述一个负载组中所有负载的中心位置;
中心计算模块,被配置用于计算所述中心位置与所述驱动器的距离,以及计算出所述距离的中点位置;
中心插入模块,被配置用于在所述中点位置处插入缓冲器,以分担所述所有负载中的半数负载,所述半数负载为所述所有负载中距离驱动器较远的一半。
20.根据权利要求19所述的修复数字芯片版图设计规则时序违例的系统,其特征在于,所述半数负载的获取方式为:分别计算所述所有负载中的每一个与驱动器的欧拉距离,然后依次进行两两比较,即可获得所述所有负载中欧拉距离较大的那一半。
21.根据权利要求19所述的修复数字芯片版图设计规则时序违例的系统,其特征在于,所述半数负载的获取方式为:遍历所述所有负载的坐标并按降序方式对所述多个负载进行排序,排序后的前一半即为所述所有负载中欧拉距离较大的那一半。
22.根据权利要求18所述的修复数字芯片版图设计规则时序违例的系统,其特征在于,当所述负载划分情况为划分为多个负载组时,则所述插入模块包括:
负载判断模块,被配置用于判断所述多个负载组中每个组中的负载分布数目:
若所述多个负载组中每个组的负载数目均相同,则执行第一插入模块;
若所述多个负载组中存在两个负载组的负载数目相同且大于其他负载组,则执行第二插入模块;
若所述多个负载组中存在某一负载组的负载数目1倍以上3倍以下于其他负载组,则执行第三插入模块;
若所述多个负载组中存在某一负载组的负载数目3倍以上于其他负载组,则执行第四插入模块;其中,
第一插入模块,被配置用于在所述多个负载组中任选一个负载组,并在其中插入缓冲器以分担所述负载组中的所有负载;
第二插入模块,被配置用于在所述两个负载组中任选一个负载组,并在其中插入缓冲器以分担所述负载组中的所有负载;
第三插入模块,被配置用于在所述某一负载组中插入缓冲器,以分担所述某一负载组中的所有负载;
第四插入模块,被配置用于在所述某一负载组中插入缓冲器,以分担所述某一负载组中距离所述驱动器较远的那一半负载。
23.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,其用于存储可执行指令;
所述一个或多个处理器被配置为经由所述可执行指令来实现权利要求1至11中任一项所述的方法。
24.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使所述处理器执行权利要求1至11中任一项所述的方法。
25.一种计算机程序产品,其包括计算机程序,所述计算机程序被处理器执行时,使所述处理器执行权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310033774.3A CN115758989B (zh) | 2023-01-10 | 2023-01-10 | 用于修复数字芯片版图设计规则时序违例的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310033774.3A CN115758989B (zh) | 2023-01-10 | 2023-01-10 | 用于修复数字芯片版图设计规则时序违例的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115758989A true CN115758989A (zh) | 2023-03-07 |
CN115758989B CN115758989B (zh) | 2023-04-07 |
Family
ID=85348873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310033774.3A Active CN115758989B (zh) | 2023-01-10 | 2023-01-10 | 用于修复数字芯片版图设计规则时序违例的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115758989B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115964984A (zh) * | 2023-03-16 | 2023-04-14 | 瀚博半导体(上海)有限公司 | 用于数字芯片版图平衡绕线的方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090210840A1 (en) * | 2008-02-15 | 2009-08-20 | International Business Machines Corporation | Optimization Method of Integrated Circuit Design for Reduction of Global Clock Load and Balancing Clock Skew |
CN103632001A (zh) * | 2013-11-27 | 2014-03-12 | 中国人民解放军国防科学技术大学 | 基于缓冲单元复用的保持时间时序优化方法 |
CN111931448A (zh) * | 2020-08-07 | 2020-11-13 | 山东云海国创云计算装备产业创新中心有限公司 | 芯片电路的时序修复方法、系统、电子设备及存储介质 |
US10839125B1 (en) * | 2018-09-24 | 2020-11-17 | Xilinx, Inc. | Post-placement and post-routing physical synthesis for multi-die integrated circuits |
CN114676658A (zh) * | 2022-05-20 | 2022-06-28 | 飞腾信息技术有限公司 | 一种时序违例修复方法、装置、存储介质及电子设备 |
CN114861591A (zh) * | 2022-07-07 | 2022-08-05 | 北京大学 | 一种可微分时序驱动的芯片布局优化方法 |
CN114997087A (zh) * | 2022-08-03 | 2022-09-02 | 飞腾信息技术有限公司 | 一种时钟树的优化方法、优化装置和相关设备 |
-
2023
- 2023-01-10 CN CN202310033774.3A patent/CN115758989B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090210840A1 (en) * | 2008-02-15 | 2009-08-20 | International Business Machines Corporation | Optimization Method of Integrated Circuit Design for Reduction of Global Clock Load and Balancing Clock Skew |
CN103632001A (zh) * | 2013-11-27 | 2014-03-12 | 中国人民解放军国防科学技术大学 | 基于缓冲单元复用的保持时间时序优化方法 |
US10839125B1 (en) * | 2018-09-24 | 2020-11-17 | Xilinx, Inc. | Post-placement and post-routing physical synthesis for multi-die integrated circuits |
CN111931448A (zh) * | 2020-08-07 | 2020-11-13 | 山东云海国创云计算装备产业创新中心有限公司 | 芯片电路的时序修复方法、系统、电子设备及存储介质 |
CN114676658A (zh) * | 2022-05-20 | 2022-06-28 | 飞腾信息技术有限公司 | 一种时序违例修复方法、装置、存储介质及电子设备 |
CN114861591A (zh) * | 2022-07-07 | 2022-08-05 | 北京大学 | 一种可微分时序驱动的芯片布局优化方法 |
CN114997087A (zh) * | 2022-08-03 | 2022-09-02 | 飞腾信息技术有限公司 | 一种时钟树的优化方法、优化装置和相关设备 |
Non-Patent Citations (2)
Title |
---|
INYONG KWON; SEONGJONG KIM; DAVID FICK; MYUNGBO KIM; YEN-PO CHEN; DENNIS SYLVESTER: "Razor-Lite: A Light-Weight Register for Error Detection by Observing Virtual Supply Rails" * |
吴雨臻;袁书伟;钟传杰;: "一种高速低噪声的发散型时钟树结构" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115964984A (zh) * | 2023-03-16 | 2023-04-14 | 瀚博半导体(上海)有限公司 | 用于数字芯片版图平衡绕线的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115758989B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102047241B (zh) | 本地与全局数据共享 | |
CN103136110B (zh) | 内存管理方法、内存管理装置及numa系统 | |
US11592305B2 (en) | Method, system, terminal, and storage medium for rapid generation of reference lines | |
CN109144696A (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
CN102023843B (zh) | 函数的调用方法、装置及智能卡 | |
CN115758989B (zh) | 用于修复数字芯片版图设计规则时序违例的方法及系统 | |
CN109886693A (zh) | 区块链系统的共识实现方法、装置、设备和介质 | |
CN105210038B (zh) | 核亲和性位掩码变换 | |
CN109284180A (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
CN114580606A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
EP4375844A1 (en) | Neural network on-chip mapping method and device based on tabu search algorithm | |
CN111813517B (zh) | 任务队列的分配方法、装置、计算机设备及介质 | |
CN111340179A (zh) | 一种卷积神经网络拓扑方法 | |
CN105630419A (zh) | 一种资源池的分区视图发送方法及管理节点 | |
CN114237894A (zh) | 容器调度方法、装置、设备以及可读存储介质 | |
CN104462006A (zh) | 系统级芯片中的多个处理器核间配置同步方法和设备 | |
US20110246582A1 (en) | Message Passing with Queues and Channels | |
US20130176304A1 (en) | Method and apparatus for processing three-dimensional model data | |
CN115964984B (zh) | 用于数字芯片版图平衡绕线的方法和装置 | |
CN104216834A (zh) | 一种内存访问的方法、缓冲调度器和内存模块 | |
CN102081845B (zh) | 交通信息的预处理方法及装置 | |
CA2947578A1 (en) | Method and system for generating an embedding pattern used for solving a quadratic binary optimization problem | |
CN107193656B (zh) | 多核系统的资源管理方法、终端设备及计算机可读存储介质 | |
CN109558222A (zh) | 批量业务进程监控方法、装置、计算机及可读存储介质 | |
CN114201727A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |