CN113486612B - 集成电路设计方法、装置、电子设备和可读存储介质 - Google Patents
集成电路设计方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN113486612B CN113486612B CN202110724884.5A CN202110724884A CN113486612B CN 113486612 B CN113486612 B CN 113486612B CN 202110724884 A CN202110724884 A CN 202110724884A CN 113486612 B CN113486612 B CN 113486612B
- Authority
- CN
- China
- Prior art keywords
- timing
- time sequence
- target
- logic
- distance
- 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.)
- Active
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/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种集成电路设计方法、装置、电子设备和计算机可读存储介质。该集成电路设计方法包括:获取多个时序路径中发生时序违反的至少一个目标时序违反路径;确定至少一个目标时序违反路径的逻辑单元集合,逻辑单元集合中的元素为至少一个目标时序违反路径所包含的逻辑单元;计算逻辑单元集合中每个逻辑单元对应的特征距离;基于每个逻辑单元对应的特征距离,从逻辑单元集合中确定目标单元;以及基于目标单元,复制初始集成电路中的至少部分电路逻辑结构而得到克隆电路逻辑结构,以利用克隆电路逻辑结构降低目标时序违反路径的时序违反程度。该方法可以缩短逻辑复制的时间,可以自动对较多的时序违反路径进行处理,从而提高了实现时序收敛的效率。
Description
技术领域
本公开的实施例涉及一种集成电路设计方法、装置、电子设备和计算机可读存储介质。
背景技术
无论是在相对较大尺寸的集成电路设计中还是在深亚微米集成电路的设计中,时序问题一直是最受关注的问题。无论是从设计芯片的性能还是稳定性考虑,都要求所设计的芯片具有一个较好的时序收敛效果,才能通过后续验证以及生产出高性能、高可靠的产品。
发明内容
本公开至少一个实施例提供一种集成电路设计方法,用于修改针对初始集成电路的设计,初始集成电路包括多个时序路径,该方法包括:获取多个时序路径中发生时序违反的至少一个目标时序违反路径,至少一个目标时序违反路径的时序起点相同;确定至少一个目标时序违反路径的逻辑单元集合,逻辑单元集合中的元素为至少一个目标时序违反路径所包含的逻辑单元;计算逻辑单元集合中每个逻辑单元对应的特征距离,特征距离为逻辑单元扇出的多个时序终点之间的距离的最大值,时序终点为多个时序路径中逻辑单元所在的时序路径的终点;基于每个逻辑单元对应的特征距离,从逻辑单元集合中确定目标单元;以及基于目标单元,复制初始集成电路中的至少部分电路逻辑结构而得到克隆电路逻辑结构,以利用克隆电路逻辑结构修改初始集成电路的设计。
例如,在本公开一实施例提供的集成电路设计方法中,至少一个目标时序违反路径的时序起点为目标时序起点,基于目标单元,复制初始集成电路中的至少部分电路逻辑结构而得到克隆电路逻辑结构,包括:针对至少一个目标时序违反路径中的每个目标时序违反路径,基于目标单元,确定每个目标时序违反路径中位于目标时序起点和目标单元之间的待复制电路逻辑结构;以及复制待复制电路逻辑结构而得到克隆电路逻辑结构。
例如,在本公开一实施例提供的集成电路设计方法中,至少一个目标时序违反路径的时序起点为目标时序起点,该方法还包括复制目标时序起点而得到克隆时序起点;以及基于克隆电路逻辑结构和克隆时序起点,调整初始集成电路的电路逻辑结构的连接关系而生成对所述初始集成电路的设计修改后的集成电路设计。
例如,在本公开一实施例提供的集成电路设计方法中,基于克隆电路逻辑结构和克隆时序起点,调整初始集成电路的电路逻辑结构的连接关系而生成对初始集成电路的设计修改后的集成电路设计,包括:确定克隆电路逻辑结构和克隆时序起点在集成电路中的摆放位置,使得克隆时序起点经由克隆电路逻辑结构到达目标时序违反路径的时序终点的距离小于目标时序起点到达目标时序违反路径的时序终点之间的距离;以及根据克隆电路逻辑结构和克隆时序起点在集成电路中的摆放位置,连接克隆时序起点、克隆电路逻辑结构和第一电路逻辑结构,以生成对所述初始集成电路的设计修改后的集成电路设计,第一电路逻辑结构为初始集成电路中除目标时序起点和待复制电路逻辑结构之外的电路逻辑结构。
例如,在本公开一实施例提供的集成电路设计方法中,基于每个逻辑单元对应的特征距离,从逻辑单元集合中确定目标单元,包括:基于每个逻辑单元对应的特征距离,确定距离分割值;确定逻辑单元集合中的第一逻辑单元,第一逻辑单元的特征距离大于距离分割值;基于第一逻辑单元确定第二逻辑单元,第二逻辑单元为第一逻辑单元的下一级扇出;以及响应于第二逻辑单元的特征距离小于距离分割值,确定第二逻辑单元为目标单元。
例如,在本公开一实施例提供的集成电路设计方法中,基于每个逻辑单元对应的特征距离,确定距离分割值,包括:比较各个逻辑单元分别对应的特征距离,确定最大特征距离;以及对最大特征距离进行计算而得到距离分割值。
例如,在本公开一实施例提供的集成电路设计方法中,对最大特征距离进行计算而得到距离分割值,包括:计算最大特征距离与N的比值,将比值作为距离分割值,N≥2且N为整数。
例如,在本公开一实施例提供的集成电路设计方法中,计算逻辑单元集合中每个逻辑单元对应的特征距离包括:确定每个逻辑单元扇出的多个时序终点在初始集成电路的布局中的位置信息;基于位置信息,确定每个逻辑单元扇出的多个时序终点之间的距离的最大值。
例如,在本公开一实施例提供的集成电路设计方法中,位置信息包括位置坐标,位置坐标包括X轴坐标和Y轴坐标,基于位置信息,确定每个逻辑单元扇出的多个时序终点之间的距离的最大值包括:根据位置信息,确定多个时序终点中X轴坐标最小的第一时序终点和X轴坐标最大的第二时序终点,以及确定多个时序终点中Y轴坐标最小的第三时序终点和Y轴坐标最大的第四时序终点;分别计算第一时序终点、第二时序终点、第三时序终点和第四时序终点中任意两点之间的时序终点距离;以及比较多个时序终点距离,将最大的时序终点距离作为对应的逻辑单元扇出的多个时序终点之间的距离的最大值。
例如,在本公开一实施例提供的集成电路设计方法中,获取多个时序路径中发生时序违反的至少一个目标时序违反路径,包括:获取多个时序路径中发生时序违反的至少一个时序违反路径;确定至少一个时序违反路径的时序起点集合,时序起点集合中的元素为至少一个时序违反路径的时序起点;针对时序起点集合中的每个时序起点,基于每个时序起点扇出的多个时序终点之间的距离,从时序起点集合中确定至少一个目标时序起点,所述至少一个目标时序起点形成目标时序起点集合,针对目标时序起点集合中的每个目标时序起点,将至少一个时序违反路径中以目标时序起点为起点的时序违反路径作为至少一个目标时序违反路径。
例如,在本公开一实施例提供的集成电路设计方法中,针对时序起点集合中的每个时序起点,基于每个时序起点扇出的多个时序终点之间的距离,从时序起点集合中确定至少一个目标时序起点,包括:针对时序起点集合中的每个时序起点,计算时序起点扇出的多个时序终点之间的最大距离;将时序起点扇出的多个时序终点之间的最大距离与预设距离阈值进行比较而获得比较结果;以及根据比较结果,从时序起点集合中确定所述目标时序起点,目标时序起点为扇出的多个时序终点之间的最大距离大于所述预设距离阈值的时序起点。
例如,在本公开一实施例提供的集成电路设计方法中,多个时序终点之间的距离为曼哈顿距离。
本公开至少一个实施例提供一种集成电路设计装置,用于修改针对初始集成电路的设计,初始集成电路包括多个时序路径,集成电路设计装置包括:获取模块,配置为获取多个时序路径中发生时序违反的至少一个目标时序违反路径,至少一个目标时序违反路径的时序起点相同;第一确定模块,配置为确定至少一个目标时序违反路径的逻辑单元集合,逻辑单元集合中的元素为至少一个目标时序违反路径所包含的逻辑单元;计算模块,配置为计算逻辑单元集合中每个逻辑单元对应的特征距离,特征距离为逻辑单元扇出的多个时序终点之间的距离的最大值,时序终点为多个时序路径中逻辑单元所在的时序路径的终点;第二确定模块,配置为基于每个逻辑单元对应的特征距离,从逻辑单元集合中确定目标单元;以及复制模块,配置为基于目标单元,复制初始集成电路中的至少部分电路逻辑结构而得到克隆电路逻辑结构,以利用所述克隆电路逻辑结构修改所述初始集成电路的设计。
本公开至少一个实施例提供一种电子设备,包括处理器;存储器,包括一个或多个计算机程序模块;一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现本公开任一实施例提供的集成电路设计方法的指令。
本公开至少一个实施例提供一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现本公开任一实施例提供的集成电路设计方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了一种集成电路的示意图;
图2示出了本公开至少一实施例提供的一种集成电路设计方法的流程图;
图3示出了本公开至少一实施例提供的图2中步骤S10的方法流程图;
图4A示出了本公开至少一实施例提供的图3中步骤S13的方法流程图;
图4B示出了一种初始集成电路的布局的示意图;
图5示出了本公开至少一实施例提供的图1中目标时序违反路径包含的逻辑单元和逻辑输入点的示意图;
图6示出了本公开至少一实施例提供的图2中步骤S30的方法流程图;
图7示出了本公开至少一实施例提供的图2中步骤S40的方法流程图;
图8A示出了本公开至少一实施例提供的图2中步骤S50的方法流程图;
图8B示出了本公开至少一实施例提供的克隆电路逻辑结构的示意图;
图9A示出了本公开至少一实施例提供的另一种集成电路设计方法的流程图;
图9B示出了本公开至少一实施例提供的复制目标时序起点而得到克隆时序起点的示意图;
图9C示出了本公开至少一实施例提供的调整后的集成电路结构的示意图;
图10示出了本公开至少一实施例提供的另一种集成电路设计方法的流程图;
图11示出了本公开至少一个实施例提供的一种集成电路设计装置的示意框图;
图12A示出了本公开至少一个实施例提供的一种电子设备的示意框图;
图12B示出了本公开至少一个实施例提供的另一种电子设备的示意框图;以及
图13示出了本公开至少一个实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
随着高速数字电路的工作频率越来越高,版图尺寸的变大、模拟宏模块(analogmacro)物理位置的约束以及时序起点(start point,SP)的摆放位置在物理位置上的制约,数字电路的时序收敛愈发困难。在数字电路代码编写过程中,设计人员一般不会考虑模拟宏模块在物理版图中的摆放情况,导致有些例如寄存器驱动的宏模块和时序终点(endpoint,EP)相距较远。
图1示出了一种集成电路的示意图。
如图1所示,该集成电路100包括多个逻辑单元,多个逻辑单元包括时序起点SP0、时序终点EP0和EP1、宏单元10和宏单元11以及中间逻辑单元110。中间逻辑单元110包括多个逻辑单元,例如至少包括逻辑单元111~逻辑单元118。
时序起点和时序终点例如可以是寄存器、宏单元等器件。
如图1所示,时序终点EP0靠近宏单元10,时序终点EP1靠近宏单元11。由于物理位置的约束导致宏单元10和宏单元11在距离上相距较远,时序起点SP0通常会被放置到一个合理的中间位置。由于时序起点SP0被放置到一个合理的中间位置而导致时序起点SP0分别到时序终点EP0、宏单元10、时序终点EP1、宏单元11的距离较长,因此集成电路100的时序难以收敛。
在相关技术中,通常将相关的逻辑单元进行复制(以下简称“逻辑复制”),以让时序起点分别靠近各个时序终点,来达到缩短物理距离,加速时序收敛的目的。例如,将时序起点SP0和中间逻辑单元110中的部分逻辑单元进行复制,以让时序起点SP0分别靠近时序终点EP0和EP1。然而,在相关技术中,逻辑复制所需要的时间较长,并且难以自动对较多的时序违反路径进行处理而导致逻辑复制的效率较低。时序违反路径例如可以是指时序路径中时序不满足时钟建立时间(setup time)和保持时间(holdup time)的路径,时序违反路径也可以称为时序违例路径。
本公开至少一个实施例提供一种集成电路设计方法、信息处理装置、电子设备和计算机可读存储介质。该集成电路设计方法用于修改针对初始集成电路的设计,初始集成电路包括多个时序路径。该方法包括:获取多个时序路径中发生时序违反的至少一个目标时序违反路径,至少一个目标时序违反路径的时序起点相同;确定至少一个目标时序违反路径的逻辑单元集合,辑单元集合中的元素为至少一个目标时序违反路径所包含的逻辑单元;计算逻辑单元集合中每个逻辑单元对应的特征距离,特征距离为逻辑单元扇出的多个时序终点之间的距离的最大值,时序终点为多个时序路径中逻辑单元所在的时序路径的终点;基于每个逻辑单元对应的特征距离,从逻辑单元集合中确定目标单元;以及基于目标单元,复制初始集成电路中的至少部分电路逻辑结构而得到克隆电路逻辑结构,以利用所述克隆电路逻辑结构修改所述初始集成电路的设计。该集成电路设计方法可以缩短对集成电路中的逻辑单元进行逻辑复制的时间,并且可以自动对较多的时序违反路径进行处理,从而提高了实现时序收敛的效率。
本公开至少一个实施例提供一种集成电路设计装置,用于修改针对初始集成电路的设计,其中,初始集成电路包括多个时序路径,集成电路设计装置包括:获取模块,配置为获取多个时序路径中发生时序违反的至少一个目标时序违反路径,其中,至少一个目标时序违反路径的时序起点相同;第一确定模块,配置为确定至少一个目标时序违反路径的逻辑单元集合,其中,逻辑单元集合中的元素为至少一个目标时序违反路径所包含的逻辑单元;计算模块,配置为计算逻辑单元集合中每个逻辑单元对应的特征距离,其中,特征距离为逻辑单元扇出的多个时序终点之间的距离的最大值,时序终点为多个时序路径中逻辑单元所在的时序路径的终点;第二确定模块,配置为基于每个逻辑单元对应的特征距离,从逻辑单元集合中确定目标单元;以及复制模块,配置为基于目标单元,复制初始集成电路中的至少部分电路逻辑结构而得到克隆电路逻辑结构,以利用克隆电路逻辑结构修改初始集成电路的设计。该集成电路设计装置可以缩短对集成电路中的逻辑单元进行逻辑复制的时间,并且可以自动对较多的时序违反路径进行处理,从而提高了实现时序收敛的效率。
下面结合图2来说明本公开至少一个实施例提供的集成电路设计方法。
图2示出了本公开至少一实施例提供的一种集成电路设计方法的流程图。
如图2所示,该方法可以包括步骤S10~S50。
步骤S10:获取多个时序路径中发生时序违反的至少一个目标时序违反路径,至少一个目标时序违反路径的时序起点相同。
步骤S20:确定至少一个目标时序违反路径的逻辑单元集合。
步骤S30:计算逻辑单元集合中每个逻辑单元对应的特征距离。
步骤S40:基于每个逻辑单元对应的特征距离,从逻辑单元集合中确定目标单元。
步骤S50:基于目标单元,复制初始集成电路中的至少部分电路逻辑结构而得到克隆电路逻辑结构,以利用所述克隆电路逻辑结构修改初始集成电路的设计。
在本公开的一些实施例中,该方法可以用于修改针对初始集成电路的设计,初始集成电路包括多个时序路径。该方法可以缩短对集成电路中的逻辑单元进行逻辑复制的时间,并且可以自动对较多的时序违反路径进行处理,从而提高了实现时序收敛的效率。
对于步骤S10,例如,至少一个目标时序违反路径的起点为目标时序起点。
在本公开的一些实施例中,目标时序起点可以包括多个,对于每个目标时序起点,存在至少一个目标时序违反路径的时序起点为所述目标时序起点。
例如,从发生时序违反的时序路径中选择至少一个满足预设条件的时序路径作为目标时序违反路径。预设条件,例如可以包括时序路径的裕量(slack)在预设范围内,或者时序路径的物理走线的长度在某个范围内等。
图3示出了本公开至少一实施例提供的图2中步骤S10的方法流程图。
如图3所示,该方法可以包括步骤S11~步骤S14。
步骤S11:获取多个时序路径中发生时序违反的至少一个时序违反路径。
例如,读取.ddc文件,以从.ddc文件中获取至少一个时序违反路径。.ddc文件可以是逻辑综合(Design Compiler,简称“DC”)执行初始集成电路的代码(例如,Verilog代码)而生成的文件。又例如,可以遍历DC执行代码而生成的会话(session),从而从session中获取至少一个时序违反路径。
在本公开的一些实施例中,例如,步骤S11包括获取多个时序路径中发生时序违反较大的至少一个时序违反路径。例如,session或者.ddc文件记录有每个时序路径的裕量,时序违反较大的时序违反路径可以是指时序路径的裕量(slack)小于第一阈值WNS的时序路径。例如,第一阈值WNS为-50ps或者-30ps等。例如,在该实施例对应的实现代码中,可以令参数worst slack=WNS,从而读取参数worst slack的赋值来确定第一阈值。在本公开的一些实施例中,WNS可以是根据实际的设计和工艺设置的,WNS越小,时序优化的要求越高。
在本公开的一些实施例中,除预先设置第一阈值外,还可以预先设置第二阈值MAX_PATH和第三阈值NWP。第二阈值MAX_PATH表示在步骤S11中获取的从一个时序起点出发的多个时序路径中出现时序违反的时序违反路径的最大个数。换言之,第二阈值MAX_PATH表示以一个SP为起点的时序违反路径的个数的最大值。例如,MAX_PATH等于50,则在步骤S11中针对一个SP,最多获取从该SP出发的50个发生时序违反较大的时序违反路径。因此,在本公开的实施例中,第二阈值MAX_PATH的值可以设置的尽量大一些,以保证获取到从一个SP出发的尽量多甚至全部的时序违反较大的时序违反路径。第三阈值NWP表示在步骤S10中从一个SP到一个EP的最大违反路径个数,最大违反路径个数可以是指获取到的时序违反较大的时序违反路径的个数的最大值。换言之,第三阈值NWP表示以一个SP为起点并且以EP为终点的时序违反较大的时序违反路径的个数的最大值。与第二阈值MAX_PATH类似,第三阈值NWP也可以设置的尽量大一些。再例如,在该实施例对应的实现代码中,例如可以令参数max_path=MAX_PATH,nworst path=NWP,从而通过读取代码中参数max_path的赋值和参数nworst path的赋值来确定第二阈值和第三阈值。
例如,在图1所示的情景中,若根据集成电路100的session中记录可以确定集成电路100中时序路径120(即,SP0-111-112-113-114-115-宏单元10)和时序路径130(即,SP0-111-112-116-117-118-EP11)的裕量分别小于第一阈值WNS,则时序路径120和时序路径130为时序违反较大的时序违反路径。
需要理解的是,上述图1所示的情景仅为一种示意性表示,在实际应用中,集成电路的复杂程度远远高于集成电路100,时序违反路径的数量也是任意的。
步骤S12:确定至少一个时序违反路径的时序起点集合,时序起点集合中的元素为至少一个时序违反路径的时序起点。
例如,在图1所示的情景中,时序路径120时序路径130的时序起点为起点寄存器SP0,那么将起点寄存器SP0加入到时序起点集合中。类似地,若集成电路100还包括其他的时序路径,并且其他的时序路径的时序起点为SP1、SP2等,则将SP1、SP2等时序起点加入到时序起点集合中。
步骤S13:针对时序起点集合中的每个时序起点,基于每个时序起点扇出的多个时序终点之间的距离,从时序起点集合中确定目标时序起点,至少一个目标时序起点形成目标时序起点集合。
在本公开的一些实施例中,对于步骤S13可以包括确定每个时序起点各自扇出的多个时序终点,以及确定该多个时序终点之间的距离,然后根据多个时序终点之间的距离确定目标时序起点。
例如,针对每个时序起点,时序起点扇出的多个时序终点可以是每个时序起点所在的至少一个时序路径各自的时序终点。例如,在图1所示的情景中,作为时序路径120和时序路径130的时序起点SP0扇出的多个时序终点包括宏单元10、宏单元11、EP0和EP1。类似地,可以确定集成电路100中的其他时序起点SP1、SP2等扇出的时序终点。
在本公开的一些实施例中,在确定每个时序起点扇出的多个时序终点之后,例如确定多个时序终点中任意两点之间的距离。例如,对于时序起点SP0,确定宏单元10、宏单元11、EP0和EP1中任意两点之间的距离。在本公开的另一些实施例中,在确定每个时序起点扇出的多个时序终点之后,例如可以确定多个时序终点中选定的多个时序终点对之间的距离,时序终点对包括两个时序终点。
在本公开的一些实施例中,例如根据每个时序起点扇出的多个时序终点之间的距离,从时序起点集合中选择目标时序起点加入到目标时序起点集合中。
由于下文中图4A和图4B提供了本公开的步骤S13的一种实施方式,因此在此不再赘述。
步骤S14:针对目标时序起点集合中的每个目标时序起点,将至少一个时序违反路径中以目标时序起点为时序起点的时序违反路径作为至少一个目标时序违反路径。
例如,目标时序起点集合中包括目标时序起点SP0、SP1、SP3等,针对目标时序起点SP0,将以SP0为时序起点的至少一个时序违反路径作为目标时序违反路径。类似地,针对目标时序起点SP1,将以SP1为时序起点的至少一个时序违反路径作为目标时序违反路径,以及针对目标时序起点SP3,将以SP3为时序起点的时序违反路径作为目标时序违反路径。
如图1所示,若以SP0为时序起点的时序路径至少包括时序路径120和时序路径130,若时序路径120和时序路径130都是时序违反较大的时序违反路径(即,slack<WNS),则时序路径120和时序路径130都是目标时序违反路径,若时序路径120是时序违反较大的时序违反路径,而时序路径130不是时序违反较大的时序违反路径,则时序路径120是目标时序违反路径,时序路径130不是目标时序违反路径。
图3所示的获取目标时序违反路径的方法可以得到由于时序起点和时序终点之间的物理距离过大而导致的时序违反路径,从而能够针对性地对由于物理距离过大导致的时序违反路径进行处理,以缩短时序违反路径的物理距离,进而实现时序收敛。
图4A示出了本公开至少一实施例提供的图3中步骤S13的方法流程图。
如图4A所示,步骤S13包括步骤S131~步骤S133。
步骤S131:针对时序起点集合中的每个时序起点,计算时序起点扇出的多个时序终点之间的最大距离。
在公开的一些实施例中,例如,多个时序终点之间的最大距离是指多个时序终点中任意两点之间距离的最大值。
例如,针对每个时序起点,确定时序起点扇出的多个时序终点中任意两点之间的距离,并且将多个时序终点中任意两点之间的距离进行比较,从而确定距离的最大值。
在公开的一些实施例中,针对时序起点集合中的每个时序起点,计算时序起点扇出的多个时序终点之间的最大距离可以包括:确定时序起点扇出的多个时序终点,确定该多个时序终点各自在初始集成电路的布局中的位置信息,并且基于位置信息确定时序起点扇出的多个时序终点之间的最大距离。
在本公开的一些实施例中,位置信息包括位置坐标,位置坐标包括X轴坐标和Y轴坐标。基于位置信息确定时序起点扇出的多个时序终点之间的最大距离可以包括:根据位置信息,确定多个时序终点中X轴坐标最小的第一时序终点和X轴坐标最大的第二时序终点,以及确定多个时序终点中Y轴坐标最小的第三时序终点和Y轴坐标最大的第四时序终点;分别计算第一时序终点、第二时序终点、第三时序终点和第四时序终点中任意两点之间的时序终点距离;以及比较多个时序终点距离,将最大的时序终点距离作为对应的逻辑单元扇出的多个时序终点之间的最大距离。
在本公开的一些实施例中,位置信息可以包括初始集成电路的布局,从而可以根据布局确定多个时序终点中X轴坐标最小的第一时序终点和X轴坐标最大的第二时序终点,以及确定多个时序终点中Y轴坐标最小的第三时序终点和Y轴坐标最大的第四时序终点。
下面结合图4B说明该实施例所描述的获得时序起点扇出的多个时序终点之间的最大距离的实施方式。
图4B示出了一种初始集成电路的布局的示意图。
如图4B所示,在该初始集成电路包括时序起点SP 403、SP 403扇出的组合逻辑单元401和时序起点SP 403扇出的多个时序终点402(实线椭圆圈出的区域内的逻辑单元)。多个时序终点402中至少包括时序终点A、时序终点B、时序终点C和时序终点D。
例如,在图4B所示的坐标系下,根据初始集成电路的布局,确定多个时序终点402中X轴坐标最小的第一时序终点为时序终点A,X轴坐标最大的第二时序终点为时序终点B。根据初始集成电路的布局,确定多个时序终点402中Y轴坐标最小的第三时序终点为时序终点C,Y轴坐标最大的第四时序终点为时序终点D。接下来,分别计算第一时序终点(即,时序终点A)、第二时序终点(即,时序终点B)、第三时序终点(即,时序终点C)和第四时序终点(即,时序终点D)中任意两点之间的时序终点距离。例如,计算得到时序终点A和时序终点B之间的时序终点距离为|AB|,时序终点C和时序终点B之间的时序终点距离为|BC|,时序终点C和时序终点D之间的时序终点距离为|CD|,时序终点A和时序终点D之间的时序终点距离为|AD|。然后,比较多个时序终点距离,即,比较|AB|、|BC|、|CD|和|AD|的大小,并且将最大的时序终点距离作为对应的时序起点扇出的多个时序终点之间的距离的最大值。例如,在该示例中,经比较确定|AD|最大,则将|AD|作为时序起点SP 403扇出的多个时序终点之间的最大距离。
在本公开的一些实施例中,多个时序终点之间的距离为曼哈顿距离。即,利用曼哈顿距离的计算公式来计算任意两个时序终点之间的距离而得到时序终点距离。例如,根据曼哈顿距离计算公式计算时序终点A和时序终点B之间的距离而得到时序终点距离为|AB|。若按照曼哈顿距离的计算公式来计算任意两个时序终点之间的距离,则步骤S131为针对时序起点集合中的每个时序起点,计算时序起点扇出的多个时序终点之间的最大曼哈顿距离。
在本公开的另一些实施例中,多个时序终点之间的距离可以是欧式距离,即根据欧式距离的计算公式来计算任意两个时序终点之间的距离而得到时序终点距离。
可以理解的是,在上述实施例中仅仅以一个时序起点SP 403为例来说明计算时序起点扇出的多个时序终点之间的距离的最大值的方法,在实际中初始集成电路中的时序起点可以包括多个,多个时序起点中的每个时序起点都可以按照上述方法来确定时序起点扇出的多个时序终点之间的距离的最大值。例如,时序起点还包括时序起点SP0、SP1和SP2等。
步骤S132:将时序起点扇出的多个时序终点之间的最大距离与预设距离阈值进行比较而获得比较结果。
步骤S133:根据比较结果,从时序起点集合中确定目标时序起点,目标时序起点为扇出的多个时序终点之间的最大距离大于预设距离阈值的时序起点。
对于步骤S132和步骤S133,例如针对每个时序起点,将时序起点扇出的多个时序终点之间的最大距离与预设距离阈值MaxDisThd进行比较,若该时序起点扇出的多个时序终点之间的最大距离大于MaxDisThd,则该时序起点为目标时序起点,并且将该目标时序起点加入到目标时序起点集合中。例如,在图1所示的情景中,若SP0扇出的宏单元10、宏单元11、EP0和EP1之间的最大距离大于MaxDisThd,该SP0为目标时序起点,将SP0加入到目标时序起点集合中。
在本公开的一些实施例中,预设距离阈值MaxDisThd可以是根据出现时序违反的最大物理距离、工艺以及逻辑复杂度来确定。
在本公开的一些实施例中,集成电路设计方法在前述实施例的基础上还可以包括:确定至少一个时序违反路径中最大的物理距离;以及基于最大的物理距离,确定预设距离阈值。
在本公开的一些实施例中,预设距离阈值与最大物理距离成正比。也就是,时序违反路径中最大的物理距离越大,则预设距离阈值越大。MaxDisThd越小,选择出的目标时序起点越多,这样导致脚本执行越慢,因此预设距离阈值与最大物理距离成正比可以提高脚本的执行速度。
例如,在一些示例中,当时序违反路径中最大的物理距离为1500μm时,时序违反为-50ps,则可以设置预设距离阈值MaxDisThd为1500μm。又例如,当时序违反路径中最大的物理距离为1000um时,时序违反为-200ps,那么MaxDisThd可以设置的更小一些,例如800um、700um、时序违反路径中最大的物理距离600um等。
时序违反路径中最大的物理距离可以是指当出现时序违反路径时,时序违反路径的时序终点和时序起点之间的直线距离的最大值。例如,时序违反路径中最大的物理距离可以是在集成电路的布局布线完成后,计算时序违反路径的时序终点和时序起点之间的直线距离的最大值。
对于步骤S20,逻辑单元集合中的元素为至少一个目标时序违反路径包含的逻辑单元。
例如,利用电子设计自动化工具(例如,EDA)抓取每个目标时序违反路径上的逻辑单元,从而多个目标时序违反路径上的逻辑单元形成逻辑单元集合。例如,利用EDA工具中的get_timing_path指令可以得到时序路径经过的所有逻辑单元和逻辑输入点。
图5示出了本公开至少一实施例提供的图1中目标时序违反路径包含的逻辑单元和逻辑输入点的示意图。
例如,利用EDA工具中的get_timing_path指令可以得到目标时序违反路径经过的所有逻辑输入点,这些逻辑输入点例如都会添加到集合comcell_pin_list中。如图5所示,逻辑输入点1001~1008被添加到集合comcell_pin_list中。然后通过逻辑输入点可以得到目标时序违反路径经过的所有逻辑单元。如图5所示,利用逻辑输入点1001~1008可以得到目标时序违反路径上的逻辑单元111、逻辑单元112、逻辑单元113、逻辑单元114、逻辑单元115、逻辑单元116、逻辑单元117和逻辑单元118,这些位于目标时序违反路径上的多个逻辑单元被添加到逻辑单元集合comcell_list中。例如,comcell_list={逻辑单元111、逻辑单元112、逻辑单元113、逻辑单元114、逻辑单元115、逻辑单元116、逻辑单元117、逻辑单元118}。
对于步骤S30,特征距离为逻辑单元扇出的多个时序终点之间的距离的最大值,时序终点为多个时序路径中逻辑单元所在的时序路径的终点。
如图5所示,逻辑单元111扇出的多个时序终点包括宏单元10、宏单元11、时序终点EP0和时序终点EP1,逻辑单元112扇出的多个时序终点包括宏单元10、宏单元11、时序终点EP0和时序终点EP1。逻辑单元113扇出的多个时序终点包括宏单元10和时序终点EP0,逻辑单元114和逻辑单元115扇出的时序终点为宏单元10。类似地,逻辑单元116扇出的多个时序终点包括宏单元11和时序终点EP1,逻辑单元117和逻辑单元118扇出的时序终点为宏单元11。
例如,逻辑单元111对应的特征距离为宏单元10、宏单元11、时序终点EP0和时序终点EP1中任意两个器件之间的距离的最大值。
图6示出了本公开至少一实施例提供的图2中步骤S30的方法流程图。
如图6所示,步骤S30可以包括步骤S31~步骤S32。
步骤S31:确定每个逻辑单元扇出的多个时序终点在初始集成电路的布局中的位置信息。
在本公开的一些实施例中,位置信息可以包括位置坐标,位置坐标例如可以包括X轴坐标和Y轴坐标。位置信息还可以包括初始集成电路的布局。
步骤S32:基于位置信息,确定每个逻辑单元扇出的多个时序终点之间的距离的最大值。
在本公开的一些实施例中,基于位置信息,确定每个逻辑单元扇出的多个时序终点之间的距离的最大值的方法与上述步骤S131结合图4B描述的获得时序起点扇出的多个时序终点之间的最大距离的实施方式类似。
例如,根据位置信息确定每个逻辑单元扇出的多个时序终点中X轴坐标最小的第一时序终点和X轴坐标最大的第二时序终点,以及确定每个逻辑单元扇出的多个时序终点中Y轴坐标最小的第三时序终点和Y轴坐标最大的第四时序终点。然后,分别计算第一时序终点、第二时序终点、第三时序终点和第四时序终点中任意两点之间的时序终点距离,然后比较多个时序终点距离,将最大的时序终点距离作为对应的逻辑单元扇出的多个时序终点之间的距离的最大值。
下面以逻辑单元111为例来说明步骤S32。例如,逻辑单元111的多个时序终点中X轴坐标最小的第一时序终点为宏单元10,X轴坐标最大的第二时序终点为EP0,Y轴坐标最小的第三时序终点为宏单元11,Y轴坐标最大的第四时序终点为EP1,则计算宏单元10和EP0之间的第一距离,计算宏单元11和EP1之间的第二距离,从而比较第一距离和第二距离,将第一距离和第二距离中较大的距离作为逻辑单元111扇出的多个时序终点之间的距离的最大值。
在该实施例中只需要计算第一时序终点和第二时序终点之间的距离,以及第四时序终点和第三时序终点之间的距离,而不需要对每两个时序终点之间的距离都进行计算,因此可以节约计算时间,提高了计算效率。
对于扇出的时序终点的数量小于4的逻辑单元(例如,逻辑单元113、逻辑单元116等),可以分别计算该逻辑单元扇出的多个时序终点中任意两个时序终点之间的距离,从而确定出最大值。
对于步骤S40,在本公开的一些实施例中,例如可以将特征距离在目标范围内的逻辑单元确定为目标单元。目标范围可以是根据实际情况设置的。
图7示出了本公开至少一实施例提供的图2中步骤S40的方法流程图。
如图7所示,步骤S40可以包括步骤S41~步骤S44。
步骤S41:基于每个逻辑单元对应的特征距离,确定距离分割值。
在本公开的一些实施例中,步骤S41包括:比较各个逻辑单元分别对应的特征距离,确定最大特征距离;以及对最大特征距离进行计算而得到距离分割值。
例如,在图5所示的示例中,逻辑单元111的特征距离为3000μm,逻辑单元112的特征距离为1800μm,逻辑单元113的特征距离为1400μm,逻辑单元114的特征距离为200μm,逻辑单元115的特征距离为50μm,逻辑单元116的特征距离为1400μm,逻辑单元117的特征距离为200μm,逻辑单元118的特征距离为200μm,则最大特征距离为3000μm。
在本公开的一些实施例中,对最大特征距离进行计算而得到距离分割值,包括:计算最大特征距离与N的比值,将比值作为距离分割值,N≥2且N为整数。
例如N=2,最大特征距离为3000μm,则距离分割值为1500μm。
对于一些特殊或者复杂的集成电路,为了加快时序收敛,可以将N设置的大一些,例如N=4等。
在本公开的另一些实施例中,距离分割值也可以是根据每个逻辑单元对应的特征距离而设定的。
步骤S42:确定逻辑单元集合中的第一逻辑单元,第一逻辑单元的特征距离大于距离分割值。
例如在上述实施例中,距离分割值为1500μm,逻辑单元111和逻辑单元112的特征距离都大于1500μm,因此第一逻辑单元包括逻辑单元111和逻辑单元112。
步骤S43:基于第一逻辑单元确定第二逻辑单元,第二逻辑单元为第一逻辑单元的下一级扇出。
例如,第一逻辑单元的下一级扇出可以是第一逻辑单元所在的目标时序违反路径中第一逻辑单元的下一级逻辑单元,第一逻辑单元向下一级逻辑单元传输信号,并且下一级逻辑单元与第一逻辑单元直接电连接。
在本公开的一些实施例中,例如遍历第一逻辑单元,找到第一逻辑单元的下一级扇出的逻辑输入点集合comcell_pin_next,抓出位于comcell_pin_next集合中且属于comcell_pin_list集合的逻辑输入点,添加到新的逻辑点集合comcell_target_pin_pre中。图5中逻辑输入点1002,1003,1006加入到集合comcell_target_pin_pre中。然后,遍历comcell_target_pin_pre集合中所有逻辑输入点,确定逻辑输入点对应的第二逻辑单元。
在图5所示的示例中,逻辑单元111的下一级扇出为逻辑单元112,逻辑单元112的下一级扇出为逻辑单元113和逻辑单元116。
步骤S44:响应于第二逻辑单元的特征距离小于距离分割值,确定第二逻辑单元为目标单元。
例如,逻辑单元111的下一级扇出逻辑单元112的特征距离为1800,其大于距离分割值1500,因此逻辑单元112不是目标单元。
又例如,逻辑单元112的下一级扇出逻辑单元113的特征距离为1400,逻辑单元116的特征距离为1400,1400小于距离分割值1500,因此逻辑单元113和逻辑单元116都为目标单元。
在本公开的实施例中,如果逻辑输入点对应的逻辑单元的特征距离小于距离分割值,则将该逻辑输入点加入到集合comcell_pin_target中。
例如,图中只有逻辑单元113和逻辑单元116的特征距离小于距离分割值,将对应的逻辑输入点1003和逻辑输入点1006加入集合comcell_pin_target中。集合comcell_pin_target中的逻辑输入点可以作为需要进行复制的逻辑终点。
对于步骤S50,例如可以是复制初始集成电路中位于时序起点和目标单元之间的逻辑单元(不包含目标单元)而得到克隆电路逻辑结构。
在本公开的一些实施例中,例如可以复制时序起点到集合comcell_pin_target中的逻辑输入点之间的逻辑单元而得到克隆电路逻辑结构。
在本公开的一些实施例中,例如可以利用EDA工具提供的命令duplicate_logic来实现复制。
例如,在上文描述的图5所示的示例中,可以复制从SP0到逻辑输入点1003以及从SP0到逻辑输入点1006之间的组合逻辑。
图8A示出了本公开至少一实施例提供的图2中步骤S50的方法流程图。
如图8A所示,步骤S50可以包括步骤S51~步骤S52。
步骤S51:针对至少一个目标时序违反路径中的每个目标时序违反路径,基于目标单元,确定每个目标时序违反路径中位于目标时序起点和目标单元之间的待复制电路逻辑结构。
例如在图5所示的情景中,目标单元为逻辑单元113和逻辑单元116,确定待复制电路逻辑结构为位于目标时序起点即时序起点SP0和逻辑单元113之间的电路逻辑结构(不包含逻辑单元113)和位于目标时序起点即时序起点SP0和逻辑单元116(不包含逻辑单元116)之间的电路逻辑结构。或者说,待复制电路逻辑结构为位于目标时序起点即时序起点SP0和逻辑输入点1003(即,将信号输入到逻辑单元113的逻辑输入点)之间的电路逻辑结构和位于目标时序起点即时序起点SP0和逻辑输入点1006之间的电路逻辑结构。待复制电路逻辑结构至少包括在图5中以椭圆形圈出的电路逻辑结构510。
步骤S52:复制待复制电路逻辑结构而得到克隆电路逻辑结构。
图8B示出了本公开至少一实施例提供的克隆电路逻辑结构的示意图。
如图8B所示,将图5中以椭圆形圈出的电路逻辑结构510进行复制而得到克隆电路逻辑结构810和克隆电路逻辑结构820。
例如,克隆电路逻辑结构810包括对逻辑单元111和逻辑单元112复制得到的逻辑单元111a和逻辑单元112a以及逻辑单元111和逻辑单元112之间的连接关系进行复制而得到的逻辑单元111a和逻辑单元112a之间的连接关系。克隆电路逻辑结构820包括对逻辑单元111和逻辑单元112复制得到的逻辑单元111b和逻辑单元112b,以及逻辑单元111和逻辑单元112之间的连接关系进行复制而得到的逻辑单元111b和逻辑单元112b之间的连接关系。
在本公开的一些实施例中,在得到克隆电路逻辑结构之后,EDA工具会自动断开逻辑单元112和逻辑输入点1003之间的连接,并且自动将逻辑输入点1003和逻辑单元112a连接,以及EDA工具会自动断开逻辑单元112和逻辑输入点1006之间的连接,并且自动将逻辑输入点1006和逻辑单元112b连接。EDA工具还可以自动将逻辑单元111a和时序起点SP0连接,以及将逻辑单元111b和时序起点SP0连接。
图9A示出了本公开至少一实施例提供的另一种集成电路设计方法的流程图。
如图9A所示,该方法除包括图2所示的步骤S10~步骤S50外,还可以进一步包括步骤S60和步骤S70。步骤S60和步骤S70例如在步骤S50之后执行。
步骤S60:复制目标时序起点而得到克隆时序起点。
步骤S70:基于克隆电路逻辑结构和克隆时序起点,调整初始集成电路的电路逻辑结构的连接关系而生成对初始集成电路的设计修改后的集成电路设计。
例如,利用EDA工具进行综合,以调整初始集成电路的电路逻辑结构的连接关系而生成调整后的集成电路。
在本公开的一些实施例中,例如,首先确定克隆电路逻辑结构和克隆时序起点在集成电路中的摆放位置,使得克隆时序起点经由克隆电路逻辑结构到达目标时序违反路径的时序终点的距离小于目标时序起点到达目标时序违反路径的时序终点之间的距离,然后,根据克隆电路逻辑结构和克隆时序起点在集成电路中的摆放位置,连接克隆时序起点、克隆电路逻辑结构和第一电路逻辑结构,以生成对初始集成电路的设计修改后的集成电路设计。第一电路逻辑结构为初始集成电路中除目标时序起点和待复制电路逻辑结构之外的电路逻辑结构。
例如,克隆电路逻辑结构和克隆时序起点在集成电路中的摆放位置为靠近目标时序违反路径的时序终点的位置。
下面结合图9B和图9C来说明图9A的实施方式。
图9B示出了本公开至少一实施例提供的复制目标时序起点而得到克隆时序起点的示意图。
如图9B所示,复制目标时序起点SP0而得到克隆时序起点SP0_clone1和SP0_clone2。
克隆时序起点SP0_clone1和克隆电路逻辑结构810的摆放位置靠近时序终点宏单元10,克隆时序起点SP0_clone2和克隆电路逻辑结构820的摆放位置靠近时序终点EP1。
在本公开的一些实施例中,在对目标时序起点SP0复制而得到克隆时序起点SP0_clone1和SP0_clone2之后,例如EDA工具可以连接克隆时序起点、克隆电路逻辑结构和第一电路逻辑结构。第一电路逻辑结构为初始集成电路中除目标时序起点和待复制电路逻辑结构之外的电路逻辑结构。
例如,目标时序违反路径中位于逻辑输入点1003之后的电路逻辑结构(即,包括逻辑单元113~115以及宏单元10和EP0)为第一电路逻辑结构,以及目标时序违反路径中位于逻辑输入点1006之后的电路逻辑结构(即,包括逻辑单元116~118以及宏单元11和EP1)为第一电路逻辑结构。
例如,EDA工具断开SP0与逻辑单元111a和111b的连接,并且将逻辑单元111a重新连接到新添加的克隆时序起点SP0_clone1的输出端上和位于逻辑输入点1003之后的第一电路逻辑结构上,将逻辑单元111b重新连接到新添加的克隆时序起点SP0_clone2的输出端上和位于逻辑输入点1006之后的电路逻辑结构上。
图9C示出了本公开至少一实施例提供的调整后的集成电路结构的示意图。
如图9C所示,重新综合后,EDA工具将SP0_clone1摆放靠近EP0和宏单元10的位置,SP0_clone2摆放靠近EP1和宏单元11的位置,从而达到时序收敛的目的。
在本公开的一些实施例中,由于逻辑单元112已断开了与所有扇出的连接,EDA工具优化后,会删掉寄存器SP0、逻辑单元111和逻辑单元112,优化后的电路结构如图9C所示。
图10示出了本公开至少一实施例提供的另一种集成电路设计方法的流程图。
如图10所示,该集成电路设计方法可以包括步骤S101~步骤S110。
步骤S101:获取时序违反较大的时序起点SP。
例如,步骤S101类似于上文参考图3描述的步骤S11和步骤S12,在此不再赘述。
步骤S102:根据曼哈顿距离计算公式计算最大曼哈顿距离,获得因物理距离导致违反的目标时序起点SP_t。
例如,步骤S102类似于上文参考图3描述的步骤S13,在此不再赘述。
步骤S103:获得SP_t为起点的所有时序违反较大的目标时序违反路径。
例如,步骤S103类似于上文参考图3描述的步骤S14,在此不再赘述。
步骤S104:抓取时序违反路径上所有的逻辑输入点添加到集合comcell_pin_list,以及抓取逻辑输入点对应的逻辑单元到集合comcell_list。
例如,步骤S104类似于上文参考图2描述的步骤S20。
步骤S105:计算comcell_list中逻辑单元扇出的最大曼哈顿距离,获得最大的曼哈顿距离COM_MAX_DISTANCE。
例如,步骤S105类似于上文参考图2中的步骤30,并且将步骤S30获得的每个逻辑单元对应的特征距离进行比较,从而获得最大曼哈顿距离COM_MAX_DISTANCE。
步骤S106:判断comcell_list中逻辑单元扇出的最大曼哈顿距离是否大于COM_MAX_DISTANCE/2。
若逻辑单元扇出的最大曼哈顿距离大于COM_MAX_DISTANCE/2,则执行步骤S107。
若逻辑单元扇出的最大曼哈顿距离小于或者等于COM_MAX_DISTANCE/2,则继续从comcell_list中获取下一个逻辑单元,进而重复执行步骤S106,直到comcell_list中的每一逻辑单元都被判断过扇出的最大曼哈顿距离是否大于COM_MAX_DISTANCE/2。也就是,遍历comcell_list中的每一逻辑单元,对每一个逻辑单元执行步骤S106。
步骤S107:将扇出的最大曼哈顿距离大于COM_MAX_DISTANCE/2的逻辑单元添加到集合com_large_distance中。
例如,步骤S106和步骤S107类似于上文图7中步骤S41和步骤S42,COM_MAX_DISTANCE/2为步骤S41中的距离分割值,扇出的最大曼哈顿距离大于COM_MAX_DISTANCE/2的逻辑单元即为步骤S42中的第一逻辑单元。
步骤S108:判断com_large_distance中的逻辑单元的下一级扇出是否属于comcell_pin_list且扇出的最大曼哈顿距离小于COM_MAX_DISTANCE/2。
例如,步骤S108类似于上文图7中步骤S43和步骤S44。
若逻辑单元的下一级扇出属于comcell_pin_list且扇出的最大曼哈顿距离小于COM_MAX_DISTANCE/2,则执行步骤S109。若逻辑单元的下一级扇出的最大曼哈顿距离大于或等于COM_MAX_DISTANCE/2,或者逻辑单元的下一级扇出不属于comcell_pin_list,则继续从com_large_distance中获取下一个逻辑单元的下一级扇出,进而重复执行步骤S108,直到com_large_distance中的每一逻辑单元都被判断过下一级扇出是否属于comcell_pin_list且扇出的最大曼哈顿距离小于COM_MAX_DISTANCE/2。也就是,遍历com_large_distance中的每一逻辑单元,对每一个逻辑单元执行步骤S108。
步骤S109:将下一级扇出对应的逻辑输入点添加到集合comcell_pin_target中。
步骤S110:复制SP_t到comcell_pin_target之间的组合逻辑,复制SP_t,重新连接复制逻辑单元和复制逻辑。
例如,步骤S110类似于上文图2中步骤S50和图9A中的步骤S60和步骤S70,在此不再赘述。
本公开的上述至少一个实施例提供的集成电路设计方法可以有效解决CPU、GPU等高速高性能处理器数字电路中因物理位置约束导致时序违反的问题,能够有效的减少前端设计在复制寄存器和组合逻辑的工作量,降低修改代码带来的风险,加速时序收敛,减少产品开发周期,能够提高寄存器和组合逻辑复制的效率,处理较多的时序违反路径。
图11示出了本公开至少一个实施例提供的一种集成电路设计装置1100的示意框图。
例如,如图11所示,该集成电路设计装置1100包括获取模块1110、第一确定模块1120、计算模块1130、第二确定模块1140和复制模块1150。
获取模块1110配置为获取多个时序路径中发生时序违反的至少一个目标时序违反路径,至少一个目标时序违反路径的时序起点相同。获取模块1110例如可以执行图2描述的步骤S10。
第一确定模块1120配置为确定至少一个目标时序违反路径的逻辑单元集合,逻辑单元集合中的元素为至少一个目标时序违反路径所包含的逻辑单元。第一确定模块1120例如可以执行图2描述的步骤S20。
计算模块1130配置为计算逻辑单元集合中每个逻辑单元对应的特征距离,特征距离为逻辑单元扇出的多个时序终点之间的距离的最大值,时序终点为多个时序路径中逻辑单元所在的时序路径的终点。计算模块1130例如可以执行图2描述的步骤S30。
第二确定模块1140配置为基于每个逻辑单元对应的特征距离,从逻辑单元集合中确定目标单元。第二确定模块1140例如可以执行图2描述的步骤S40。
复制模块1150配置为基于目标单元,复制初始集成电路中的至少部分电路逻辑结构而得到克隆电路逻辑结构,以利用克隆电路逻辑结构修改初始集成电路的设计。复制模块1150例如可以执行图2描述的步骤S50。
本公开的至少一个实施例提供的集成电路设计装置可以有效解决CPU、GPU等高速高性能处理器数字电路中因物理位置约束导致时序违反的问题,能够有效的减少前端设计在复制寄存器和组合逻辑的工作量,降低修改代码带来的风险,加速时序收敛,减少产品开发周期,能够提高寄存器和组合逻辑复制的效率,处理较多的时序违反路径。
在本公开的一些实施例中,至少一个目标时序违反路径的时序起点为目标时序起点,复制模块1150包括确定子模块和复制子模块。
确定子模块配置为针对至少一个目标时序违反路径中的每个目标时序违反路径,基于目标单元,确定每个目标时序违反路径中位于目标时序起点和目标单元之间的待复制电路逻辑结构。
复制子模块配置为复制待复制电路逻辑结构而得到克隆电路逻辑结构。
在本公开的一些实施例中,至少一个目标时序违反路径的时序起点为目标时序起点,集成电路设计装置1100在前述实施例的基础上还可以包括克隆模块和调整模块。
克隆模块配置为复制目标时序起点而得到克隆时序起点。
调整模块配置为基于克隆电路逻辑结构和克隆时序起点,调整初始集成电路的电路逻辑结构的连接关系而生成对初始集成电路的设计修改后的集成电路设计。
在本公开的一些实施例中,调整模块包括第一调整子模块和第二调整子模块。
第一调整子模块配置为确定克隆电路逻辑结构和克隆时序起点在集成电路中的摆放位置,使得克隆时序起点经由克隆电路逻辑结构到达目标时序违反路径的时序终点的距离小于目标时序起点到达目标时序违反路径的时序终点之间的距离。
第二调整子模块配置为根据克隆电路逻辑结构和克隆时序起点在集成电路中的摆放位置,连接克隆时序起点、克隆电路逻辑结构和第一电路逻辑结构,以生成对初始集成电路的设计修改后的集成电路设计,第一电路逻辑结构为初始集成电路中除目标时序起点和待复制电路逻辑结构之外的电路逻辑结构。
第二确定模块1140包括分割值确定子模块、第一逻辑单元确定子模块、第二逻辑单元确定子模块和目标单元确定子模块。
分割值确定子模块配置为基于每个逻辑单元对应的特征距离,确定距离分割值。
在本公开的一些实施例中,分割值确定子模块包括最大特征距离确定子模块和分割值计算子模块。
最大特征距离确定子模块配置为比较各个逻辑单元分别对应的特征距离,确定最大特征距离。
分割值计算子模块配置为对最大特征距离进行计算而得到距离分割值。
例如,分割值计算子模块计算最大特征距离与N的比值,将比值作为距离分割值,N≥2且N为整数。
第一逻辑单元确定子模块配置为确定逻辑单元集合中的第一逻辑单元,第一逻辑单元的特征距离大于距离分割值。
第二逻辑单元确定子模块配置为基于第一逻辑单元确定第二逻辑单元,第二逻辑单元为第一逻辑单元的下一级扇出。
目标单元确定子模块配置为响应于第二逻辑单元的特征距离小于距离分割值,确定第二逻辑单元为目标单元。
在本公开的一些实施例中,计算模块1130包括位置确定子模块和最大值确定子模块。
位置确定子模块配置为确定每个逻辑单元扇出的多个时序终点在初始集成电路的布局中的位置信息。
最大值确定子模块配置为基于位置信息,确定每个逻辑单元扇出的多个时序终点之间的距离的最大值。
在本公开的一些实施例中,位置信息包括位置坐标,位置坐标包括X轴坐标和Y轴坐标,最大值确定子模块包括:终点确定子模块、时序终点距离计算子模块、比较子模块。终点确定子模块配置为根据位置信息,确定多个时序终点中X轴坐标最小的第一时序终点和X轴坐标最大的第二时序终点,以及确定多个时序终点中Y轴坐标最小的第三时序终点和Y轴坐标最大的第四时序终点;时序终点距离计算子模块配置为分别计算第一时序终点、第二时序终点、第三时序终点和第四时序终点中任意两点之间的时序终点距离;比较子模块配置为比较多个时序终点距离,将最大的时序终点距离作为对应的逻辑单元扇出的多个时序终点之间的距离的最大值。
在本公开的一些实施例中,获取模块1110包括获取子模块、时序起点确定子模块、目标时序起点确定子模块以及目标时序违反路径确定子模块。
获取子模块配置为获取多个时序路径中发生时序违反的至少一个时序违反路径。
时序起点确定子模块配置为确定至少一个时序违反路径的时序起点集合,时序起点集合中的元素为至少一个时序违反路径的时序起点。
目标时序起点确定子模块配置为针对时序起点集合中的每个时序起点,基于每个时序起点扇出的多个时序终点之间的距离,从时序起点集合中确定至少一个目标时序起点,至少一个目标时序起点形成目标时序起点集合。
在本公开的一些实施例中,目标时序起点确定子模块可以包括最大距离计算子模块、比较结果获取子模块、目标起点确定子模块。最大距离计算子模块配置为针对时序起点集合中的每个时序起点,计算时序起点扇出的多个时序终点之间的最大距离;比较结果获取子模块配置为将时序起点扇出的多个时序终点之间的最大距离与预设距离阈值进行比较而获得比较结果;目标起点确定子模块配置为根据比较结果,从时序起点集合中确定目标时序起点,目标时序起点为扇出的多个时序终点之间的最大距离大于预设距离阈值的时序起点。
目标时序违反路径确定子模块配置为针对目标时序起点集合中的每个目标时序起点,将至少一个时序违反路径中以目标时序起点为时序起点的时序违反路径作为至少一个目标时序违反路径。
在本公开的一些实施例中,多个时序终点之间的距离为曼哈顿距离。
例如,获取模块1110、第一确定模块1120、计算模块1130、第二确定模块1140和复制模块1150可以为硬件、软件、固件以及它们的任意可行的组合。例如,获取模块1110、第一确定模块1120、计算模块1130、第二确定模块1140和复制模块1150可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
需要说明的是,本公开的实施例中,集成电路设计装置1100的各个模块与前述的集成电路设计方法的各个步骤对应,关于集成电路设计装置1100的具体功能可以参考关于集成电路设计方法的相关描述,此处不再赘述。图11所示的集成电路设计装置1100的组件和结构只是示例性的,而非限制性的,根据需要,该集成电路设计装置1100还可以包括其他组件和结构。
本公开的至少一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,存储器包括一个或多个计算机程序模块。一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上述的集成电路设计方法的指令。该电子设备可以缩短逻辑复制的时间,可以自动对较多的时序违反路径进行处理,从而提高了实现时序收敛的效率。该电子设备可以有效解决CPU、GPU等高速高性能处理器数字电路中因物理位置约束导致时序违反的问题,能够有效的减少前端设计在复制寄存器和组合逻辑的工作量,降低修改代码带来的风险,加速时序收敛,减少产品开发周期,能够提高寄存器和组合逻辑复制的效率。
图12A为本公开一些实施例提供的一种电子设备的示意框图。如图12A所示,该电子设备1200包括处理器1210和存储器1220。存储器1220用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器1210用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器1210运行时可以执行上文所述的集成电路设计方法中的一个或多个步骤。存储器1220和处理器1210可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器1210可以是中央处理单元(CPU)、图形处理单元(GPU)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器1210可以为通用处理器或专用处理器,可以控制电子设备1200中的其它组件以执行期望的功能。
例如,存储器1220可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器1210可以运行一个或多个计算机程序模块,以实现电子设备1200的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,电子设备1200的具体功能和技术效果可以参考上文中关于集成电路设计方法的描述,此处不再赘述。
图12B为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备1300例如适于用来实施本公开实施例提供的集成电路设计方法。电子设备1300可以是终端设备等。需要注意的是,图12B示出的电子设备1300仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图12B所示,电子设备1300可以包括处理装置(例如中央处理器、图形处理器等)1310,其可以根据存储在只读存储器(ROM)1320中的程序或者从存储装置1380加载到随机访问存储器(RAM)1330中的程序而执行各种适当的动作和处理。在RAM 1330中,还存储有电子设备1300操作所需的各种程序和数据。处理装置1310、ROM 1320以及RAM 1330通过总线1340彼此相连。输入/输出(I/O)接口1350也连接至总线1340。
通常,以下装置可以连接至I/O接口1350:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1360;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1370;包括例如磁带、硬盘等的存储装置1380;以及通信装置1390。通信装置1390可以允许电子设备1300与其他电子设备进行无线或有线通信以交换数据。虽然图12B示出了具有各种装置的电子设备1300,但应理解的是,并不要求实施或具备所有示出的装置,电子设备1300可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,上述集成电路设计方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述集成电路设计方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1390从网络上被下载和安装,或者从存储装置1380安装,或者从ROM 1320安装。在该计算机程序被处理装置1310执行时,可以实现本公开实施例提供的集成电路设计方法中限定的功能。
本公开的至少一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现上述的集成电路设计方法。利用该计算机可读存储介质,可以缩短逻辑复制的时间,可以自动对较多的时序违反路径进行处理,从而提高了实现时序收敛的效率。利用该计算机可读存储介质可以有效解决CPU、GPU等高速高性能处理器数字电路中因物理位置约束导致时序违反的问题,能够有效的减少前端设计在复制寄存器和组合逻辑的工作量,降低修改代码带来的风险,加速时序收敛,减少产品开发周期,能够提高寄存器和组合逻辑复制的效率,处理较多的时序违反路径。
图13为本公开一些实施例提供的一种存储介质的示意图。如图13所示,存储介质1400用于存储非暂时性计算机可读指令1410。例如,当非暂时性计算机可读指令1410由计算机执行时可以执行根据上文所述的集成电路设计方法中的一个或多个步骤。
例如,该存储介质1400可以应用于上述电子设备1200中。例如,存储介质1400可以为图12A所示的电子设备1200中的存储器1220。例如,关于存储介质1400的相关说明可以参考图12A所示的电子设备1200中的存储器1220的相应描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种集成电路设计方法,用于修改针对初始集成电路的设计,其中,所述初始集成电路包括多个时序路径,所述方法包括:
获取所述多个时序路径中发生时序违反的至少一个目标时序违反路径,其中,所述至少一个目标时序违反路径的时序起点相同;
确定所述至少一个目标时序违反路径的逻辑单元集合,其中,所述逻辑单元集合中的元素为所述至少一个目标时序违反路径所包含的逻辑单元;
计算所述逻辑单元集合中每个逻辑单元对应的特征距离,其中,所述特征距离为所述逻辑单元扇出的多个时序终点之间的距离的最大值,所述时序终点为所述多个时序路径中所述逻辑单元所在的时序路径的终点;
基于每个逻辑单元对应的特征距离,从所述逻辑单元集合中确定目标单元;以及
基于所述目标单元,复制所述初始集成电路中的至少部分电路逻辑结构而得到克隆电路逻辑结构,以利用所述克隆电路逻辑结构修改所述初始集成电路的设计。
2.根据权利要求1所述的方法,其中,所述至少一个目标时序违反路径的时序起点为目标时序起点,基于所述目标单元,复制所述初始集成电路中的至少部分电路逻辑结构而得到所述克隆电路逻辑结构,包括:
针对所述至少一个目标时序违反路径中的每个目标时序违反路径,基于所述目标单元,确定每个目标时序违反路径中位于所述目标时序起点和所述目标单元之间的待复制电路逻辑结构;以及
复制所述待复制电路逻辑结构而得到所述克隆电路逻辑结构。
3.根据权利要求1所述的方法,其中,所述至少一个目标时序违反路径的时序起点为目标时序起点,所述方法还包括:
复制所述目标时序起点而得到克隆时序起点;以及
基于所述克隆电路逻辑结构和所述克隆时序起点,调整所述初始集成电路的电路逻辑结构的连接关系而生成对所述初始集成电路的设计修改后的集成电路设计。
4.根据权利要求3所述的方法,其中,基于所述克隆电路逻辑结构和所述克隆时序起点,调整所述初始集成电路的电路逻辑结构的连接关系而生成对所述初始集成电路的设计修改后的集成电路设计,包括:
确定所述克隆电路逻辑结构和所述克隆时序起点在所述集成电路中的摆放位置,使得所述克隆时序起点经由所述克隆电路逻辑结构到达所述目标时序违反路径的时序终点的距离小于所述目标时序起点到达所述目标时序违反路径的时序终点之间的距离;以及
根据所述克隆电路逻辑结构和所述克隆时序起点在所述集成电路中的摆放位置,连接所述克隆时序起点、所述克隆电路逻辑结构和第一电路逻辑结构,以生成对所述初始集成电路的设计修改后的集成电路设计,
其中,所述第一电路逻辑结构为所述初始集成电路中除所述目标时序起点和待复制电路逻辑结构之外的电路逻辑结构。
5.根据权利要求1所述的方法,其中,基于每个逻辑单元对应的特征距离,从所述逻辑单元集合中确定所述目标单元,包括:
基于每个逻辑单元对应的特征距离,确定距离分割值;
确定所述逻辑单元集合中的第一逻辑单元,其中,所述第一逻辑单元的特征距离大于所述距离分割值;
基于所述第一逻辑单元确定第二逻辑单元,其中,所述第二逻辑单元为所述第一逻辑单元的下一级扇出;以及
响应于所述第二逻辑单元的特征距离小于所述距离分割值,确定所述第二逻辑单元为所述目标单元。
6.根据权利要求5所述的方法,其中,基于每个逻辑单元对应的特征距离,确定所述距离分割值,包括:
比较各个逻辑单元分别对应的特征距离,确定最大特征距离;以及
对所述最大特征距离进行计算而得到所述距离分割值。
7.根据权利要求6所述的方法,其中,对所述最大特征距离进行计算而得到所述距离分割值,包括:
计算所述最大特征距离与N的比值,将所述比值作为所述距离分割值,其中,N≥2且N为整数。
8.根据权利要求1所述的方法,其中,计算所述逻辑单元集合中每个逻辑单元对应的特征距离包括:
确定每个逻辑单元扇出的多个时序终点在所述初始集成电路的布局中的位置信息;
基于所述位置信息,确定每个逻辑单元扇出的多个时序终点之间的距离的最大值。
9.根据权利要求8所述的方法,其中,所述位置信息包括位置坐标,所述位置坐标包括X轴坐标和Y轴坐标,
基于所述位置信息,确定每个逻辑单元扇出的多个时序终点之间的距离的最大值,包括:
根据所述位置信息,确定所述多个时序终点中X轴坐标最小的第一时序终点和X轴坐标最大的第二时序终点,以及确定所述多个时序终点中Y轴坐标最小的第三时序终点和Y轴坐标最大的第四时序终点;
分别计算所述第一时序终点、所述第二时序终点、所述第三时序终点和所述第四时序终点中任意两点之间的时序终点距离;以及
比较多个所述时序终点距离,将最大的时序终点距离作为对应的逻辑单元扇出的多个时序终点之间的距离的最大值。
10.根据权利要求1所述的方法,其中,获取所述多个时序路径中发生时序违反的至少一个目标时序违反路径,包括:
获取所述多个时序路径中发生时序违反的至少一个时序违反路径;
确定所述至少一个时序违反路径的时序起点集合,其中,所述时序起点集合中的元素为所述至少一个时序违反路径的时序起点;
针对所述时序起点集合中的每个时序起点,基于每个时序起点扇出的多个时序终点之间的距离,从所述时序起点集合中确定至少一个目标时序起点,其中,所述至少一个目标时序起点形成目标时序起点集合;以及
针对所述目标时序起点集合中的每个目标时序起点,将所述至少一个时序违反路径中以所述目标时序起点为时序起点的时序违反路径作为所述至少一个目标时序违反路径。
11.根据权利要求10所述的方法,其中,针对所述时序起点集合中的每个时序起点,基于每个时序起点扇出的多个时序终点之间的距离,从所述时序起点集合中确定所述至少一个目标时序起点,包括:
针对所述时序起点集合中的每个时序起点,计算所述时序起点扇出的多个时序终点之间的最大距离;
将所述时序起点扇出的多个时序终点之间的最大距离与预设距离阈值进行比较而获得比较结果;以及
根据所述比较结果,从所述时序起点集合中确定所述目标时序起点,其中,目标时序起点为扇出的多个时序终点之间的最大距离大于所述预设距离阈值的时序起点。
12.根据权利要求1-11任一项所述的方法,其中,所述多个时序终点之间的距离为曼哈顿距离。
13.一种集成电路设计装置,用于修改针对初始集成电路的设计,其中,所述初始集成电路包括多个时序路径,所述集成电路设计装置包括:
获取模块,配置为获取所述多个时序路径中发生时序违反的至少一个目标时序违反路径,其中,所述至少一个目标时序违反路径的时序起点相同;
第一确定模块,配置为确定所述至少一个目标时序违反路径的逻辑单元集合,其中,所述逻辑单元集合中的元素为所述至少一个目标时序违反路径所包含的逻辑单元;
计算模块,配置为计算所述逻辑单元集合中每个逻辑单元对应的特征距离,其中,所述特征距离为所述逻辑单元扇出的多个时序终点之间的距离的最大值,所述时序终点为所述多个时序路径中所述逻辑单元所在的时序路径的终点;
第二确定模块,配置为基于每个逻辑单元对应的特征距离,从所述逻辑单元集合中确定目标单元;以及
复制模块,配置为基于所述目标单元,复制所述初始集成电路中的至少部分电路逻辑结构而得到克隆电路逻辑结构,以利用所述克隆电路逻辑结构修改所述初始集成电路的设计。
14.一种电子设备,包括:
处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现权利要求1-12任一项所述的集成电路设计方法的指令。
15.一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现权利要求1-12任一项所述的集成电路设计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110724884.5A CN113486612B (zh) | 2021-06-29 | 2021-06-29 | 集成电路设计方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110724884.5A CN113486612B (zh) | 2021-06-29 | 2021-06-29 | 集成电路设计方法、装置、电子设备和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113486612A CN113486612A (zh) | 2021-10-08 |
CN113486612B true CN113486612B (zh) | 2023-06-06 |
Family
ID=77936463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110724884.5A Active CN113486612B (zh) | 2021-06-29 | 2021-06-29 | 集成电路设计方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113486612B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114781319B (zh) * | 2022-06-17 | 2022-09-23 | 飞腾信息技术有限公司 | 基于金属线的时序修复方法、设备及介质 |
CN115293083B (zh) * | 2022-09-30 | 2022-12-20 | 深圳鸿芯微纳技术有限公司 | 集成电路时序预测方法、装置、电子设备及存储介质 |
CN115630596B (zh) * | 2022-12-21 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 一种时序收敛方法、装置、计算机设备及存储介质 |
CN116702664B (zh) * | 2023-08-03 | 2024-01-26 | 飞腾信息技术有限公司 | 时间违例修复方法、装置、计算机设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014041402A1 (en) * | 2012-09-14 | 2014-03-20 | Freescale Semiconductor, Inc. | Method and apparatus for selecting data path elements for cloning |
CN105787213A (zh) * | 2016-04-01 | 2016-07-20 | 中国人民解放军国防科学技术大学 | 一种保持时间违反的修复方法 |
CN105930609A (zh) * | 2016-05-04 | 2016-09-07 | 华中科技大学 | 一种用于相干解调的fpga时序优化方法 |
CN109583103A (zh) * | 2018-12-04 | 2019-04-05 | 珠海市微半导体有限公司 | 一种基于时间余量的时序修复方法 |
CN110110463A (zh) * | 2019-05-16 | 2019-08-09 | 天津飞腾信息技术有限公司 | 可改善时序的集成电路逻辑连接优化方法、系统及介质 |
CN112257375A (zh) * | 2020-10-26 | 2021-01-22 | 海光信息技术股份有限公司 | 用于集成电路设计的布局调整方法、装置和电子设备 |
CN112464609A (zh) * | 2020-12-08 | 2021-03-09 | 北京百瑞互联技术有限公司 | 一种集成电路相对位置布局优化方法、装置及存储介质 |
CN112906338A (zh) * | 2021-03-30 | 2021-06-04 | 天津飞腾信息技术有限公司 | 对物理分区结构进行时钟设计的方法、系统、介质和程序 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8453090B2 (en) * | 2010-10-21 | 2013-05-28 | Global Unichip Corp. | System and method for optimizing logic timing |
US8332802B2 (en) * | 2010-10-25 | 2012-12-11 | Avago Technologies Enterprise IP (Singapore) Pte. Ltd. | Systems, methods, and programs for leakage power and timing optimization in integrated circuit designs |
US8522186B2 (en) * | 2011-12-16 | 2013-08-27 | Industrial Technology Research Institute | Method and apparatus of an integrated circuit |
US10417375B2 (en) * | 2017-08-29 | 2019-09-17 | International Business Machines Corporation | Time-driven placement and/or cloning of components for an integrated circuit |
-
2021
- 2021-06-29 CN CN202110724884.5A patent/CN113486612B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014041402A1 (en) * | 2012-09-14 | 2014-03-20 | Freescale Semiconductor, Inc. | Method and apparatus for selecting data path elements for cloning |
CN105787213A (zh) * | 2016-04-01 | 2016-07-20 | 中国人民解放军国防科学技术大学 | 一种保持时间违反的修复方法 |
CN105930609A (zh) * | 2016-05-04 | 2016-09-07 | 华中科技大学 | 一种用于相干解调的fpga时序优化方法 |
CN109583103A (zh) * | 2018-12-04 | 2019-04-05 | 珠海市微半导体有限公司 | 一种基于时间余量的时序修复方法 |
CN110110463A (zh) * | 2019-05-16 | 2019-08-09 | 天津飞腾信息技术有限公司 | 可改善时序的集成电路逻辑连接优化方法、系统及介质 |
CN112257375A (zh) * | 2020-10-26 | 2021-01-22 | 海光信息技术股份有限公司 | 用于集成电路设计的布局调整方法、装置和电子设备 |
CN112464609A (zh) * | 2020-12-08 | 2021-03-09 | 北京百瑞互联技术有限公司 | 一种集成电路相对位置布局优化方法、装置及存储介质 |
CN112906338A (zh) * | 2021-03-30 | 2021-06-04 | 天津飞腾信息技术有限公司 | 对物理分区结构进行时钟设计的方法、系统、介质和程序 |
Also Published As
Publication number | Publication date |
---|---|
CN113486612A (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113486612B (zh) | 集成电路设计方法、装置、电子设备和可读存储介质 | |
US9852251B2 (en) | Manipulating parameterized cell devices in a custom layout design | |
US9064063B1 (en) | Methods, systems, and articles of manufacture for implementing interactive, real-time checking or verification of complex constraints | |
US8869091B2 (en) | Incremental clock tree synthesis | |
JP2005122298A (ja) | タイミング解析装置、タイミング解析方法及びプログラム | |
US10339258B2 (en) | Look-ahead timing prediction for multi-instance module (MIM) engineering change order (ECO) | |
CN114841104A (zh) | 时序优化电路和方法、芯片及电子设备 | |
JP5917543B2 (ja) | 複数の複数コーナー複数モードのシナリオにおける設計要求違反を修正する方法および装置 | |
US8645902B1 (en) | Methods, systems, and computer program products for implementing interactive coloring of physical design components in a physical electronic design with multiple-patterning techniques awareness | |
US20150033197A1 (en) | Clustering for processing of circuit design data | |
CN112597718B (zh) | 集成电路设计的验证方法、验证装置以及存储介质 | |
US10430535B2 (en) | Verification support program medium, verification support method, and information processing device for verification of a circuit | |
US10929584B1 (en) | Environmental modification testing for design correctness with formal verification | |
US8694943B1 (en) | Methods, systems, and computer program product for implementing electronic designs with connectivity and constraint awareness | |
US9639644B1 (en) | Method and apparatus for master-clone optimization during circuit analysis | |
US8418116B2 (en) | Zone-based optimization framework for performing timing and design rule optimization | |
US20220327269A1 (en) | Computing device and method for detecting clock domain crossing violation in design of memory device | |
US20140325468A1 (en) | Storage medium, and generation apparatus for generating transactions for performance evaluation | |
US20130132917A1 (en) | Pattern Matching Hints | |
US9177090B1 (en) | In-hierarchy circuit analysis and modification for circuit instances | |
CN115688651A (zh) | 一种集成电路后端设计优化方法和系统 | |
US10643012B1 (en) | Concurrent formal verification of logic synthesis | |
US10565341B2 (en) | Constrained cell placement | |
US10527932B2 (en) | Structure design generation for fixing metal tip-to-tip across cell boundary | |
US20080270955A1 (en) | Method and apparatus for modifying existing circuit design |
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 |