掌桥专利:专业的专利平台
掌桥专利
首页

集成电路的时序约束方法、装置、电子设备及芯片

文献发布时间:2023-06-19 13:29:16


集成电路的时序约束方法、装置、电子设备及芯片

技术领域

本公开涉及芯片设计的技术领域,具体而言,涉及一种集成电路的时序约束方法、装置、电子设备及芯片。

背景技术

随着电子技术的发展,当集成电路工艺发展到深亚微米时,数字集成电路的时序收敛(Timing Closure)变得越来越具有挑战性。同时,随着集成电路的功能越来越复杂,集成电路中所包含的晶体管数量也增大到百亿级别。因此,在芯片实现的过程中,通常需要将集成电路划分成多个模块,然后,通过在模块跟模块之间设置时序约束来进行时序收敛。

然而,在现有的时序约束方法中,通过时钟周期的百分比确定模块和模块之间的时序约束。但是,该方法很难确定模块边界的实际时序情况,从而容易导致时序约束效率较低,以及模块时序无法收敛。

发明内容

本公开实施例至少提供一种集成电路的时序约束方法、装置、电子设备及芯片。

第一方面,本公开实施例提供了一种集成电路的时序约束方法,所述集成电路包含多个模块,包括:在基于多个模块的当前延时约束确定存在不满足时序收敛条件的模块的情况下,确定目标模块,并对所述目标模块进行逻辑综合处理,得到与所述目标模块的功能描述信息对应的第一综合结果;基于所述第一综合结果确定所述目标模块的实际延时时间;基于所述实际延时时间更新所述目标模块的当前延时约束,得到目标延时约束。

上述实施方式中,通过集成电路中各个模块的逻辑综合的综合结果确定对应模块的实际延时时间,进而根据该实际延时时间调整对应模块的延时约束的方式,可以更加合理的确定出集成电路中各个模块的时间约束条件,在根据该时间约束条件进行集成电路的时序收敛时,可以加快集成电路中各个模块之间的收敛速度。

一种可选的实施方式中,所述基于所述实际延时时间更新所述目标模块的当前延时约束,得到目标延时约束,包括:获取所述多个模块之间的连接关系;基于所述连接关系在所述多个模块中确定与所述目标模块的输入端相连接的相邻模块;基于所述相邻模块的实际延时时间和所述目标模块的实际延时时间,更新所述目标模块的当前延时约束,得到所述目标延时约束。

上述实施方式中,通过基于与目标模块的输入端相连接的模块的实际输出延时和该目标模块的实际输入延时来更新确定目标模块的延时约束的方式,可以更加合理的确定出集成电路中目标模块的时间约束条件,在根据该时间约束条件进行集成电路的时序收敛时,可以加快集成电路中各个模块之间的收敛速度。

一种可选的实施方式中,所述基于所述相邻模块的实际延时时间和所述目标模块的实际延时时间,更新所述目标模块的当前延时约束,得到所述目标延时约束,包括:基于所述相邻模块的实际延时时间和所述目标模块的实际延时时间,确定信号从所述相邻模块的第一级时序单元传输至所述目标模块的第一级时序单元的目标延时时间;基于所述目标延时时间更新所述目标模块的当前延时约束,得到所述目标延时约束。

上述实施方式中,通过信号从相邻模块的第一级时序单元传输至目标模块的第一级时序单元的目标延时时间来更新目标模块的当前延时约束的方式,可以为每个模块得到合理的约束条件,在采用该约束条件进行综合和布局布线时,可以加快模块之间的时序收敛速度。

一种可选的实施方式中,所述当前延时约束包含输入延时约束,所述相邻模块为与目标模块的输入边界端连接的模块;所述基于所述目标延时时间更新所述目标模块的当前延时约束,得到所述目标延时约束,包括:确定信号从所述相邻模块的第一级时序单元的输出端传输至所述相邻模块的输出边界端的延时时间,得到第一延时;确定所述第一延时在所述目标延时时间中的占比,得到第一占比;基于所述第一占比更新所述输入延时约束,得到所述目标延时约束中的输入延时约束。

一种可选的实施方式中,所述当前延时约束包含输出延时约束;所述相邻模块为与目标模块的输入边界端连接的模块;所述基于所述目标延时时间更新所述目标模块的当前延时约束,得到所述目标延时约束,包括:确定信号从所述目标模块输入边界端传输至所述目标模块的第一级时序单元的延时时间,得到第二延时;确定所述第二延时在所述目标延时时间中的占比,得到第二占比;基于所述第二占比更新所述输出延时约束,得到所述目标延时约束中的输出延时约束。

