用于多周期时钟门控的方法

文档序号:7540427阅读:320来源:国知局
专利名称:用于多周期时钟门控的方法
技术领域
本发明总体涉及电路设计,并具体涉及对于数据锁存器件的时 钟门控。
背景技术
复杂的硬件盘片通常包括数百万个晶体管。电路设计者通常利 用计算机辅助设计程序来辅助他们的设计过程。 一旦设计者已完成 电路的概念设计,则存在多种可以执行的优化。
例如,对于低功率设计,通常添加逻辑元件使其他元件,当不 需要它们时不进行操作,这通常是有用的。
现在参考图1A和图1B,它们示出了对于低功率操作可能发生 的改变。图1A示出第一电路10,其具有触发器12。如同所有触发 器,触发器12由时钟信号CLK控制。当时钟信号CLK变为高,则 触发器12输出由其输入I计算得来的值Q,该输入I可以是逻辑电 路14的函数,而该输入I又可以是多个输入(示出了 a、 b和c)的 函数。触发器12将执行计算,而不考虑输入I是否变化。当涉及确 定如何最小化其电路的功率消耗时,电路设计者可以检查触发器的 活动性并可以"门控"那些他所知道在给定的特定情形下将不会改 变值的触发器。为此,设计者可以添加线路以断开对该触发器的时 钟输入。
这种改变在图1B中示出。在现在标记为IO,的电路中,触发器 12如逻辑电路14 一样保留,但是触发器12的时钟信号已经改变。 该时钟信号,标记为GCLK,现在是仅当时钟信号CLK和使能信号 EN两者都激活时才激活的门控时钟信号。门控时钟信号GCLK由门 16产生。这种在单独的触发器上执行的时钟门控被称为"细粒度(fme
grained)"时钟门控。
用于时钟门控的另一方法被称为"粗粒度(coarse grained )"时 钟门控。在粗粒度时钟门控下,使用相同的时钟门控函数关断大量 触发器,以此提供功率使用量的显著降低。例如,作为单一单元操 作的电路部分,诸如浮点单元,可以被时钟门控。
对于时钟门控的其他候选并不总是如此容易确定。另外,确定 电路应当何时被门控的逻辑函数由逻辑门加以实现,诸如触发器。 如果该逻辑函数与待门控电路相比是复杂的(即,其比被关断的电 路具有更多的门),则该时钟门控极少节省,甚至不节省功率。
下文讨论自动时钟门控方法
1997欧洲设计与测试会议,L. Benini, G. De Micheli, E. Macii, M. Poncino, R. Scarsi, "Symbolic Synthesis of Clocking-Gating Logic for Power Optimization of Control-Oriented Synchronous Networks"; 1996年IFIP逻辑与结构合成国际研讨会会议文集,F. Theeuwen, E. Seelen 的"Power Reduction through Clock Gating by Symbolic Manipulation"。
1999年VLSI设计第十二次国际会议会议文集,N. Raghavan, V. Akella, S. Bakshi, "Automatic Insertion of Gated Clocks at Register Transfer Level";以及T. Lang, E. Musoll, J. Cortadella, "Individual Flip-Flops with Gated Clocks for Low Power Datapaths", IEEE Transactions on Circuits and Systems - II: Analog and Digital Signal Processing, Vol. 44, No. 6, 1997年6月。

