Clock switch with glitch-free电路

时钟域切换过程中,简单的MUX会导致glitch问题。为解决此问题,采用打三拍通过ICG(时钟门控)的方法。在RTL设计中,当使能指示信号变化后,经过两级同步器延迟两拍,确保原使能无效,接着新使能经过同步后再延迟两拍,确保新时钟在低电平处使能,从而避免时序违例和亚稳态风险。
摘要由CSDN通过智能技术生成

时钟域切换:

MUX?
在这里插入图片描述
这种方式是不行的。
在时钟切换的瞬间,会出现glitch,上升沿的突然出现,会导致两边的时序不满足要求。

方案:

打三拍通过一个ICG门控,再输出。
在这里插入图片描述
RTL:
在这里插入图片描述
在这里插入图片描述
使能指示信号(cgm_sel)变动之后,经过两级同步器,过两拍,原使能无效(assign ind_in0 = in0_en_sync2),再在原时钟域打一拍(或上in0_en_syn3),in0_used变为低电平(注意这时候打一拍的作用!让原来已经被停掉的时钟留出空当,保证时序不会违例!这也是前面需要打两拍的原因,这个关键的触发器不能产生亚稳态问题,输入必须经过同步器保证),紧接着in1_en变为高电平,这个高电平再在自己的时钟域打两拍同步之后传到ICG单元,由于ICG的作用,新时钟一定是在低电平处使能的。

再次强调,就是为了打这么一拍才加上了两级同步器!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值