一种构建用于集成电路设计的时钟树的方法及装置与流程

文档序号:16973847发布日期:2019-02-26 18:48阅读:389来源:国知局
一种构建用于集成电路设计的时钟树的方法及装置与流程

本发明实施例涉及但不限于集成电路技术领域,尤指一种构建用于集成电路设计的时钟树的方法及装置。



背景技术:

芯片制造工艺不断发展,尤其是深亚微米技术的发展,使单位面积的晶片可以集成更多的门电路,甚至具有一定功能的整个系统都可以集成到一个芯片中,随着消费类电子的蓬勃发展,消费类芯片越来越广泛地采用片上系统设计技术,芯片规模越来越大,功能越来越复杂,速度越来越快,集成的ip(知识产权)也越来越多,而且开发周期也越来越短,那么在有建立(setup)时间违例问题的时候,如果后端能通过调整时钟树来解决而不用迭代到开发人员优化代码,那就可以大大缩短整个设计时间。

其中,建立时间是指在寄存器的时钟信号上升沿到来之前,数据信号稳定不变的时间,如果时序路径延迟太大,建立时间不够,数据不能被准确打入寄存器,就会导致建立时间违例。

传统修复建立时间违例的方法是在开发人员优化数据路径上的逻辑,或者后端人员用delay(延迟)更小的其他vtcell(阈值电压单元)来替换delay较大的cell。第一种需要迭代到开发那边优化,设计周期会拉长,第二种会给芯片功耗或成本上带来影响。



技术实现要素:

本发明实施例提供一种构建用于集成电路设计的时钟树的方法及装置,以解决在芯片设计中修复长时钟树过长导致的建立时间违例问题。

一种构建用于集成电路设计的时钟树的方法,包括:

通过对长完时钟树网表里的寄存器进行时序分析,确定出该网表中出现建立时间违例的目标寄存器组;

在源时钟接口下插入一个用于引导时钟树生成方向的时钟缓冲器,所述时钟缓冲器摆放位置为靠近所述目标寄存器组的区域。

可选地,插入的所述时钟缓冲器距所述源时钟接口的距离小于所述时钟树自然生长需增加时钟缓冲器的默认距离。

可选地,所述在源时钟接口上插入一个用于引导时钟树生成方向的时钟缓冲器后,还包括:

对当前长完时钟树网表进行时序分析,如所述目标寄存器组中还存在建立时间违例的目标寄存器,则返回到长时钟树之前的阶段,在所述目标寄存器的时钟端插入时钟缓冲器,插入时钟缓冲器的个数根据所述目标寄存器的建立时间违例的大小确定,然后重新开始长时钟树。

可选地,所述重新开始长时钟树后,还包括:

移除在所述目标寄存器的时钟端插入的时钟缓冲器。

可选地,所述源时钟位于不可关断区域,所述经过布局的网表里的寄存器位于可关断区域,插入的所述时钟缓冲器位于可关断区域。

一种构建用于集成电路设计的时钟树的装置,其中,包括:

分析模块,用于通过对长完时钟树网表里的寄存器进行时序分析,确定出该网表中出现建立时间违例的目标寄存器组;

生长模块,用于在源时钟接口下插入一个用于引导时钟树生长方向的时钟缓冲器,所述时钟缓冲器摆放位置为靠近所述目标寄存器组的区域。

可选地,所述生长模块,插入的所述时钟缓冲器距所述源时钟接口的距离小于所述时钟树自然生长时需增加时钟缓冲器的默认距离。

可选地,所述分析模块,还用于在所述生长模块在源时钟接口上插入一个用于引导时钟树生成方向的时钟缓冲器后,对当前长完时钟树网表进行时序分析,确定所述目标寄存器组中是否还存在建立时间违例的目标寄存器;

所述生长模块,在所述分析模块确定还存在建立时间违例的目标寄存器的情况下,返回到长时钟树之前的阶段,在所述目标寄存器附近插入时钟缓冲器,插入的个数根据所述目标寄存器的建立时间违例的大小确定,然后重新开始长时钟树。