上述实施方式中,通过计算信号从相邻模块的第一级时序单元的输出端传输至相邻模块的输出边界端的延时时间在目标延时时间中的占比来确定输入延时约束的方式,可以提高输入延时约束的合理性。同样地,通过计算信号从所述目标模块输入边界端传输至所述目标模块的第一级时序单元的延时时间在目标延时时间中的占比确定输出延时约束的方式,可以提高输出延时约束的合理性。在提高输入延时约束和输出延时约束的合理性之后,就基于该延时约束进行集成电路的时序收敛时,可以提高模块之间的时序收敛速度。

一种可选的实施方式中,所述方法还包括:在基于所述目标延时约束确定所述目标模块满足时序收敛条件的情况下,基于所述目标延时约束对所述目标模块进行布局布线。

一种可选的实施方式中,所述方法还包括:在基于所述目标延时约束确定所述目标模块满足时序收敛条件的情况下,基于所述目标延时约束对所述目标模块进行重新逻辑综合处理,得到与所述目标模块的功能描述信息对应的第二综合结果;基于所述第二综合结果,更新所述多个模块中任意两个相连接模块之间的时序路径的实际延时时间;所述时序路径为信号在所述两个相连接模块的第一级时序单元之间的传输路径;在确定每个时序路径的实际延时时间满足预设时钟要求的情况下,确定所述目标模块满足时序收敛条件。

上述实施方式中,由于通过上述所描述的方式确定出的目标延时约束的合理性更强,因此,在基于该目标延时约束对目标模块进行重新逻辑综合处理时,可以优化目标模块的电路逻辑,从而能够快速的得到满足时序收敛条件的集成电路。

一种可选的实施方式中,所述方法还包括:基于所述实际延时时间,更新所述目标模块所对应时序路径的路径权重;所述基于所述目标延时约束对所述目标模块进行重新逻辑综合处理,得到与所述目标模块的功能描述信息对应的第二综合结果,包括:基于所述路径权重和所述目标延时约束对所述目标模块进行重新逻辑综合处理,得到所述第二综合结果。

上述实施方式中,通过结合路径权重以及目标延时约束对目标模块重新进行逻辑综合处理,可以提高第二综合结果可信度,从而进一步加快集成电路中模块之间的时序收敛的速度。

一种可选的实施方式中,所述方法还包括:在基于所述目标延时约束确定所述目标模块不满足所述时序收敛条件的情况下,将所述目标延时约束确定为当前延时约束,并返回执行在基于多个模块的当前延时约束确定存在不满足时序收敛条件的模块的情况下,确定目标模块,并对所述目标模块进行逻辑综合处理,得到与所述目标模块的功能描述信息对应的第一综合结果;基于所述第一综合结果确定所述目标模块的实际延时时间;以及基于所述实际延时时间更新所述目标模块的当前延时约束,得到目标延时约束的步骤,直至得到满足所述时序收敛条件的目标延时约束。

上述实施方式中,由于通过上述所描述的方式确定出的目标延时约束的合理性更强,因此,在基于该目标延时约束对目标模块进行重新逻辑综合处理时,可以优化目标模块的电路逻辑,从而能够快速的得到满足时序收敛条件的集成电路。

一种可选的实施方式中,所述在基于多个模块的当前延时约束确定存在不满足时序收敛条件的模块的情况下,确定目标模块,包括:确定所述多个模块为所述目标模块;或者确定所述多个模块中存在的不满足所述时序收敛条件的模块为所述目标模块。

上述实施方式中,通过将集成电路中的多个模块确定为目标模块,从而各个模块之间的延时约束更加准确。在集成电路中包含的模块的数量较多的情况下,通过将不满足时序收敛条件的模块确定为目标模块,并通过上述描述的方式对该目标模块进行处理的方式,可以减少处理的数据量,从而提高集成电路的时序约束的效率,缩短时序束的时间。

第二方面,本公开实施例还提供一种集成电路的时序约束装置,包括:第一确定模块,用于在基于多个模块的当前延时约束确定存在不满足时序收敛条件的模块的情况下,确定目标模块,并对所述目标模块进行逻辑综合处理,得到与所述目标模块的功能描述信息对应的第一综合结果;第二确定模块,用于基于所述第一综合结果确定所述目标模块的实际延时时间;更新模块,用于基于所述实际延时时间更新所述目标模块的当前延时约束,得到目标延时约束。

第三方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

