时钟动态切换方法及装置的制造方法_2

文档序号:9729823阅读:来源:国知局
钟使能信号产生单元12用于基于多个所述时钟选择信号产生多个时钟使能信号。本发明实施例中,时钟使能信号产生单元12产生的时钟使能信号具有如下特征:每一个时钟都有单独的时钟使能信号,任意时刻,只有一个时钟使能信号是使能的;时钟使能信号是由上述时钟选择信号和同步单元返回的反馈控制信号产生的。也就是说,本发明实施例中,时钟使能信号产生单元12具体是基于时钟选择信号产生单元11产生的多个时钟选择信号和同步单元13返回的反馈控制信号一起产生的时钟使能信号,具体的,反馈控制信号为经由同步单元13同步处理后的时钟使能信号,时钟使能信号产生单元12对同步单元13返回的该反馈控制信号延迟处理(延迟一个时钟周期)后再结合每个时钟选择信号来产生每个时钟使能信号。如图1所示,时钟使能信号产生单元12基于η个时钟选择信号clk_in_sel [0]、clk_in_sel [1]、......、clk_in_sel [n_2]、clk_in_sel [n_l]和经同步单兀处理之后并返回给时钟使能信号产生单元的η (η为不小于2的整数)个时钟使能信号clk_in_
en_sync [n_l:0],产生 η 个新的时钟使能信号 clk_in_en[0]、clk_in_en [1]、......、clk_in_
en[n-2]、clk_in_en[n_l]。
[0040]本发明实施例中,同步单元13用于对时钟使能信号产生单元12传递过来的时钟使能信号进行同步处理,以消除亚稳态的影响。同步单元13将同步后的时钟使能信号返回给时钟使能信号产生单元12用以产生新的时钟使能信号,并传递给门控单元14,以使得门控单元14能够控制信号输出。如图1所示,clk_in_en_sync[0]?clk_in_en_sync[n_l]是经过同步单元13同步处理的η个时钟使能信号,一方面返回给时钟使能信号产生单元12,一方面传递给门控单元14。
[0041]本发明实施例中,门控单元14根据同步单元13同步后的时钟使能信号,打开或关闭时钟信号的输出,门控后的时钟信号经过或门逻辑后输出。如图1所示,门控单元14根据同步单元13同步后的时钟使能信号clk_in_en_sync[0]?clk_in_en_sync [n_l]打开或关闭时钟。图1中的clk_out为门控后的时钟相或产生的输出信号。
[0042]采用本发明实施例的上述装置,可以使时钟动态切换对时钟频率不敏感,具有更广泛的适用范围及更强的通用性。
[0043]实施例二
[0044]下面以4选1的时钟动态切换为例来说明本发明的具体实施过程。
[0045]本实施例中,对多个时钟进行选择时需要多位时钟选择信号,以4选1为例,需要两位时钟选择信号,采用如图2所示的编码方式。如图3所示,4选1的时钟动态切换装置可以包括时钟选择信号产生单元31、时钟使能信号产生单元、同步单元33和门控单元34。其中,时钟使能信号产生单元包含两个部分:第一部分321和第二部分322,第一部分321在时钟选择信号产生单元31与同步单元33之间传输信号,第二部分322在同步单元33和第一部分321之间传输信号。
[0046]如图3所示,本实施例中时钟选择信号产生单元31用配置时钟cfg_clk对输入的η (η为不小于2的整数)个初始选择信号sel[n:0]编码产生并输出独热码,该独热码即为时钟选择信号。若时钟使能信号产生单元31直接用输入的初始选择信号产生时钟选择信号,则由于多比特数据跨时钟域传输而导致输出时钟产生毛刺。图3中的clk_in[i]表示待切换的时钟信号。本实施例中,时钟选择信号产生单元31采用如图2所示的编码方式,图2中,二进制码初始选择信号的四种状态00、01、10、11分别对应待选择的时钟信号clk_in[0]、clk_in[l]、clk_in[2]、clk_in[3],若从 clk_in[0]切换到 clk_in[3],初始选择信号需由00改变为11,在不做编码处理的前提下,可能导致输出时钟产生毛刺。本发明实施例中,时钟使能信号产生单元31产生的时钟选择信号具有如下特征:时钟选择信号的个数与需要切换的时钟个数相等;在任意时刻,有且只有一个时钟选择信号是有效的高电平(或低电平),其余的时钟选择信号是无效的低电平(或高电平);在任意时刻,有且只有两个选择信号向相反的方向翻转,比如,一个从低电平向高电平翻转,一个从高电平向低电平翻转;时钟选择信号来自配置时钟域,可通过软件配置产生或硬件解码产生。采用符合上述特征的时钟选择信号,如图2所示,编码后的时钟选择信号的4种状态0001、0010、0100和1000分别对应选择时钟clk_in[0]、clk_in[l]、clk_in[2]和clk_in [3],此时,从时钟信号clk_in[0]切换到clk_in[3]时,clk_in[0]的选择信号由有效变为无效,clk_in[3]的选择信号由无效变为有效,clk_in[l]和clk_in[2]的选择信号依然保持无效,时钟选择信号由状态0001变为状态1000,不会出现同时选择clk_in[l]和clk_in[3]的情况,避免输出时钟产生毛刺,该多位二进制编码的多比特时钟选择信号的跨时钟域传输如图4所示,其中,clk_in_sel [i]cfg cik (0 ^ i彡n_l)表示所产生的时钟选择信号,sel [1表示初始选择信号。
[0047]从时钟信号clk_in[0]切换到clk_in[3]时,根据时钟选择信号,时钟使能信号产生单元需要产生时钟使能信号,一方面需要禁能原时钟(如上所述的clk_in[0]),另外还需要使能新的时钟(如上所述的clk_in[3])。为了使输出时钟无毛刺,需要遵循先禁能原时钟,再使能新时钟的顺序。本发明实施例中,时钟使能信号产生单元基于同步单元33返回的反馈控制信号和时钟选择信号产生单元31当前产生的时钟选择信号产生当前需要的时钟使能信号。具体的,如图3所示,时钟选择信号产生单元31当前产生的时钟选择信号clk_in_sel[i]rfg—。115(0 ( i ( n_l)输出,经过一定延时后输入时钟使能信号产生单元的第一部分321,图3中标记为clk_in_sel [i]elk—in[i]表不时钟选择信号产生单兀31输出的时钟选择信号clk_in_sel[i]rfg—。115延时后输入到时钟使能信号产生单元的信号,从同步单元33返回的反馈控制信号clk_in_en_sync[j] (0彡j彡n_l且j古i)输入时钟使能信号产生单元的第二部分322,时钟使能信号产生单元的第二部分322对输入的反馈控制信号clk_in_en_sync[j]进行延迟处理后(即延迟一个时钟周期)输出给第一部分321,图3中clk_in_en_sync_dly [j]是时钟使能信号产生单元的第二部分322对clk_in_en_sync [ j]延时一个时钟周期产生的信号,第一部分321基于延迟处理后的反馈控制信号clk_in_en_sync_dly[j]和当前输入的时钟选择信号clk_in_sel [;[]&—_进行组合逻辑处理后,产生当前需要的时钟使能信号clk_in_en[i]并输出给同步单元33。其中,反馈控制信号clk_in_en_sync[j]是由同步单元33对之前输入的时钟使能信号clk_in_en[j]进行同步处理后输出的信号。
[0048]本发明实施例采用将经过同步后的时钟使能信号作为时钟使能信号产生单元的输入,即作为产生新时钟使能信号的反馈控制信号,在时钟使能信号产生单元判断其它所有的时钟使能信号都为低电平时才使能新的时钟使能信号。为保证输出的时钟周期是完整的,需要对输入时钟使能信号产生单元的反馈控制信号延迟一个时钟周期再使用,如图3所示,该延迟的动作由时钟使能信号产生单元的第二部分322执行。如图5中的圈1所示,若采用延时前的时钟使能信号clk_in_en_sync[i]作为反馈控制信号,则输出时有可能原时钟信号最后一个周期没有完全输出就切换到了新的时钟信号;如图3所示,采用延时处理后的时钟使能信号clk_in_en_sync_dly [i]产生新的时钟使能信号的话,如图5中的圈2所示,输出时原时钟信号最后一个周期可以完整的输出后再切换到新的时钟信号。其中,图5中,clk_out_*是指采用clk_in_en_sync[i]信号而不是延迟后的信号clk_in_
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1