一种数字域时钟选择装置及实现方法
【技术领域】
[0001]本发明涉及一种芯片设计领域,尤其涉及一种数字域时钟选择装置及实现方法。
【背景技术】
[0002]由于时钟切换可能工作在同步时钟域,也可能工作在异步时钟域,而前者是后者的特殊情况,所以必须能在完全异步的任何时钟关系下工作。考虑到时钟切换输出的负载是对边沿敏感的触发寄存器,所以时钟切换的输出必须稳定,不能有任何毛刺。
[0003]由于传统的直接使用选择器实现的异步时钟切换装置会出现毛刺,选择器实现的异步时钟切换电路不能直接用于数字电路设计。
[0004]常规的时钟切换电路依赖于多个时钟间相互反馈,如果个别输入时钟不工作为零,将可能导致常规时钟切换电路死锁,想要切换为原来的时钟输入也不可恢复。
[0005]传统的时钟切换电路通常是使用特定工艺库下的锁存器或者类似电路实现,难以移植到通用数字电路。
[0006]现有常见的时钟切换装置一般是根据时钟控制信号启停时钟门控电路,而时钟门控电路通常是使用特定工艺库下的电路完成实现,难以在不同的工艺线上移植。此外,只能实现二选一(或者2的整数次幂,如2/4/8/16等),使用场合有很多限制。
【发明内容】
[0007]本发明所要解决的技术问题是提供一种能够输出无毛刺的、稳定切换时钟选择的数字域时钟选择装置及实现方法,用于只使用了标准单元库实现,可以工作在完全异步的多个时钟域上工作。
[0008]为实现上述技术效果,本发明公开了一种数字域时钟选择装置,包括:
[0009]—反馈时钟采样单元,用于采集时钟选择信号;
[0010]多个时钟输入单元,用于获得多个时钟输入信号;
[0011]多个时钟同步单元,与多个所述时钟输入单元对应连接,且多个所述时钟同步单元与所述反馈时钟采样单元连接,用于将多个所述时钟输入信号分别与采集到的所述时钟选择信号进行同步,输出经同步的多组的时钟选择信号和时钟输入信号;
[0012]与多个时钟门控对应的多个时钟门控单元,与多个所述时钟同步单元对应连接,用于根据多组的时钟选择信号和时钟输入信号选择对应的多个所述时钟门控的状态值;
[0013]—时钟合并单元,与多个所述时钟门控单元连接,用于将多个所述时钟门控单元选择的时钟门控的状态值进行合并,得到时钟输出信号;以及
[0014]—时钟输出单元,与所述时钟合并单元连接,用于输出所述时钟输出信号。
[0015]所述数字域时钟选择装置进一步的改进在于,还包括一译码单元,所述译码单元的输入端与所述反馈时钟采样单元连接,所述译码单元的输出端与多个所述时钟同步单元连接,用于对所述反馈时钟采样单元采集到的所述时钟选择信号进行译码,并将译码后的时钟选择信号输出至多个所述时钟同步单元。
[0016]所述数字域时钟选择装置进一步的改进在于,所述时钟选择信号为二进制代码,所述时钟输入信号为脉冲信号,所述译码单元为将二进制代码转换为脉冲信号的译码器。
[0017]所述数字域时钟选择装置进一步的改进在于,所述时钟同步单元包括串联的三组同步电路,每组所述同步电路包括串联的与门和寄存器。
[0018]所述数字域时钟选择装置进一步的改进在于,所述时钟合并单元的输出端与所述反馈时钟采样单元连接,用于将所述时钟输出信号反馈至所述反馈时钟采样单元。
[0019]本发明还公开了一种数字域时钟选择的实现方法,包括:
[0020]输入一时钟选择信号和多个时钟输入信号;
[0021]将输入的多个所述时钟输入信号分别与所述时钟选择信号进行同步,得到经同步的多组的时钟选择信号和时钟输入信号;
[0022]根据多组的时钟选择信号和时钟输入信号选择对应的多个时钟门控的状态值;
[0023]将选择的多个所述时钟门控的状态值进行合并,得到时钟输出信号;
[0024]输出所述时钟输出信号。
[0025]所述数字域时钟选择的实现方法进一步的改进在于,预先对输入的时钟选择信号进行译码,将译码后的时钟选择信号与多个时钟输入信号分别进行同步。
[0026]所述数字域时钟选择的实现方法进一步的改进在于,所述时钟选择信号为二进制代码,所述时钟输入信号为脉冲信号,对所述时钟选择信号进行译码包括:将二进制代码转换为脉冲信号。
[0027]所述数字域时钟选择的实现方法进一步的改进在于,采用三次同步的方式将输入的多个所述时钟输入信号分别与所述时钟选择信号进行同步。
[0028]所述数字域时钟选择的实现方法进一步的改进在于,还包括:将所述时钟输出信号与输入的所述时钟选择信号进行反馈处理。
[0029]本发明由于采用了以上技术方案,使其具有以下有益效果:先利用时钟同步单元对采集的多个时钟输入信号和时钟选择信号分别进行同步,得到经同步的多组的时钟选择信号和时钟输入信号,然后根据经同步的多组的时钟选择信号和时钟输入信号选择相应的时钟门控的状态值,经过逻辑运算,得到被选择的时钟输出信号。经过这个过程,按照配置得到的时钟输出信号选择时钟,可以是输入选择的任一个时钟,可以实现二选一也可以实现多选一时钟输出,且被选择的时钟输出安全无毛刺,全部使用数字电路标准库,易于实现,比传统电路实现更省功耗,面积也更小。即使输入时钟有个别不工作,也不会导致本时钟切换电路死锁,只需切换为原来的时钟输入即可恢复。
【附图说明】
[0030]图1是本发明数字域时钟选择装置的功能模块示意图。
[0031]图2是本发明数字域时钟选择装置的电路实现示意图。
[0032]图3是本发明数字域时钟选择的实现方法的流程图。
【具体实施方式】
[0033]下面结合附图及【具体实施方式】对本发明作进一步详细的说明。
[0034]首先参阅图1和图2所示,本发明的数字域时钟选择装置主要由一反馈时钟采样单元11、一译码单元12、多个时钟输入单元13,多个时钟同步单元14、多个时钟门控单元15、一时钟合并单元16及一时钟输出单元17组成。
[0035]反馈时钟采样单元11用于采集时钟选择信号(clk_sel),时钟选择信号(clk_sel) 一般为二进制代码。
[0036]译码单元12的输入端与反馈时钟采集单元11连接,用于对反馈时钟采样单元11采集到的时钟选择信号(clk_sel)进行译码,在本实施例中,译码单元12为可以将二进制代码转换为脉冲信号的译码器,因此,反馈时钟采样单元11采集到的时钟选择信号(clk_sel)经译码单元12译码后,将输入的二进制代码的状态翻译成输出的脉冲信号,以表示原输入二进制代码代表的电路形式。
[0037]时钟输入单元13用于获得时钟输入信号,该时钟输入信号可以为同步时钟输入信号,也可以为异步时钟输入信号。本发明根据时钟输入信号的个数配置相应个数的时钟输入单元,使每一个时钟输入单元接收一个时钟输入信号,这样,多个时钟输入单元,就可以对应接收多个时钟输入信号,为多选一的时钟选择方式提供实现基础。在本实施例中,采用了四个时钟输入单元13,可以接收四个时钟输入信号(clk_in0、clk_inl、clk_in2、clk_in3)。也可以扩展为多个,甚至不是2的整数次幂也没有关系。
[0038]根据时钟输入单元13的个数配置相应个数的时钟同步单元14,时钟同步单元14
与时钟输入单元13--对应连接,同时,多个时钟同步单元14又与译码单元12的输出端连接,用于将译码后的时钟选择信号(clk_sel)与各个时钟输入信号(clk_in0、clk_inl、clk_in2、clk_in3)分别进行同步,输出经同步的多组的时钟选择信号(clk_in0、clk_inl、clk_in2、clk_in3)和时钟输入信号(clk_sel)。参阅图2所示,时钟同步单元14包括串联的三组同步电路,每组同步电路包括串联的与门141和寄存器142。采用一点反馈的串联方式将三组同步电路串联构成三次同步的方式,可以更好地减少亚稳态几率