第四方面,本公开实施例还提供一种芯片,所述芯片采用上述第一方面,或第一方面中任一种可能的实施方式所述的集成电路的时序约束方法进行时序约束,并在基于所述目标延时约束确定所述目标模块满足时序收敛条件的情况下,基于所述目标延时约束对所述目标模块进行布局布线。

第五方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

本公开实施例提供的一种集成电路的时序约束方法、装置、电子设备及存储介质。在本公开技术方案中,通过集成电路中各个模块的逻辑综合的综合结果确定对应模块的实际延时时间,进而根据该实际延时时间调整对应模块的延时约束的方式,可以更加合理的确定出集成电路中各个模块的时间约束条件,在根据该时间约束条件进行集成电路的时序收敛时,可以加快集成电路中各个模块之间的收敛速度。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本公开实施例所提供的一种集成电路的时序约束方法的流程图;

图2示出了一种现有技术中确定集成电路中各个模块的延时约束的效果示意图;

图3示出了本公开实施例所提供的一种集成电路中多个相连接的目标模块之间的实际延时时间的效果示意图;

图4示出了本公开实施例所提供的一种模块A和模块B之间的时序路径的效果示意图;

图5示出了本公开实施例所提供的一种集成电路的时序约束装置的示意图;

图6示出了本公开实施例所提供的一种电子设备的示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。

经研究发现,在现有的时序约束方法中,通过时钟周期的百分比确定模块和模块之间的时序约束。但是,该方法很难确定模块边界的实际时序情况,从而容易导致时序约束效率较低,以及模块时序无法收敛。

基于上述研究,本公开提供了一种集成电路的时序约束方法、装置、电子设备及存储介质。在本公开技术方案中,通过集成电路中各个模块的逻辑综合的综合结果确定对应模块的实际延时时间,进而根据该实际延时时间调整对应模块的延时约束的方式,可以更加合理的确定出集成电路中各个模块的时间约束条件,在根据该时间约束条件进行集成电路的时序收敛时,可以加快集成电路中各个模块之间的收敛速度。

为便于对本实施例进行理解,首先对本公开实施例所公开的一种集成电路的时序约束方法进行详细介绍,本公开实施例所提供的集成电路的时序约束方法的执行主体一般为具有一定计算能力的电子设备。

参见图1所示,为本公开实施例提供的一种集成电路的时序约束方法的流程图,所述方法包括步骤S101~S105,其中:

S101:在基于多个模块的当前延时约束确定存在不满足时序收敛条件的模块的情况下,确定目标模块,并对所述目标模块进行逻辑综合处理,得到与所述目标模块的功能描述信息对应的第一综合结果。

在本公开实施例中,首先需要对集成电路划分为多个模块。例如,可以根据模块功能该集成电路划分成多个不同的功能模块,即上述多个模块。

这里,多个模块的当前延时约束为上一时刻更新的每个模块的延时约束。其中,每个模块的延时约束包含输入延时约束和输出延时约束,其中,延时约束又可以称为IO约束。

在初始时刻,集成电路中每个模块的当前延时约束可以根据该集成电路中每个模块的时钟周期的百分比来确定。其中,该时钟周期为集成电路中最基本时间单位,用于表征该集成电路中对应模块完成一个最基本的动作的时间。

如图2所示为集成电路中模块A在初始时刻的当前延时约束的示意图。如图2所示,在初始时刻,模块A的输入延时约束可以设置为0.65clk(clock,即时钟周期,0.65clk即65%的时钟周期),模块A的输出延时约束可以设置为0.45clk。

在确定出上述多个模块的当前约束延时之后,就可以确定多个模块中是否存在不满足时序收敛条件的模块。具体的,可以通过动态仿真的方式来确定出是否存在不满足时序收敛条件的模块,例如,通过EDA(Electronic Design Automation,即电子设计自动化)工具对集成电路进行动态仿真,从而确定出是否存在不满足时序收敛条件的模块。该EDA工具可以为芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等。

在根据模块的动态仿真结果确认集成电路中包含不满足时序收敛条件的模块的情况下,可以在集成电路中确定目标模块。这里,目标模块可以为集成电路中的全部模块,还可以为集成电路中不满足时序收敛条件的模块,本公开对此不作具体限定。

具体实施时,通过EDA工具对集成电路进行动态仿真之后,就可以确定出集成电路是否存在不满足时序收敛条件的模块。如果确定出存在不满足时序收敛条件的模块,则可以通过EDA工具的仿真结果确定该集成电路中包含不满足时序收敛条件的模块;之后,可以根据将不满足时序收敛条件的模块确定为目标模块。除此之外,还可以在确定出集成电路中包含不满足时序收敛条件的模块的情况下,将该集成电路的全部模块确定为目标模块。