可选地,所述生长模块,所述重新开始长时钟树后还用于:移除在所述目标寄存器的时钟端插入的时钟缓冲器。

可选地,所述源时钟位于不可关断区域,所述经过布局的网表里的寄存器位于可关断区域,插入的所述时钟缓冲器位于可关断区域。

综上,本发明实施例提供一种构建用于集成电路设计的时钟树的方法及装置,可以解决在芯片设计中修复长时钟树过长导致的建立时间违例问题。

附图说明

图1为本发明实施例的一种构建用于集成电路设计的时钟树的方法的流程图;

图2为正常情况下时钟树长的线路图示意图;

图3为本发明实施例的插入时钟缓冲器后时钟树路径示意图;

图4为本发明实施例的虚拟插入时钟缓冲器的时钟树路径示意图;

图5为本发明实施例的一种构建用于集成电路设计的时钟树的装置的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

图1为本发明实施例的一种构建用于集成电路设计的时钟树的方法的流程图,如图1所示,本实施例的方法包括:

步骤11、通过对长完时钟树网表里的寄存器进行时序分析,确定出该网表中出现建立时间违例的目标寄存器组;

步骤12、在源时钟接口下插入一个用于引导时钟树生成方向的时钟缓冲器,所述时钟缓冲器摆放位置为靠近所述目标寄存器组的区域。

在低功耗设计中,存在不可关断区域(alwaysonpowerdomain)和可关断区域(lowpowerdomain),hdmi(highdefinitionmultimediainterface,高清晰度多媒体接口)这个ip的物理模块(phy)是在不可关断区域,而相关控制逻辑在可关断区域,从hdmi物理模块出来的时钟phy_clk驱动可关断区域里很多寄存器,但有一组寄存器的输出直接作为hdmiphy的数据输入,而这组寄存器存在建立时间违例,成为phy_clk时钟树上的关键路径,并且数据路径上的逻辑已经没有可优化空间的时候,然而这组寄存器的前级的时序逻辑却存在可借用的余量(margin),这时间可以通过本实施例的调整时钟树的方式来修复这组寄存器存在的建立时间违例的问题。

图2为正常情况下时钟树生长的线路示意图,如图2所示,在不增加干预情况下,不可关断区域里面的hdmi的一个输出端口作为可关断区域里面部分寄存器的时钟来源,时钟树会沿窄通道从图中的右边一直长到左边后进入可关断区域里,时钟树每经过默认距离会自动增加一个时钟缓冲器。

图2中的几组寄存器布置的位置在hdmi正下方中间位置,这样时钟树从右边绕到左边再进来无形中增加了时钟树的长度,并且这几组寄存器的输出作为hdmi部分数据端的输入,使得这几组寄存器到hdmi的建立时间出现违例。

根据本实施例的方法,在长时钟树前,挑选一个时钟缓冲器,插入到时钟树源端,并将插入的时钟缓冲器布置在hdmi可关断区域里,如图3所示,这样寄存器的时钟树不会从左边一直长到右边,而是直接从上往下长,这样大大缩短了这组寄存器的时钟树,从而解决了这组寄存器时钟树过长导致的建立时间违例的问题。

步骤12后,还可以包括:

对当前长完时钟树网表进行时序分析,所述目标寄存器组中如果还存在个别建立时间违例的目标寄存器,则返回到长时钟树之前的阶段,在所述目标寄存器的时钟端插入时钟缓冲器,插入时钟缓冲器的个数根据所述目标寄存器的建立时间违例的大小确定,然后重新开始长时钟树。在重新开始长时钟树后,移除在所述目标寄存器的时钟端插入的时钟缓冲器

在源时钟接口下插入一个时钟缓冲器后,有时还会出现部分寄存器没有解决掉建立时间违例的问题,这种情况下,可以通过虚拟插入时钟缓冲器的方法来解决,例如,在长时钟树之前在这些还存在建立时间违例的寄存器的clk端插入时钟缓冲器,等长完时钟树后再移除这些寄存器clk端上虚拟的时钟缓冲器,如图4所示,这样也缩短了这组寄存器的时钟树,从而把这组相关寄存器的建立时间违例问题都解决掉。

