《评估时钟偏移的方法和装置.pdf》由会员分享,可在线阅读,更多相关《评估时钟偏移的方法和装置.pdf(19页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102955869 A(43)申请公布日 2013.03.06CN102955869A*CN102955869A*(21)申请号 201110254111.1(22)申请日 2011.08.30G06F 17/50(2006.01)(71)申请人国际商业机器公司地址美国纽约(72)发明人李恭琼 戴红卫 谈珺 牛佳(74)专利代理机构北京市中咨律师事务所 11247代理人周良玉 于静(54) 发明名称评估时钟偏移的方法和装置(57) 摘要提供了用于评估时钟偏移的方法和装置,所述方法包括:获取电路中各个时钟树对应的基本时钟偏移;判断两个单元是否位于同一时钟域中;在其位于不。
2、同时钟域的情况下,将单元之间的时钟偏移评估为,两个单元分别对应的时钟树的基本时钟偏移中较大的一个;在两个单元位于同一时钟域的情况下,进一步判断其是否位于同一电路层级逻辑块中;在其位于不同层级逻辑块的情况下,将单元之间的时钟偏移评估为,两个单元所在的时钟树的基本时钟偏移加上由不同层级逻辑块引起的时钟偏移。所述装置与方法对应。利用上述方法和装置,能够更加准确地评估电路中的时钟偏移,从而提高电路设计的效率。(51)Int.Cl.权利要求书2页 说明书10页 附图6页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书 2 页 说明书 10 页 附图 6 页1/2页21.一种用于评估时钟。
3、偏移的方法,包括:获取电路中各个时钟树对应的基本时钟偏移;判断电路中的第一单元和第二单元是否位于同一时钟域中;响应于第一单元和第二单元位于不同时钟域,将第一单元和第二单元之间的时钟偏移评估为,第一单元和第二单元分别对应的时钟树的基本时钟偏移中较大的一个;响应于第一单元和第二单元位于同一时钟域,进一步判断第一单元和第二单元是否位于同一电路层级逻辑块中;响应于第一单元和第二单元位于不同层级逻辑块,将第一单元和第二单元之间的时钟偏移评估为,第一单元和第二单元所在的时钟树的基本时钟偏移加上由不同层级逻辑块引起的时钟偏移。2.根据权利要求1的方法,其中所述基本时钟偏移与时钟树中包含的时序逻辑单元的物理布。
4、局和该时钟树的路径深度相关。3.根据权利要求1的方法,其中判断电路中的第一单元和第二单元是否位于同一时钟域中以及判断第一单元和第二单元是否位于同一电路层级中均通过查阅该电路对应的网表来执行判断。4.根据权利要求1的方法,其中第一单元位于电路顶层的逻辑块中,第二单元位于与顶层相隔n个层级的逻辑块中,所述由不同层级逻辑块引起的时钟偏移为,第二单元与电路顶层的逻辑块层级差异引起的时钟偏移。5.根据权利要求1的方法,其中第一单元和第二单元分别位于与顶层相隔m和n个层级的逻辑块中,所述由不同层级逻辑块引起的时钟偏移为,第一单元和第二单元各自与电路顶层的逻辑块层级差异引起的时钟偏移中的较大的一个。6.根据。
5、权利要求4或5的方法,其中通过公式计算各个单元与电路顶层的逻辑块层级差异引起的时钟偏移,其中CLi是从第i级逻辑块到第i+1级逻辑块的时钟路径所引起的时钟延迟。7.根据权利要求6的方法,其中CLi通过以下中的至少一项来评估:从第i级逻辑块到(i+1)级逻辑块的路径长度;从第i级逻辑块到第(i+1)级逻辑块的路径中的负载;时钟路径通过各级逻辑块的时钟端口引起的时钟延迟。8.根据权利要求1的方法,还包括,对评估的时钟偏移引入OCV因子进行修正。9.一种用于评估时钟偏移的装置,包括:基本偏移获取模块,配置为获取电路中各个时钟树对应的基本时钟偏移;时钟域判断模块,配置为判断电路中的第一单元和第二单元是。
6、否位于同一时钟域中;第一评估模块,配置为,响应于第一单元和第二单元位于不同时钟域,将第一单元和第二单元之间的时钟偏移评估为,第一单元和第二单元分别对应的时钟树的基本时钟偏移中较大的一个;层级判断模块,配置为,响应于第一单元和第二单元位于同一时钟域,判断第一单元和第二单元是否位于同一电路层级逻辑块中;第二评估模块,配置为,响应于第一单元和第二单元位于不同层级逻辑块,将第一单元和第二单元之间的时钟偏移评估为,第一单元和第二单元所在的时钟树的基本时钟偏移加权 利 要 求 书CN 102955869 A2/2页3上由不同层级逻辑块引起的时钟偏移。10.根据权利要求9的装置,其中所述基本时钟偏移与时钟树。
7、中包含的时序逻辑单元的物理布局和该时钟树的路径深度相关。11.根据权利要求9的装置,其中时钟域判断模块和层级判断模块通过查阅该电路对应的网表来执行判断。12.根据权利要求9的装置,其中第一单元位于电路顶层的逻辑块中,第二单元位于与顶层相隔n个层级的逻辑块中,所述由不同层级逻辑块引起的时钟偏移为,第二单元与电路顶层的逻辑块层级差异引起的时钟偏移。13.根据权利要求9的方法,其中第一单元和第二单元分别位于与顶层相隔m和n个层级的逻辑块中,所述由不同层级逻辑块引起的时钟偏移为,第一单元和第二单元各自与电路顶层的逻辑块层级差异引起的时钟偏移中的较大的一个。14.根据权利要求12或13的装置,其中通过公。
8、式计算各个单元与电路顶层的逻辑块层级差异引起的时钟偏移,其中CLi是从第i级逻辑块到第i+1级逻辑块的时钟路径所引起的时钟延迟。15.根据权利要求14的方法,其中CLi通过以下中的至少一项来评估:从第i级逻辑块到(i+1)级逻辑块的路径长度;从第i级逻辑块到第(i+1)级逻辑块的路径中的负载;时钟路径通过各级逻辑块的时钟端口引起的时钟延迟。16.根据权利要求9的装置,所述第一评估模块、第二评估模块还配置为,对评估的时钟偏移引入OCV因子进行修正。权 利 要 求 书CN 102955869 A1/10页4评估时钟偏移的方法和装置技术领域0001 本发明涉及ASIC设计领域,更具体而言,涉及在AS。
9、IC设计过程中评估时钟偏移的方法和装置。背景技术0002 在典型的ASIC(Application-Specific Integrated Circuit,专用集成电路)设计过程中,设计人员首先根据芯片电路所需的功能将电路划分为多个功能块,并用各种逻辑单元来实现各个功能块。这样的逻辑单元可以是各种连接点、逻辑门、寄存器等等。一般地,各种逻辑单元之间的连接关系记录在网表文件中。根据网表的记录,设计人员可以对各个逻辑单元进行初步的物理布局。0003 从时序角度来说,网表中记录的逻辑单元包括组合逻辑单元和时序逻辑单元,其中组合逻辑单元,例如各种逻辑门,其操作状态仅与当时的输入变量的状态有关,而与历史。
10、状态和时序无关;而时序逻辑单元,例如寄存器、锁存器,需要依赖于时钟周期来维持和记录之前的状态。相应地,时序逻辑单元具有时钟针脚,来接收时钟输入。为了使得各个时序逻辑单元获得其需要的时钟输入,需要为时序逻辑单元设计时钟树,以示出从原始时钟源到目标时序逻辑单元的路径。一般地,时钟树包含作为时钟倍频器的锁相环PLL和用于驱动时序逻辑单元的缓冲器。0004 接着,将设计的时钟树插入到电路设计中,进一步调整物理布局。然后,对电路进行时钟协调,在时序收敛(timing clean)的基础上对电路进行布局布线,完成设计。0005 在以上设计并插入时钟树的过程中,时钟偏移(clock skew)是要考虑的重要。
11、因素。如上所述,整个电路的所有时序逻辑单元都需要提供有时钟信号,然而从时钟源到各个时序逻辑单元所经历的路径并不相同,这会导致时钟信号到达不同时序逻辑单元的时间不同。这样的时间差异也称为时钟偏移。引起时钟偏移的因素有多种,包括不同单元之间路径长度的差异、负载个数和大小的差异,以及OCV(on-chip variation,片上工艺差异)引起的偏移,等等。其中OCV差异包含制造工艺引起的差异、操作电压差异、环境温度差异等等。0006 理想地,在设计时钟树的过程中,考虑与时钟相关的各个因素而评估时钟偏移,从而获得偏移最小的时钟树。在插入时钟树时,基于评估的时钟偏移,利用布局辅助工具(例如PDS),对。
12、布局进行调整,来进一步减小时钟偏移,并最终使得时序收敛。因此,对时钟偏移的准确估计非常重要。0007 在现有技术中,通常由设计人员根据时钟树中的时序逻辑单元的数目和位置来评估时钟偏移;或者,也可以借助时钟评估工具来进行时钟偏移的评估。评估工具主要依据时钟树中缓冲器的类型、缓冲器的扇出、芯片大小等因素来评估时钟偏移。但是,以上的评估方式仍存在较大不足。首先,由于所考虑的因素不够全面,使得评估结果不够精确。此外,以上方式通常给出一个全局的偏移值作为一个时钟树的时钟偏移,该全局偏移值通常是时钟路径差异最大的两个单元之间的信号到达时间差。而这样的全局偏移值显然无法准确描说 明 书CN 10295586。
13、9 A2/10页5述任意两个单元之间的时钟差。出于以上原因,对电路中各个时序逻辑单元的时钟偏移的估计往往不够准确,出现估计不足或过度估计两种情况。对时钟偏移的估计不足使得在时钟树插入之后仍存在较大的时序缺陷有待修补;对时钟偏移的过度估计则会使得布局辅助工具为了减小时钟偏移而进行过度的优化工作,增加不必要的消耗。因此,希望提供一种优化的方式,能够更加准确有效地评估时钟偏移,从而提高ASIC设计的效率。发明内容0008 鉴于以上的问题,提出本发明,旨在提供一种用于评估时钟偏移的方法和装置,以克服现有技术中的至少一项不足,更准确地评估电路中时序逻辑单元之间的时钟偏移。0009 根据本发明第一方面,提。
14、供了一种用于评估时钟偏移的方法,包括:获取电路中各个时钟树对应的基本时钟偏移;判断电路中的第一单元和第二单元是否位于同一时钟域中;响应于第一单元和第二单元位于不同时钟域,将第一单元和第二单元之间的时钟偏移评估为,第一单元和第二单元分别对应的时钟树的基本时钟偏移中较大的一个;响应于第一单元和第二单元位于同一时钟域,进一步判断第一单元和第二单元是否位于同一电路层级逻辑块中;响应于第一单元和第二单元位于不同层级逻辑块,将第一单元和第二单元之间的时钟偏移评估为,第一单元和第二单元所在的时钟树的基本时钟偏移加上由不同层级逻辑块引起的时钟偏移。0010 根据本发明第二方面,提供了一种用于评估时钟偏移的装置。
15、,包括:基本偏移获取模块,配置为获取电路中各个时钟树对应的基本时钟偏移;时钟域判断模块,配置为判断电路中的第一单元和第二单元是否位于同一时钟域中;第一评估模块,配置为,响应于第一单元和第二单元位于不同时钟域,将第一单元和第二单元之间的时钟偏移评估为,第一单元和第二单元分别对应的时钟树的基本时钟偏移中较大的一个;层级判断模块,配置为,响应于第一单元和第二单元位于同一时钟域,判断第一单元和第二单元是否位于同一电路层级逻辑块中;第二评估模块,配置为,响应于第一单元和第二单元位于不同层级逻辑块,将第一单元和第二单元之间的时钟偏移评估为,第一单元和第二单元所在的时钟树的基本时钟偏移加上由不同层级逻辑块引。
16、起的时钟偏移。0011 利用以上的方法和装置,能够对电路中的时序逻辑单元之间的时钟偏移进行更加准确地评估,从而有利于电路设计效率的提高。附图说明0012 图1示例出根据本发明一个实施例的评估时钟偏移的流程图;0013 图2A示出一个电路的时钟连接的例子;0014 图2B示出电路中时钟连接的另一例子;0015 图3A示出一个电路时钟路径的例子;0016 图3B示出对图3A的电路时钟路径进行改进的例子;0017 图4A示出另一个电路时钟路径的例子;0018 图4B示出对图4A的电路时钟路径进行改进的例子;0019 图5示出根据本发明一个实施例的用于评估时钟偏移的装置的示意框图;以及0020 图6示。
17、出了适于用来实现本发明实施方式的示例性计算系统的框图。说 明 书CN 102955869 A3/10页6具体实施方式0021 下面对本发明的具体实施方式进行详细描述。所属技术领域的技术人员知道,本发明的多个方面可以体现为系统、方法或计算机程序产品。因此,本发明的多个方面可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明的多个方面还可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序码。0022 可以使用一个或多个计算机可读。
18、的介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或任何以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任何合适的组合。在本文件的语境中,计算机可读存储介质可以是任何包含或存储程序的有形的介质,该程序被指令执行系统、装置或者器。
19、件使用或者与其结合使用。0023 计算机可读的信号介质可包括在基带中或者作为载波一部分传播的、其中体现计算机可读的程序码的传播的数据信号。这种传播的信号可以采用多种形式,包括但不限于电磁信号、光信号或任何以上合适的组合。计算机可读的信号介质可以是并非为计算机可读存储介质、但是能发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序的任何计算机可读介质。0024 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于 无线、电线、光缆、RF等等,或者任何合适的上述组合。0025 用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,。
20、所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C+之类,还包括常规的过程式程序设计语言-诸如“C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。0026 以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描。
21、述本发明的多个方面。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。0027 也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置说 明 书CN 102955869 A4/10页7以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装。
22、置(instruction means)的制造品。0028 也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。0029 下面参照附图,结合具体实施例对本发明进行描述。这样的描述仅仅出于说明目的,而不意图对本发明的范围进行限制。0030 在本发明的实施例中,在对电路中的各个元件、单元进行初步物理布局,并针对其中的时序逻辑单元设计生成满足时序要求的时钟树之后,基于时钟树的信息和初步物理布局的信息进行时钟偏移。
23、的评估。在评估时钟偏移的过程中,为了获得更加准确的评估结果,在现有技术的评估方式的基础上,本发明实施例的方法进一步考虑电路中的单元所处的时钟域和层级,基于时钟域和层级的信息来进一步修正现有技术的评估结果。由此,本发明实施例的方法能够获得更加准确的时钟偏移评估结果。在此基础上,可以将这样的评估结果作为时序限制输入给进行物理布局的工具,使其能够更加准确、有效地完成物理布局和/或优化物理布局。或者,这样的评估结果也可以作为进一步改善时钟树设计的参考。0031 图1示例出根据本发明一个实施例的评估时钟偏移的流程图。具体地,该流程可以评估得到电路中第一单元和第二单元之间的时钟偏移。可以理解,上述及以下所。
24、述的第一单元和第二单元均指时序逻辑单元。如图所示,在一个实施例中,评估时钟偏移的过程包括以下步骤。首先,在步骤11中,获取电路中各个时钟树对应的基本时钟偏移;然后,在步骤12中,判断电路中的第一单元和第二单元是否处于同一时钟域中。如果二者处于不同时钟域,则该流程进行到步骤13;如果二者位于同一时钟域,则流程进行到步骤14。在步骤13中,将第一单元和第二单元之间的时钟偏移评估为,第一单元和第二单元所分别对应的时钟树的基本时钟偏移中较大的一个。另一方面,在步骤14中,即响应于两个单元位于同一时钟域,进一步判断第一单元和第二单元是否位于同一电路层级逻辑块中。0032 响应于第一单元和第二单元位于不同。
25、电路层级逻辑块的情况,该流程进行到步骤15,在其中将第一单元和第二单元之间的时钟偏移评估为,上述同一时钟树的基本时钟偏移加上不同层级逻辑块引起的时钟偏移。在第一单元和第二单元位于同一层级逻辑块的情况下,执行步骤16,将第一单元和第二单元之间的时钟偏移评估为,上述基本时钟偏移乘以OCV修正因子。0033 下面描述上述流程的各个具体步骤。0034 首先,在步骤11中获取电路中各个时钟树的基本时钟偏移。该基本时钟偏移可采用现有技术中的评估和计算方法来获得。在一个实施例中,一个时钟树的基本时钟偏移被估计为:0035 TS+D (1)0036 其中和是权重因子,这些权重因子可基于工艺参数计算获得。在具体。
26、例子中,权重因子可从之前进行的芯片电路设计的统计平均值中确定。S为该时钟树所涉及的各个时序逻辑单元所排布的物理区域的大小或面积。该区域面积可基于对电路中各个单元进说 明 书CN 102955869 A5/10页8行的初步物理布局而获得。D是该时钟树的路径深度。具体地,路径深度D可通过以下公式计算:0037 Dlog2(N/n) (2)0038 其中,N是时钟树中涉及的时序逻辑单元的数目,n是最后一级时钟缓冲器的扇出。0039 由此,通过以上公式(1)和(2),可以估计出一个时钟树的基本时钟偏移。0040 以上是现有技术中估计时钟树的时钟偏移的一种方式。本领域技术人员可以理解,现有技术中存在多种。
27、类似的评估时钟树的时钟偏移的方法,例如用替代方式估计路径深度D,用更具体的方式确定面积S,将物理面积S替换为单元之间的物理距离等等。作为现有技术的一部分,对于这样的评估方式在此不一一进行列举。此外,本领域技术人员还可以在这些已知的评估方式的基础上进行修改从而获得更多评估方式。通过以上各种方式评估得到的时钟偏移均作为本发明实施例中所使用的基本时钟偏移。0041 基于以上获得的基本时钟偏移,本发明的实施例进一步考虑电路中各个单元之间的跨时钟域和跨层级的情况,以获得更加准确的时钟偏移评估。0042 具体地,在步骤12,判断有待评估的第一单元和第二单元是否位于同一时钟域中,也就是,是否采用同一时钟生成。
28、逻辑产生的时钟信号。一般地,如果第一单元和第二单元采用不同时钟生成逻辑的时钟信号,那么这两个单元将会位于不同的时钟树中。因此,在一个实施例中,可以通过判断时钟树来确定不同单元是否在同一时钟域中。或者,在另一实施例中,通过对网表进行分析,判断第一和第二时序逻辑单元需要的时钟信号是否相同来进行时钟域的判断。在一个实施例中,也可以将以上方式进行组合来进行步骤12的判断。或者,也可以采用本领域技术人员能够想到的其他方式来进行上述判断。可以理解,对第一单元和第二单元时钟域的判断是以第一单元和第二单元之间有对话和交互为前提条件的。这是因为,如果两个单元之间没有任何交互,那么它们的时钟可以完全互相独立,即使。
29、时钟之间存在偏差也不影响电路的设计。因此,只需要对存在交互的单元进行判断。0043 作为步骤12的判断结果,如果第一单元和第二单元并不处于同一时钟域,那么方法流程执行步骤13,在其中对第一单元和第二单元之间的时钟偏移进行评估。具体地,如果第一单元A和第二单元B处于不同时钟域,那么两者会位于不同的时钟树,例如时钟树A和时钟树B。可以理解,在步骤11中,已经对各个时钟树的基本时钟偏移进行了估计,因此,可以得到时钟树A和B各自的基本时钟偏移TA和TB。基于此,在步骤13中,将第一单元A和第二单元B之间的时钟偏移估计为:0044 T(A,B)max(TA,TB)(3)0045 也就是说,在两个互相交互。
30、的单元分别属于不同时钟树的情况下,两个单元的时钟偏移被估计为各个单元所对应的时钟树的基本时钟偏移中较大的一个。0046 在一个实施例中,在上述估计的时钟偏移的基础上添加OCV因子f进行进一步修正,即:0047 T(A,B)max(TA,TB)fOCV(4)0048 其中因子fOCV是与电路芯片制造技术相关的常数值。该常数值可通过对之前设计制造的同类芯片参数的测量和统计来获得。例如,在一个实施例中,对于某种工艺规格的芯片(诸如,45nm级的Cu-45HP),因子fOCV可估计为(较晚延迟-较早延迟)/较晚延迟的说 明 书CN 102955869 A6/10页9平均值。0049 由此,对于处于不同。
31、时钟域的两个时序逻辑单元,可以通过公式(3)或(4)评估单元之间的时钟偏移。0050 作为步骤12的判断结果的另一分支,如果第一单元和第二单元处于同一时钟域,那么方法流程执行步骤14,在其中对单元所处的电路层级进行判断。0051 可以理解,随着集成电路功能的复杂化,许多集成电路对实现各种功能的逻辑块进行分层级地连接和管理。在一些情况下,上述的逻辑块又称为RLM(random logic macro)。相应地,在网表文件中会记录各个单元所属于的RLM及其所处的电路层级。因此,通过扫描和查阅网表信息,就可以判断出第一单元和第二单元是否位于同一电路层级逻辑块(hierarchical logic b。
32、lock)中,即,执行步骤14的判断。0052 作为步骤14判断的结果,如果第一单元和第二单元处于不同的电路层级逻辑块,那么方法流程进行到步骤15,在其中将第一单元和第二单元之间的时钟偏移评估为基本时钟偏移加上由不同层级逻辑块引起的时钟偏移。下面结合两个例子描述上述评估。0053 图2A示出一个电路的时钟连接的例子。在图2A的例子中,第一单元A位于电路的顶层,而第二单元B位于某一级RLM中,因此第一单元和第二单元处于不同电路层级逻辑块。具体地,RLM B是比顶层低一层级的逻辑块,而该RLM B进一步包含了层级依次更低的RLM 2B,RLM 3B和RLM 4B。有待评估的第二单元B位于RLM 4。
33、B中,与位于顶层的第一单元A相隔4个层级。对于第一单元A来说,来自时钟源的时钟信号通过各个缓冲器的驱动,直接连接到第一单元A的时钟输入端。而对于第二单元B,同样的时钟信号要首先通过时钟端口进入RLM B,然后依次进入各个RLM 2B-4B,最后到达第二单元B。因此,这些额外的时钟路径会带来附加的时钟延迟。0054 对于图2A所示的单元A和B及其时钟连接,根据图1中步骤15,在一个实施例中,将其时钟偏移评估为:0055 T(A,B)T+CLK(B) (5)0056 其中T为步骤11中计算得到的单元A和B共同所在的时钟树的基本时钟偏移。通常地,该基本时钟偏移对应于针对分层电路的顶层逻辑所估计的时钟。
34、偏移。CLK(B)是单元B与电路顶层的逻辑块层级差异引起的时钟偏移。具体地,在一个例子中,CLK(B)可通过自上而下地对RLMB中的附加时钟路径进行计算而获得,也就是:0057 CLK(B)CLB+CL2B+CL3B.(6)0058 其中,CLiB是从RLM iB到RLM(i+1)B的路径所引起的时钟延迟,如图2A所示。0059 更一般地,对于距离电路顶层相隔n个层级的逻辑块中的单元,该单元与电路顶层的逻辑块层级差异引起的时钟偏移可以表示为:0060 0061 其中CLi是从第i级逻辑块到第i+1级逻辑块的路径所引起的时钟延迟。0062 在一个例子中,通过评估从第i级逻辑块到(i+1)级逻辑块。
35、的路径长度计算该段的CLi。在一个例子中,进一步考虑从第i级逻辑块到第(i+1)级逻辑块的路径中的负载(例如缓冲器)的信息来计算该段CLi。在另一个例子中,进一步考虑时钟路径通过各级RLM时钟端口引起的时钟偏移,由此修正CLi。可以理解,本领域技术人员还可以根据精度需要,采用其他方式计算从第i级逻辑块到第(i+1)级逻辑块的时钟路径引起的CLi,由此计算得说 明 书CN 102955869 A7/10页10到CLK。0063 针对上述第二单元B,基于以上计算,可以得到CLK(B),给出单元B的时钟信号所经过的与电路顶层相比不同的那部分路径。由此,通过公式(5)和(6),可以将逻辑块层级差异所引。
36、起的时钟偏差考虑在内,改善对时钟偏差的评估。0064 在一个例子中,还可以引入OCV因子进一步修正上述结果,即:0065 T(A,B)T+CLK(B)fOCV,0066 其中fOCV的定义与公式(4)相同。0067 图2B示出电路中时钟连接的另一例子。在图2B的例子中,第一单元A位于RLM A所包含的RLM 2A中,第二单元B与图2A相同,位于与电路顶层相差4个层级的RLM 4B中。因此,第一单元A和第二单元B都没有处于电路顶层,但是这两个单元处于彼此不同的电路层级逻辑块。来自同一时钟源的时钟信号分别通过各个时钟端口依次进入各个层级的RLM,然后连接到单元A和单元B的时钟输入端。对于图2B所示。
37、的单元A和B及其时钟连接,根据图1中步骤15,在一个实施例中,将其时钟偏移评估为:0068 T(A,B)T+maxCLK(A),CLK(B)(8)0069 其中T为单元A和B共同所在的时钟树的基本时钟偏移,CLK(A)和CLK(B)分别是单元A和B与电路顶层的逻辑块层级差异引起的时钟偏移。在一个例子中,可利用公式(7),通过自上而下地对附加时钟路径进行计算而获得CLK(A)和CLK(B),也就是:0070 CLK(A)CLA+CL2A+.0071 CLK(B)CLB+CL2B+CL3B.(9)0072 其中,CLiA和CLiB所对应的附加路径如图2B所示。0073 由于不同RLM之内不会存在共。
38、同的路径,因此,此处将CLK(A)和CLK(B)中较大的一个作为逻辑块层级差异引起的时钟偏差,由此改善对时钟偏差的评估。0074 在一个例子中,还可以引入OCV因子进一步修正上述结果,即:0075 T(A,B)T+maxCLK(A),CLK(B)fOCV0076 其中fOCV的定义与公式(4)相同。0077 以上结合两个典型例子描述了在第一单元和第二单元处于不同电路层级逻辑块的情况下,对单元之间时钟偏移的评估方法。通过以上具体描述可以看出,在评估时钟偏移时,根据以上实施例的方法在步骤15进一步考虑了由于逻辑块层级差异引起的时钟偏移。更具体而言,上述方法考虑了各个单元与顶层电路之间的逻辑块层级差。
39、异所对应的时钟路径差异,基于这样的时钟路径差异估计逻辑块层级差异引起的时钟偏移。0078 作为步骤14的判断结果的另一分支,如果判断结果为“是”,则图1的流程执行步骤16。换而言之,如果第一单元和第二单元处于同一时钟域并且处于同一电路层级逻辑块中,那么在步骤16中评估两个单元之间的时钟偏移。具体地,在这种情况下,第一单元和第二单元不存在因为时钟域差异和逻辑块层级差异引起的时钟偏移,因此,可以利用步骤11得到的基本时钟偏移来表征它们之间的时钟偏移。在一个实施例中,引入OCV因子修正步骤11中的结果,即:T(A,B)TfOCV,其中fOCV的定义与公式(4)相同。0079 由此,利用图1所示流程图的方法,通过进一步考虑时钟域和电路层级的影响,来改善对时钟偏移的评估。以下结合几个具体例子描述上述评估结果与现有技术评估结果的比对。说 明 书CN 102955869 A10。