这里,模块满足时序收敛条件可以理解为:集成电路中的各个模块在处理对应信号时,满足时序要求,则可以理解为满足时序收敛条件;否则不满足时序收敛条件。

在确定出目标模块后,就可以在上述EDA工具中对该目标模块进行逻辑综合处理,具体的,可以通过RTL(Register Transfer Level)编码对该目标模块进行逻辑综合处理,从而得到第一综合结果。

这里,RTL编码用于描述集成电路中每个模块的功能。逻辑综合处理又可以称为物理综合处理,用于表示通过RTL语言中所描述的各个模块的功能,将对应的模块转换为具有该功能的电路结构。通过对目标模块进行物理综合处理,可以确定该目标模块在集成电路中的占用面积,以及该目标模块中的输入和输出在集成电路中的位置等物理结构信息。因此,上述第一综合结果用于指示与子模块的功能描述信息对应的逻辑电路的结构信息。

S103:基于所述第一综合结果确定所述目标模块的实际延时时间;所述实际延时时间为信号从目标模块的边界到目标模块的第一级时序单元的延时。

这里,实际延时时间包含实际输入延时和实际输出延时,其中,实际输入延时用于表征目标模块的输入边界到第一级时序单元之间的延时时间,实际输出延时用于表征目标模块的第一级时序单元到输出边界到之间的延时时间。

在得到第一综合结果之后,就可以确定出每个模块中各个晶体管之间的逻辑连接关系,此时,就可以根据该逻辑连接关系确定出上述实际输入延时和实际输出延时。

在本公开实施例中,如图3所示,假设,模块A、模块B和模块C均为目标模块。其中,t

S105:基于所述实际延时时间更新所述目标模块的当前延时约束,得到目标延时约束。

在确定出目标模块的实际延时时间之后,就可以通过实际延时时间中的实际输入延时和实际输出延时,更新目标模块的当前延时约束,更新得到目标延时约束。

延时约束中的输入延时约束可以理解为:外部的输出信号到达模块的输入边界的延时约束信息,其中,外部的输出信号可以理解为该模块的上一个模块的第一级时序单元输出的信号。延时约束中的输出延时约束可以理解为:信号从模块的输入边界输入至该模块的第一级时序单元的延时约束信息。

如图3所示,此时,模块B的输入延时约束与实际输出延时t

通过上述描述可知,模块满足时序收敛条件可以理解为:集成电路中的各个模块在处理对应信号时,满足时序要求。如图3所示,这里的满足时序要求可以理解为一个信号从模块A的第一级时序单元传输到模块B的第一级时序单元需要在一个时钟周期内完成。假设该时钟周期是1纳秒,此时,若设置输入延时约束为650ps,可以理解为信号从模块A的第一级时序单元传输到模块A的边界要在650ps内完成,此时,为了满足时序收敛条件,要求在该信号从模块B的边界传输至模块B的第一级时序单元在剩下的350ps内完成,也即,模块B的输出延时约束为350ps。

在本公开技术方案中,通过集成电路中各个模块的逻辑综合的综合结果确定对应模块的实际延时时间,进而根据该实际延时时间调整对应模块的延时约束的方式,可以更加合理的确定出集成电路中各个模块的时间约束条件,在根据该时间约束条件进行集成电路的时序收敛时,可以加快集成电路中各个模块之间的收敛速度。

在一个可选的实施方式中,该方法还包括:

在基于所述目标延时约束确定所述目标模块满足时序收敛条件的情况下,基于所述目标延时约束对所述目标模块进行布局布线。

在本公开实施例中,在确定出上述目标模块的目标延时约束后,就可以通过动态仿真的方式,按照目标延时约束,对目标模块进行模拟运行,从而确定出目标模块是否满足时序收敛条件。

若目标模块满足时序收敛条件,那么就可以对该目标模块进行模拟布局布线。若目标模块不满足时序收敛条件,那么可以将该目标延时约束确定为对应模块的当前延时约束,返回执行上述步骤S101至S105,直至得到满足所述时序收敛条件的目标延时约束,即直至确定出集成电路中的每个模块满足时序收敛条件。

在一个可选的实施方式中,步骤S101,在基于多个模块的当前延时约束确定存在不满足时序收敛条件的模块的情况下,确定目标模块,具体包括以下两种情况:

情况一:确定所述多个模块为所述目标模块。

在此情况下,可以将集成电路中的每个模块分别确定为目标模块。由于集成电路中各个模块之间是相互连接的,因此,为了保证相连接模块之间的时序收敛性,可以将集成电路中的每个模块分别确定为目标模块。然后,通过上述描述的方式对每个模块进行处理。

