时钟动态切换电路及方法
【技术领域】
[0001]本发明涉及时钟信号切换,特别涉及时钟动态切换电路和时钟动态切换方法。
【背景技术】
[0002]随着SOC(System-on-a-Chip)技术的发展,SOC可以有效地降低电子信息系统产品的开发成本,缩短开发周期,提高产品的竞争力,是未来工业界将采用的最主要的产品开发方式。集成电路设计从晶体管的集成发展到逻辑门的集成,现在又发展到IP的集成,SOC技术中使用多时钟域的情况越来越多。由于每路时钟的频率并非都会相同,并且时钟选择信号并非都会同步,因此,很容易在切换的过程中造成最终输出时钟存在毛刺以及时钟周期变小的问题,进而影响整个系统的稳定性。
[0003]时钟动态切换是指两个时钟源由一个选择信号选择去驱动一个时钟网络。现有技术中,如图1所示,其中,输入信号包括第一时钟信号Clkl、第二时钟信号Clk2,以及时钟选择信号Switch,输出信号为时钟切换信号ClkOut。Switch继续参照图2,当时钟选择信号Switch在第一时钟信号Clk的时钟域中输出的时钟切换信号ClkOut,在其上升沿之后快速的变为0,这样,在完成时钟的切换后,时钟切换信号ClkOut形成一个毛刺。由于时钟偏移(Clock Skew)或者时钟是异步的时钟,在频繁的切换过程中产生了毛刺,该毛刺对于项目设计可能是致命的:它会导致时钟同步的失败,数据的丢失、系统进入亚稳态,甚至会使整个同步系统的功能失败。
【发明内容】
[0004]针对现有技术存在的上述缺陷,本发明提出一了种能够避免毛刺产生的时钟切换电路,以实现两个时钟的自由切换。该电路非常稳定,能够保证任意时刻输出的时钟都是其中的一路输入时钟。
[0005]为此,根据本发明的一个方面,本发明提供了一种时钟动态切换电路,包括:第一时钟信号Clkl、第二时钟信号Clk2以及时钟选择信号Switch的信号输入端,和时钟切换信号ClkOut的信号输出端,在所述信号输入端和所述信号输出端之间布置有:
[0006]预同步模块,设置为对所述时钟选择信号Switch在所述第二时钟信号Clk2的时钟域中进行时序的预同步处理,得到预同步的时钟选择信号A ;
[0007]第一同步模块,设置为将所述预同步时钟选择信号A在所述第一时钟信号Clkl的时钟域中进行同步处理,得到第一时钟选择信号Switch_inClkl ;
[0008]第二同步模块,设置为将所述第一时钟选择信号Switch_inClkl在所述第二时钟信号Clk2的时钟域中进行同步处理,得到中间信号C,并将所述中间信号C与所述预同步的时钟选择信号A进行组合逻辑处理,得到第二时钟选择信号Switch_inClk2 ;
[0009]门控选择模块,设置为将所述第一时钟选择信号Switch_inClkl和所述第二时钟选择信号Switch_inClk2作为门控使能信号,对所述第一时钟信号Clkl和所述第二时钟信号Clk2进行门控处理,并对门控处理后的第一和第二门控处理信号D、E组合以输出时钟切换信号ClkOut。
[0010]本发明的有益效果是:提供了一种防毛刺的时钟动态切换电路非常稳定,通过此电路,以实现两个时钟的自由切换,避免了毛刺产生,能够保证任意时刻输出的时钟都是其中的一路输入时钟。
[0011]在一些实施方式中,第一同步模块,第一同步模块设置为将所述预同步时钟选择信号A在所述第一时钟信号Clkl的时钟域中进行两级同步处理。
[0012]通过上述两级同步处理后的信号更加精确,确保了时钟切换时无毛刺产生。
[0013]在一些实施方式中,第二同步模块,将所述第一时钟选择信号Switch_inClkl在所述第二时钟信号Clk2的时钟域中进行两级同步处理。
[0014]通过上述两级同步处理后的信号更加精确,确保了时钟切换时无毛刺产生。
[0015]在一些实施方式中,预同步模块包括D触发器和锁存器,所述D触发器配置成:对所述时钟选择信号Switch在所述第二时钟信号Clk2的时钟域中进行采集,得到初始采集信号O ;所述锁存器配置成:锁存所述初始采集信号O的高电平信号,得到所述预同步时钟选择信号A。
[0016]在一些实施方式中,第一同步模块包括D触发器和锁存器,所述D触发器配置成:对所述预同步时钟选择信号A在所述第一时钟信号Clkl的时钟域中进行采集,得到第一采集信号B ;
[0017]所述锁存器配置成:锁存第一采集信号B的高电平信号,得到第一时钟选择信号Switch_inClkl0
[0018]在一些实施方式中,第二同步模块包括D触发器、锁存器以及或门电路,
[0019]所述D触发器配置成:对所述第一时钟选择信号Switch_inClkl在所述第二时钟信号Clk2的时钟域中进行采集,得到第二采集信号F ;
[0020]所述锁存器配置成:锁存所述第二采集信号F的高电平信号,得到所述中间信号C;
[0021]所述或门电路配置成:将所述中间信号C和所述预同步时钟选择信号A进行或处理,得到第二时钟选择信号Switch_inClk2。
[0022]在一些实施方式中,所述D触发器的个数为两个,以实现两次采集。
[0023]在一些实施方式中,门控选择模块,包括第一与门电路、第二与门电路和或门电路,
[0024]所述第一与门电路设置成:将所述第一时钟选择信号Switch_inClkl作为门控使能信号,对所述第一时钟信号Clkl进行与处理,得到第一门控处理信号D ;
[0025]所述第二与门电路设置成:通过非门将所述第二时钟选择信号Switch_inClk2作为门控使能信号,对所述第二时钟信号Clk2进行与处理,得到第二门控处理信号E ;
[0026]所述或门电路设置成:将所述第一门控处理信号D和第二门控信号E进行或处理,得到所述时钟切换信号ClkOut。
[0027]根据本发明的另一个方面,本发明提出了一种用于时钟动态切换电路中的初始时钟选择信号Switch第一时钟信号Clkl和第二时钟信号Clk2的时钟动态切换方法,包括:
[0028](I)对所述时钟选择信号Switch在所述第二时钟信号Clk2的时钟域中进行时序的预同步处理,得到预同步的时钟选择信号A ;
[0029](2)将所述预同步时钟选择信号A在所述第一时钟信号Clkl的时钟域中进行同步处理,得到第一时钟选择信号SwitchjnClkl ;
[0030](3)将所述第一时钟选择信号Switch_inClkl在所述第二时钟信号Clk2的时钟域中进行同步处理,得到中间信号C,并将所述中间信号C与所述预同步的时钟选择信号A进行组合逻辑处理,得到第二时钟选择信号Switch_inClk2 ;
[0031](4)将所述第一时钟选择信号Switch_inClkl和所述第二时钟选择信号Switch_inClk2作为门控使能信号,对所述第一时钟信号Clkl和所述第二时钟信号Clk2进行门控处理,并对门控处理后的第一和第二门控处理信号D、E组合以输出时钟切换信号ClkOut。
[0032]在一些实施方式中,同步处理为两级同步处理。
[0033]本发明提供的一种防毛刺的时钟动态切换方法,实现了两个时钟的自由切换,避免了毛刺产生,能够保证任意时刻输出的时钟都是其中的一路输入时钟。
【附图说明】
[0034]图1是现有技术中的时钟切换电路的示意图;
[0035]图2是图1中的时钟动态切换电路的时序图;
[0036]图3是根据本发明一实施方式的时钟切换电路的电路框图;
[0037]图4是根据本发明一实施方式的时钟切换电路的结构图;
[0038]图5是根据本发明一实施方式的时钟切换电路的时序图。
【具体实施方式】
[0039]下面结合附图对本发明作进一步详细的说明。
[0040]图3示意性地显示了根据本发明的一实施方式的一种时钟切换电路框图。如图3所示,本发明提供的电路,主要包括:预同步模块、第一时钟信号Clkl同步模块、第二时钟信号Clk2同步模块和门控选择模块,其中:
[0041]预同步模块,用于对时钟选择信号Switch在第二时钟信号Clk2时钟域中进行时序的同步处理,得到预同步时钟选择信号;
[0042]第一时钟信号Clkl同步模块,S卩:第一同步模块,用于将预同步时钟选择信号在第一时钟信号Clkl时钟域下进行同步处理;
[0043]第二时钟信号Clk2同步模块,即:第二同步模块,用于将第一时钟信号Clkl时钟域同步后的第一时钟选择信号Switch_inClkl,在第二时钟信号Clk2时钟域下进行同步,并与预同步时钟选择信号A进行组合逻辑处理;
[0044]门控选择模块,用于将第一时钟选择信号Switch_inClkl和第二时钟选择信号Switch_inClk2作为门控使能信号,对第一时钟信号Clkl和第二时钟信号Clk2进行门控处理,并对门控处理后的第一和第二门控处理信号组合以输出时钟切换信号ClkOut。
[0045]图4示意性地显示了图3中的时钟切换电路的详细结构图,如图4所示,本发明的电路主要包括:第一时钟信号Clkl、第二时钟信号Clk2以及时钟选择信号Switch的信号输入端,和时钟切换信号ClkOut的信号输出端,在所述信号输入端和所述信号输出端之间布置有:
[0046]包括I个D触发器和I个锁存器的预同步模块,包括2个D触发器和I个锁存器的第一时钟信号Clkl同步模块,包括2个D触发器、I个锁存器和I个或门电路的第二时钟信号Clk2同步模块,以及包括2个与门电路(其中一个与门电路的输入端是I个非门电路)和I个或门电路的门控选择模块。
[0047]在实际运行过程中:
[0048]时钟选择信号Switch通过信号输入端输入,然后通过预同步模块在第二时钟信号Clk2的时钟域中经过D触发器进行信号采集,得到初始采集信号O,锁存器锁存初始采集信号O的高电平信号,得到所述预同步的时钟选择信号A ;
[0049]接着,上述预同步的时钟选择信号A通过第一时钟信号Clkl同步模块在第一时钟信号Clkl的时钟域中经过2个D触发器进行两次信号采集,