这篇文章主要介绍“AND-OR型多路复用器逻辑的时钟切换的简单实现”,在日常操作中,相信很多人在AND-OR型多路复用器逻辑的时钟切换的简单实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”AND-OR型多路复用器逻辑的时钟切换的简单实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
随着当今芯片中使用越来越多的时钟,通常在芯片运行时需要对时钟进行切换。
我们可以在芯片中复用两个不同频率的时钟源,由内部逻辑控制多路复用器的选择信号。
所复用的两个时钟频率可以完全无关,也可以是彼此的倍数。在任何一种情况下,都有可能在时钟切换时产生毛刺。时钟上的毛刺会造成整个系统功能的故障,因为它可能被某些寄存器认为是时钟边沿而被其他寄存器忽略。
上图显示了使用AND-OR型多路复用器逻辑的时钟切换的简单实现。
多路复用器有一个名为SELECT的控制信号,
当设置为“SELECT = 1'b0”时,它将CLK0传播到输出,
当设置为“SELECT = 1'b1”时将CLK1传播到输出。当SELECT值改变时,可能会产生毛刺。
上图中的时序图显示了当SELECT控制信号发生变化时,输出OUT CLOCK如何产生毛刺。
上图显示了防止时钟切换出现毛刺的解决方案。在每个时钟源的选择路径中插入一个负边沿触发的D触发器。在其他时钟不使能后,在时钟的下降沿寄存选择控制信号,可以防止输出信号出现毛刺。
在时钟的下降沿寄存选择信号可确保在时钟处于高电平时输出端不会发生变化。
在上面的时序图中,SELECT信号从0到1的转变,在CLK0的下降沿停止CLK0传播到输出,然后在CLK1的后续下降沿开始CLK1传播到输出。
该电路中有三个时序路径需要特别考虑 - SELECT控制信号到两个负边沿触发触发器,DFF0输出到DFF1的输入,DFF1的输出到DFF0的输入。
如果这三条路径中的任何一条路径上的信号与触发器时钟边沿靠近,则该寄存器的输出很可能变为亚稳态。
如上图所示,通过为每个时钟源添加一个额外级的正边沿触发器,稳定数据来防止亚稳态的传播。
上述glitch free的时钟切换技术以非常小的开销避免在时钟切换时产生毛刺。这些技术可以扩展到两个以上的时钟切换。
对于多个时钟切换,每个时钟的选择信号将接受其他所有时钟源的反馈信号。
到此,关于“AND-OR型多路复用器逻辑的时钟切换的简单实现”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。