情况二:确定所述多个模块中存在的不满足所述时序收敛条件的模块为所述目标模块。

在本公开实施例中,在检测到上述多个模块中存在不满足时序收敛条件的模块时,可以通过EDA工具的仿真结果确定该集成电路中包含不满足时序收敛条件的模块,进而将不满足时序收敛条件的模块确定为目标模块。

通过上述描述可知,在本公开实施例中,通过将集成电路中的多个模块确定为目标模块,从而各个模块之间的延时约束更加准确。在集成电路中包含的模块的数量较多的情况下,通过将不满足时序收敛条件的模块确定为目标模块,并通过上述描述的方式对该目标模块进行处理的方式,可以减少处理的数据量,从而提高集成电路的时序约束的效率,缩短时序约束的时间。

在一个可选的实施方式中,步骤S105,基于所述实际延时时间更新所述目标模块的当前延时约束,得到目标延时约束,具体包括如下过程:

S1051:获取多个模块之间的连接关系。

S1052:基于连接关系在多个模块中确定与目标模块的输入端相连接的相邻模块。

S1053:基于所述相邻模块的实际延时时间和所述目标模块的实际延时时间,更新所述目标模块的当前延时约束,得到所述目标延时约束。

在本公开实施例中,在通过上述EDA工具对目标模块进行动态仿真时,就可以通过基于该动态仿真的仿真结果确定出多个模块的连接关系,并在确定出多个模块的连接关系的基础上,基于目标模块的模块标识,确定出与该目标模块的输入端相连接的相邻模块。其中,该目标模块相连接的模块可以分为上游模块和/或下游模块。具体的,信号的传输方向为从上游模块传输至下游模块,本公开技术方案中的相邻模块为上游模块。

如图3所示,若模块B为目标模块,那么模块A以及模块C为该目标模块相连接的模块,其中,模块A为上游模块,模块C为下游模块,此时,模块A为与模块B的输入端相连接的相邻模块。

在确定出上述相邻模块后,就可以确定模块A的实际延时时间,以及模块B的实际延时时间,从而基于上述实际延时时间,对上述模块B的当前延时约束进行更新,得到该模块B的目标延时约束,具体过程可以描述如下:

基于相邻模块的实际输出延时和目标模块的实际输入延时,对目标模块的当前延时约束进行更新,从而得到该目标模块的目标延时约束。

如图3所示,可以基于模块A的实际输出延时t

上述实施方式中,通过基于与目标模块的输入端相连接的模块的实际输出延时和该目标模块的实际输入延时来更新确定目标模块的延时约束的方式,可以更加合理的确定出集成电路中目标模块的时间约束条件,在根据该时间约束条件进行集成电路的时序收敛时,可以加快集成电路中各个模块之间的收敛速度。

在一个可选的实施方式中,S1053,基于所述相邻模块的实际延时时间和所述目标模块的实际延时时间,更新所述目标模块的当前延时约束,得到所述目标延时约束,具体包括如下过程:

S11,基于所述相邻模块的实际延时时间和所述目标模块的实际延时时间,确定信号从所述相邻模块的第一级时序单元传输至所述目标模块的第一级时序单元的目标延时时间。

S12,基于所述目标延时时间更新所述目标模块的当前延时约束,得到所述目标延时约束。

在本公开实施例中,如图4所示,模块B为目标模块,模块A为该目标模块的相邻模块。

通过上述描述可知,模块满足时序收敛条件可以理解为:集成电路中的各个模块在处理对应信号时,满足时序要求。即信号从相邻模块的第一级时序单元传输至目标模块的第一级时序单元的目标延时时间,要满足一个时钟周期。例如,如图4所示,这里的满足时序要求可以理解为一个信号从模块A的第一级时序单元传输到模块B的第一级时序单元需要在一个时钟周期内完成。

例如,在图4中,t

通过上述描述可知,IO约束包含输入延时约束(Input delay)和输出延时约束(Output delay)。通过上述描述可知,模块B的输入延时约束可以理解为模块A输出的信号到达模块B的输入边界的延时约束信息。因此,该模块B的输入延时约束与模块A的实际输出延时相关联。模块B的输出延时约束可以理解为信号从模块B的输入边界输入至该模块B的第一级时序单元的延时约束信息。因此,该模块B的输出延时约束与模块B的实际输入延时相关联。

又由于模块A的实际输出延时和模块B的实际输入延时要求满足一个时钟周期,因此,可以通过模块A的实际输出延时和模块B的实际输入延时,更新目标模块的当前延时约束,得到所述目标延时约束。