发明内容
本发明的 一些方面提供了用于寻找多周期时钟门控机会的方 法,以及在随附的权利要求书中对其做出了定义,现在将参考这些 内容。
因此,根据本发明优选实施方式,提供了具有多周期时钟门控 器以及电路设计更新器的单元。多周期时钟门控器可以产生电路设
计的数据锁存器件的多周期门控组。电路设计更新器可以以选定的 多周期门控组来更新电路设计。
另外,根据本发明的优选实施方式,每个门控组可以与单一门 控函数相关联。对于每个门控组,可以以门控函数来门控门控组的 第0级数据锁存器件,以及可以以门控函数的第i级锁存的版本来门 控门控函数的第i级数据锁存器件。
另外,根据本发明的优选实施方式,数据锁存器件可以是触发 器或锁存器。
进一步,根据本发明的第一优选实施方式,多周期时钟门控器
包括指示符信号发生器,展开器(unfolder)以及门控函数确定器。 指示符信号发生器可以创建指示符信号用于标识其中输入电路设计 的数据锁存器件的值不发生改变的条件。展开器可以以指示符信号 多k次地展开电路,并且门控函数确定器可以从至少已展开的指示 符信号确定用于多个数据锁存器件的多个候选门控函数。
更进一步,根据本发明的第一优选实施方式,门控函数确定器 包括二进制决策图运算器用于建立一并"与"运算的已展开指示符 信号的二进制决策图(BDD )X,用于在值不变化处生成X的BDD Y, 对于每个时间戳k,去除其输入并非来自第k个周期的BDD Yk的变 量。
另外,根据本发明的第二优选实施方式,多周期时钟门控器包 括电路检查器、门控函数确定器以及组发生器。电路检查器可以寻 找电路中仅依赖输入周期的数据锁存器件的组G。门控函数确定器 可以确定组G中共享第j个门控函数Fj的数据锁存器件的组Hj,以 及组发生器可以对于每个组Hj,添加电路中从组Hj的现有数据锁存 器件接收输入的数据锁存器件。
进一步,根据本发明的第二优选实施方式,组发生器包括0级 定义器以及非0级定义器,对于每个初始组Hj, O级定义器用于将其 中的数据锁存器件定义为0级数据锁存器件;对于每个第i级,非0 级定义器用于,如果电路的某个数据锁存器件仅依赖于已经出现在
组Hj中的i级数据锁存器件,则将该数据锁存器件添加至组Hj中作 为i+l级数据锁存器件。
最后,根据本发明的优选实施方式,本发明并入由多周期时钟 门控器以及电路设计更新器实现的方法。


