CN116167330A - 时钟树综合方法、装置、电子设备及计算机可读存储介质 - Google Patents
时钟树综合方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116167330A CN116167330A CN202211678912.5A CN202211678912A CN116167330A CN 116167330 A CN116167330 A CN 116167330A CN 202211678912 A CN202211678912 A CN 202211678912A CN 116167330 A CN116167330 A CN 116167330A
- Authority
- CN
- China
- Prior art keywords
- clock
- chip
- nodes
- deflection
- groups
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/396—Clock trees
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本申请提供一种时钟树综合方法、装置、电子设备及计算机可读存储介质,方法包括:基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,将所述时钟节点划分为多个偏斜组;其中,所述时钟节点为所述芯片中受时钟信号控制的节点;每个所述偏斜组中包括一个或多个不同的所述时钟节点;对各所述偏斜组之间的时延进行平衡,得到目标设计结构;在所述芯片中使用所述目标设计结构。本申请可以自动进行偏斜组划分,无需依赖IC设计工程师的经验人工进行分组,减少了分组的主观性,同时也减少了分组的耗时时间长,提高了效率。
Description
技术领域
本申请涉及芯片设计领域,具体而言,涉及一种时钟树综合方法、装置、电子设备及计算机可读存储介质。
背景技术
随着集成技术的不断发展,CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)等芯片的集成水平也显著提升,其中,如何在芯片内平衡时钟树是芯片设计的最大挑战之一。而在芯片设计的后端保证时钟质量的步骤被称之为CTS(Clock tree synthesis,时钟树综合)。当CTS需要在芯片内的面积较大的块中平衡大量的时钟受控元件(即受时钟信号控制的元件,例如触发器等)时,直接使用EDA(Electronic Design Automation,电子设计自动化)工具进行CTS设计的话,为了兼顾所有的时钟受控元件之间的延迟,会增加整个块的时钟延迟(通常是通过***逻辑门单元实现,因此也称***延迟),这将增加数据路径上的OCV(On Chip Variation,片上差异)降额,使得芯片的高性能设计更具挑战性。
为此,目前IC(Integrated Circuit,集成电路)设计工程师会人工检查CTS,从而基于经验将整个块(通常为一个时钟域对应的物理区域)拆分为多个skewgroup(偏斜组),在保证每个skewgroup内的时钟受控元件满足设计要求的情况下,通过平衡各skewgroup之间的时延即可得到一个***延迟更少的设计结构(本文中所述的设计结构均是指即经过CTS设计后得到的时钟树结构)。
但是,这种方式严重依赖于IC设计工程师的经验,主观性强,难以保证每一次拆分后的设计结构所带来的效果都是良好的。此外,由于这种方式必须依赖IC设计工程师的经验人工完成,也存在耗时时间长,效率低下的问题。
发明内容
本申请实施例的目的在于提供一种时钟树综合方法、装置、电子设备及计算机可读存储介质,用以解决上述问题。
本申请实施例提供了一种时钟树综合方法,包括:基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,将所述时钟节点划分为多个偏斜组;其中,所述时钟节点为所述芯片中受时钟信号控制的节点;每个所述偏斜组中包括一个或多个不同的所述时钟节点;对各所述偏斜组之间的时延进行平衡,得到目标设计结构;在所述芯片中使用所述目标设计结构。
通过上述实现过程,可以基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称自动进行偏斜组划分,无需依赖IC设计工程师的经验人工进行分组,减少了分组的主观性,同时也减少了分组的耗时时间长,提高了效率。此外,由于时钟节点之间的时延与时钟节点之间的距离是正相关的,且由于不同逻辑组之间的时序要求可能不同,而时钟节点的命名名称是可以体现出时钟节点属于哪一逻辑组的,因此基于各时钟节点的物理位置和命名名称对各时钟节点划分偏斜组,可以使得同一偏斜组内的各时钟节点具有较小的时钟偏斜,CTS工具更多的工作在于平衡各偏斜组之间的时延即可,使得CTS设计过程中只需要平衡更少的物理区域,从而使得时钟树中的延迟更少,保证将块(即各时钟节点所在的区域)拆分后得到的设计结构所带来的效果相较于不拆分而言是良好的。
进一步地,基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,将所述时钟节点划分为多个偏斜组,包括:基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,按照不同分组方式将所述时钟节点划分为多个偏斜组,得到每种分组方式对应的偏斜组集合;以及对各所述偏斜组之间的时延进行平衡,得到目标设计结构,包括:针对每一所述偏斜组集合,对该偏斜组集合中的各所述偏斜组之间的时延进行平衡,得到该偏斜组集合对应的设计结构;确定在所述芯片中使用各所述设计结构时的芯片成本;根据各所述设计结构对应的芯片成本,从各所述设计结构中确定出目标设计结构。
在上述实现过程中,通过采用不同的分组方式将所述时钟节点划分为多个偏斜组,并确定每一分组方式得到的设计结构对应的芯片成本,进而基于各设计结构对应的芯片成本可以得到最符合需求的目标设计结构,从而保证对目标设计结构的使用可以在满足实际需求的同时,芯片成本最优。
进一步地,所述基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,按照不同分组方式将所述时钟节点划分为多个偏斜组,包括:基于各所述时钟节点的物理位置确定各所述时钟节点之间的距离,并基于各所述时钟节点的命名名称确定各所述时钟节点中属于相同逻辑组的时钟节点;将各所述时钟节点中,相互之间的距离小于等于预设距离阈值且属于相同逻辑组的时钟节点划分至同一所述偏斜组。
在上述实现过程中,通过将相互之间的距离小于等于预设距离阈值且属于相同逻辑组的时钟节点划分至同一偏斜组,可以使得同一偏斜组内的各时钟节点具有较小的时钟偏斜,从而使得CTS工具可以将更多的工作投入在平衡各偏斜组之间的时延中,使得CTS设计过程中只需要平衡更少的物理区域,从而使得时钟树中的延迟更少,保证将块拆分后得到的设计结构可以带来良好的效果。
进一步地,所述基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,按照不同分组方式将所述时钟节点划分为多个偏斜组,包括:基于各所述时钟节点的命名名称确定各所述时钟节点中属于相同逻辑组的时钟节点;基于属于相同逻辑组的各时钟节点的物理位置,确定属于相同逻辑组的各时钟节点的位置中心;将从所述位置中心出发预设范围内的目标时钟节点划分至同一所述偏斜组;其中,所述目标时钟节点为属于该位置中心对应的逻辑组的时钟节点。
在上述实现过程中,由于一个偏斜组内都是输入相同逻辑组的时钟节点,因此基于相同逻辑组的各时钟节点的位置中心出发,将从所述位置中心出发预设范围内的目标时钟节点划分至同一所述偏斜组,可以使得同一偏斜组内的各时钟节点具有较小的时钟偏斜,从而使得CTS工具可以将更多的工作投入在平衡各偏斜组之间的时延中,使得CTS设计过程中只需要平衡更少的物理区域,从而使得时钟树中的延迟更少,保证将块拆分后得到的设计结构可以带来良好的效果。
进一步地,所述预设范围根据预先设定的面积阈值确定,或所述预设范围根据预先设定的划入偏斜组的所述目标时钟节点的数量阈值确定。
可以理解,在芯片设计过程中,对于不同的工艺角,单位面积的芯片成本是不一样的。因此通常可以基于预先的基础研究,可以初步得到各工艺角下CTS设计效果最优的面积或者时钟节点数量。而在上述实现过程中,是通过设定面积阈值来确定预设范围,或者设定数量阈值来确定预设范围,因此可以根据基础研究中初步确定出的当前工艺角下CTS设计效果最优的面积或者时钟节点数量来确定预设范围,从而使得最终选出的目标设计结构是符合当前工艺角需求的,使得在芯片中使用目标设计结构后可以获得良好的时序约束效果。
进一步地,每一所述偏斜组中的各所述时钟节点之间的时钟偏斜在预设的偏斜范围内。
在上述实现过程中,由于每一偏斜组中的各时钟节点之间的时钟偏斜在预设的偏斜范围内,因此只要偏斜范围在芯片规定的时钟偏斜范围内,那么偏斜组内就可以无需平衡时钟节点之间的时延,从而使得CTS设计过程中需要平衡的物理区域更少,使得时钟树中的延迟更少,需要消耗的功率也更低。
进一步地,在按照每一种分组方式将所述时钟节点划分为多个偏斜组,得到每种分组方式对应的偏斜组集合时,所述方法还包括:关联记录各所述时钟节点所属的偏斜组以及分组方式;针对每一所述偏斜组集合,对该偏斜组集合中的各所述偏斜组之间的时延进行平衡,得到该偏斜组集合对应的设计结构,包括:根据记录的各所述时钟节点所属的偏斜组以及分组方式,依次对相同分组方式中各所述偏斜组之间的时延进行平衡,得到该分组方式下的偏斜组集合对应的设计结构;重复上述过程,得到每一所述分组方式下的偏斜组集合对应的设计结构。
在上述实现过程中,通过关联记录各时钟节点所属的偏斜组以及分组方式,从而可以在后续进行各偏斜组集合对应的设计结构的获取,以及各的设计结构的芯片成本的确定过程中,具有明确的信息依据,不至于出现信息混乱导致获取设计结构时无法准确确定出偏斜组集合的情况。
进一步地,确定在所述芯片中使用各所述设计结构时的芯片成本,包括:获取在所述芯片中使用各所述设计结构时,所述芯片的成本参数的值;所述成本参数包括所述芯片的功耗、面积、频率中的至少之一;分别根据使用各所述设计结构时所述芯片的成本参数的值,确定在所述芯片中使用各所述设计结构时的芯片成本。
在上述实现过程中,基于包括芯片的功耗、面积、频率中的至少之一的成本参数的值来确定在芯片中使用各设计结构时的芯片成本,这样就可以从至少一个影响芯片性能的维度出发对设计结构进行评价,从而有效评判出各设计结构的优劣,使得后续进行目标设计结构的选择更为客观。
本申请实施例还提供了一种CTS设计装置,包括:分组模块,用于基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,将所述时钟节点划分为多个偏斜组;其中,所述时钟节点为所述芯片中受时钟信号控制的节点;每个所述偏斜组中包括一个或多个不同的所述时钟节点;平衡模块,用于对各所述偏斜组之间的时延进行平衡,得到目标设计结构;处理模块,用于在所述芯片中使用所述目标设计结构。
进一步地,所述分组模块具体用于:基于各所述时钟节点的物理位置确定各所述时钟节点之间的距离,并基于各所述时钟节点的命名名称确定各所述时钟节点中属于相同逻辑组的时钟节点;将各所述时钟节点中,相互之间的距离小于等于预设距离阈值且属于相同逻辑组的时钟节点划分至同一所述偏斜组。
进一步地,所述分组模块具体用于:基于各所述时钟节点的命名名称确定各所述时钟节点中属于相同逻辑组的时钟节点;基于属于相同逻辑组的各时钟节点的物理位置,确定属于相同逻辑组的各时钟节点的位置中心;将从所述位置中心出发预设范围内的目标时钟节点划分至同一所述偏斜组;其中,所述目标时钟节点为属于该位置中心对应的逻辑组的时钟节点。
本申请实施例还提供了一种电子设备,包括处理器和存储器;所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述任一种的时钟树综合方法。
本申请实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的时钟树综合方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种时钟树综合方法的流程示意图;
图2为本申请实施例提供的一种时钟节点分组示意图;
图3为本申请实施例提供的另一种时钟节点分组示意图;
图4为本申请实施例提供的一种时钟树综合装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应理解,在本申请所提供的实施例中所揭露装置和方法,可以通过其它的方式实现,后续所描述的实施例仅仅是示意性的。例如,装置实施例中所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本文中,多个是指两个或两个以上。
为了解决目前CTS设计过程中,对于偏斜组的划分必须要由IC设计工程师人工进行划分,从而导致划分结果严重依赖于IC设计工程师的经验,主观性强,难以保证每一次拆分后的设计结构所带来的效果都是良好的,并且还存在耗时时间长,效率低下的问题,本申请实施例中提供了一种时钟树综合方法。可以参见图1所示,图1为本申请实施例中提供的一种时钟树综合方法的流程示意图,包括:
S101:基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,将时钟节点划分为偏斜组。
需要说明的是,本申请实施例中所述的芯片应做广义理解,其可以是芯片设计阶段的芯片版图,也可以是已经产出的芯片实体。
在本申请实施例中,时钟节点为芯片中受时钟信号控制的节点,例如触发器、寄存器、锁存器等。可以理解,本申请实施例中所述的节点是指芯片内布设的电子元件或者标准单元。
在本申请实施例中,每个偏斜组中包括一个或多个不同的时钟节点。可以理解,本申请实施例中允许仅存在一个偏斜组的情况,此时所有的时钟节点均位于该偏斜组中,此时与不进行划分时的情况一致。
在本申请实施例中,需要进行时钟树综合的各时钟节点可以由工程师设置或指定,也可以通过EDA工具等芯片设计工具确定。相应的,需要进行时钟树综合的各时钟节点的物理位置和命名名称也可以由工程师输入或者从EDA工具等芯片设计工具中自动化获取。
可以理解,在芯片设计过程中,节点的命名是按照设定的逻辑命名规则进行命名的,例如命名名称时可以顺序包括所属逻辑组、节点类型(例如寄存器、锁存器、触发器等)、标识等但不作为限制,因此从节点的命名名称中可以解析出该节点所属的逻辑组。所谓逻辑组是指芯片设计过程中为了实现不同功能而搭建的不同逻辑电路,构成这些逻辑电路的标准单元或者电子元件即称之为逻辑组。
为了实现偏斜组的划分,在本申请实施例的一种可选实施方式中,可以基于各时钟节点的物理位置确定各时钟节点之间的距离,并基于各时钟节点的命名名称确定各时钟节点中属于相同逻辑组的时钟节点。进而可以将各时钟节点中,相互之间的距离小于等于预设距离阈值且属于相同逻辑组的时钟节点划分至同一偏斜组。
在上述可选实施方式中,为将各时钟节点中,相互之间的距离小于等于预设距离阈值且属于相同逻辑组的时钟节点划分至同一偏斜组,可以先将各时钟节点按照逻辑组归类。然后针对每一归类的时钟节点:从该归类的时钟节点中任选一个时钟节点作为起始节点,找到所有与之相比距离小于等于预设距离阈值的时钟节点,再从这些时钟节点中剔除与任意一个其他时钟节点的距离大于预设距离阈值的时钟节点,这样保留下来的时钟节点相互之间的距离均小于等于预设距离阈值,得到一个偏斜组。对该归类的剩余时钟节点重复上述过程,直到所有时钟节点都划分到了偏斜组。
可以理解,预设距离阈值可以根据实际需要进行设置,例如可以根据逻辑组所允许的最大时钟偏移进行设置。
可以理解,以上仅为本申请实施例示例的一种可实现为将各时钟节点中,相互之间的距离小于等于预设距离阈值且属于相同逻辑组的时钟节点划分至同一偏斜组的方式,不作为限制。例如,还可以在将各时钟节点按照逻辑组归类后,然后针对每一归类的时钟节点采用预先训练好的分组模型(例如神经网络模型等)进行偏斜组划分,但不作为限制。
为了实现偏斜组的划分,在本申请实施例的另一种可选实施方式中,可以基于各时钟节点的命名名称确定各时钟节点中属于相同逻辑组的时钟节点,然后基于属于相同逻辑组的各时钟节点的物理位置,确定属于相同逻辑组的各时钟节点的位置中心。然后,将从位置中心出发预设范围内的目标时钟节点划分至同一偏斜组,其中,目标时钟节点为属于该位置中心对应的逻辑组的时钟节点。可以理解,对于该位置中心对应的逻辑组中剩余的时钟节点,可以重新确定这些剩余的时钟节点的位置中心,然后将从该新的位置中心出发预设范围内的目标时钟节点(需要注意,此时目标时钟节点中不包括之前已划分有偏斜组的时钟节点,以保证偏斜组之间不存在相同的时钟节点)划分至同一偏斜组。重复上述过程,直至属于该逻辑组的所有时钟节点都划分至了偏斜组中。
可以理解,位置中心可以是通过计算时钟节点的位置坐标的平均值或加权平均值得到,但不作为限制。
示例性的,请参见图2所示,假设时钟节点A、B、C、D属于同一逻辑组,假设基于时钟节点A、B、C、D计算出的位置中心为a,假设从a出发预设范围内的有A和B,则A和B划分为一个偏斜组1。基于时钟节点C和D计算出位置中心为b,假设从b出发C和D均位于预设范围内,则C和D划分为一个偏斜组2,此时由于A和B在先已经划分至偏斜组1,因此无论从b出发A和B是否位于预设范围内,A和B均不参与偏斜组2的划分。
在上述可行实施方式中,预设范围可以根据预先设定的面积阈值确定,或者预设范围可以根据预先设定的划入偏斜组的目标时钟节点的数量阈值确定。在根据预先设定的划入偏斜组的目标时钟节点的数量阈值确定预设范围时,预设范围并非是固定值,其范围大小与时钟节点的物理位置相关。例如上例中加上划入偏斜组的目标时钟节点的数量阈值为3,请参见图3所示,从位置中心a出发向外扩展,假设依次将时钟节点A、B、C纳入扩展区域内,在将时钟节点C纳入时达到数量阈值3,此时结束扩展,此时的范围记为预设范围。此后剩余的时钟节点D单独划入另一偏斜组。
可以理解,以上仅为本申请实施提供的两种可行的实施方式,不作为对本申请实现偏斜组划分的方式的限制。
还可以理解,在本申请实施例中,还可以采用基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,按照不同分组方式对各时钟节点划分偏斜组,得到每种分组方式对应的偏斜组集合。
此时会得到多个偏斜组集合,从而在后续步骤S102中会得到每一偏斜组集合的设计结构,从而可以从多个设计结构中选出一个最优的设计结构作为目标设计结构,使得最终在芯片中使用的目标设计结构效果更好。
可以理解,在采用多种不同分组方式对各时钟节点划分偏斜组,得到多个偏斜组集合时,在每一种分组方式下的偏斜组划分方式均可采用前述两种可行实施方式中的任意一种来实现,区别在于:当采用第一种可行实施方式进行偏斜组划分时,不同分组方式之间应具有不同的预设距离阈值,以保证不同分组方式可以得到不同的偏斜组集合;当采用第二种可行实施方式进行偏斜组划分时,不同分组方式之间应具有不同的预设范围,以保证不同分组方式可以得到不同的偏斜组集合。
可以理解,在芯片设计过程中,对于不同的工艺角,单位面积的芯片成本是不一样的。因此通常可以基于预先的基础研究,可以初步得到各工艺角下CTS设计效果最优的面积或者时钟节点数量。在本申请实施例的一种可选实施例中,当采用第二种可行实施方式进行偏斜组划分时,可以基于基础研究中初步确定出的各工艺角下CTS设计效果最优的面积或者时钟节点数量来确定不同分组方式的预设范围,从而使得最终选出的目标设计结构是符合当前工艺角需求的,使得在芯片中使用目标设计结构后可以获得良好的时序约束效果。
S102:对各偏斜组之间的时延进行平衡,得到目标设计结构。
可以理解,在本申请实施例中,可以通过CTS工具在各偏斜组之间采用加入逻辑门等方式实现对各偏斜组之间的时延的平衡,但不作为限制。
还可以理解,在在采用多种不同分组方式对各时钟节点划分偏斜组,得到多个偏斜组集合时,针对每一个偏斜组集合可以通过CTS工具在该偏斜组集合中的各偏斜组之间采用加入逻辑门等方式实现对各偏斜组之间的时延的平衡,但同样不作为限制。
还可以理解,若偏斜组内的时钟节点之间存在时延不满足设计的时序要求的情况,则还需要通过设计结构对该偏斜组内的时钟节点之间的时延进行平衡。因此,为了减少CTS设计过程中需要平衡的物理区域,降低时钟树中的延迟和功耗,可以配置每一偏斜组中的各时钟节点之间的时钟偏斜在预设的偏斜范围内。其中,预设的偏斜范围可以在芯片设计所规定的时钟偏斜范围内。这样,偏斜组内就可以无需平衡时钟节点之间的时延,从而达到减少CTS设计过程中需要平衡的物理区域,降低时钟树中的延迟和功耗的效果。
为了使得每一偏斜组中的各时钟节点之间的时钟偏斜在预设的偏斜范围内,在本申请实施例的一种可选实施方式中,可以通过设置合理的距离阈值或者预设范围来保证划分至偏斜组中的各时钟节点之间的时钟偏斜在预设的偏斜范围内。在本申请实施例的另一种可选实施方式中,也可以在划分好偏斜组后通过EDA工具检测偏斜组中各时钟节点之间的时钟偏斜,将时钟偏斜超出预设的偏斜范围的时钟节点从该偏斜组中剔除,将该时钟节点加入其他偏斜组或者单独作为一个偏斜组,从而保证每一偏斜组中的各时钟节点之间的时钟偏斜在预设的偏斜范围内。
可以理解,经过CTS工具进行时延平衡后的结构即为本申请实施例中所述的设计结构。在仅具有一个偏斜组集合的方案中,此时得到设计结构即为目标设计结构。在采用多种不同分组方式得到多个偏斜组集合的方案中,会得到多个设计结构,此时需要从这多个设计结构中选出一个目标设计结构。
为此,在本申请实施例中可以先分别确定在芯片中使用各设计结构时的芯片成本,然后根据各设计结构对应的芯片成本,从各设计结构中确定出目标设计结构。
可选的,一种确定在芯片中使用各设计结构时的芯片成本的方式是,可以获取在芯片中使用各设计结构时,芯片的成本参数的值,然后分别根据使用各设计结构时芯片的成本参数的值,确定在芯片中使用各设计结构时的芯片成本。
在本申请实施例中,成本参数可以包括芯片的功耗、面积、频率中的至少之一。
可以理解,本申请实施例中芯片的成本并非是指芯片的生成成本,而是一个表征芯片性能的评估值。其中,芯片的功耗值、芯片的面积与芯片的成本正相关,即芯片的功耗值越大芯片成本越高,芯片的面积越大芯片成本越高。而芯片的频率值与芯片成本负相关,芯片的频率值越高,芯片成本越低。
在本申请实施例中,可以直接将芯片的各成本参数的值反馈给工程师,以供工程师进行选择。
此外,也可以通过将各参数值转换为得分后进行加权求和得到一个总的芯片成本,进而基于该芯片成本进行目标设计结构的选择。例如,选择芯片成本最低的设计结构作为目标设计结构。
这样,可以从至少一个影响芯片性能的维度出发对设计结构进行评价,从而有效评判出各设计结构的优劣,使得后续进行目标设计结构的选择更为客观。
在本申请实施例中,将各参数值转换为得分的方式可以但不限于去量纲处理、归一化处理等,相关处理方式请参考已知技术,在本申请实施例中不做赘述。
在本申请实施例中,可以通过EDA工具测试得到在芯片中使用各设计结构时,芯片的各成本参数的值。
还可以理解的是,在本申请实施例中,在采用多种不同分组方式对各时钟节点划分偏斜组,得到多个偏斜组集合时,由于每一种分组方式都是针对相同的时钟节点进行的划分,因此为了保证后续处理的准确性,在按照每一种分组方式将所述时钟节点划分为多个偏斜组,得到每种分组方式对应的偏斜组集合时,可以关联记录各时钟节点所属的偏斜组以及分组方式。进而针对每一偏斜组集合:可以根据记录的各时钟节点所属的偏斜组以及分组方式,依次对相同分组方式中各偏斜组之间的时延进行平衡,得到该分组方式下的偏斜组集合对应的设计结构。不断重复上述过程,即可得到每一分组方式下的偏斜组集合对应的设计结构。
在本申请实施例中,可以通过软件构建一张记录表以关联记录各时钟节点、各时钟节点所属的偏斜组以及分组方式。此外,由于时钟节点大多都是寄存器等具有数据暂存能力的元件,因此也可以在时钟节点内以属性信息的方式关联记录各时钟节点所属的偏斜组以及分组方式。也即时钟节点内可以记录自身所属的偏斜组以及分组方式。例如时钟节点K记录A1B2C1,表征时钟节点K在分组方式A时属于偏斜组1,在分组方式B时属于入偏斜组2,在分组方式C时属于偏斜组1。
S103:在芯片中使用目标设计结构。
可以理解,在实际应用过程中,可能存在划分出的偏斜组很多,导致CTS设计过程中虽然已经减少了许多需要平衡的物理区域,但是需要平衡的区域仍旧很多,需要引入的***延迟仍旧较多的情况,为此可以将偏斜组抽象为前文的时钟节点(此时可以以偏斜组的中心坐标作为物理位置,偏斜组所属的逻辑组是已明确的,无需重新确定),重新执行前述方法进行偏斜组的划分以及偏斜组之间的平衡,从而尝试进一步减少需要引入的***延迟。
本申请实施例的方案可以应用于芯片设计中的时钟同步网络、异步复位逻辑设计、多点CTS结构、分离锁存器、and/OR时钟结构等的时序设计中,但不作为限制。
本申请实施例所提供的时钟树综合方法,可以基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称自动进行偏斜组划分,无需依赖IC设计工程师的经验人工进行分组,减少了分组的主观性,同时也减少了分组的耗时时间长,提高了效率。此外,由于时钟节点之间的时延与时钟节点之间的距离是正相关的,且由于不同逻辑组之间的时序要求可能不同,而时钟节点的命名名称是可以体现出时钟节点属于哪一逻辑组的,因此基于各时钟节点的物理位置和命名名称对各时钟节点划分偏斜组,可以使得同一偏斜组内的各时钟节点具有较小的时钟偏斜,CTS工具更多的工作在于平衡各偏斜组之间的时延即可,使得CTS设计过程中只需要平衡更少的物理区域,从而使得时钟树中的延迟更少,保证将块(即各时钟节点所在的区域)拆分后得到的设计结构所带来的效果相较于不拆分而言是良好的。
此外,本申请实施例还可以通过采用不同的分组方式将所述时钟节点划分为多个偏斜组,并确定每一分组方式得到的设计结构对应的芯片成本,进而基于各设计结构对应的芯片成本可以得到最符合需求的目标设计结构,从而保证对目标设计结构的使用可以在满足实际需求的同时,芯片成本最优。
参考图4,本申请的另一些实施例中还提供了一种CTS设计装置400。该装置400可用于实现图1所示的方法。应理解,装置400具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置400包括至少一个能以软件或固件的形式存储于存储器中或固化在装置400的操作***中的软件功能模块。具体地:
参见图4所示,装置400可以包括:
分组模块401,用于基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称将所述时钟节点划分为多个偏斜组;其中,所述时钟节点为所述芯片中受时钟信号控制的节点;每个所述偏斜组中包括一个或多个不同的所述时钟节点;
平衡模块402,用于对各所述偏斜组之间的时延进行平衡,得到目标设计结构;
处理模块403,用于在所述芯片中使用所述目标设计结构。
在本申请实施例的一种可选实施方式中,分组模块401具体用于基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,按照不同分组方式将所述时钟节点划分为多个偏斜组,得到每种分组方式对应的偏斜组集合;
相应的,平衡模块402具体用于:针对每一所述偏斜组集合,对该偏斜组集合中的各所述偏斜组之间的时延进行平衡,得到该偏斜组集合对应的时钟树综合设计结构;确定在所述芯片中使用各所述设计结构时的芯片成本;根据各所述设计结构对应的芯片成本,从各所述设计结构中确定出目标设计结构。
在本申请实施例的一种可选实施例中,分组模块401具体用于:基于各所述时钟节点的物理位置确定各所述时钟节点之间的距离,并基于各所述时钟节点的命名名称确定各所述时钟节点中属于相同逻辑组的时钟节点;将各所述时钟节点中,相互之间的距离小于等于预设距离阈值且属于相同逻辑组的时钟节点划分至同一所述偏斜组。
在本申请实施例的的另一种可选实施例中,分组模块401具体用于:基于各所述时钟节点的命名名称确定各所述时钟节点中属于相同逻辑组的时钟节点;基于属于相同逻辑组的各时钟节点的物理位置,确定属于相同逻辑组的各时钟节点的位置中心;将从所述位置中心出发预设范围内的目标时钟节点划分至同一所述偏斜组;其中,所述目标时钟节点为属于该位置中心对应的逻辑组的时钟节点。
在上述可选实施例中,所述预设范围根据预先设定的面积阈值确定,或所述预设范围根据预先设定的划入偏斜组的所述目标时钟节点的数量阈值确定。
在本申请实施例中,每一所述偏斜组中的各所述时钟节点之间的时钟偏斜在预设的偏斜范围内。
在本申请实施例中,处理模块403还用于,在分组模块401按照每一种分组方式将所述时钟节点划分为多个偏斜组,得到每种分组方式对应的偏斜组集合时,关联记录各所述时钟节点所属的偏斜组以及分组方式;
平衡模块402具体用于:根据记录的各所述时钟节点所属的偏斜组以及分组方式,依次对相同分组方式中各所述偏斜组之间的时延进行平衡,得到该分组方式下的偏斜组集合对应的设计结构;重复上述过程,得到每一所述分组方式下的偏斜组集合对应的设计结构。
在本申请实施例中,处理模块403具体用于,获取在所述芯片中使用各所述设计结构时,所述芯片的成本参数的值;所述成本参数包括所述芯片的功耗、面积、频率中的至少之一;分别根据使用各所述设计结构时所述芯片的成本参数的值,确定在所述芯片中使用各所述设计结构时的芯片成本。
需要理解的是,出于描述简洁的考量,部分实施例一中描述过的内容在本实施例中不再赘述。
本申请的另一些实施例还提供了一种电子设备,参见图5所示,其包括处理器501和存储器502。其中:
处理器501用于执行存储器502中存储的一个或多个程序,以实现上述实施例一所描述的时钟树综合方法。
可以理解,图5所示的结构仅为示意,电子设备还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。
例如,处理器501和存储器502之间可以是通过通信总线的方式进行的连接。又例如,电子设备还可包括诸如显示器、鼠标、键盘等部件。
在本申请实施例中,处理器501可以为中央处理器、微处理器、单片机等,但不作为限制。存储器502可以为随机存取存储器,只读存储器,可编程只读存储器,可擦除只读存储器,电可擦除只读存储器等,但不作为限制。
在本申请实施例中,电子设备可以是,但不限于台式机、笔记本电脑、服务器等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(Secure Digital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一的时钟树综合方法。在此不再赘述。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种时钟树综合方法,其特征在于,包括:
基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,将所述时钟节点划分为多个偏斜组;其中,所述时钟节点为所述芯片中受时钟信号控制的节点;每个所述偏斜组中包括一个或多个不同的所述时钟节点;
对各所述偏斜组之间的时延进行平衡,得到目标设计结构;
在所述芯片中使用所述目标设计结构。
2.如权利要求1所述的时钟树综合方法,其特征在于,
基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,将所述时钟节点划分为多个偏斜组,包括:
基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,按照不同分组方式将所述时钟节点划分为多个偏斜组,得到每种分组方式对应的偏斜组集合;以及
对各所述偏斜组之间的时延进行平衡,得到目标设计结构,包括:
针对每一所述偏斜组集合,对该偏斜组集合中的各所述偏斜组之间的时延进行平衡,得到该偏斜组集合对应的设计结构;
确定在所述芯片中使用各所述设计结构时的芯片成本;
根据各所述设计结构对应的芯片成本,从各所述设计结构中确定出目标设计结构。
3.如权利要求1所述的时钟树综合方法,其特征在于,所述基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,按照不同分组方式将所述时钟节点划分为多个偏斜组,包括:
基于各所述时钟节点的物理位置确定各所述时钟节点之间的距离,并基于各所述时钟节点的命名名称确定各所述时钟节点中属于相同逻辑组的时钟节点;
将各所述时钟节点中,相互之间的距离小于等于预设距离阈值且属于相同逻辑组的时钟节点划分至同一所述偏斜组。
4.如权利要求1所述的时钟树综合方法,其特征在于,所述基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,按照不同分组方式将所述时钟节点划分为多个偏斜组,包括:
基于各所述时钟节点的命名名称确定各所述时钟节点中属于相同逻辑组的时钟节点;
基于属于相同逻辑组的各时钟节点的物理位置,确定属于相同逻辑组的各时钟节点的位置中心;
将从所述位置中心出发预设范围内的目标时钟节点划分至同一所述偏斜组;其中,所述目标时钟节点为属于该位置中心对应的逻辑组的时钟节点。
5.如权利要求4所述的时钟树综合方法,其特征在于,所述预设范围根据预先设定的面积阈值确定,或所述预设范围根据预先设定的划入偏斜组的所述目标时钟节点的数量阈值确定。
6.如权利要求2所述的时钟树综合方法,其特征在于,
在按照每一种分组方式将所述时钟节点划分为多个偏斜组,得到每种分组方式对应的偏斜组集合时,所述方法还包括:关联记录各所述时钟节点所属的偏斜组以及分组方式;
针对每一所述偏斜组集合,对该偏斜组集合中的各所述偏斜组之间的时延进行平衡,得到该偏斜组集合对应的设计结构,包括:
根据记录的各所述时钟节点所属的偏斜组以及分组方式,依次对相同分组方式中各所述偏斜组之间的时延进行平衡,得到该分组方式下的偏斜组集合对应的设计结构;
重复上述过程,得到每一所述分组方式下的偏斜组集合对应的设计结构。
7.如权利要求2所述的时钟树综合方法,其特征在于,确定在所述芯片中使用各所述设计结构时的芯片成本,包括:
获取在所述芯片中使用各所述设计结构时,所述芯片的成本参数的值;所述成本参数包括所述芯片的功耗、面积、频率中的至少之一;
分别根据使用各所述设计结构时所述芯片的成本参数的值,确定在所述芯片中使用各所述设计结构时的芯片成本。
8.如权利要求1-7任一项所述的时钟树综合方法,其特征在于,每一所述偏斜组中的各所述时钟节点之间的时钟偏斜在预设的偏斜范围内。
9.一种时钟树综合装置,其特征在于,包括:
分组模块,用于基于芯片中需要进行时钟树综合的各时钟节点的物理位置和命名名称,将所述时钟节点划分为多个偏斜组;其中,所述时钟节点为所述芯片中受时钟信号控制的节点;每个所述偏斜组中包括一个或多个不同的所述时钟节点;
平衡模块,用于对各所述偏斜组之间的时延进行平衡,得到目标设计结构;
处理模块,用于在所述芯片中使用所述目标设计结构。
10.如权利要求9所述的时钟树综合装置,其特征在于,所述分组模块具体用于:
基于各所述时钟节点的物理位置确定各所述时钟节点之间的距离,并基于各所述时钟节点的命名名称确定各所述时钟节点中属于相同逻辑组的时钟节点;
将各所述时钟节点中,相互之间的距离小于等于预设距离阈值且属于相同逻辑组的时钟节点划分至同一所述偏斜组。
11.如权利要求9所述的时钟树综合装置,其特征在于,所述分组模块具体用于:
基于各所述时钟节点的命名名称确定各所述时钟节点中属于相同逻辑组的时钟节点;
基于属于相同逻辑组的各时钟节点的物理位置,确定属于相同逻辑组的各时钟节点的位置中心;
将从所述位置中心出发预设范围内的目标时钟节点划分至同一所述偏斜组;其中,所述目标时钟节点为属于该位置中心对应的逻辑组的时钟节点。
12.一种电子设备,其特征在于,包括:处理器及存储器;所述处理器用于执行所述存储器中存储的程序,以实现如权利要求1至8中任一项所述的时钟树综合方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至8中任一项所述的时钟树综合方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211678912.5A CN116167330A (zh) | 2022-12-26 | 2022-12-26 | 时钟树综合方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211678912.5A CN116167330A (zh) | 2022-12-26 | 2022-12-26 | 时钟树综合方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116167330A true CN116167330A (zh) | 2023-05-26 |
Family
ID=86421173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211678912.5A Pending CN116167330A (zh) | 2022-12-26 | 2022-12-26 | 时钟树综合方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116167330A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117195821A (zh) * | 2023-11-08 | 2023-12-08 | 深圳鸿芯微纳技术有限公司 | 时钟树综合方法、电子设备及存储介质 |
-
2022
- 2022-12-26 CN CN202211678912.5A patent/CN116167330A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117195821A (zh) * | 2023-11-08 | 2023-12-08 | 深圳鸿芯微纳技术有限公司 | 时钟树综合方法、电子设备及存储介质 |
CN117195821B (zh) * | 2023-11-08 | 2024-02-23 | 深圳鸿芯微纳技术有限公司 | 时钟树综合方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7546567B2 (en) | Method and apparatus for generating a variation-tolerant clock-tree for an integrated circuit chip | |
CN112100158B (zh) | 一种标准单元库的建立方法、装置、电子设备及存储介质 | |
US8806413B2 (en) | Gradient AOCV methodology enabling graph-based timing closure with AOCV timing models | |
US20220138395A1 (en) | Hierarchical clock tree implementation | |
CN116256621B (zh) | 芯粒的测试方法、装置、电子设备及存储介质 | |
CN116167330A (zh) | 时钟树综合方法、装置、电子设备及计算机可读存储介质 | |
Chen et al. | Routability-driven flip-flop merging process for clock power reduction | |
CN111046624A (zh) | 芯片模块接口时钟结构的构建方法、装置、设备及介质 | |
CN114861578A (zh) | 保持时间违例修复方法、装置、设备及存储介质 | |
CN111475494A (zh) | 一种海量数据处理方法、***、终端及存储介质 | |
CN114970416A (zh) | 集成电路的设计方法、装置、电子设备、介质及芯片 | |
US7836421B2 (en) | Semiconductor layout design apparatus and method for evaluating a floorplan using distances between standard cells and macrocells | |
CN117057290A (zh) | 时序优化方法、装置、电子设备及存储介质 | |
CN108120917B (zh) | 测试时钟电路确定方法及装置 | |
CN112585588A (zh) | 芯片的形式验证方法、设备和存储介质 | |
CN105426314A (zh) | 一种fpga存储器的工艺映射方法 | |
CN113687949A (zh) | 服务器部署方法、装置、部署设备及存储介质 | |
CN113919266A (zh) | 可编程器件的时钟规划方法、装置、电子设备及存储介质 | |
CN113051859B (zh) | 用于设计上下文感知电路的方法 | |
US7512923B2 (en) | Automatic estimation method, apparatus, and recording medium | |
US20100237878A1 (en) | Leak current calculation apparatus and method for calculating leak current | |
CN112416709B (zh) | 芯片动态功耗估计方法、装置、处理器芯片及服务器 | |
US9892227B1 (en) | Systems, methods and storage media for clock tree power estimation at register transfer level | |
CN112580278A (zh) | 逻辑电路的优化方法、优化装置以及存储介质 | |
US8819612B1 (en) | Analyzing timing requirements of a hierarchical integrated 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 |