通过上述描述可知,通过信号从相邻模块的第一级时序单元传输至目标模块的第一级时序单元的目标延时时间来更新目标模块的当前延时约束的方式,可以为每个模块得到合理的约束条件,在采用该约束条件进行综合和布局布线时,可以加快模块之间的时序收敛速度。

在本公开实施例中,在确定出目标延时时间后,就可以基于该目标延时时间更新目标模块的当前延时约束,得到目标模块的目标延时约束。

情况一:当前延时约束包括上述目标模块的输入延时约束。

上述步骤:基于所述目标延时时间更新所述目标模块的当前延时约束,得到所述目标延时约束,具体包括如下过程:

S21,确定信号从所述相邻模块的第一级时序单元的输出端传输至所述相邻模块的输出边界端的延时时间,得到第一延时。

S22,确定所述第一延时在所述目标延时时间中的占比,得到第一占比。

S23,基于所述第一占比更新所述输入延时约束,得到所述目标延时约束中的输入延时约束。

在本公开实施例中,可以获取信号从模块A的第一级时序单元的输出端传输至模块A的输出边界端的实际延时时间(也即模块A的实际输出延时)t

在基于上述第一延时以及目标延时时间计算第一占比B

其中,t

具体的,clk

在确定出上述第一占比B

示例性地,若上述时钟周期clk为1纳秒(ns),t

情况二:当前延时约束包括上述目标模块的输出延时约束。

上述步骤:基于所述目标延时时间更新所述目标模块的当前延时约束,得到所述目标延时约束,具体还包括如下过程:

(1)、确定信号从所述目标模块输入边界端传输至所述目标模块的第一级时序单元的延时时间,得到第二延时。

(2)、确定所述第二延时在所述目标延时时间中的占比,得到第二占比。

(3)、基于所述第二占比更新所述输出延时约束,得到所述目标延时约束中的输出延时约束。

在本公开实施例中,模块B为目标模块,模块A为该目标模块的相邻模块。

具体的,如图4所示,t

这里,可以计算第二延时在目标延时时间中的占比,得到第二占比B

其中,t

在本公开实施例中,在确定出上述第二占比B

应理解的是,若需要目标模块的满足时序收敛条件,那么,上述相邻模块的实际延时时间t

示例性地,若上述时钟周期clk为1纳秒(ns),t

上述实施方式中,通过计算信号从相邻模块的第一级时序单元的输出端传输至相邻模块的输出边界端的延时时间在目标延时时间中的占比来确定输入延时约束的方式,可以提高输入延时约束的合理性。同样地,通过计算信号从所述目标模块输入边界端传输至所述目标模块的第一级时序单元的延时时间在目标延时时间中的占比确定输出延时约束的方式,可以提高输出延时约束的合理性。在提高输入延时约束和输出延时约束的合理性之后,就基于该延时约束进行集成电路的时序收敛时,可以提高模块之间的时序收敛速度。

在一个可选的实施方式中,上述步骤:基于所述目标延时约束确定所述目标模块是否满足时序收敛条件,具体包括如下过程:

S11:基于所述目标延时约束对所述目标模块进行重新逻辑综合处理,得到与所述目标模块的功能描述信息对应的第二综合结果。

S12:基于所述第二综合结果,更新所述多个模块中任意两个相连接模块之间的时序路径的实际延时时间;所述时序路径为信号在所述两个相连接模块的第一级时序单元之间的传输路径。

S13:在确定每个时序路径的实际延时时间满足预设时钟要求的情况下,确定所述目标模块满足时序收敛条件。

S14:在基于所述目标延时约束确定所述目标模块不满足所述时序收敛条件的情况下,基于所述目标模块的实际延时时间更新所述目标模块的当前延时约束,直至满足所述时序收敛条件。

在本公开实施例中,在确定出目标延时约束之后,可以基于该目标延时约束确定目标模块是否满足时序收敛条件。此时,可以基于目标延时约束,在EDA工具中对该目标模块重新进行逻辑综合处理,从而得到第二综合结果。

这里,对目标模块重新进行逻辑综合处理的过程与上述步骤S101中所描述的逻辑综合处理的过程相同。具体实施时,可以通过RTL编码对目标模块进行逻辑综合处理,从而得到第二综合结果。

这里,RTL编码用于描述集成电路中每个模块的功能。逻辑综合处理又可以称为物理综合处理,用于表示通过RTL语言中所描述的各个模块的功能,将对应的模块转换为具有该功能的电路结构。通过对目标模块进行物理综合处理,可以确定该目标模块在集成电路中的占用面积,以及该目标模块中的输入和输出在集成电路中的位置等物理结构信息。因此,上述第二综合结果用于指示与子模块的功能描述信息对应的逻辑电路的结构信息。

