CN114626323B - 集成电路的时序收敛方法、装置、服务器及可读存储介质 - Google Patents
集成电路的时序收敛方法、装置、服务器及可读存储介质 Download PDFInfo
- Publication number
- CN114626323B CN114626323B CN202210529697.6A CN202210529697A CN114626323B CN 114626323 B CN114626323 B CN 114626323B CN 202210529697 A CN202210529697 A CN 202210529697A CN 114626323 B CN114626323 B CN 114626323B
- Authority
- CN
- China
- Prior art keywords
- port
- module
- netlist
- interconnection
- equivalent
- 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
-
- 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/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
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
技术领域
本申请涉及集成电路技术领域,具体涉及一种集成电路的时序收敛方法、装置、服务器及可读存储介质。
背景技术
近年来,在大规模集成电路的物理设计过程中,往往会针对集成电路内部某一子模块的多个模块实例采用阵列式排布,并且,此类集成电路通常采用层次化物理设计方法。
其中,层次化物理设计方法的大致过程为:先初步进行该子模块自身的物理设计,实现子模块内部的时序收敛,然后实现子模块所属上层模块的时序收敛。其中,上层模块中包括该子模块的多个呈阵列式排布的模块实例以及该子模块以外的其他模块,子模块的各个模块实例之间以及模块实例与其他模块之间相互连接。
在实际应用中,上层模块和子模块是独立设计,时序收敛过程二者相互影响制约,需要反复迭代验证,导致时序收敛过程耗时长,效率低,甚至导致集成电路的整体设计效率降低。
发明内容
有鉴于此,本申请实施例致力于提供一种集成电路的时序收敛方法、装置、服务器及可读存储介质,以解决现有技术中时序收敛过程耗时长、效率低,导致集成电路整体设计效率低的问题。
第一方面,本申请提供一种集成电路的时序收敛方法,包括:
构建第一模块的端口互连网路,所述端口互连网路实现所述第一模块中任一端口以及与所述任一端口具有连接关系的端口的逻辑直连;
基于所述第一模块和所述端口互连网路,获得与所述第一模块时序等价的等价模块;
对所述等价模块中的所述第一模块进行时序收敛验证。
在一种可能的实施方式中,所述构建第一模块的端口互连网路,包括:
确定所述第一模块各端口的连接关系;
基于所述连接关系获得所述第一模块的端口互连网表;
基于所述端口互连网表构建所述端口互连网路。
在一种可能的实施方式中,基于所述连接关系获得所述第一模块的端口互连网表,包括:
基于所述连接关系,在所述第一模块内部建立第一端口与第二端口之间的逻辑直连关系,得到第一端口互连网表;
其中,所述第一端口为所述第一模块的任一端口,所述第二端口为所述第一模块中与所述第一端口具有连接关系的端口。
在一种可能的实施方式中,基于所述端口互连网表构建所述端口互连网路,包括:
基于所述第一端口互连网表进行布局布线,以及对所述第一端口互连网表进行时序收敛验证,得到第一端口互连网路。
在一种可能的实施方式中,基于所述第一端口互连网表进行布局布线,以及对所述第一端口互连网表进行时序收敛验证,得到第一端口互连网路,包括:
生成所述第一端口互连网表的第一时序约束文件和第一布局布线脚本;
基于所述第一时序约束文件和所述第一布局布线脚本,设置所述第一端口互连网表的参数;
基于设置参数后的第一端口互连网表,对所述第一模块的端口进行布局布线,以及对所述第一端口互连网表进行时序收敛验证,得到第一端口互连网路。
在一种可能的实施方式中,本发明第一方面提供的集成电路的时序收敛方法,还包括:
完成所述等价模块中所述第一模块的物理设计,并解除所述等价模块中的所述第一端口互连网路。
在一种可能的实施方式中,基于所述连接关系获得所述第一模块的端口互连网表,包括:
基于所述连接关系,在所述第一模块外部建立第一端口与第二端口,以及所述第一端口与第三端口之间的逻辑直连关系,得到第二端口互连网表;
其中,所述第一端口为所述第一模块的任一端口,所述第二端口为所述第一模块中与所述第一端口具有连接关系的端口,所述第三端口为所述第一模块以外的模块的端口。
在一种可能的实施方式中,基于所述端口互连网表构建所述端口互连网路,包括:
基于所述第二端口互连网表进行布局布线,以及对所述第二端口互连网表进行时序收敛验证,得到第二端口互连网路。
在一种可能的实施方式中,基于所述第二端口互连网表进行布局布线,以及对所述第二端口互连网表进行时序收敛验证,得到第二端口互连网路,包括:
生成所述第二端口互连网表的第二时序约束文件和第二布局布线脚本;
基于所述第二时序约束文件和所述第二布局布线脚本,设置所述第二端口互连网表的参数;
基于设置参数后的第二端口互连网表,对所述第一模块的端口进行布局布线,以及对所述第二端口互连网表进行时序收敛验证,得到第二端口互连网路。
在一种可能的实施方式中,基于所述连接关系,在所述第一模块外部建立第一端口与第二端口,以及所述第一端口与第三端口之间的逻辑直连关系,得到第二端口互连网表,包括:
在所述第一模块外部添加至少一个多路选择单元,所述多路选择单元包括第一输入端口、第二输入端口和输出端口;
建立所述第一输入端口与所述第三端口、所述第二输入端口与所述第二端口,以及所述输出端口与所述第一端口之间的逻辑直连关系,得到第二端口互连网表。
在一种可能的实施方式中,对所述等价模块中的所述第一模块进行时序收敛验证,包括:
对所述等价模块中的所述第一模块自身进行时序收敛验证;
以及,对第一模块集合进行时序收敛验证;
其中,所述第一模块集合由所述等价模块中的第一模块与其他模块连接后得到。
在一种可能的实施方式中,在对所述等价模块中的第一模块进行时序收敛验证后,还包括:
对第二模块集合进行时序收敛验证;
其中,所述第二模块集合由解除所述第二端口互连网路的第一模块与其他模块连接后得到。
在一种可能的实施方式中,所述确定所述第一模块各端口的连接关系,包括:
获取第一模块对应的上层网表;
根据所述上层网表确定所述第一模块各端口的连接关系。
在一种可能的实施方式中,所述基于所述第一模块和所述端口互连网路,获得与所述第一模块时序等价的等价模块,包括:
将所述第一模块与所述端口互连网路连接,得到中间模块;
确定与第一模块时序等价的中间模块为等价模块。
第二方面,本发明提供一种集成电路的时序收敛装置,包括:
构建单元,用于构建第一模块的端口互连网路,所述端口互连网路实现所述第一模块中任一端口以及与所述任一端口具有连接关系的端口的逻辑直连;
获得单元,用于基于所述第一模块和所述端口互连网路,获得与所述第一模块时序等价的等价模块;
第一验证单元,用于对所述等价模块中的所述第一模块进行时序收敛验证。
第三方面,本发明提供一种服务器,包括存储器、处理器以及存储在所述存储器上被所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如本发明第一方面任一项所述集成电路的时序收敛方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明第一方面中任一项所述集成电路的时序收敛方法的步骤。
基于上述内容,本申请提供的集成电路的时序收敛方法,首先构建第一模块的端口互连网路,并进一步基于第一模块和端口互连网路获得与第一模块时序等价的等价模块,由于端口互连网路能够实现第一模块中任一端口以及与任一端口具有连接关系的端口的逻辑直连,在对等价模块中的第一模块进行时序收敛验证时,可以通过端口互连网路模拟第一模块的多个模块实例相互连接,或者第一模块与其他模块相连的验证场景,有利于第一模块自身以及第一模块与其他模块连接情况下端口时序的同步收敛,有效降低迭代验证次数,缩短时序收敛过程的耗时,提高验证效率,同时,有助于提高集成电路整体设计效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种集成电路中上层模块的结构示意图。
图2是本发明实施例提供的一种集成电路的时序收敛方法的流程图。
图3是本发明实施例提供的一种第一模块连接关系示意图。
图4是本发明实施例提供的第一模块的端口示意图。
图5是本发明实施例提供的另一种集成电路的时序收敛方法的流程图。
图6是本发明实施例提供的一种等价模块的结构示意图。
图7是本发明实施例提供的另一种第一模块连接关系示意图。
图8是本发明实施例提供的再一种集成电路的时序收敛方法的流程图。
图9是本发明实施例提供的另一种等价模块的结构示意图。
图10是本发明实施例提供的一种集成电路的时序收敛装置的结构框图。
图11是本发明实施例提供的另一种集成电路的时序收敛装置的结构框图。
图12是本发明实施例提供的再一种集成电路的时序收敛装置的结构框图。
图13是本发明实施例提供的一种服务器的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,对本申请各实施例涉及的相关概念进行介绍:
物理设计,也称后端设计,是集成电路设计过程中的关键设计阶段之一。集成电路设计可以分为逻辑设计(也称前端设计)和物理设计两个阶段,物理设计以逻辑设计最终输出的集成电路的网表为输入,以工厂可用于掩膜流片的版图信息(GDSII文件)为最终输出。当然,逻辑设计与物理设计之间并没有严格的分工划分,在本申请提供的后续各项实施例中,均将获取集成电路的网表作为物理设计工作的开始。
网表,用于描述电路元件相互之间的连接关系,通常采用遵循某种比较简单的标记语法的文本文件。相应的,门级网表则指网表中描述的电路元件基本是门级或与此同级别的元件。
时序收敛(Timing Closure),可以理解为进行集成电路设计的整个周期内,调整、修改电路设计,使得所设计的电路满足时序要求的设计过程,当然,也可以理解为集成电路的一种状态,时序收敛的集成电路,能够按照预设的时序关系执行预期的电路功能。相应的,判断集成电路是否能够按照预设的时序关系执行预期功能的过程,即时序收敛验证。
逻辑直连,以A端口和B端口为例,如果A端口接收到的所有数据,均可以传输至B端口,则A端口与B端口逻辑直连。
布局布线(Place&Route,PR),物理设计过程中布局操作和布线操作,其中,布局主要指在物理设计环境中摆放标准单元,I/O pad,宏单元等集成电路构成部分;布线是指在满足工艺规则和布线层数限制、线宽、线间距限制和各线网可靠绝缘的电性能约束条件下,根据电路的连接关系,将前述各单元和I/O pad等建立连接关系的过程。
布局布线脚本,在物理设计过程中,布局布线工作通常可以通过专门的布局布线工具来完成,布局布线脚本是可以指导布局布线工具运行过程的脚本,同时,布局布线脚本还可以包含理想电路的参数设置。
时序约束文件(Synopsys design constraints,SDC),是物理设计过程中至关重要的文件,主要用于对集成电路(包括集成电路进一步划分得到的模块电路)的时序、面积以及功耗等参数进行约束,是最终所得集成电路芯片满足设计规范的保证。
层次化物理设计,指将设计分成数个子模块,然后对每个子模块进行展平化处理,包括各子模块独立的布局布线等过程,直到完成各个子模块的设计,最后在顶层完成组装设计。具体的,层次化物理设计在设计之初采用硅虚拟原型设计快速的评估性能,然后将设计分割成n个子模块,并由不同的设计人员并行完成相应的子模块设计。每一个子模块的物理设计过程都是一个完整的展平化物理设计过程,在顶层完成组装设计过程中,假定每个子模块都是时序收敛的,其物理布图最终覆盖在n个子模块的上方,并占据整个芯片的面积范围,当最终顶层的时序及优化达到要求时,整个设计完成。
基于上述基本概念可知,集成电路物理设计的最终检验标准之一是电路的时序是否收敛,而电路整体时序收敛的关键往往在于某个或某些子模块完成时序收敛的耗时,因此,层次化物理设计将庞大的设计分割为多个子模块,各个子模块可以并行开展物理设计工作,可以确保设计人员有机会重点处理时序复杂的子模块,加速此类子模块的时序收敛,自然可以加快集成电路整体的时序收敛过程。
因此,层次化物理设计的最大优点就是可以在上层做物理模块划分时将上层网表划分为多个独立的模块网表,当然,所得每一个模块网表对应一个子模块,各个子模块的物理设计过程可以同步并行进行,即不同的子模块由不同的工程师并行设计,不仅可以有效避免设计过程中各个子模块的设计进度之间的相互影响,提高设计效率,缩短整个物理设计过程的耗时,而且,还可以减小工程师的工作量。
当然,层次化物理设计方法也存在一定的不足。在大规模集成电路的物理设计过程中,往往会针对集成电路内部某一子模块的多个模块实例采用阵列式排布。以图1所示的集成电路的上层模块为例,子模块1对应多个模块实例,各个子模块1实例采用阵列式排布,同时,上层模块中还包括有与子模块1实例相连的子模块2、子模块3、子模块4和子模块5。实际应用中,上层模块中的其他模块往往同样包括多个,各其他模块分布于子模块1实例矩阵的四周,按照预设的连接关系分别与相应的子模块1实例相连。以图1所示为例,子模块1的各个模块实例之间实现左右侧端口的互连,上下侧端口的互连,而子模块1的各个模块实例的外围,子模块2对子模块1阵列的上侧端口互连,子模块5对子模块1阵列的下侧端口互连,相应的,子模块3对子模块1阵列左侧端口的互连,子模块4对子模块1阵列右侧端口的互连。
在后续内容中,为便于表述,本申请将上层模块中的子模块1定义为第一模块,同时,将子模块1以外的各个子模块定义为其他模块。
在采用层次化物理设计方法进行图1所示的集成电路的设计时,会按照前述内容中述及的层次化物理设计的基本原理,分别对子模块1以及其他模块独立并行的进行物理设计,在子模块1和其他模块完成时序收敛验证以及其他物理设计工作之后,对子模块1进行实例化处理,得到多个子模块1实例,进一步的,按照图1所示结构构建上层模块,并对上层模块进行时序收敛验证。
上层模块和各子模块并行独立设计,上层模块和各子模块的时序收敛过程相互影响制约,只有各子模块自身时序收敛的同时,上层模块也时序收敛,集成电路整体的时序收敛才算完成。采用层次化物理设计,需要在各子模块与上层模块之间反复迭代验证,导致时序收敛过程耗时长,效率低,甚至导致集成电路的整体设计效率降低。
为解决上述问题,本申请提供一种集成电路的时序收敛方法,本方法通过构建第一模块的端口互连网路,实现第一模块中任一端口以及与任一端口具有连接关系的端口的逻辑直连,并进一步基于端口互连网路和第一模块获得与第一模块时序等价的等价模块,在对等价模块中的第一模块进行时序收敛验证时,可以通过端口互连网路模拟第一模块的多个模块实例相互连接,或者第一模块与其他模块相连的验证场景,有利于第一模块自身以及第一模块与其他模块连接情况下端口时序的同步收敛,从而有效解决现有技术存在的问题。
本发明提供的集成电路的时序收敛方法,可应用于电子设备,该电子设备可以是笔记本电脑、PC机以及平板电脑等,当然,也可以至专门用于芯片设计的服务器,在某些情况下,也可以应用于网络侧的服务器。
基于上述内容,参见图2,图2是本发明实施例提供的一种集成电路的时序收敛方法的流程图,本方法的流程,可以包括:
S100、构建第一模块的端口互连网路。
基于图1所示可以想到,第一模块中的各端口不仅和其他模块的端口之间有连接关系,而且第一模块不同模块实例的端口之间也存在连接关系,也就是说,第一模块自身的端口之间同样具有连接关系。因此,本发明实施例提供的端口互连网路,需要能够实现第一模块中任一端口以及与该任一端口具有连接关系的端口的逻辑直连。可以理解的是,与该任一端口具有连接关系的端口,包括第一模块自身的端口,以及其他模块的端口。
如前所述,本申请实施例以及后续各个实施例中述及的上层模块,包括第一模块以及子模块2、子模块3等其他模块,上层模块对应的网表定义为上层网表,相应的,由上层模块划分得到的第一模块和其他模块,也可以对应得到相应的模块网表。可以理解的是,任一模块网表都是上层网表的子集。
网表是物理设计过程中的关键输入信息之一,网表中记录有集成电路中各电路元件相互之间的连接关系。基于此,在对上层网表进行划分得到各个子模块之后,根据上层网表同样可以确定各个子模块的各端口之间的连接关系。因此,在一种可选的实施方式中,可以首先获取第一模块对应的上层网表,即第一模块所属的上层模块的上层网表,然后根据上层网表中记录的电路元件之间的连接关系,确定第一模块中各端口之间的连接关系。
当然,上层网表只是记录第一模块中各端口之间连接关系的一种可选方式,其他任何能够记录第一模块中各端口之间连接关系的实现方式同样是可选的,在不超出本发明核心思想范围的前提下,同样属于本发明保护的范围内。
在确定第一模块各端口之间的连接关系之后,便可根据所得连接关系确定第一模块的端口互连网表,并最终基于端口互连网表构建得到端口互连网路。由于在时序收敛验证的不同阶段所需要的端口互连网路是不同的,端口互连网路的具体构成过程会有所差异,因此,对于端口互连网路的具体构建过程,将在后续内容中结合具体场景予以展开,此处暂不详述。
S110、基于第一模块和端口互连网路,获得与第一模块时序等价的等价模块。
通过端口互连网路可以实现第一模块自身各端口之间,以及第一模块各端口与其他模块的端口之间的逻辑直连,可以理解的是,在端口互连网路与第一模块连接之后,在电路形式上已然改变了第一模块的电路拓扑,为了能够准确的对第一模块的时序收敛进行验证,避免端口互连网路对第一模块时序收敛验证造成影响,需要确保连接端口互连网路的第一模块与未连接端口互连网路的第一模块是时序等价的,只有二者时序等价,后续步骤中对第一模块的时序收敛验证才是有意义的,才是准确的。
具体的,将第一模块与端口互连网路连接之后所得模块,定义为中间模块,将与第一模块时序等价的中间模块作为等价模块。需要说明的是,对于前述内容中时序等价性验证脚本的具体生成过程,以及调用时序等价性检查工具对中间模块进行时序等价性检查的具体过程,本发明不做限定。
还需要说明的是,端口互连网路仅仅是用于实现第一模块的端口之间以及第一模块的端口与其他模块端口之间的互连,除实现端口直连外,其他未进行调整,而端口电路仅仅是各个子模块全部构成中极小的一部分,因此,连接有端口互连网路的第一模块,即等价模块,虽然与第一模块并非完全相同,但端口互连网路对于第一模块自身预设时序的影响完全是可以忽略不计的。
S120、对等价模块中的第一模块进行时序收敛验证。
经过前述步骤得到的等价模块,包括有第一模块和逻辑直连网路,由于逻辑直连网路可以实现第一模块中任一端口以及与该任一端口具有连接关系的端口的逻辑直连,并且等价模块与第一模块仅是时序等价的,因此,通过等价模块可以仿真第一模块在图1所示应用场景中的多种情况,比如,第一模块多个模块实例之间的连接情况,即第一模块自身端口之间的互连情况;又比如,第一模块多个模块实例之间以及模块实例与其他模块之间的连接情况。在此前提下,对等价模块中的第一模块进行时序收敛验证,可以等价实现第一模块自身的互连以及第一模块与其他模块相互连接的实际验证场景。
需要说明的是,在复杂情况下,时序收敛验证的不同阶段所需要的端口互连网路不同,导致能够模拟的第一模块的时序收敛验证场景不同,因此,本步骤的具体执行过程也会因为端口互连网路的不同而有所差异,具体的验证过程,将在后续内容中结合具体的应用场景予以说明,此处暂不详述。
综上所述,本发明实施例提供的集成电路的时序收敛方法,构建包括端口互连网路和第一模块的等价模块,由于端口互连网路能够实现第一模块中任一端口以及与该任一端口具有连接关系的端口的逻辑直连,在对等价模块中的第一模块进行时序收敛验证时,可以通过端口互连网路模拟第一模块的多个模块实例相互连接,或者第一模块与其他模块相连的验证场景,有利于第一模块自身以及第一模块与其他模块连接情况下端口时序的同步收敛,有效降低迭代验证次数,缩短时序收敛过程的耗时,提高验证效率,同时,有助于提高集成电路整体设计效率。
在集成电路物理设计的实际操作中,由上层模块划分出来的各个子模块是独立并行设计的,这些子模块的具体设计工作通常由不同的设计人员负责,这种工作模式的优点是可以使得多个子模块同步开展设计,不同的设计人员只负责整体设计中的一部分工作,可以有效的降低设计工作量。但这也同时意味着,不同子模块的设计进度会有所差异,特别是对于图1所示的集成电路,对于第一模块而言,不仅要验证第一模块自身是否时序收敛,同时还要验证第一模块构成的阵列是否时序收敛,如果等待所有子模块都设计完成后再进行时序收敛验证,显然会严重影响集成电路整体的设计进度。
发明人通过研究图1所示的集成电路发现,第一模块的连接情况可以分为两种,其一是第一模块对应的模块实例相互连接,即第一模块的各个端口只和第一模块自身的端口相连;其二是第一模块的端口在和自身端口相互连接的同时,还与其他模块的端口相连。对于第一种情况,第一模块的连接情况可以参见图3所示。
在图3所示场景中,第一模块实例1的端口W与第一模块实例2的端口E连接,第一模块实例1的端口N与第一模块实例3的端口S连接,第一模块实例1的端口E与第一模块实例4的端口W相连,第一模块实例1的端口S与第一模块实例5的端口N相连,由于各个第一模块实例均对应第一模块,因此,根据图3所示场景可以得出,第一模块的端口N与端口S互连,端口W与端口E互连。
需要说明的是,在本发明实施例以及后续实施例中,端口N表示的是第一模块的北向端口,相应的,端口S则表示第一模块的南向端口,其余端口依次类推,不再详述。参见图4所示的第一模块的端口示意图,端口N表示的北向端口的集合,在实际应用中,第一模块的北向端口中具体包括多个端口(图中以端口1-端口8示出),相应的,第一模块的南向端口中同样包括多个端口,其余端口不再复述,具体可参见图4所示。当然,在实际应用中,第一模块在各个方向布置的具体端口数量需要根据实际的连接关系调整,图4所示第一模块的端口布置情况仅为示例,本发明对于第一模块的端口的具体设置不做限定。
基于图4所示,可以理解的是,图3中第一模块实例1的端口W与第一模块实例2的端口E相连,并非至端口W和端口E中的全部端口分别相连,而是指端口W中的至少一个端口与端口E中的至少一个端口具有连接关系,比如,端口W中的端口1与端口E中的端口2相连,端口E中的端口8与端口W中的端口5相连等等,其他端口的连接情况同样如此,此处不再一一展开详述。
当然,不论图3所示场景中第一模块自身端口之间的互连关系如何多样,端口之间的互连关系均可以通过上层网表确定。
基于上述内容,参见图5,图5是本发明实施例提供的另一种集成电路的时序收敛方法,通过本实施例提供的方法,可以实现图3所示场景下第一模块的时序收敛验证。具体的,本实施例提供的时序收敛方法的流程,可以包括:
S200、确定第一模块各端口的连接关系。
如前所述,第一模块对应的上层网表中记录有上层模块中各个模块的端口之间的连接关系,因此,作为一种可选的实现方式,可以获取第一模块对应的上层网表,然后根据上层网表确定第一模块各端口之间的连接关系,具体的,是确定如图3所示的第一模块自身的各端口之间的连接关系。当然,其他任何能够记录第一模块中各端口之间连接关系的实现方式同样是可选的,在不超出本发明核心思想范围的前提下,同样属于本发明保护的范围内。
S210、基于连接关系,在第一模块内部建立第一端口与第二端口之间的逻辑直连关系,得到第一端口互连网表。
基于S200,确定第一模块自身各端口之间的连接关系,进一步便可在第一模块内部建立第一端口与第二端口之间的逻辑直连关系,进而得到第一端口互连网表。
如前所述,本实施例提供的时序收敛方法是要在图3所示应用场景下对第一模块进行时序收敛验证,因此,本步骤中述及的第一端口为第一模块中的任意一个端口,相应的,第二端口则为第一模块中与第一端口具有连接关系的端口,即第一端口和第二端口均属于第一模块。
上层模块划分为包括第一模块在内的多个子模块,相应的,上层网表也可以划分为与各个子模块对应的模块网表。通过调整第一模块的模块网表,在第一模块内部建立第一端口与第二端口之间的逻辑直连关系,即可得到第一端口互连网表。
需要说明的是,第一端口互连网表的具体建立过程,可以参照上层网表的建立方法实现,当然,也可以采用其他方式实现,只要能够实现在第一模块内部建立第一端口和第二端口之间的逻辑直连关系的网表都是可选的,在不超出本发明核心思想范围的前提下,同样属于本发明的保护范围内,但对于第一端口互连网表的具体建立过程,本发明不做限定。
S220、基于第一端口互连网表进行布局布线,以及对第一端口互连网表进行时序收敛验证,得到第一端口互连网路。
与上层网表以及模块网表一样,前述步骤建立得到的第一端口互连网表同样需要满足时序收敛要求,确保第一端口互连网表对应的电路可以正常工作。
首先,生成第一端口互连网表的第一时序约束文件和第一布局布线脚本。需要说明的是,对于第一时序约束文件和第一布局布线脚本的具体生成过程,本发明不做限定。
经过前述步骤构建的第一端口互连网表,仅仅记载了第一模块自身各端口之间的连接关系,第一端口互连网表自身对应的电路的参数还没有设置,因此,在得到第一时序约束文件和第一布局布线脚本之后,需要基于第一时序约束文件和第一布局布线脚本,设置第一端口互连网表的参数。具体的,第一端口互连网表的参数包括但不限于理想跳变(transition)参数、延迟(delay)参数,以及理想的布线(routing)参数,在实际应用中,可以根据实际的设计需求,灵活选择需要设置网表的参数。
完成第一端口互连网表的参数设置之后,为保证第一端口互连网表可以正常使用,需要基于设置参数后的第一端口互连网表,对第一模块的端口进行布局布线,并对第一端口互连网表进行时序收敛验证,最终得到第一端口互连网路。
S230、基于第一模块和第一端口互连网路,获得与第一模块时序等价的等价模块。
可选的,S230的可选方式可以参照图2所示实施例中S110步骤实现,此处不再复述。
参见图6,图6示出本实施例提供的等价模块的结构示意,等价模块100包括第一模块101和第一端口互连网路102,第一端口互连网路102以虚线箭头示出,第一模块101的各端口通过第一端口互连网路相互连接,同时,还可以看出,第一端口互连网路102创建于第一模块101的内部。
S240、完成等价模块中第一模块的物理设计,并解除等价模块中的第一端口互连网路。
基于物理设计的基本流程可知,时序收敛验证只是物理设计过程中的一步,在第一模块时序收敛后,还需要进一步针对第一模块完成时序收敛以外的其他物理设计工作,此处不再详述。
完成等价模块中第一模块的物理设计之后,便可解除等价模块中的第一端口互连网路,将第一模块恢复至初始的逻辑结构状态。
综上所述,本实施例提供的时序收敛方法,在提高第一模块时序收敛效率的同时,还可以对第一模块的其他物理设计操作提供辅助,而且,在解除端口互连网路之后,还可以使第一模块恢复至初始的逻辑状态,不会对第一模块自身的电路拓扑带来任何影响,确保第一模块的设计不会被破坏。
随着各部门或各设计人员设计进度的不断推进,上层模块中的其他模块陆续完成设计,此种情况下,需要进一步验证第一模块与其他模块连接的情况下是否时序收敛。基于图1所示上层模块的结构示意,第一模块与其他模块之间的连接关系可以抽象为图7所示结构,具体的,第一模块的端口N与子模块2相连,端口W与子模块3相连,端口E与子模块4相连,端口S与子模块5相连。
需要说明的是,图7仅仅是对第一模块与其他模块之间连接关系的示意,在实际应用中,需要结合具体的上层网表或者上层模块的模块划分情况确定第一模块与其他模块之间的连接关系,图7所示连接关系不作为对第一模块与其他模块之间连接关系的限定。
还需要说明的是,第一模块的端口在与其他模块的端口相连的同时,自身端口之间还存在连接关系,图7所示场景是为了突出第一模块与其他模块之间的连接关系,对第一模块自身端口之间的连接关系进行了省略。
针对第一模块在图7所示场景下的时序收敛验证,本发明实施例提供再一种集成电路的时序收敛方法,参见图8,本实施例提供的时序收敛方法的流程,可以包括:
S300、确定第一模块各端口的连接关系。
可选的,在本步骤中,确定第一模块各端口的连接关系的具体实现方法,可以参照图5所示实施例中S200中相关内容实现,此处不再详述。
需要说明的是,针对图7所示情况,本步骤中确定的第一模块各端口的连接关系,包括第一模块自身各端口之间的连接关系,同时,还包括第一模块各端口与其他模块的端口之间的连接关系。
S310、基于连接关系,在第一模块外部建立第一端口与第二端口,以及第一端口与第三端口之间的逻辑直连关系,得到第二端口互连网表。
如前所述,第一端口为第一模块的任意一个端口,第二端口为第一模块自身与第一端口具有连接关系的端口,即本实施例中述及的第一端口和第二端口同属于第一模块,进一步的,第三端口为其他模块中与第一端口具有连接关系的端口。本步骤要建立的第二端口互连网表,需要能够实现第一端口与第二端口,以及第一端口与第三端口之间的逻辑直连关系。
由于第二端口互连网表需要同时连接第一模块自身以及第一模块与其他模块,考虑到网表建立的难度,第二端口互连网表可以在第一模块外部建立完成,避免改变第一模块对应的网表结构。
作为一种可选的实现方式,可以在第一模块外部的物理设计环境中添加至少一个多路选择单元,该多路选择单元包括两个输入端口,即第一输入端口和第二输入端口,同时,多路选择单元还设置有输出端口,在实际应用中,可以根据需求选择第一输入端口、第二输入端口与输出端口之间的连通情况。当然,多路选择单元还可以包括更多数量的输入端口,具体可以根据实际的连接需求选择,此处不再展开。相应的,对于多路选择单元的设置数量,同样需要结合第一模块与其他模块之间的连接关系确定。
进一步的,基于多路选择单元,在上层网表的基础上进行第二端口互连网表的构建,具体的,结合前述步骤得到的第一模块的各端口之间的连接关系,在第一模块外部建立第一输入端口与第三端口、第二输入端口与第二端口,以及输出端口与第一端口之间的逻辑直连关系,在通过多路选择单元满足第一模块各端口之间以及第一模块端口与其他模块端口相连之后,即得到第二端口互连网表。
需要说明的是,对于第二端口互连网表,还可以通过设置多路选择单元以外的方式建立,只要能够实现第一端口与第二端口以及第一端口与第三端口之间的逻辑直连关系的建立方法都是可选的,在不超出本发明核心思想范围的前提下,同样属于本发明保护的范围内。当然,在能够实现前述端口之间逻辑直连关系的前提下,本发明对于第二端口互连网表的具体创建方法不做限定。
S320、基于第二端口互连网表进行布局布线,以及对第二端口互连网表进行时序收敛验证,得到第二端口互连网路。
与前述第一端口互连网表一样,第二端口互连网表同样需要满足时序收敛要求,确保第二端口互连网表对应的电路可以正常运行,实现其端口逻辑直连的功能。
为此,需要对第二端口互连网表进行时序收敛验证,首先,生成第二端口互连网表的时序约束文件和布局布线脚本,为与前述内容相区分,将第二端口互连网表的时序约束文件定义为第二时序约束文件,相应的,将第二端口互连网表的布局布线脚本定义为第二布局布线脚本。需要说明的是,对于第二时序约束文件以及第二布局布线脚本的具体生成方法,本发明不做具体限定。
第二端口互连网表,仅仅记载了第一模块自身各端口以及第一模块各端口与其他模块的端口之间的连接关系,第二端口网表对应的电路的参数尚未设置,因此,进一步基于第二时序约束文件和第二布局布线脚本,设置第二端口互连网表的参数。与第一端口互连网表类似,第二端口互连网表的参数主要包括理想跳变(transition)参数、延迟(delay)参数,以及理想的布线(routing)参数,在实际应用中,可以根据实际的设计需求,灵活选择需要设置网表的参数。
完成第二端口互连网表的参数设置之后,为保证第二端口互连网表可以正常使用,需要基于设置参数后的第二端口互连网表,对第一模块的端口进行布局布线,以及对第二端口互连网表进行时序收敛验证,最终得到第二端口互连网路。
S330、基于第一模块和第二端口互连网路,获得与第一模块时序等价的等价模块。
可选的,S330的可选方式可以参照图2所示实施例中S110步骤实现,此处不再复述。
参见图9,图9示出本实施例提供的另一种等价模块的结构示意,等价模块100包括第一模块101和第二端口互连网路202,同时,第二端口互连网路202还与其他模块203相连。在图9所示实施例中,多路选择单元C设置于第一模块与其他模块之间,通过多路选择单元C可以在第一模块外部实现端口W与端口E的互连,以及,实现端口N和端口S的互连,当然,还可以实现第一模块101与其他模块203之间的互连。
可以理解的是,结合图4所示,第一模块在各个方向均包括有多个具体的端口,以第一模块的北向端口(以端口N示出)为例,端口N的一部分端口与子模块2相连,同时,端口N的另一部分与多路选择单元C相连。第一模块其他端口的连接情况同样如此,此处不再一一展开。
需要说明的是,图9所示等价模块为在图1所示上层模块基础上得到的第一模块与其他模块之间连接情况的示例说明,在实际应用中,可以根据其他模块与第一模块的实际连接情况,灵活选择多路选择单元C各输入端口与输出端口之间的连通情况,从而得到对应于实际情况的其他模块与第一模块的连接关系。基于此,通过选择多路选择单元C的连通情况,可以遍历第一模块与其他模块之间的所有连接关系,进而达到全面验证第一模块以及第一模块与其他模块相连的情况。
S340、对等价模块中的第一模块自身进行时序收敛验证,以及对第一模块集合进行时序收敛验证。
其中,本步骤中述及的第一模块集合由等价模块中的第一模块与其他模块相互连接后得到。
基于前述内容可知,等价模块可以看作是连接有第二端口互连网路的第一模块,通过第二端口互连网路可以实现第一模块自身端口,以及第一模块与其他模块之间的逻辑直连,进而模拟图7所示场景,对等价模块中的第一模块自身进行时序收敛验证,以及对第一模块集合进行时序收敛验证,其时序与构建图7所示连接关系完全一致,如果等价模块中的第一模块时序收敛,则可以认为第一模块自身以及第一模块在图7所示场景下亦是时序收敛的。当然,如果此步骤中第一模块未能通过时序收敛验证,则需要继续对第一模块进行调整,直至等价模块中的第一模块自身时序收敛。
可以理解的是,如果在进行本实施例的验证之前,第一模块已经按照图5所示实施例完成针对自身以及对应模块实例阵列的时序收敛验证,在按照本实施例提供的时序收敛方法完成时序收敛验证之后,第一模块在整个物理设计过程中的时序收敛验证已经全部完成,可以开展后续的物理设计工作。
在完成S340之后,本实施例提供的方法,可以通过第二端口互连网路实现第一模块自身各端口之间以及第一模块端口与其他模块的端口之间的逻辑直连,模拟图7所示的第一模块的一种典型应用场景,在满足时序收敛验证要求的前提下,能够有效提高时序收敛验证的效率。
S350、对第二模块集合进行时序收敛验证。
在执行完S340步骤并完成后续相关的物理设计工作之后,可以解除第二端口互连网路与第一模块之间的连接,将第一模块恢复至原来的状态。
第二模块集合,具体指解除第二端口互连网路的第一模块,即恢复至原来状态的第一模块与其他模块连接后得到的模块集合。
前面提到,端口互连网路会在很小的程度上改变第一模块各端口的结构,因此,为了充分的对第一模块的时序收敛进行验证,在第一模块解除与第二端口互连网路的连接之后,还可以对第二模块集合进行时序收敛验证,即在真实的场景下再一次对第一模块以及上层模块进行时序收敛验证。
综上所述,本发明实施例提供的时序收敛方法,构建第二端口互连网路,通过第二端口互连网路实现第一模块自身端口之间,以及第一模块自身端口与其他模块的端口之间的逻辑直连,通过第二端口互连网路和第一模块的配合,模拟第一模块与其他模块相连场景下的时序收敛验证过程,有利于第一模块自身以及第一模块与其他模块连接情况下端口时序的同步收敛,有效降低迭代验证次数,缩短时序收敛过程的耗时,提高验证效率。
进一步的,如果在上层模块的整个物理设计过程中,同时应用图5以及图8所示实施例提供的时序收敛方法,可以实现单一模块物理设计和层次化物理设计的结合,平衡第一模块内部以及第一模块与上层模块中其他模块之间的时序收敛过程,与现有技术相比,可以有效避免繁复的迭代验证过程。
而图5所示时序收敛方法和图8所示时序收敛方法,分别对第一模块的不同场景进行时序收敛验证,彼此分开进行,可以有效减少设计系统硬件资源的占用,有助于缩短设计耗时。
进一步的,本申请还提供集成电路的时序收敛装置,本发明提供的集成电路的时序收敛装置,与本发明所提供的集成电路的时序收敛方法属于同一申请构思,可执行本申请任意实施例所提供的集成电路的时序收敛方法,具备执行时序收敛方法相应的功能模块和有益效果。未在各时序收敛装置的实施例中详尽描述的技术细节,可参见本申请实施例提供的集成电路的时序收敛方法,此处不再加以赘述。
参见图10,图10是本发明实施例提供的一种集成电路的时序收敛装置的结构框图,本实施例提供的时序收敛装置,包括:
构建单元10,用于构建第一模块的端口互连网路,端口互连网路实现第一模块中任一端口以及与任一端口具有连接关系的端口的逻辑直连;
获得单元20,用于基于第一模块和端口互连网路,获得与第一模块时序等价的等价模块;
第一验证单元30,用于对等价模块中的第一模块进行时序收敛验证。
可选的,构建单元10,用于构建第一模块的端口互连网路,包括:
确定第一模块各端口的连接关系;
基于连接关系获得第一模块的端口互连网表;
基于端口互连网表构建端口互连网路。
可选的,构建单元10,用于基于连接关系获得第一模块的端口互连网表,包括:
基于连接关系,在第一模块内部建立第一端口与第二端口之间的逻辑直连关系,得到第一端口互连网表;
其中,第一端口为第一模块的任一端口,第二端口为第一模块中与第一端口具有连接关系的端口。
可选的,构建单元10,用于基于端口互连网表构建端口互连网路,包括:
基于第一端口互连网表进行布局布线,以及对第一端口互连网表进行时序收敛验证,得到第一端口互连网路。
可选的,构建单元10,用于基于第一端口互连网表进行布局布线,以及对第一端口互连网表进行时序收敛验证,得到第一端口互连网路,包括:
生成第一端口互连网表的第一时序约束文件和第一布局布线脚本;
基于第一时序约束文件和第一布局布线脚本,设置第一端口互连网表的参数;
基于设置参数后的第一端口互连网表,对第一模块的端口进行布局布线,以及对第一端口互连网表进行时序收敛验证,得到第一端口互连网路。
可选的,构建单元10,用于基于连接关系获得第一模块的端口互连网表,包括:
基于连接关系,在第一模块外部建立第一端口与第二端口,以及第一端口与第三端口之间的逻辑直连关系,得到第二端口互连网表;
其中,第一端口为第一模块的任一端口,第二端口为第一模块中与第一端口具有连接关系的端口,第三端口为第一模块以外的模块的端口。
可选的,构建单元10,用于基于端口互连网表构建端口互连网路,包括:
基于第二端口互连网表进行布局布线,以及对第二端口互连网表进行时序收敛验证,得到第二端口互连网路。
可选的,构建单元10,用于基于第二端口互连网表进行布局布线,以及对第二端口互连网表进行时序收敛验证,得到第二端口互连网路,包括:
生成第二端口互连网表的第二时序约束文件和第二布局布线脚本;
基于第二时序约束文件和第二布局布线脚本,设置第二端口互连网表的参数;
基于设置参数后的第二端口互连网表,对第一模块的端口进行布局布线,以及对第二端口互连网表进行时序收敛验证,得到第二端口互连网路。
可选的,构建单元10,用于基于连接关系,在第一模块外部建立第一端口与第二端口,以及第一端口与第三端口之间的逻辑直连关系,得到第二端口互连网表,包括:
在第一模块外部添加至少一个多路选择单元,多路选择单元包括第一输入端口、第二输入端口和输出端口;
建立第一输入端口与第三端口、第二输入端口与第二端口,以及输出端口与第一端口之间的逻辑直连关系,得到第二端口互连网表。
可选的,第一验证单元30,用于对等价模块中的第一模块进行时序收敛验证,包括:
对等价模块中的第一模块自身进行时序收敛验证;
以及,对第一模块集合进行时序收敛验证;
其中,第一模块集合由等价模块中的第一模块与其他模块连接后得到。
可选的,构建单元10,用于确定第一模块各端口的连接关系,包括:
获取第一模块对应的上层网表;
根据上层网表确定第一模块各端口的连接关系。
可选的,获得单元20,用于基于第一模块和端口互连网路,获得与第一模块时序等价的等价模块,包括:
将第一模块与端口互连网路连接,得到中间模块;
确定与第一模块时序等价的中间模块为等价模块。
可选的,参见图11,图11是本发明实施例提供的另一种集成电路的时序收敛装置的结构框图,在图10所示实施例的基础上,本实施例提供的装置还包括:
设计单元40,用于完成等价模块中第一模块的物理设计,并解除等价模块中的第一端口互连网路。
可选的,参见图12,图12是本发明实施例提供的再一种集成电路的时序收敛装置的结构框图,在图10所示实施例的基础上,本实施例提供的装置还包括:
第二验证单元50,用于对第二模块集合进行时序收敛验证;
其中,第二模块集合由解除第二端口互连网路的第一模块与其他模块连接后得到。
可选的,参见图13,图13为本发明实施例提供的服务器的结构框图,如图13所示,可以包括:至少一个处理器500,至少一个通信接口200,至少一个存储器300和至少一个通信总线400;另一种可能的实际应用中,服务器中也可以不包括通信接口200,图13所示示例,仅是一种可选的实现方式;
在本发明实施例中,服务器包括:处理器500、通信接口200、存储器300、通信总线400,且处理器500、通信接口200、存储器300通过通信总线400完成相互间的通信;显然,图13所示的处理器500、通信接口200、存储器300和通信总线400所示的通信连接示意仅是可选的;
可选的,通信接口200可以为通信模块的接口,如GSM模块的接口;处理器500可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific IntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器300,存储有应用程序,可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
其中,处理器500具体用于执行存储器内的应用程序,以实现上述集成电路的时序收敛方法的任一实施例。
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的集成电路的时序收敛方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器11执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的集成电路的时序收敛方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
应当理解,本申请实施例描述中所用到的限定词“第一”、“第二”、“第三”、“第四”、“第五”和“第六”仅用于更清楚的阐述技术方案,并不能用于限制本申请的保护范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (17)
1.一种集成电路的时序收敛方法,其特征在于,包括:
构建第一模块的端口互连网路,所述端口互连网路实现所述第一模块中任一端口以及与所述任一端口具有连接关系的端口的逻辑直连;
其中,与所述任一端口具有连接关系的端口包括:所述第一模块的端口,或者,所述第一模块的端口和所述第一模块以外的其他模块的端口;
基于所述第一模块和所述端口互连网路,获得与所述第一模块时序等价的等价模块;
对所述等价模块中的所述第一模块进行时序收敛验证。
2.根据权利要求1所述的方法,其特征在于,所述构建第一模块的端口互连网路,包括:
确定所述第一模块各端口的连接关系;
基于所述连接关系获得所述第一模块的端口互连网表;
基于所述端口互连网表构建所述端口互连网路。
3.根据权利要求2所述的方法,其特征在于,基于所述连接关系获得所述第一模块的端口互连网表,包括:
基于所述连接关系,在所述第一模块内部建立第一端口与第二端口之间的逻辑直连关系,得到第一端口互连网表;
其中,所述第一端口为所述第一模块的任一端口,所述第二端口为所述第一模块中与所述第一端口具有连接关系的端口。
4.根据权利要求3所述的方法,其特征在于,基于所述端口互连网表构建所述端口互连网路,包括:
基于所述第一端口互连网表进行布局布线,以及对所述第一端口互连网表进行时序收敛验证,得到第一端口互连网路。
5.根据权利要求4所述的方法,其特征在于,基于所述第一端口互连网表进行布局布线,以及对所述第一端口互连网表进行时序收敛验证,得到第一端口互连网路,包括:
生成所述第一端口互连网表的第一时序约束文件和第一布局布线脚本;
基于所述第一时序约束文件和所述第一布局布线脚本,设置所述第一端口互连网表的参数;
基于设置参数后的第一端口互连网表,对所述第一模块的端口进行布局布线,以及对所述第一端口互连网表进行时序收敛验证,得到第一端口互连网路。
6.根据权利要求4所述的方法,其特征在于,还包括:完成所述等价模块中所述第一模块的物理设计,并解除所述等价模块中的所述第一端口互连网路。
7.根据权利要求2所述的方法,其特征在于,基于所述连接关系获得所述第一模块的端口互连网表,包括:
基于所述连接关系,在所述第一模块外部建立第一端口与第二端口,以及所述第一端口与第三端口之间的逻辑直连关系,得到第二端口互连网表;
其中,所述第一端口为所述第一模块的任一端口,所述第二端口为所述第一模块中与所述第一端口具有连接关系的端口,所述第三端口为所述第一模块以外的模块的端口。
8.根据权利要求7所述的方法,其特征在于,基于所述端口互连网表构建所述端口互连网路,包括:
基于所述第二端口互连网表进行布局布线,以及对所述第二端口互连网表进行时序收敛验证,得到第二端口互连网路。
9.根据权利要求8所述的方法,其特征在于,基于所述第二端口互连网表进行布局布线,以及对所述第二端口互连网表进行时序收敛验证,得到第二端口互连网路,包括:
生成所述第二端口互连网表的第二时序约束文件和第二布局布线脚本;
基于所述第二时序约束文件和所述第二布局布线脚本,设置所述第二端口互连网表的参数;
基于设置参数后的第二端口互连网表,对所述第一模块的端口进行布局布线,以及对所述第二端口互连网表进行时序收敛验证,得到第二端口互连网路。
10.根据权利要求7所述的方法,其特征在于,基于所述连接关系,在所述第一模块外部建立第一端口与第二端口,以及所述第一端口与第三端口之间的逻辑直连关系,得到第二端口互连网表,包括:
在所述第一模块外部添加至少一个多路选择单元,所述多路选择单元包括第一输入端口、第二输入端口和输出端口;
建立所述第一输入端口与所述第三端口、所述第二输入端口与所述第二端口,以及所述输出端口与所述第一端口之间的逻辑直连关系,得到第二端口互连网表。
11.根据权利要求8所述的方法,其特征在于,对所述等价模块中的所述第一模块进行时序收敛验证,包括:
对所述等价模块中的所述第一模块自身进行时序收敛验证;
以及,对第一模块集合进行时序收敛验证;
其中,所述第一模块集合由所述等价模块中的第一模块与其他模块连接后得到。
12.根据权利要求11所述的方法,其特征在于,在对所述等价模块中的第一模块进行时序收敛验证后,还包括:
对第二模块集合进行时序收敛验证;
其中,所述第二模块集合由解除所述第二端口互连网路的第一模块与其他模块连接后得到。
13.根据权利要求2所述的方法,其特征在于,所述确定所述第一模块各端口的连接关系,包括:
获取第一模块对应的上层网表;
根据所述上层网表确定所述第一模块各端口的连接关系。
14.根据权利要求1-13任一项所述的方法,其特征在于,所述基于所述第一模块和所述端口互连网路,获得与所述第一模块时序等价的等价模块,包括:
将所述第一模块与所述端口互连网路连接,得到中间模块;
确定与第一模块时序等价的中间模块为等价模块。
15.一种集成电路的时序收敛装置,其特征在于,包括:
构建单元,用于构建第一模块的端口互连网路,所述端口互连网路实现所述第一模块中任一端口以及与所述任一端口具有连接关系的端口的逻辑直连;
其中,与所述任一端口具有连接关系的端口包括:所述第一模块的端口,或者,所述第一模块的端口和所述第一模块以外的其他模块的端口;
获得单元,用于基于所述第一模块和所述端口互连网路,获得与所述第一模块时序等价的等价模块;
第一验证单元,用于对所述等价模块中的所述第一模块进行时序收敛验证。
16.一种服务器,包括存储器、处理器以及存储在所述存储器上被所述处理器执行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至14中任一项所述集成电路的时序收敛方法的步骤。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至14中任一项所述集成电路的时序收敛方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210529697.6A CN114626323B (zh) | 2022-05-16 | 2022-05-16 | 集成电路的时序收敛方法、装置、服务器及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210529697.6A CN114626323B (zh) | 2022-05-16 | 2022-05-16 | 集成电路的时序收敛方法、装置、服务器及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114626323A CN114626323A (zh) | 2022-06-14 |
CN114626323B true CN114626323B (zh) | 2022-08-16 |
Family
ID=81906994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210529697.6A Active CN114626323B (zh) | 2022-05-16 | 2022-05-16 | 集成电路的时序收敛方法、装置、服务器及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114626323B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008204340A (ja) * | 2007-02-22 | 2008-09-04 | Fujitsu Ltd | レイアウト処理における加工・変更検証方法、検証装置及びプログラム |
JP2009199274A (ja) * | 2008-02-20 | 2009-09-03 | Fujitsu Microelectronics Ltd | 設計検証プログラム、設計検証方法および設計検証装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010153592A (ja) * | 2008-12-25 | 2010-07-08 | Renesas Electronics Corp | 半導体集積回路装置の設計方法およびプログラム |
US8607186B2 (en) * | 2010-04-13 | 2013-12-10 | Synopsys, Inc. | Automatic verification of merged mode constraints for electronic circuits |
US8627262B2 (en) * | 2010-04-13 | 2014-01-07 | Synopsys, Inc. | Automatic generation of merged mode constraints for electronic circuits |
CN112949245B (zh) * | 2021-03-30 | 2022-11-22 | 飞腾信息技术有限公司 | 芯片设计方法、装置、设备、可读存储介质 |
-
2022
- 2022-05-16 CN CN202210529697.6A patent/CN114626323B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008204340A (ja) * | 2007-02-22 | 2008-09-04 | Fujitsu Ltd | レイアウト処理における加工・変更検証方法、検証装置及びプログラム |
JP2009199274A (ja) * | 2008-02-20 | 2009-09-03 | Fujitsu Microelectronics Ltd | 設計検証プログラム、設計検証方法および設計検証装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114626323A (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5930499A (en) | Method for mixed placement of structured and non-structured circuit elements | |
US9171124B2 (en) | Parasitic extraction in an integrated circuit with multi-patterning requirements | |
CN111950226A (zh) | 芯片后端设计和版图设计方法、工具、芯片及存储介质 | |
CN101539958B (zh) | 一种标准单元库和集成电路的设计方法和装置 | |
CN106326510B (zh) | 验证时钟树延迟 | |
US7325218B2 (en) | Wiring method, program, and apparatus | |
US8806413B2 (en) | Gradient AOCV methodology enabling graph-based timing closure with AOCV timing models | |
US10169505B2 (en) | Partitioning and routing multi-SLR FPGA for emulation and prototyping | |
US8719752B1 (en) | Hierarchical crosstalk noise analysis model generation | |
US9147030B2 (en) | Multiple-instantiated-module (mim) aware pin assignment | |
US20120233575A1 (en) | Layout method for integrated circuit including vias | |
US9298872B2 (en) | Apportioning synthesis effort for better timing closure | |
US7930668B1 (en) | Placement and routing using inhibited overlap of expanded areas | |
CN114626323B (zh) | 集成电路的时序收敛方法、装置、服务器及可读存储介质 | |
US8595668B1 (en) | Circuits and methods for efficient clock and data delay configuration for faster timing closure | |
Mak et al. | Board-level multiterminal net routing for FPGA-based logic emulation | |
US8904318B1 (en) | Method and apparatus for performing optimization using don't care states | |
KR102038736B1 (ko) | 네트리스트 추상화 | |
US8972919B2 (en) | Static timing analysis method and system considering capacitive coupling and double patterning mask misalignment | |
CN109885850B (zh) | 一种局部寄存器的生成方法及生成系统 | |
Kanase et al. | Physical implementation of shift register with respect to timing and dynamic drop | |
US10437956B2 (en) | Pessimism reduction in static timing analysis | |
Sohofi et al. | System‐level assertions: approach for electronic system‐level verification | |
JP2872216B1 (ja) | マクロの設計方法 | |
US11023646B2 (en) | Hierarchical clock tree construction based on constraints |
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 |