专利名称:一种防止异域时钟动态切换毛刺的方法和电路的制作方法
技术领域:
本发明主要应用于低功耗管理设计时,同一模块的时钟需要在两个不同域的时钟间动态 切换的电路中,可用于集成电路卡芯片、便携式消费类电子中用到的控制芯片等各种有低功 耗要求的集成电路设计中,也可用于其他需要进行异域时钟动态切换的电路中。
背景技术:
在电子产品中,集成电路芯片是重要的组成部分,芯片的功耗很大程度上决定了整个产 品的功耗。所以,在芯片设计中,低功耗设计己经成为一个专门的研究领域。
SoC中CMOS电路功耗有两类 一是静态功耗,主要是由静电流、漏电流等因素造成;二
是动态功耗,主要是由电路中信号变换时造成瞬态开路电流(crowbar current)和负载电流 (load current)等因素造成,它是SOC芯片中功耗主要来源。时钟频率是影响动态功耗重 要因素,它工作频率越高,功耗也就越大。但在很多时候,所有模块并不是工作在同一时钟 频率,或者同一个模块在不同时段可以工作在不同时钟频率,可用动态配置S0C系统时钟来 实现。动态地配置S0C系统时钟频率是以不牺牲系统性能为前提,动态地管理系统工作频率 来降低S0C功耗。
动态地配置整个系统的时钟频率,虽然可以很方便地控制好整个SoC芯片的功耗,但同 时也带来了一些负面影响。功耗管理单元中的多路选择器和门控时钟电路是最有可能产生毛 刺的,而毛刺对同步数字系统是致命的。它会导致同步的失败、数据的丢失、寄存器进入亚 稳态,更为严重的是,使整个同步系统的功能失败。毛刺的产生是因为那些输入信号的时序 匹配出现了问题,没有按照既定的顺序出现,或者说那些信号转换的时机不合适。因此在RTL 设计时要保证做到时序的匹配,以降低毛剌产生的可能性。
发明内容
本发明提出了一种防止异域时钟动态切换毛刺的方法,有效消除时钟切换过程中可能出 现的竞争,从而达到防止异步时钟动态切换时出现毛刺的目的,提高电路的稳定性与可靠性。 在同一时刻,如果一个组合逻辑门的输入信号有两个或两个以上同时发生状态改变,由 于这些输入信号是经过不同的路径产生的,使得它们状态改变的时刻有细小的时间先后差别, 这种差别可能导致输出结果信号上一些短暂的中间状态,形成毛刺。这些毛刺可能会产生一 些不期望的结果,并经电路向后传播,引起整个电路功能上的错误。本发明通过设计时钟切 换使能信号的时序,消除时钟切换使能信号与切换时钟之间的竞争,避免在同一时刻发生两 个方向上的翻转,不管输入信号上的翻转哪一个先发生,也不会导致切换后的时钟上出现毛 刺。如图l所示, 一般的异域时钟动态切换电路,是在两路时钟Clkl和Clk2间设计一个两 路选通器。当切换条件满足时,如SwitchEn为"0",则输出时钟Clk切换到Clkl;如SwitchEn 为"1",则输出时钟Clk切换到Clk2。由于切换点和切换使能信号SwitchEn在时钟的同一 个沿变化,而作为时钟切换源的Clkl和Clk2又是异域时钟,两者的相位不固定,所以很容 易存在竞争,此竞争进而可能产生毛刺或时钟周期不全。图2是图1所示电路的时序波形图, 切换使能信号SwitchEn在Clkl的上升沿触发为"l",输出时钟由Clkl切换到Clk2;在Clk2 的上升沿触发为"0",输出时钟由Clk2切换回Clkl。但由于传输延迟,SwitchEn的上升沿 有可能比Clkl的上升沿后发生,这就会导致图2中所示的输出时钟Clk上的"毛刺";同理, SwitchEn的下降沿有可能比Clk2的上升沿后发生,这就会导致图2中所示的输出时钟Clk 上的"周期不全"。
本发明通过消除切换时钟与切换使能信号之间的竞争,从而消除切换后时钟上的毛刺及 周期不全。首先切换点和切换使能应避免在同一个吋钟沿变化,如果切换使能信号在时钟的 上升沿变化,那么切换点就应该在时钟的下降沿,反之亦然。本发明设计的电路首先对时钟 切换使能做了跨时钟域同步处理,既消除了异域时钟信号采样造成的亚稳态,同时又改变了 切换点所处的时钟沿,用与时钟切换使能变化沿不同的时钟边沿进行时钟切换使能的同步处 理,如时钟切换使能在上升沿变化,则用时钟的下降沿对其进行同步处理;如时钟切换使能 在下降沿变化,则用时钟的上升沿对其进行同步处理,并且在时钟切换点,先让输出时钟保 持为固定电平,待时钟切换使能同步处理结束后再进行切换,这样有效消除了组合逻辑电路 中的竞争,输出的时钟Clk上也就不再会出现毛刺及周期不全,从而提高电路工作的稳定性 与可靠性。
本发明公开的一种防止异域时钟动态切换毛刺的电路,包括D触发器(l)、 D触发器(2)、 D触发器(3)、与或逻辑(4)、或非门(5)、两级两路选择器(6),其中D触发器(l)在当前时钟 的正沿对Input信号进行锁存,产生时钟切换使能信号SwitchEn; D触发器(2)利用两个时钟 负沿触发对时钟切换使能信号SwitchEn进行两次采样,消除亚稳态,生成信号SE_d2_Clk2, 同时D触发器(3)利用两个时钟负沿触发对时钟切换使能信号SwitchEn进行两次采样,消除 亚稳态,生成信号SE—d2—Clkl;与或逻辑(4)将SwitchEn、 SE—d2—Clk2和SE—d2—Clkl产生 令输出吋钟保持为高电平的使能信号Hold一En;或非门(5)将SwitchEn和SE—d2—Clkl的输入 产生Clkl的选通信号Clkl—En;将高电平"1"和Clk2输入到两级两路选择器(6)的第一级 选择器,选通控制端为Hold—En,将Clkl和第一级选择器的输出作为第二级选择器的输入, 选通控制端为Clkl_En,经过两路选通,最终输出切换后的无毛刺时钟Clk。
实际上,在对切换使能做同步处理期间,可以让输出时钟Clk保持在高电平,也可以让其保持在低电平,关键看时钟切换使能信号SwitchEn在哪个时钟沿被触发。如SwitchEn在 上升沿被触发,则用另一个时钟的下降沿对其进行同步,那么输出时钟Clk在此期间就保持 在高电平;如SwitchEn在下降沿被触发,则用另一个时钟的上升沿对其进行同步,那么输出 时钟Clk在此期间就保持在低电平。上述一种防止异域时钟动态切换毛刺的电路实现了在时 钟切换使能同步处理期间让输出时钟保持在高电平,对该电路稍加变形,可以实现在时钟切 换使能同步处理期间让输出时钟保持在低电平。
图1一般的异域时钟动态切换电路
图2 —般异域时钟动态切换电路的波形
图3防止异域时钟动态切换毛刺的电路
图4防止异域时钟动态切换毛刺电路的波形
图5切换使能同步处理期间输出时钟保持为低电平的电路
具体实施例方式
图3是本发明的具体实施结构图,下面结合附图具体介绍本发明的具体实施方式
。 本发明主要是为了产生一个不会产生毛刺的时钟切换使能信号,采取的步骤如下-
1) 在当前时钟Clk正沿,利用D触发器(l)对I叩ut信号进行锁存,产生时钟切换使 能信号SwitchEn,用来表示切换的方向,如当前时钟为Clkl,且SwitchEn为l, 则时钟由Clkl切换到Clk2;如当前时钟为Clk2,且SwitchEn为0,则时钟由Clk2 切换到Clkl;
2) 在Clk2时钟负沿,利用两个时钟负沿触发的D触发器(2)对时钟切换使能信号 SwitchEn进行两次采样,消除亚稳态,生成信号SE—d2—Clk2;
3) 在Clkl时钟负沿,利用两个时钟负沿触发的D触发器(3)对时钟切换使能信号 SwitchEn进行两次采样,消除亚稳态,生成信号SE—d2—Clkl;
4) 将SwitchEn、 SE_d2—Clk2和SE—d2—Clkl送入与或逻辑(4)产生令输出时钟保持 为高电平的使能信号Hold一En;
5) 将SwitchEn和SE—d2—Clkl输入给一个或非门(5)产生Clkl的选通信号Clkl_En;
6) Hold—En和Clkl—En输入到两级两路选择器(6),其中第一级选择器的两路输入分 别为高电平"1"和Clk2,选通控制端为Hold—En,第二级选择器的两路输入分别 为Clkl和第一级选择器的输出,选通控制端为Clkl—En,经过两路选通,最终输 出切换后的无毛刺时钟Clk。时钟切换使能信号SwitchEn在时钟的上升沿被触发,在Clkl时钟域的上升沿被触发为 高电平,输出时钟Clk由Clkl切换到Clk2,继而在Clk2时钟域的上升沿被触发为低电平, 输出时钟Clk又由Clk2切换回Clkl。电路中设计了两组两级D触发器(2)和(3)。其中(2) 由Clk2的下降沿触发,对SwitchEn进行两级采样,产生信号SE_d2_CIk2; (3)由Clkl 的下降沿触发,对SwitchEn进行两级采样,产生信号SE—d2—Clkl。 SE一d2一Clk2、 SE—d2一Clkl 以及SwitchEn经过组合逻辑(4)产生令输出时钟保持为高电平的使能信号Hold—En, SE—d2—Clkl和SwitchEn通过一个或非门(5)产生Clkl的选通信号Clkl—En。 Hold—En和 Clkl—En作为两级两路选择器(6)的选通控制端,来控制输出时钟Clk为Clkl、 Clk2或者 固定电平"1"。参照图4的波形图可知在SwitchEn为零且SE_d2—Clkl为零时,输出时钟 为Clkl;在SwitchEn为1且SE—d2—Clk2为零或SwitchEn为零且SE—d2—Clkl为1时,输出 时钟为固定高电平"1"(即图4中a->b以及c->d部分),在SwitchEn为1且SE—d2—Clk2为 1时,输出时钟为Clk2 (如图4中b->c部分)。这样,输出时钟在当前吋钟的上升沿开始切 换,直到被切换时钟的下降沿才真正完成切换,在整个切换过程中不存在竞争,也就消除了 切换过程中的毛剌。
前面介绍了在时钟切换使能同步处理期间让输出时钟保持在高电平的电路的具体实施方 式。对图3中的电路稍加改变,将D触发器(1)由当前时钟的"正沿"触发改为"负沿"触 发,两组D触发器(2)和(3)由"负沿"触发改为"正沿"触发,其他电路组件不变,则 形成如图5所示的电路,可以实现在时钟切换使能同步处理期间让输出时钟保持在低电平。
本发明可以有效防止异域时钟动态切换过程中产生的毛刺,提高电路的稳定性与可靠性。
权利要求
1.一种防止异域时钟动态切换毛刺的方法,其特征在于用与时钟切换使能变化沿不同的时钟边沿进行时钟切换使能的同步处理,并且在时钟切换点让输出时钟保持为固定电平,待时钟切换使能同步处理结束后再进行切换,有效防止时钟在两个时钟域动态切换过程中出现毛刺,具体包含以下步骤1)在当前时钟Clk正沿,利用D触发器(1)对Input信号进行锁存,产生时钟切换使能信号SwitchEn,用来表示切换的方向,如当前时钟为Clk1,且SwitchEn为1,则时钟由Clk1切换到Clk2;如当前时钟为Clk2,且SwitchEn为0,则时钟由Clk2切换到Clk1;2)在Clk2时钟负沿,利用两个时钟负沿触发的D触发器(2)对时钟切换使能信号SwitchEn进行两次采样,消除亚稳态,生成信号SE_d2_Clk2;3)在Clk1时钟负沿,利用两个时钟负沿触发的D触发器(3)对时钟切换使能信号SwitchEn进行两次采样,消除亚稳态,生成信号SE_d2_Clk1;4)将SwitchEn、SE_d2_Clk2和SE_d2_Clk1送入与或逻辑(4)产生令输出时钟保持为高电平的使能信号Hold_En;5)将SwitchEn和SE_d2_Clk1输入给一个或非门(5)产生Clk1的选通信号Clk1_En;6)Hold_En和Clk1_En输入到两级两路选择器(6),其中第一级选择器的两路输入分别为高电平“1”和Clk2,选通控制端为Hold_En,第二级选择器的两路输入分别为Clk1和第一级选择器的输出,选通控制端为Clk1_En,经过两路选通,最终输出切换后的无毛刺时钟Clk。
2. —种防止异域时钟动态切换毛刺的电路,包括D触发器(l)、 D触发器(2)、 D触发器 (3)、与或逻辑(4)、或非门(5)、两级两路选择器(6),其特征在于D触发器(1)在当前 时钟的正沿对I叩ut信号进行锁存,产生时钟切换使能信号SwitchEn, D触发器(2) 利用两个时钟负沿触发器对时钟切换使能信号SwitchEn进行两次采样,消除亚稳态, 生成信号SE_d2_Clk2,同时D触发器(3)利用两个时钟负沿触发器对时钟切换使能信 号SwitchEn进行两次采样,消除亚稳态,生成信号SE—d2_Clkl,与或逻辑(4)利用 SwitchEn、 SE—d2—Clk2和SE—d2—Clkl产生令输出时钟保持为高电平的使能信号 Hold—En,或非门(5)利用SwitchEn和SE—d2一Clkl产生Clkl的选通信号Clkl_En,将 高电平"1 "和Clk2输入到两级两路选择器(6)的第一级选择器,选通控制端为Hold—En, 将Clkl和第一级选择器的输出输入到第二级选择器,选通控制端为Clkl—En,经过两 路选通,最终输出切换后的无毛刺时钟Clk。
3.如权利要求2所述的一种防止异域时钟动态切换毛刺的电路,实现了在时钟切换使能 同步处理期间让输出时钟保持在高电平,其特征在于对该电路稍加变形,将D触发器 (1)由当前时钟的"正沿"触发改为"负沿"触发,两组D触发器(2)和(3)由 "负沿"触发改为"正沿"触发,其他电路组件不变,则可以实现在时钟切换使能同 步处理期间让输出时钟保持在低电平。
全文摘要
本发明提出一种防止时钟在两个不同时钟域间动态切换出现毛刺的方法和电路,用于异步信号处理及低功耗管理设计时需要将一个模块的时钟在两个异域时钟间动态切换的电路中。本发明首先对切换使能做了跨时钟域处理,消除异域信号之间相互采样引起的亚稳态问题,并且在切换点将时钟保持住一段时间,待切换使能经同步操作稳定后再进行切换,有效消除时钟切换过程中可能出现的竞争,从而达到防止异步时钟动态切换时出现毛刺的目的,提高电路的稳定性与可靠性。
文档编号G06F17/50GK101593221SQ200810113119
公开日2009年12月2日 申请日期2008年5月28日 优先权日2008年5月28日
发明者关红波 申请人:北京中电华大电子设计有限责任公司