在确定出上述第二综合结果后,更新集成电路的多个模块中任意两个相连接模块之间的时序路径的实际延时时间。假设,任意两个相连接模块为模块A和模块B,此时,该实际延时时间为重新进行逻辑综合处理之后,模块A的实际输出延时和模块B的实际输入延时之间的总和。

在确定出多个模块中任意两个相连接模块之间的时序路径的实际延时时间之后,就可以判断该实际延时时间是否满足预设时钟要求。例如,可以判断该实际延时时间是否小于或者等于上述时钟周期。如果实际延时时间小于或者等于上述时钟周期,则确定满足预设时钟要求,此时,可以确定目标模块满足时序收敛条件。如果判断出不满足预设时钟要求,则可以将目标延时约束作为当前延时约束,返回执行步骤S101-步骤S105,直至得到满足所述时序收敛条件的目标延时约束。

示例性地,如图3所示,模块A、模块B和模块C为目标模块,则上述目标模块对应着两条时序路径L

在确定出上述时序路径之后,可以确定每个时序路径的实际延时时间,进而确定该实际延时时间是否满足预设时钟要求。

以时序路径L

以时序路径L

上述实施方式中,由于通过上述所描述的方式确定出的目标延时约束的合理性更强,因此,在基于该目标延时约束对目标模块进行重新逻辑综合处理时,可以优化目标模块的电路逻辑,从而能够快速的得到满足时序收敛条件的集成电路。

在一个可选的实施方式中,该方法还包括如下步骤:

基于所述实际延时时间,更新所述目标模块所对应时序路径的路径权重。

在此情况下,上述步骤基于所述目标延时约束对所述目标模块进行重新逻辑综合处理,得到与所述目标模块的功能描述信息对应的第二综合结果,包括:

基于所述路径权重和所述目标延时约束对所述目标模块进行重新逻辑综合处理,得到所述第二综合结果。

在本公开实施例中,在确定出目标模块的实际输入延时t

在确定出上述路径权重之后,就可以结合该路径权重B

具体实施时,可以将路径权重和目标延时约束输入到EDA工具中,进而根据该EDA工具基于该路径权重和目标延时约束对目标模块重新进行逻辑综合处理。

路径权重较大会影响逻辑综合处理之后集成电路的内部电路的时序收敛结果;然而,当路径权重较小时,无法为集成电路中的每个模块给出合理的IO约束,从而导致每个路径的IO约束过松或者过紧。采用本公开所提供的路径权重的优化方式,可以在保证每个路径的IO约束不会过松,也不会过紧的情况下,得到一个时序收敛结果较高的综合结果。

通过上述描述可知,在本公开实施例中,通过结合路径权重以及目标延时约束对目标模块重新进行逻辑综合处理,可以提高第二综合结果可信度,从而进一步加快集成电路中模块之间的时序收敛的速度。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

基于同一发明构思,本公开实施例中还提供了与集成电路的时序约束方法对应的集成电路的时序约束装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述集成电路的时序约束方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

参照图5所示,为本公开实施例提供的一种集成电路的时序约束装置的示意图,所述装置包括:第一确定模块51、第二确定模块52、更新模块53;其中,

第一确定模块51,用于在基于多个模块的当前延时约束确定存在不满足时序收敛条件的模块的情况下,确定目标模块,并对所述目标模块进行逻辑综合处理,得到与所述目标模块的功能描述信息对应的第一综合结果;

第二确定模块52,用于基于所述第一综合结果确定所述目标模块的实际延时时间;

更新模块53,用于基于所述实际延时时间更新所述目标模块的当前延时约束,得到目标延时约束。

在本公开技术方案中,通过集成电路中各个模块的逻辑综合的综合结果确定对应模块的实际延时时间,进而根据该实际延时时间调整对应模块的延时约束的方式,可以更加合理的确定出集成电路中各个模块的时间约束条件,在根据该时间约束条件进行集成电路的时序收敛时,可以加快集成电路中各个模块之间的收敛速度。

一种可能的实施方式中,更新模块53,还用于:获取所述多个模块之间的连接关系;基于所述连接关系在所述多个模块中确定与所述目标模块的输入端相连接的相邻模块;基于所述相邻模块的实际延时时间和所述目标模块的实际延时时间,更新所述目标模块的当前延时约束,得到所述目标延时约束。

