Clock Switch,芯片时钟切换的毛刺是什么,如何消除

news/2024/10/13 9:47:10

背景

芯片运行过程中需要时钟切换时,要考虑到是否会产生glitch,小小的glitch有可能导致电路运行的错误。所以时钟切换时需要特别的处理。
直接使用MUX进行时钟切换或者采用如下电路结构进行时钟切换:

assign outclock = (clk1 & select) | (~select & clk0);

assign outclock = select? clk1: clk0; (直接采用MUX实现)

但以上两种做法都会产生时钟切换毛刺的,芯片系统很容易进入亚稳态的情况。如下图,由于是纯组合逻辑,select信号变化可能发生在任何时刻,很容易发生时钟切换毛刺,我们需要使用无毛刺的时钟切换电路,即Glitch-free clock switching circuit。

为了解决时钟切换的毛刺问题,对于时钟源分为同步和异步的情况,分为如下两种解决方案:

CLK0与CLK1为同步时钟源,即CLK0与CLK1成整数倍关系

插入下降沿触发的D触发器,当前已打开的时钟路径上的时钟会在其下降沿之后先关闭,然后待打开时钟路径上的时钟在其下降沿之后即打开。如下所示:从下图第二个箭头开始,实际发生时钟切换,两个触发器都是下降沿触发。

当select信号为0时:

此时选择的时钟为CLK0,DFF1 Q端输出始终为0,QN端输出1并反馈至DFF0。当CLK0的下降沿采样后,DFF0的Q端输出1,QN端输出0并反馈至DFF1,从而不会在与门处产生毛刺。此时输出的OUT_CLK为CLK0。

当select信号切换为1时:

只有当CLK0的下降沿到来后,DFF0的Q端输出才会是0,其QN端输出才会是1,随后DFF1的D端的输入才会是1,然后还要等,当CLK1的下降沿到来后,DFF1的Q端输出变为1,QN输出变为0,但由于此时CLK1为低电平,因此OUT_CLK仍然为0。然后还要等,当CLK1出现高电平后,OUT_CLK才会切换到高电平。

注意时序约束关系:

select控制信号到DFF0、DFF1的D端;

DFF0的QN端输出到DFF1的D端;

DFF1的QN端输出到DFF0的D端;

这四条路径中,任何一路径上的信号与目标时钟域的采样时钟同时发生变化,则该寄存器的输出可能变为亚稳态。因此上述两个下降沿触发器结构要求两个时钟是同步时钟,且频率成倍数关系,这样就能始终满足时序约束关系,不会出现毛刺和亚稳态。

请问CLK0与CLK1为异步时钟时,电路如何设计?

CLK0与CLK1为无关时钟源,即异步时钟源

在第一种方法的基础上,在选择路径上再插入一个上升沿触发D触发器,这是对异步信号进行同步处理,这样即使是两个异步的时钟源进行切换,也可以避免亚稳态的产生。从下图中第二个箭头开始,实际发生时钟切换。

select为0时,OUT_CLOCK选择CLK0。

select切换为1时,CLK0的上升沿打一拍,下降沿打一拍,才能关闭CLK0时钟,此时OUT_CLOCK输出为0,然后还要等,等CLK1的上升沿打一拍,下降沿打一拍,才能打开CLK1,此时OUT_CLOC输出为0,等到CLK1上升沿到了OUT_CLOCK才有上升沿。

总结,通过在负沿触发器前添加了1个正沿触发器,使得:

select控制信号到DFF0、DFF1的D端;

DFF0的QN端输出到DFF1的D端;

DFF1的QN端输出到DFF0的D端;

上面四条路径的输入信号和负沿触发器的capture时钟沿之间构成两级触发器打拍,防止跨时钟域的亚稳态传递和毛刺信号出现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/26856.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

【计算机网络】通过ensp实验分析二三层数据包转发过程

一、实验准备 需要提前安装好wireshark、virtalbox、WinPcap和模拟工具ensp,具体的安装过程可以自行百度~ 特别提醒一点就是virtalbox和ensp的兼容性问题,我安装的是ensp1.3.00.100版本,该版本不支持virtalbox官网的6和7版本,我这边退回到5版本才正常运行起来。二、网络拓扑…

Redis持久化、主从与哨兵架构详解

参考 图灵课堂 https://zhuanlan.zhihu.com/p/443951927 https://blog.csdn.net/weixin_37548768/article/details/124538778?spm=1001.2014.3001.5502 https://www.runoob.com/redis/redis-transactions.htmlredis支持持久化到磁盘,这样可用进一步保证数据的完整性。 redis持…

异或

这道题目的思路比较好 由于\(1\)到\(n\)的路径很多,我们猜想,任意选一条路径可以通过某种异或运算来得到最优解 证明:假设我们选出的路径不是最优路径,那么对于另一条最优路径,一定可以通过我们选出的路径异或上若干个简单环来达到。举个例子说明假设我们选出的是直线段\(…

rt1052点亮0.96寸spi屏

一,前言 目的是用rgb屏,但是rgb屏硬件还没准备好,所以要先学习下lvgl上位机,但是学习完要烧录到屏中看效果,所以我今天就先点亮spi屏。找了之前stm32时候点亮频的lcd驱动进行的移植,cs我不是gpio控制的,所以注释了2行,看起来无影响。 二,说明 0.96存spi驱动的LCD屏ST7…

【网络通信】Windows搭建RTMP视频流服务器(含推流/拉流详细教程)

RTMP(Real-Time Messaging Protocol)是一种用于实时流媒体传输的网络协议,主要用于传输音频、视频和数据。RTMP最初是由Adobe Systems公司开发的,用于其Flash平台和Adobe Media Server,但随着技术的发展和开源社区的推动,RTMP已经成为了一个广泛使用的流媒体传输协议。今…

基于直方图的图像曝光量分析FPGA实现,包含tb测试文件和MATLAB辅助验证

1.算法运行效果图预览 正常图像: checkb位于f192b和f250b之间多度曝光图像: checkb位于f192b和f250b之外,判决为曝光过度。2.算法运行软件版本 vivado2019.2matlab2022a3.算法理论概述 参考资料如下:主要采用的方法为: 4.部分核心程序`timescale 1ns / 1ps // // Compan…

人机验证 reCaptcha 无法解锁 使用 Gooreplacer 的解决方案

解决方案 浏览器搜索并安装插件 Gooreplacer(参考下方链接),新增设置:匹配模式 google.com/recaptcha 匹配类型 通配符 目标地址 recaptcha.net/recaptcha如下图:并开启,刷新页面,即可。 故障分析及解决思路 常见的人机验证(reCaptcha)网址是 google.com/recaptcha,而…

RESTful风格接口设计

我们平常开发一般只使用GET、POST方法。而对于HTTP给出的PUT、DELETE等其他方法都没使用。以RESTful风格设计接口就能全部用上这些方法。 按照RESTful理查德森成熟度模型改造接口 这个模型跟数据库范式等级相似,都是一层一层满足。我们的mvc接口不好说是哪一级,一般都是每个操…