一种芯片的时钟树规划方法以及芯片
文献发布时间:2023-06-19 12:02:28
技术领域
本发明涉及时钟领域,特别是涉及一种芯片的时钟树规划方法以及芯片。
背景技术
由于芯片的面积越来越大,在现有的时钟设计方案中,在芯片上进行同步设计时,OCV(On Chip Variation,片上变量)会对时钟收敛频率造成影响,使得时钟收敛难度大。
发明内容
本发明提供一种芯片的时钟树规划方法以及芯片,其能够提高时钟收敛频率,降低时钟收敛难度。
为解决上述技术问题,本发明提供的第一个技术方案为:提供一种芯片的时钟树规划方法,所述方法包括:基于当前工艺对应的片上变量、所述芯片的面积规划每一时钟域的区域范围;根据预设规则在每一所述时钟域对应的区域范围进行布线,以得到每一所述时钟域的时钟树综合;将所有所述时钟域的时钟树综合进行拼接。
其中,所述基于当前工艺对应的片上变量、所述芯片的面积规划每一时钟域的区域范围包括:基于所述片上变量以及所述芯片的面积确定每一时钟域的可行范围;确定所述可行范围内的基本单元数量;基于所述基本单元的数量,计算每一所述时钟域的布线时间;若每一所述时钟域的布线时间之间的时间差不超过预定范围,则所述时钟域的可行范围为所述时钟域的区域范围。
其中,所述方法还包括:若每一所述时钟域的布线时间之间的时间差超过预定范围,则根据每一所述时钟域的布线时间以及所述基本单元的重新规划所述时钟域的可行范围,以使得重新规划后的每一所述时钟域的可行范围的布线时间之间的时间差不超过预定范围;重新规划后的每一所述时钟域的可行范围为所述时钟域的区域范围。
其中,所述根据预设规则在每一所述时钟域对应的区域范围进行布线,以得到每一所述时钟域的时钟树综合包括:确定每一所述时钟域对应的时钟原点位置;基于所述时钟原点位置设置缓冲器;基于所述缓冲器的位置在每一所述时钟域的区域范围内进行布线,以得到每一所述时钟域的时钟树综合。
其中,所述基于所述缓冲器的位置在每一所述时钟域的区域范围内进行布线,以得到每一所述时钟域的时钟树综合包括:基于所述缓冲器的位置在每一所述时钟域对应的区域范围内进行布线,以得到每一所述时钟域对应的主时钟树;利用预设工具基于所述主时钟树生成时钟树枝干,进而得到每一所述时钟域的时钟树综合。
其中,所述基于所述缓冲器的位置在每一所述时钟域对应的区域范围内进行布线,以得到每一所述时钟域对应的主时钟树包括:判断相邻两个缓冲器之间的距离;若所述距离大于预设距离,则在相邻的两个缓冲器之间设置缓冲器。
其中,每一所述缓冲器包括至少两个反相器;且每一所述缓冲器内两个方向器的间距为150~250微米。
其中,所述将所有所述时钟域的时钟树综合进行拼接包括:根据所述时钟树综合确定对应所述时钟域的时钟接口;将所述时钟域的时钟接口与相邻的时钟域的时钟接口进行拼接。
其中,所述方法还包括:对拼接后的时钟接口处的接口信号进行跨时钟域处理。
为解决上述技术问题,本发明提供的第二个技术方案为:提供一种芯片,所述芯片包括时钟树,所述时钟树通过上述任一项所述的时钟树规划方法制成。
本发明的有益效果,区别于现有技术的情况,本发明基于当前工艺对应的片上变量、所述芯片的面积规划每一时钟域的区域范围;根据预设规则在每一所述时钟域对应的区域范围进行布线,以得到每一所述时钟域的时钟树综合;将所有所述时钟域的时钟树综合进行拼接。以此提高时钟收敛频率,降低时钟收敛难度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
图1为本发明芯片的时钟树规划方法的第一实施例的流程示意图;
图2为图1中步骤S11的一实施例的流程示意图;
图3为本发明芯片的时钟树的一实施例的结构示意图;
图4为图1中步骤S12的一实施例的流程示意图;
图5为本发明芯片的一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
请参见图1,为本发明芯片的时钟树规划方法的第一实施例的流程示意图,具体包括:
步骤S11:基于当前工艺对应的片上变量、芯片的面积规划每一时钟域的区域范围。
具体,经过申请人研究发现,时钟收敛频率与当前工艺对应的片上变量OCV以及芯片的面积有关。因此,在本申请中,基于当前工艺对应的片上变量OCV以及芯片的面积规划每一时钟域的区域范围,以此能够提高时钟收敛频率,进而降低时钟收敛难度。
具体的,请结合图2,步骤S11具体包括:
步骤S111:基于所述片上变量以及所述芯片的面积确定每一时钟域的可行范围。
具体的,从芯片制造工厂处获取当前工艺对应的片上变量OCV,可以基于片上变量OCV确定固有频率下,距离对时钟路径的影响,从而可以确定单个时钟域的可行面积。即,可以在现有芯片的面积上进行划分,得到多个时钟域,并且结合片上变量预估每一个时钟域的可行范围。如图3所示的Domain0~Domain8为时钟域以及规划后的可行范围。
步骤S112:确定可行范围内的基本单元数量。
具体的,可以借助综合工具确定每一时钟域的可行范围内的基本单元02的数量。
步骤S113:基于所述基本单元的数量,计算每一所述时钟域的布线时间。
具体的,可以借助布线工具,基于每一时钟域内的基本单元02进行布线,并统计工具布线开始至布线完成花费的时间,即可得到每一时钟域的布线时间。
步骤S114:若每一所述时钟域的布线时间之间的时间差不超过预定范围,则所述时钟域的可行范围为所述时钟域的区域范围。
若每一时钟域的布线时间之间的时间差不超过预定范围,则时钟域的可行范围为时钟域的区域范围。例如,若第一时钟域Domain0的布线时间为9h,第二时钟域的Domain1的布线时间为9h,第三时钟域Domain2的布线时间为10h,第四时钟域Domain3的布线时间为10h,第五时钟域Domain4的布线时间为9h……,在一实施例中,假设预定范围为[0,2)。其中,第一时钟域与第二时钟域的布线时间之间的时间差为0h,不超过[0,2);第二时钟域与第三时钟域的布线时间之间的差为1h,不超过[0,2);第三时钟域与第四时钟域的布线时间之间的差为0h,不超过[0,2);第四时钟域与第五时钟域的布线时间之间的差为1h,不超过[0,2);第一时钟域与第五时钟域的布线时间之间的差为0h,不超过[0,2),则可以将时钟域的可行范围作为所述时钟域的区域范围。
通过该方法对时钟域的区域范围进行规划,能够在进行布线的过程中缩短一次布线流程完成所需的时间,提高时钟树在芯片上的可实现性。
进一步的,在一实施例中,若每一所述时钟域的布线时间之间的时间差超过预定范围,则根据每一所述时钟域的布线时间以及所述基本单元的重新规划所述时钟域的可行范围,以使得重新规划后的每一所述时钟域的可行范围的布线时间之间的时间差不超过预定范围;重新规划后的每一所述时钟域的可行范围为所述时钟域的区域范围。例如,若第一时钟域Domain0的布线时间为9h,第二时钟域的Domain1的布线时间为9h,第三时钟域Domain2的布线时间为10h,第四时钟域Domain3的布线时间为10h,第五时钟域Domain4的布线时间为14h……,在一实施例中,假设预定范围为[0,2)。其中,第一时钟域与第二时钟域的布线时间之间的时间差为0h,不超过[0,2);第二时钟域与第三时钟域的布线时间之间的差为1h,不超过[0,2);第三时钟域与第四时钟域的布线时间之间的差为0h,不超过[0,2);第四时钟域与第五时钟域的布线时间之间的差为4h,超过[0,2);第一时钟域与第五时钟域的布线时间之间的差为5h,超过[0,2),则表示当前规划的可行范围不合理,会增加布线所需的时间。在此情况下,进一步根据每一时钟域的布线时间以及基本单元02的数量重新规划所述时钟域的可行范围,直至使得重新规划后的每一所述时钟域的可行范围的布线时间之间的时间差不超过预定范围;重新规划后的每一时钟域的可行范围为时钟域的区域范围。可以理解的,布线即是将基本单元02进行物理金属连接,从而实现电信号传输,而时钟域的布线时间即使将该时钟域内的基本单元02物理金属连接所花费的时间。该过程可以通过固定软件进行,或者也可以通过人力操作完成,具体不做限定。
通过该方法对时钟域的区域范围进行规划,能够在进行布线的过程中缩短一次布线流程完成所需的时间,提高时钟树在芯片上的可实现性。
本实施例所述的方法,其结合片上变量以及芯片的面积初步对芯片进行规划,得到每一时钟域的可行范围,根据可行范围内的基本单元02的数量确定布线时间,在布线时间不合理的情况下,重新根据基本单元02的数量规划时钟域的区域范围,以此能够大大缩减布线时间。并且由于时钟收敛频率与当前工艺对应的片上变量OCV以及芯片的面积有关。因此,通过上述方式规划每一时钟域的区域范围,以此能够提高时钟收敛频率,进而降低时钟收敛难度。
步骤S12:根据预设规则在每一所述时钟域对应的区域范围进行布线,以得到每一所述时钟域的时钟树综合。
在对时钟域的区域范围划分完成后,根据预设规则在每一时钟域对应的区域范围内进行布线,进而得到每一时钟域的时钟树综合。
具体的,请参见图4,步骤S12具体包括:
步骤S121:确定每一时钟域对应的时钟原点位置。
具体的,可以根据时钟树的设计要求确定每一时钟域对应的时钟原点03的位置。在一具体实施例中,时钟域对应的时钟原点03可以位于该时钟域的区域范围内;或者,在另一实施例中,时钟域对应的时钟原点03可以位于该时钟域相邻的时钟域的区域范围内,具体不做限定,以时钟树的设计要求为准。如图3所示,共有Domain0~Domain8九个时钟域,每一时钟域均有其对应的时钟原点03。
步骤S122:基于时钟原点位置设置缓冲器。
在确定好时钟原点03的位置后,基于时钟原点03的位置设置缓冲器04(如图3中三角形所示)。在一具体实施例中,缓冲器04的位置可以手动指定,只要其位于原点附近即可。
在一实施例中,可以利用计算机程序基于原点位置设置缓冲器,即用户输入命令:insert_buffer[get_pins xx/Y]BUF_X13B_A9TL–new_cell_names xx–new_net_names xx;即可命令计算机基于时钟原点03位置设置缓冲器04,本实施例中,缓冲器04的位置如图3所示。
在另一实施例中,还可以手动指定缓冲器04的位置,手动指定缓冲器04的位置的命令为:set_attribute[get_cells xx]origin{x x}。
步骤S123:基于缓冲器的位置在每一时钟域的区域范围内进行布线,以得到每一时钟域的时钟树综合。
在确定好缓冲器04的位置后,基于缓冲器04的位置,在每一时钟域的区域范围内进行布线,如图3所示粗黑线07所示。本步骤中,布线也即将缓冲器04以及时钟原点03进行连接,以此得到每一时钟域的时钟树综合。
进一步的,在一实施例中,基于缓冲器04的位置在每一时钟域对应的区域范围内进行布线,以得到每一时钟域对应的主时钟树,主时钟树即为时钟树的主干。可以进一步利用预设工具基于主时钟树生成时钟树枝干,如图3中细黑线08所示,进而得到每一所述时钟域的时钟树综合。具体的,可以利用预设工具生成时钟树枝干,该过程与现有技术中相同,在此不再赘述。在生成时钟树枝干后,将时钟树枝干的端点挂在主时钟树上,以此得到一个时钟域的时钟树综合的布局。
在一实施例中,基于缓冲器04的位置在每一时钟域的区域范围内进行布线后,还需要进一步判断相邻两个缓冲器04之间的距离;若距离大于预设距离,则在相邻的两个缓冲器04之间设置缓冲器05,以此能够降低时钟传输时间的延迟。在一实施例中,每一缓冲器包括至少两个反相器;且每一缓冲器内两个方向器的间距为150~250微米。在设置缓冲器05时,可以输入命令:add_buffer_on_route[get_nets xx]INV_X13B_A9TL–inverter_pair–first_distance 200–repeater_distance200。
可以利用上述所述的方法对其余时钟域进行设计,以得到其用时钟域的时钟树综合。在一具体实施例中,可以同时对时钟域Domain0~Domain8进行时钟树综合,以减少布线时间,提高芯片的可实现性。
申请人经过研究发现时钟收敛频率还与时钟树综合后的时钟树的质量相关,而通过本申请的方式,得到的时钟树综合后的时钟树,其质量相对于现有方案得到的时钟树质量具有显著提升。因此,本申请的方式能够提高时钟收敛频率,降低时钟收敛难度。
申请人还发现时钟收敛频率寄存器传输级代码的设计相关,在进行上述步骤的过程中,申请人设计了上述代码命令,其也能够提高时钟收敛频率,降低时钟收敛难度。
步骤S13:将所有时钟域的时钟树综合进行拼接。
在得到所有时钟域的时钟树综合后,由于时钟域的区域范围已知,可以将所有时钟域的时钟树综合进行拼接,进而得到芯片的时钟树。
在一具体实施例中,可以根据时钟树综合确定对应的时钟域的时钟接口06,将时钟域的时钟接口与相邻的时钟域的时钟接口进行拼接,进而将所有时钟域的时钟树综合拼接,而形成芯片的时钟树。
在一具体实施例中,对拼接后的时钟接口06处的时钟信号进行跨时钟域处理。如图3所示,在时钟接口06处设置处理单元01,处理单元01一路接时钟域Domain0的时钟信号,一路接时钟域Domain1的时钟信号,进而实现时钟域Domain0与时钟域Domain1的时钟信号的跨时钟域。
本申请的芯片的时钟树的规划方法,其能够对时钟域的面积灵活划分,并且在划分时加入片上变量以及基本单元、芯片的面积、布线时间等因素,以使得得到的时钟域在进行布线时耗费的时间大大缩小,提高时钟树规划的可实现性,不同工艺下皆可应用,应用范围广泛。在将每一时钟域的时钟树综合设计好之后,对其进行拼接,进而得到芯片的时钟树,其能够提高芯片的时钟频率上线,提升芯片的性能。
现有技术的单时钟域全局同步方法设计时钟树后,全局时钟约束频率为400Mhz,得到的时钟偏移为2.97ns,最长路径为16.171ns。而本申请经过研究,本申请的方法得到的时钟树,全局时钟约束频率为400Mhz,得到的时钟偏移为0.6893ns,最长路径为2.9752ns。以此可知,本申请的方法可以有效的降低时钟偏移。
请参见图5,为本发明提供的芯片的一实施例的结构示意图。具体的,芯片50包括时钟树51,时钟树51通过上述所述的规划方法制成。
由于在时钟树51的规划过程中,能够对时钟域的面积灵活划分,并且在划分时加入片上变量以及基本单元、芯片的面积、布线时间等因素,以使得得到的时钟域在进行布线时耗费的时间大大缩小,提高时钟树规划的可实现性,不同工艺下皆可应用,应用范围广泛。在将每一时钟域的时钟树综合设计好之后,对其进行拼接,进而得到芯片的时钟树,其能够提高芯片的时钟频率上线,以此使得包括该时钟树51的芯片的性能得到提升,并且能够极大的降低时钟偏移。
在一实施例中,申请人经过研究发现时钟树的时钟收敛频率与当前工艺对应的片上变量OCV以及芯片的面积有关,因此,申请人结合当前工艺对应的片上变量OCV规划每一时钟域的区域范围,以此能够提高时钟收敛频率,进而降低时钟收敛难度。
在一实施例中,申请人经过研究发现时钟收敛频率还与时钟树综合后的时钟树的质量相关,而通过本申请的方式,得到的时钟树综合后的时钟树,其质量相对于现有方案得到的时钟树质量具有显著提升。因此,本申请的芯片具有时钟收敛频率高,时钟收敛难度低的特点。
在一实施例中,申请人还发现时钟收敛频率寄存器传输级代码的设计相关,在制作时钟树的步骤的过程中,申请人设计了寄存器传输级代码命令,其也能够提高时钟收敛频率,降低时钟收敛难度。
以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
- 一种芯片的时钟树规划方法以及芯片
- 一种芯片时钟树的验证方法、装置及芯片