一种可能的实施方式中,更新模块53,还用于:基于所述相邻模块的实际延时时间和所述目标模块的实际延时时间,确定信号从所述相邻模块的第一级时序单元传输至所述目标模块的第一级时序单元的目标延时时间;基于所述目标延时时间更新所述目标模块的当前延时约束,得到所述目标延时约束。

一种可能的实施方式中,所述当前延时约束包含输入延时约束,所述相邻模块为与目标模块的输入边界端连接的模块,更新模块53,还用于:确定信号从所述相邻模块的第一级时序单元的输出端传输至所述相邻模块的输出边界端的延时时间,得到第一延时;确定所述第一延时在所述目标延时时间中的占比,得到第一占比;基于所述第一占比更新所述输入延时约束,得到所述目标延时约束中的输入延时约束。

一种可能的实施方式中,所述当前延时约束包含输出延时约束;所述相邻模块为与目标模块的输入边界端连接的模块;更新模块53,还用于:确定信号从所述目标模块输入边界端传输至所述目标模块的第一级时序单元的延时时间,得到第二延时;确定所述第二延时在所述目标延时时间中的占比,得到第二占比;基于所述第二占比更新所述输出延时约束,得到所述目标延时约束中的输出延时约束。

一种可能的实施方式中,该装置还用于:在基于所述目标延时约束确定所述目标模块满足时序收敛条件的情况下,基于所述目标延时约束对所述目标模块进行布局布线。

一种可能的实施方式中,该装置还用于:基于所述目标延时约束对所述目标模块进行重新逻辑综合处理,得到与所述目标模块的功能描述信息对应的第二综合结果;基于所述第二综合结果,更新所述多个模块中任意两个相连接模块之间的时序路径的实际延时时间;所述时序路径为信号在所述两个相连接模块的第一级时序单元之间的传输路径;在确定每个时序路径的实际延时时间满足预设时钟要求的情况下,确定所述目标模块满足时序收敛条件。

一种可能的实施方式中,该装置还用于:基于所述实际延时时间,更新所述目标模块所对应时序路径的路径权重;基于所述路径权重和所述目标延时约束对所述目标模块进行重新逻辑综合处理,得到所述第二综合结果。

一种可能的实施方式中,该装置还用于:在基于所述目标延时约束确定所述目标模块不满足所述时序收敛条件的情况下,将所述目标延时约束确定为当前延时约束,并返回执行在基于多个模块的当前延时约束确定存在不满足时序收敛条件的模块的情况下,确定目标模块,并对所述目标模块进行逻辑综合处理,得到与所述目标模块的功能描述信息对应的第一综合结果;基于所述第一综合结果确定所述目标模块的实际延时时间;以及基于所述实际延时时间更新所述目标模块的当前延时约束,得到目标延时约束的步骤,直至得到满足所述时序收敛条件的目标延时约束。

一种可能的实施方式中,第一确定模块51,还用于:确定所述多个模块为所述目标模块;或者确定所述多个模块中存在的不满足所述时序收敛条件的模块为所述目标模块。

关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。

对应于图1中的集成电路的时序约束方法,本公开实施例还提供了一种电子设备600,如图6所示,为本公开实施例提供的电子设备600结构示意图,包括:

处理器61、存储器62、和总线63;存储器62用于存储执行指令,包括内存621和外部存储器622;这里的内存621也称内存储器,用于暂时存放处理器61中的运算数据,以及与硬盘等外部存储器622交换的数据,处理器61通过内存621与外部存储器622进行数据交换,当所述电子设备600运行时,所述处理器61与所述存储器62之间通过总线63通信,使得所述处理器61执行以下指令:

在基于多个模块的当前延时约束确定存在不满足时序收敛条件的模块的情况下,确定目标模块,并对所述目标模块进行逻辑综合处理,得到与所述目标模块的功能描述信息对应的第一综合结果;基于所述第一综合结果确定所述目标模块的实际延时时间;基于所述实际延时时间更新所述目标模块的当前延时约束,得到目标延时约束。

本公开实施例还提供一种芯片,该芯片在布局布线之前,采用上述的集成电路的时序约束方法进行时序约束,并在基于所述目标延时约束确定所述目标模块满足时序收敛条件的情况下,基于所述目标延时约束对所述目标模块进行布局布线。

本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的集成电路的时序约束方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。

本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的集成电路的时序约束方法的步骤,具体可参见上述方法实施例,在此不再赘述。

其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

相关技术
  • 集成电路的时序约束方法、装置、电子设备及芯片
  • 集成电路下层硬件映射方法、数据控制流时序约束方法及装置
技术分类

06120113692840