比如一组寄存器组中有10个寄存器,摆放的位置离时钟源有差异,在长时钟树的时候根据预定的算法对每个寄存器插入的时钟缓冲器个数会有所不同,而时钟树的长短是建立时间违例的一个主要因素,在其他因素不变情况下,如果该寄存器的时钟树长长了,就有可能出现建立时间违例。而虚拟插入时钟缓冲器后,在计算这10个寄存器要插入的时钟缓冲器个数的时会把这些虚拟的时钟缓冲器考虑进去。

假设根据预定的算法算出到寄存器a需要插入12个时钟缓冲器,由于时钟树过长,寄存器a出现建立时间违例,根据建立时间违例的大小在寄存器a的时钟端处虚拟插入2个时钟缓冲器,这样在重新长时钟树时,对于寄存器a除了虚拟插入的2个时钟缓冲器外,还需要插入10个时钟缓冲器,时钟树长完后移除虚拟插入的2个时钟缓冲器,这样寄存器a的时钟树为10个时钟缓冲器,时钟树长度明显变短,从而解决建立时间违例问题。

虚拟插入时钟缓冲器可以有以下两种方法:

1、可以在长时钟树之前人为的在指定的寄存器的时钟端插入时钟缓冲器,等时钟树长完后再移除人为插入的时钟缓冲器;

2、在长时钟树之前,用命令在出现建立时间违例的寄存器的时钟端设置部分延迟,假设一个时钟缓冲器的延迟是50ps,设置在长时钟树前该寄存器时钟端已经有200ps延迟,就相当于虚拟插入4个时钟缓冲器。

本发明实施例通过在长时钟树之前,在源时钟点处直接插入一个时钟缓冲器来引导长时钟树的方向,防止可关断区域和不可关断区域之间时钟树绕长线的问题,让关键路径的一组寄存器的时钟树尽量长短些。

如果最终发现这组寄存器中的个别寄存器时钟树在没有绕线的情况下还是存在些建立时间违例,还可以通过虚拟插入时钟缓冲器使部分寄存器的时钟树长的更短些,从而解决时钟树过长而数据路径没有余量导致的建立时间违例问题。避免了修改代码的迭代时间,缩小了芯片开发的周期。

图5为本发明实施例的一种构建用于集成电路设计的时钟树的装置的示意图,如图5所示,本实施例的装置可以包括:

分析模块,用于通过对长完时钟树网表里的寄存器进行时序分析,确定出该网表中出现建立时间违例的目标寄存器组;

生长模块,用于在源时钟接口下插入一个用于引导时钟树生长方向的时钟缓冲器,所述时钟缓冲器摆放位置为靠近所述目标寄存器组的区域。

在一实施例中,所述生长模块,插入的所述时钟缓冲器距所述源时钟接口的距离小于所述时钟树自然生长时需增加时钟缓冲器的默认距离。

在一实施例中,所述分析模块,还用于在所述生长模块在源时钟接口上插入一个用于引导时钟树生成方向的时钟缓冲器后,对当前长完时钟树网表进行时序分析,确定所述目标寄存器组中是否还存在建立时间违例的目标寄存器;

所述生长模块,在所述分析模块确定还存在建立时间违例的目标寄存器的情况下,返回到长时钟树之前的阶段,在所述目标寄存器附近插入时钟缓冲器,插入的个数根据所述目标寄存器的建立时间违例的大小确定,然后重新开始长时钟树。

在一实施例中,所述生长模块,所述重新开始长时钟树后还用于:移除在所述目标寄存器的时钟端插入的时钟缓冲器。

在一实施例中,所述源时钟位于不可关断区域,所述经过布局的网表里的寄存器位于可关断区域,插入的所述时钟缓冲器位于可关断区域。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1