无毛刺时钟切换电路

news/2024/11/8 21:04:42/

为了SOC设计的低功耗性,多时钟域的划分是常用手段之一,有两个时钟,A为50Mhz,B为100Mhz,请设计无毛刺时钟切换电路,根据控制信号control,输出所需时钟信号

control信号至少对一个时钟信号为异步信号,导致了毛刺的出现,假如control,clk_50M,还是clk_100M都是边沿完全同步的理想信号话,应该是不会出现毛刺的

所以避免毛刺发生的方法顺理成章地过渡到了“异步信号同步化”这个理论上面,毫无疑问,肯定是需要打拍/采样的方式。我们打两拍,第一拍可以采用上升沿,第二拍可以采用下降沿。

在这里插入图片描述

 control信号无论是从上面通过还是从下面通过,都经过两级采样,避免了亚稳态的出现
后一级的DFF用下降沿采样,避免了采样毛刺的出现
第二级DFF的not Q的逻辑以负反馈的形式接回了输入,取了与逻辑,构建起50M时钟和100M时钟的关系,代表着切换前时钟等待一阵子后,才会转换到切换后时钟,避免了切换毛刺的出现
最终上面的电路和下面的电路,以或的逻辑相取,输出clk_output.

 在这里插入图片描述

 


原文链接:https://blog.csdn.net/weixin_43698385/article/details/125540056


http://www.ppmy.cn/news/85161.html

相关文章

单目相机通过图像分析方式如何计算物体上下运动距离地面的高度?

要通过固定安装的摄像头计算物体上下运动距离地面的高度,可以采用计算机视觉和图像处理技术。以下是一个详细的步骤说明: 1. **摄像头准备和安装**:首先,确保摄像头已经正确安装,并能捕获到物体的上下运动。为了获得更…

conda环境安装使用教程

conda,anaconda,miniconda傻傻分得清楚 Conda是一个开源的包管理系统和环境管理系统,可以用于安装、管理和卸载软件包以及创建和管理虚拟环境。Anaconda是一个基于Python的数据科学平台,包括Python解释器、Conda包管理器、Jupyte…

azkaban使用了解

https://github.com/azkaban/azkaban/tags https://codeload.github.com/azkaban/azkaban/tar.gz/refs/tags/3.84.4 Azkaban是一套简单的任务调度服务,整体包括三部分webserver、dbserver、executorserver。Azkaban 为 LinkedIn 开源的分布式工作流调度框架&#…

(IDEA)springCloud项目导入本地jar包方法和项目打包时找不到引入本地jar包的问题解决方案

idea导入本地jar包 方法一:点击左上角File–>Project Structure–>Modules。打开Modules界面点击下方号,选择第一项,找到想要导入的本地jar包。此方法可以使项目使用导入的jar包程序不报错,但是在打包项目时,会出现找不到程…

TCP通讯(三次握手、四次挥手;滑动窗口;TCP状态转换;端口复用;TCP心跳检测机制)

前言:建议看着图片,根据文字描述走一遍TCP通讯过程,加深理解。 目录 TCP通信时序: 1)建立连接(三次握手)的过程: 2)数据传输的过程: 3)关闭连…

How-to-generate-kernel

文章目录 前言一、协方差判断卷积核相关性问题一: 不同的样本空间?问题二:计算方式?想法 二、整体流程三、BSConv-核内相似性 前言 在常规卷积的过程中找到相关性低的一部分卷积核,利用这部分卷积核结合深度可分离卷积搭建起新的…

SylixOS环境变量操作函数接口

SylixOS中环境变量操作函数存在两套接口:原生的API_TShellVar系列接口和POSIX标准的env接口。 功能var接口env接口拷贝获取一个环境变量值API_TShellVarGetRtgetenv_r引用获取一个环境变量值API_TShellVarGetgetenv设置/新增一个环境变API_TShellVarSetsetenv删除一…

rust 智能指针

Rust中基本数据类型&#xff08;如整数、浮点数、布尔值等&#xff09;通常存储在栈上。而动态分配的数据&#xff0c;如Box<T>和Vec<T>等&#xff0c;存储在堆上。 Box 智能指针 Rust 中 Box 是一种智能指针类型&#xff0c;通常用于将值放置在堆上而不是栈上。…