一种用于可编程器件的降低时钟偏移的方法与流程

文档序号:15081525发布日期:2018-08-04 10:36阅读:330来源:国知局

本发明属于集成电路领域,尤其是涉及一种用于可编程器件的降低时钟偏移(SKEW)的方法。



背景技术:

可编程逻辑器件等芯片中,由于其逻辑资源的组织和布局有特定的规划,不像一般ASIC等器件,其时钟可以在时钟流程的CTS阶段进行时钟综合,以形成多层次、多分枝的时钟树。而可编程逻辑器件为了逻辑资源的可编程性,其逻辑资源的层次、分块、布局预先都已规划好,所以,时钟资源也跟着一起预先规划好,包括时钟架构的层次、时钟资源(PLL、时钟缓冲器、MUX等)的分布和走线。

时钟树的结构设计包括以下几个方面:时钟网络的设计(H树、二叉树、鱼骨型等选择)、时钟树的层数、每层的分枝数和每个分枝的驱动器种类。时钟树的设计将影响芯片的时钟偏移(SKEW)、延迟和时钟不确定性。时钟树的设计目标首先是减小时钟树的偏移、不确定性,其次还要考虑到时钟树延迟、功耗和时钟树所需要的芯片面积。在设计中往往需要通过时钟树层次、分枝数、时钟驱动器的设计来折中这些指标。

目前的可编程器件的时钟树结构是对时钟进行分层设计,采用鱼骨型走线来实现时钟结构。该结构具有结构简单、层次明显、与可编程资源的契合度好等优点,但设计的时钟树具有较大的时钟偏移。

而一般的ASIC的时钟树综合技术虽然能够减小时钟偏移,但不能应用于可编程逻辑器件的时钟树设计,因为其没有提前规划好时钟层次、分块、布局、走线,不能和其它可编程逻辑单元整合在一起,不易于根据用户设计对时钟进行布局布线和时钟资源进行可编程设计。



技术实现要素:

本发明所解决的技术问题在于提供一种用于可编程器件的降低时钟偏移(SKEW)的方法,将时钟分为两个层次,每个层次采用单向的鱼骨型时钟走线,通过具有不同单元延迟的时钟缓冲器补偿时钟偏移,从而降低时钟偏移以实现芯片中各时钟负载处具有较小的时钟偏移。

实现本发明目的的技术解决方案为:

一种用于可编程器件的降低时钟偏移的方法,将芯片时钟分为第一时钟层次和若干个第二时钟层次,第一时钟层次和第二时钟层次均采用单向鱼骨型时钟走线,其中,第一时钟层次为垂直时钟走线,第二时钟层次均为水平时钟走线。第一时钟层次与时钟源相连,第一时钟层次通过多路选择器MUX或时钟缓冲器与第二时钟层次相连,第二时钟层次的时钟通过时钟缓冲器与若干个时钟负载相连,近时钟源端的时钟缓冲器的单元延迟比远时钟源端的时钟缓冲器的单元延迟大,时钟缓冲器之间的单元延迟差等于对应时钟之间的走线延迟。

进一步的,本发明的用于可编程器件的降低时钟偏移的方法,时钟源和第一时钟层次之间设置锁相环。

进一步的,本发明的用于可编程器件的降低时钟偏移的方法,时钟缓冲器中设置时钟控制使能。

进一步的,本发明的用于可编程器件的降低时钟偏移的方法,时钟缓冲器为可编程控制的时钟缓冲器。

进一步的,本发明的用于可编程器件的降低时钟偏移的方法,时钟负载为寄存器或锁存器或存储器。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

1、本发明的方法能够与其他可编程逻辑单元整合在一起使用;

2、本发明的方法能够降低时钟偏移、延迟和时钟功耗;

3、本发明的方法能够根据用户设计对时钟的布局布线和时钟资源进行编程。

附图说明

图1是本发明的时钟架构层次图;

图2是本发明的芯片时钟架构的布局布线图;

图3是本发明的设置有锁相环的时钟架构层次图;

图4是本发明的设置有时钟控制使能的时钟架构层次图;

图5是本发明的可编程控制的时钟缓冲器的时钟架构层次图。

附图标记说明:X1_0、X1_1、X1_2、X1_3、X2_0、X2_1、X2_2为具有不同延迟的时钟缓冲器。

具体实施方式

下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

图1为本发明的时钟架构层次图。图2是其对应的时钟架构布局布线图。如图1所示,X_Reg0_0、X_Reg0_1、X_Reg0_2、X_Reg1_0、X_Reg1_1、X_Reg1_2….X_Reg3_2是芯片上的时钟负载,如寄存器、锁存器、Memory等。由于其分布广、遍布整个芯片,若简单地将CLK1时钟连到各时钟负载,由于时钟走过的路径距离差别大、时钟负载重,所以造成时钟偏移大。采用本发明的时钟架构,可以降低时钟偏移。

首先将时钟分成多个层次,如图2所示,分成两个层次。第一个层次为时钟垂直走线,第二个层次为时钟水平走线。由于每个层次的时钟走线是单向鱼骨型走线,所以垂直线的近时钟源端和远时钟源端的时钟延迟差别大。为了补偿这种差异,近处采用单元延迟大的时钟缓冲器,如X1_0,远处采用单元延迟小的时钟缓冲器,如X1_3,X1_0和X1_3缓冲器的单元延迟差可等于CLK1_0与CLK1_3之间的走线延迟。这样,第一层次时钟通过补偿,时钟偏移SKEW得到降低,故CLK2A、CLK2B、CLK2C、CLK2D的时钟可以认为是同相位。CLK2A时钟为水平时钟走线,可以按照第一个层次的时钟的走线和SKEW补偿方法,得到相同时钟相位的CLK3A_0、CLK3A_1、CLK3A_2,同理,对CLK2B、CLK2C、CLK2D也如此操作,从而到整个芯片的时钟负载的时钟相位同相,理想时钟偏移为零。

通过上述在时钟树不同位置插入不同延迟时钟缓冲器的方法以保证芯片上的各个时钟叶节点的时钟偏移最小(目标是零),但这种做法会导致从时钟输入到时钟叶节点的延迟过大(即较大的时钟相位差),为了消除这种影响,达到时钟叶节点的相位和输入时钟同相的目的,可以在输入时钟源和时钟树之间插入锁相环(PLL),如图3所示,这样,时钟树叶节点就能和输入时钟之间保证同相位了。

由于时钟树及其节点上传输的是高频信号,且负载又大,故其时钟功耗很大,为了降低整个时钟树的功耗,一种方法是采用门控时钟。如图4所示,在各级分支的时钟缓冲器中添加时钟控制使能,在本组时钟域中逻辑不工作或无用户逻辑(针对FPGA)时,通过静态或动态设置相应时钟缓冲器使能无效,关闭本组时钟工作,从而降低时钟的功耗。

一种更灵活的调节时钟树时钟偏移的方法如图5所示。其中的时钟缓冲器是可编程控制的时钟缓冲器,随着时钟负载、芯片温度分布等因素的变化,时钟各分支的时钟偏移会发生波动,通过电路的静态或动态的参数设置,以跟踪时钟树SKEW的变化,从而保持时钟偏移尽可能低。并且,在某些特殊情况下,当随着逻辑的复杂,数据处理时间变长,导致“建立”时间不够,或时钟和数据走线的差异而导致“保持”时间不够,优化逻辑算法或改变走线可能困难或不现实时,可以通过借用时钟偏移的方法解决问题,而采用编程控制,能提供一种解决该类问题的方法。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,这些改进应视为本发明的保护范围。

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