异步时钟切换不产生毛刺的做法

最近在学到异步时钟切换不产生毛刺的做法,有这么一张图异步时钟切换不产生毛刺的做法 异步时钟切换不产生毛刺的做法
我们假设初始状态是select=1,此时A=1,B=1,C=1,D=0,A1=B1=C1=0,D1=1;可知此时时钟是选择的clk1;

当select=0时,A=0,由于有D触发器的作用,所以C和B仍为1,且D=0;所以A1~D1不变,当clk1上升沿来临后,B=A=0,再来一个上升沿,C也等于0,D=1;clk1输出的与门被关闭,outclk=0(这是这张图的愿意,但其实这样做仍然无法避免毛刺,后面会解释);由于D=1且~select=1;A1=1;过两个clk0上升沿后clk0接替clk1输出,既outclk=clk0。这个方法通过D触发器的滤波达到去除毛刺想法是非常好的(原谅我学不久,虽然听过触发器可以用来滤波,不过还是想不出来这种点子),但是我得到的仿真结果(quartus+modelsim)却依然有毛刺

异步时钟切换不产生毛刺的做法

异步时钟切换不产生毛刺的做法
后来想到会不会是因为D触发器的延时比较高,在第二个时钟上升沿时由于时钟信号比选择信号先到与门从而导致有一段短时间的时钟输出(高电平),而这段时钟被紧随而来的选择信号屏蔽掉形成毛刺,所以我就想既然D触发器引起的延时那还得D触发器解决(抱歉:这里我用了两个缓冲器增加延时,为组合电路,并不是D触发器),便有了下图

异步时钟切换不产生毛刺的做法
异步时钟切换不产生毛刺的做法


在第二个D触发器的时钟端后为时钟传输线再串两个D触发器(红色框框)(更正:并非D触发器,为两个缓冲器以增加延时,十分抱歉),仿真结果如下
异步时钟切换不产生毛刺的做法

异步时钟切换不产生毛刺的做法
毛刺得到解决啦;
本人为初学,要有错误还请赐教哈,不胜感激
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值