在说明书的结束部分具体指出并明确要求保护的内容被认为是 本发明的主题。然而,本发明,对于操作方法和机构两者,连同其 对象、特征以及有益效果,可以通过阅读附图参考下文的详细描述
而得到更好的理解,其中
图1A是具有触发器的电路的示意电路图1B是具有对触发器的时钟门控的图1A的电路的示意图2是降低功率的电路检查器的示意框图3是根据本发明的第一实施方式操作的时钟门控方法的示意 流程图4A、图4B以及图4C是有助于理解图3的方法步骤的示意电 路图5是有助于理解图3的方法步骤的二进制决策图的示意图; 图6A是具有32个重复的相同电路的元件的示意电路图; 图6B是图6A的电路的时钟门控版本的示意电路图;以及 图7是根据本发明第二实施方式操作的时钟门控方法的示意流 程图。
应该理解,出于示图简化性和清晰性的考虑,图中所示元件不 一定按比例绘出。例如,为了清晰,某些元件的尺寸相比于其他元 件可能被夸大。另外,在认为适当的场合,在图中重复使用附图标 记来指示对应或类似的元件。
具体实施例方式
在下文的详细描述中,描述了许多具体细节以便提供对于本发
明的完全理解。然而,本领域技术人员应该理解,本发明可以不具 备这些特定细节而得以实施。在其他的举例中,并未详细描述7>知 方法、过程和组件从而避免模糊本发明。
除了特别说明之外,应该理解,利用了诸如"过程"、"计算"、 "运算"、"确定,,等术语的讨论代指计算机、计算系统或类似电 子计算设备中用于对表现为计算系统的寄存器和/或存储器内的诸如 电子之类的物理量的数据进行操作和/或将其变换为类似地表现为计 算系统的存储器、寄存器或其他此类信息存储、传输或显示设备内 的物理量的数据的动作和/或过程。
设备。另外,本发明的实施方式并非参考任何特定编程语言而描述。 应该理解,可以使用各种编程语言来实现如本文所述的本发明的教导。
申请人已认识到存在这样的情形,其中能够以锁存的形式使用 对于特定触发器的时钟门控函数作为对于至少 一个其他触发器的时 钟门控函数。这可以称为"多周期"时钟门控因为其可以包括使用 相同、可能锁存的时钟门控函数的触发器的多个周期。
应该理解,以本发明的多周期门控组,电路的不同数据锁存器 件在不同时间打开/关断,而不是一并关断一整段设计。
应该理解多周期门控组还可以门控数据锁存器件的"数据依赖"
赖于输入值而且依赖于数据输入值时的状态。数据独立状态是那些 其中无论数据输入如何数据锁存器件的输出都相同的状态。例如,
对于简单输入函数,诸如(如果EN=1则f(A,B,C)否则为Q),当输 出Q的值不变时存在两种情况1)当EN=0; 2)当EN=1以及 f(A,B,C)=Q。第一种情况不依赖任何输入值A、 B或C,并因此是数 据独立的。第二种情况由于依赖输入值A、 B或C,其是数据依赖的。 现在参考图2,其示出了降低功率的、电路检查器18。检查器 18可以包括新颖的、多周期时钟门控器20以及电路更新器22。多
周期时钟门控器20可以检查输入电路设计R用于寻找可能的、多周 期、时钟门控机会并产生逻辑函数用于控制时钟门。电路更新器22 可以与诸如电路设计者的用户交互,用于确定用户希望实施哪些可 能的机会,并能够以选定的时钟门和与它们关联的逻辑来更新电路 设计R。结果可以是更新的、更低功率的设计R,。
多周期时钟门控器20可以产生时钟门控逻辑函数,该函数可以 用于多个周期,因此允许了用于时钟门控的更大函数(即具有更多 的门)和/或降低了开销。
可以通过将电路作为整体考虑来操作多周期时钟门控器20,而 不是基于其操作将电路划分为多个单元。现在参考图3,其示出了时 钟门控器20所执行的方法,以及参考图4A、图4B和图4C,其有 助于理解图3的方法的步骤。
初始地,时钟门控器20可以检查设计R用于识别(步骤24 )其 中的触发器、锁存器或其他数据锁存器件。其余的讨论将使用术语 "触发器",如图4中所示。然而,应该理解本发明对于所有类型 的数据锁存器件均可操作。
在步骤25,时钟门控器20可以确定哪个使能信号控制哪个触发 器,并可以据此对触发器分组。应理解,并非所有触发器都可以由 使能信号控制,并且并非所有使能信号都可以用于门控。某些使能 信号可以控制附近具有反馈回路的触发器。此种使能信号可以转换 为使用在2005年12月7日提交的序列号为No. 11/295936的、授予 本发明共同受让人的美国专利申请"Clock Gating Through Data Independent Logic"所描述方法的不同使能信号,该文献的公开内容 通过引用并入本文。
对于每个如此确定的(如循环23中所检查的)使能信号,时钟 门控器20可以继而临时增加逻辑(步骤26 ),该逻辑可以识别条件, 在该条件下电路中由当前使能信号使能的触发器、或未分配给任何 使能信号的触发器的值均不发生变化。例如,图4A示出待分析电路 30。电路30具有五个输入xl, x2, x3, x4和x5以及三个触发器FF-l,
FF-2和FF-3。电路30还具有组合逻辑32-l、 32-2和32-3,其中逻辑 32-1和32-3馈送触发器FF-1和FF-3,并且逻辑32-2将触发器FF-1 和FF-3的输出组合以馈送到触发器FF-2。
图4B示出了在增加了分别与触发器FF-1, FF-2和FF-3相关联 的临时逻辑34-l、 34-2和34-3之后的电路,此处标号为30,。在本 示例中,每个额外逻辑34-i (对于i=l, ..., N,其中N是电路30中 触发器的数目)可以是XOR门,其接收其所关联的触发器FF-i的输 入A和输出B。 XOR34-i的输出信号可以是指示符信号pi,并且当 其所关联的触发器FF-i的输入A和输出B不相同时其值为1,并且 当输入A和输出B相同时其值为0。因此,指示符信号pi可以指示 触发器FF-i何时改变值以及何时其未改变。时钟门控器20可以增 加额外逻辑34-i (即,图4B中举例中的XOR)到RTL逻辑描述。
回到图3,在步骤40,时钟门控器20可以K步骤地"展开"电 路30,,其中K是感兴趣逻辑的深度。例如,K可以定义为从芯片 输入到芯片输出、或从芯片的某分段输入到其输出的最长路径中触 发器的数目。在图4的示例中,K可以是2,由于只有两级触发器(第 一级的FF-1和FF-3以及第二级的FF-2)。
"展开,,可以是对于每k次虚拟制作电路30,副本的过程。2003 年CHARME给出的,作者为R. Tzoref, M. Matusevich, E. Berger, I. Beer, 题目为 "An Optimized Symbolic Bounded Model Checking Engine"的文章讨论了在符号模型检验器内的展开过程。
图4C示出了示例性电路30'对于周期1和2的展开。每个输入 信号被记录有时间戳,如同指示符信号pi所记录的时间戳。例如, 图4C对于两个周期,周期1和周期2,具有输入信号xl的两个副 本(xh, xl2)并且存在指示符信号p3的两个副本(p3i, p32)。
返回图3,时钟门控器20可以继而建立(步骤42) 二进制决策 图(BDD) X,其表示一并"与"运算的已展开指示符信号pik。 二 进制决策图(BDD)通常是布尔表达式的简明表示,并一般用于符 号模型检验,尤其是复杂硬件的检验。简略地,BDD是表示布尔表达式的有向无环图。现在简略对图 5进行参考,图5中示出了表达式((A & B & C) I (C & D))的示例性 BDD,其中"&,,代表"AND (与)并且T,代表"OR (或)"。 每个周期(或节点)指示变量(A, B, C, D),并且线指示当变量评估 为FALSE (假)(左边)或TRUE(真)(右边)时接下来遵循的 方向。叶节点51表示布尔表达式的值。
因此,在步骤42,时钟门控器20可以利用修改的电路30,的 RTL逻辑来确定定义了每个指示符信号pi的布尔表达式Qi。由于布 尔运算可以在BDD中执行,时钟门控器20可以一并"与,,运算所 有的布尔表达式Qi以及它们的多个副本Qik用于产生BDD X。
在步骤44,时钟门控器20可以产生不变BDD,其具有当触发 器FF-i值不变时指示符信号pi所产生的值。在此实施方式中,当触 发器FF-i值不变时指示符信号pi产生值为0,并因此,对于此实施 方式,时钟门控器20可以通过创建BDD X=0来产生不变的BDD Y。
在0到K的k次循环50中,时钟门控器20可以通过消除任何 依赖于来自并非k周期的输入xjk的指示符信号pi来确定第k个门控 组。这样,时钟门控器20可以首先产生(步骤52)周期k中使用的 不变BDD Y的临时副本Yk。时钟门控器20可以继而从临时不变BDD Yk去除(步骤54)作为来自非k周期的输入xjn。tk的函数的任何指示 符信号pi ("("。保留的指示符信号pi (remaim)形成第k个候选 门控组Yk'。
时钟门控器20可以去除不理想的信号pi ("wjO ,并且可以继 而对BDDYk,执行标准压缩。此操作在现有技术中是已知的,并在 1986年,IEEE Transactions on Computers, Vol. C画35(8), R. Bryant的 题目为"Graph-based algorithms for Boolean function manipulation"文
章中讨论。
留在第k个候选门控组Yk,中的保留指示符信号pi ( remaim ) 指示能够以当前使能信号和/或其锁存形式门控的触发器FF-i。
相比于实现其门控函数所需要的逻辑,大的门控组可以是用于 时钟门控的良好候选。门控组的大小可由其中触发器或其他数据锁 存器件的数目所定义。
当时钟门控器20结束循环23和50,时钟门控器20可以具有一 组候选门控函数以及它们的门控组用于检查。电路更新器22可以向 电路设计者提供这些门控函数以及它们的门控组,以便其可以选择 哪些加以实施,在此之后,电路更新器22可以继而将选定的门控函 数添加到电路,从而产生更新的电路R,。
现在简略地参考图6A,其中示出了 32个重复的相同元件n的简 单电路,以及参考图6B,其示出了电路的时钟门控情形。每个元件 n具有输入s(n)、多路复用器60-n、以及三个级联触发器62A-n、62B-n 和62C陽n。触发器62A-n、 62B-n和62C-n的输出为a(n)、 b(n)和o(n), 并且多路复用器60-n的输入为输入s(n)、信号en、以及触发器62A-n 的输出a(n)。使能信号en使能多路复用器60-n。
对于这样的电路,时钟门控器20可以产生以下门控函数,在图 6B中示出。
以使能信号en来门控信号a(n),用于生成门控的时钟g0;
以使能信号en的锁存版本来门控信号b(n),用于生成门控 的时4中gl;以及
以使能信号en的双重锁存版本来门控信号o(n),用于生成 门控的时钟g2。
对于此举例,开销为三个门70-1、70-2和70-3以及两个延迟72-1 和72-2。在某些情况下,这可能是可接受的开销。应该理解,即使 存在简单电路之间的组合逻辑(因此,例如,b(0)可以是a(0)-a(4)的 函数),上述门控也可以工作。
现在参考图7,其示出了可选的方法,将由时钟门控器20执行, 用于确定对哪些数据锁存器件进行时钟门控以实现多周期时钟l、 1 控。
如前文的实施方式,时钟门控器20可以初始地检查设计R用于 识别(步骤24)其中的数据锁存器件。再次地,下文的讨论将使用 示例性触发器,应理解这包括所有类型的数据锁存器件。
根据本发明的可选的优选实施方式,时钟门控器20可以遍历(步 骤80)设计R的连线表用于确定哪些触发器仅依赖输入。这便是组 G。
在步骤82,时钟门控器20可以检查在先前步骤中所识别的"仅 输入,,触发器G,用于确定哪些触发器根据相同的时钟门控函数Fj 操作。时钟门控函数Fj可以仅是对于仅输入触发器G的使能函数。 可选地,可以使用用于细粒度时钟门控的标准算法确定时钟门控函 数Fj,诸如上文提到的2005年12月7日提交的序列号为No. 11/295936的美国专利申i青"Clock Gating Through Data Independent Logic"中所描述的算法。结果可以列出能够以第j个门控函数Fj — 并时钟门控的数据锁存器件的组Hj。
时钟门控器20可以继而确定将由每个门控函数Fj门控的触发 器。对于每个门控函数Fj,由循环84经过j次所控制,时钟门控器 20可以将门控组Hj中的触发器初始化(步骤86)为"0级"触发器。 时钟门控器20可以继而进入经过i次的循环88。在步骤90,时钟门 控器20可以检查电路的触发器用于在门控组Hj中寻找那些仅依赖i 级触发器的触发器。这些触发器可以标记为"i+1级"触发器,并可 以添加到门控组Hj。在步骤92,时钟门控器20可以检测在步骤90 是否有任何新的触发器添加至门控组Hj。如果是,则时钟门控器20 可以在步骤94递增i,并且可以继续循环88直到步骤92的结果为 否定结果。
对于每个门控组j,时钟门控器20可以产生以下门控函数 以时钟门控函数Fj来门控0级触发器的信号; 以时钟门控函数Fj的第i个锁存版本来门控第i级触发器的信号。
每个门控组Hj的大小可以是其中存储的触发器的数目。 尽管本发明的某些特征已在本文示出或描述,对于本领域技术 人员将出现许多变型、替换、改变以及等同。因此,应该理解,随
附的权利要求书意在覆盖所有这些在本发明的真实精神的范围内的 变型以及改变。
本公开的范围包括本文所公开的任何新的特征以及特征的组 合。因此申请人提请注意将可能在本申请或任何由此产生的进一 步 申请的授权过程中撰写对于这些特征或特征组合的新的权利要求。 具体而言,参考随附的权利要求书,独立权利要求的特征可以与从 属权利要求的特征相结合并且相应从属权利要求可以按任何可能的
为了避免疑问,在说明书和权利要求书中通篇使用的术语"包 括",不应限定为"仅由……组成"之意。
权利要求
1.一种用于多周期时钟门控的方法,所述方法包括产生数据锁存器件的多周期门控组。
2. 根据权利要求1所述的方法,其中每个所述门控组与单一门 控函数相关联,并且还包括对于每个门控组,以所述门控函数来门 控所述门控组的第O级数据锁存器件,并以所述门控函数的第i个锁 存版本来门控所述门控组的第i级数据锁存器件。
3. 根据权利要求1或2所述的方法,其中所述产生包括创建指示符信号用于标识条件,在所述条件下输入电路设计的数据锁存器件的值不变;以所述指示符信号多K次地展开所述电路;以及从至少所述已展开指示符信号为所述数据锁存器件确定多个候选门控函数。
4. 根据权利要求3所述的方法,其中所述确定包括 建立一并"与"运算的所述已展开指示符信号的二进制决策图(BDD ) X;在值不变处产生X的BDD Y;以及对于每个时间戳k,去除其输入并非来自第k周期的BDD Yk的 变量。
5. 根据前述权利要求任一项所述的方法,其中所述产生包括 寻找所述电路中的仅依赖输入周期的数据锁存器件的组G; 确定所述组G中的共享第j个门控函数Fj的数据锁存器件的组Hj;以及对于每个组Hj,添加所述电路的接收来自组Hj中现有数据锁存 器件的输入的数据锁存器件。
6. 根据权利要求5所述的方法,其中所述添加包括 对于每个初始的组Hj,将其中的所述数据锁存器件定义为0级数据锁存器件;以及 对于每个第i级,如果所述电路的数据锁存器件仅依赖已出现在 组Hj中的i级数据锁存器件,则将所述数据锁存器件添加至组Hj作 为i+l级数据锁存器件。
7. —种多周期时钟门控器,用于产生数据锁存器件的多周期门 控组,所述多周期时钟门控器包括指示符信号发生器,用于创建指示符信号来标识条件,在所述条件下输入电路设计的数据锁存器件的值不变;展开器,用于以所述指示符信号多K次地展开所述电路;以及 门控函数确定器,用于从至少所述已展开指示符信号为所述数据锁存器件确定多个候选门控函数。
8. 根据权利要求7所述的多周期时钟门控器,其中所述门控函 数确定器包括二进制决策图运算器,用于建立一并"与,,运算的所述已展开 指示符信号的二进制决策图(BDD) X,用于在值不变处产生X的 BDDY,以及对于每个时间戳k,用于去除其输入并非来自第k周期 的BDD Yk的变量。
9. 根据权利要求7或8所述的多周期时钟门控器,包括电路检查器,用于寻找所述电路中仅依赖输入周期的数据锁存 器件的组G;门控函数确定器,用于确定所述组G中共享第j个门控函数Fj 的数据锁存器件的组Hj;以及组发生器,对于每个组Hj,用于添加所述电路的接收来自组Hj 中现有数据锁存器件的输入的数据锁存器件。
10. 根据权利要求9所述的多周期时钟门控器,其中所述组发生 器包括0级定义器,用于对于每个初始的组Hj将其中的所述数据锁存 器件定义为0级数据锁存器件;以及非0级定义器,用于对于每个第i级,如果所述电路的数据锁存 器件仅依赖已出现在组Hj中的i级数据锁存器件,则将所述数据锁 存器件添加至组Hj作为i+l级数据锁存器件。
11. 根据前述权利要求7-10中任一项所述的多周期时钟门控器, 其中每个所述门控组与单一门控函数相关联,并且其中所述电路设计更新器包括门控函数实现器用于门控所述数据锁存器件,其中对 于每个门控组,所述实现器以所述门控函数来门控所述门控组的第0 级数据锁存器件,并以所述门控函数的第i个锁存版本来门控所述门 控组的第i级数据锁存器件。
12. 根据前述权利要求7-11中任一项所述的多周期时钟门控器, 其中所述数据锁存器件是以下类型触发器和锁存器。
13. —种装置,包括根据前述权利要求7-12中任一项所述的多周期时钟门控器,用 于产生电路设计的数据锁存器件的多周期门控组;以及电路设计更新器,用于以选定的多周期门控组来更新所述电路 设计。
全文摘要
一种设备包括多周期时钟门控器(20)以及电路设计更新器(22)。多周期时钟门控器(20)产生电路设计的数据锁存器件的多周期门控组。电路设计更新器(22)以选定的多周期门控组来更新电路设计。每个门控组与单一门控函数相关联。对于每个门控组,以门控函数来门控门控组的第0级数据锁存器件,并以该门控函数的第i个锁存版本来门控该门控函数的第i级数据锁存器件。
文档编号H03K19/00GK101341656SQ200680047804
公开日2009年1月7日 申请日期2006年11月16日 优先权日2005年12月19日
发明者C·艾斯纳, M·法卡施 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1