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

    xiaoxiao2022-06-30  136

    最近在学到异步时钟切换不产生毛刺的做法,有这么一张图异步时钟切换不产生毛刺的做法 我们假设初始状态是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触发器,为两个缓冲器以增加延时,十分抱歉),仿真结果如下 异步时钟切换不产生毛刺的做法 毛刺得到解决啦; 本人为初学,要有错误还请赐教哈,不胜感激
    转载请注明原文地址: https://ju.6miu.com/read-1126265.html

    最新回复(0)