【IC设计】跨时钟异步处理系列——单比特跨时钟

news2024/11/15 12:23:43

文章目录

  • 建立时间和保持时间
  • 单比特信号的跨时钟处理
    • 慢时钟域的信号传输到快时钟域
      • 打两拍
    • 快时钟域的信号传输到慢时钟域
      • 方案一 脉冲展宽+同步 (打拍打拍,进行或)
        • 代码
        • 原理图
      • 方案二 脉冲电平检测+双触发器同步+边沿检测
        • 代码
        • 原理图

建立时间和保持时间

  1. 所谓的建立时间或者保持时间都是在描述一种时钟变化的边沿上的数据状态。
  2. 建立时间:在时钟的有效沿(以上升沿为例)到来之前,数据的输入端信号必须保持稳定的最短时间
  3. 保持时间:在时钟的有效沿(以上升沿为例)到来之后,数据的输入端信号必须保持稳定的最短时间

单比特信号的跨时钟处理

慢时钟域的信号传输到快时钟域

打两拍

快时钟域的信号传输到慢时钟域

在这里插入图片描述
如图所示,第一行是脉冲信号,第二行是慢时钟域的时钟。如果从快时钟域要同步一个脉冲信号到慢时钟域,容易出现上升沿没有采样到脉冲信号的情况。

方案一 脉冲展宽+同步 (打拍打拍,进行或)

在这里插入图片描述

代码
module fast2slow_cdc 
(
    input   i_clk_f     ,
    input   i_pluse_f   ,
    input   i_rst_n     ,
    input   i_clk_s     ,
    output  o_pluse_s  
);
/*
always @(posedge i_clk_f) begin
    r_pluse[0] <= i_pluse_f  ;
    r_pluse[1] <= r_pluse[0] ;
    r_pluse[2] <= r_pluse[1] ;
    r_pluse[3] <= r_pluse[2] ;
    r_pluse[4] <= r_pluse[3] ;
end
*/

reg [2:0]    r_pluse    ;
always @(posedge i_clk_f or negedge i_rst_n) begin
    if(~i_rst_n)    begin
        r_pluse <=  'b0;
    end
    else begin
        r_pluse <= {r_pluse[1:0],i_pluse_f};
    end
end

wire   w_pluse ;
assign  w_pluse = |r_pluse ;


reg   r_pluse_d0  ;
reg   r_pluse_d1  ;
always @(posedge i_clk_s) begin
    r_pluse_d0 <= w_pluse    ;
    r_pluse_d1 <= r_pluse_d0 ;
end

assign  o_pluse_s = r_pluse_d1 ;

endmodule

存在的问题:采用脉冲展宽+同步,在或时可能产生毛刺

原理图

在这里插入图片描述

方案二 脉冲电平检测+双触发器同步+边沿检测

优点: 对时序比较友好
缺点: 相邻的脉冲太近时,会检测不到
在这里插入图片描述

代码
module fast2slow_cdc2(
	input	i_clk_f			,
	input	i_pluse_f		,
	input	i_clk_s			,
	output	o_pluse_s
);
	reg	r_temp	=	0	;
	always@(posedge i_clk_f)	begin
		if(i_pluse_f)
			r_temp	    <=	~r_temp;
		else
			 r_temp	<=	r_temp;
	end
	reg	r_temp_d0;
	reg	r_temp_d1;
	reg	r_temp_d2;
	always@(posedge i_clk_s)	begin
		r_temp_d0	<=	r_temp		;
		r_temp_d1	<=	r_temp_d0	;
		r_temp_d2	<=	r_temp_d1	;
	end
	assign o_pluse_s	=	r_temp_d2	^	r_temp_d1	;
endmodule
原理图

在这里插入图片描述

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

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

相关文章

python可视化-漏斗图(转化分析)

1、数据生成 from scipy import stats# 构造数据 stage [浏览,加入购物车,下单,支付,交易成功] values [] for i in range(len(stage)):values.append(int(1000*stats.expon.pdf(i, scale0.95))) 2、基于漏斗图的转化分析 from pyecharts import options as opts from pye…

HarmonyOs如何获取rawfile目录下的所有文件列表

最近在做一个功能&#xff0c;需要使用获取rawfile下目录的所有文件 参考连接为&#xff1a; zRawfile-模块-C API-Localization Kit&#xff08;本地化开发服务&#xff09;-应用框架 - 华为HarmonyOS开发者 (huawei.com) 需要使用到native实现&#xff0c;实现步骤&#…

redis面试(二十四)Semaphore锁实现

Semaphore也是redis分布式锁支持的一种&#xff0c;同步组件 之前给大家的讲解的锁&#xff0c;基本上都是同时间只能一个客户端获取这个锁&#xff0c;然后做一些事情&#xff0c;处理完了以后释放锁 Semaphore&#xff0c;信号量&#xff0c;他作为一个锁机制&#xff0c;可以…

Charles苹果手机https抓包

1、电脑设置Charles代理端口 1)设置代理端口 Proxy-》Proxying Settings-》HTTP Proxy 设置端口 2)设置监控的代理地址 Proxy-》SSL Proxying Settings 添加Add允许所有地址*.* 2、电脑导入Charles的ssl证书 3、电脑查看Charles的IP地址和端口 4、手机无线wifi配置代理 5、手…

kubernetes HPA

K8S的HPA介绍 在Kubernetes&#xff08;K8S&#xff09;集群管理中&#xff0c;Horizontal Pod Autoscaler&#xff08;HPA&#xff09;是一种关键的自动扩缩容机制&#xff0c;用于根据当前负载情况自动调整Pod副本的数量。这一机制能够显著提升应用的响应能力和资源利用率&a…

虚幻5|按键触发学习

一&#xff0c;如图参考 1.下移 驱动阈值 越大按时间长才会触发&#xff0c;越小很快就可以触发 2.按下 当按下超出驱动阈值大小就会触发一次&#xff0c;这里的驱动阈值只能设置再0.1~1的大小 3.已松开 当按下的时候&#xff0c;先触发单次的started&#xff0c;如果按压…

华为OD 山峰个数 C语言实现

不知道是不是我理解错了&#xff0c;这个题目200分&#xff1f; int main(void) {int i 0;int len 0;char c \0;int data[1000] {0};int temp[1000] {-1};int top 0;int count 0;while(scanf("%d",&data[i]) 1){i;len;cgetchar();if(c \n){break;}}// …

【调研】弱网环境下分片上传方案调研

目标 在高延迟、高丢包的弱网环境下&#xff0c;合理调整上传任务中分片大小这一参数&#xff0c;以达到尽可能好的传输性能&#xff08;传输时间、成功率&#xff09;。 调研 腾讯云弱网分块续传功能 腾讯云的弱网分块续传功能&#xff0c;基于腾讯云对象存储(Cloud Object…

Redis单线程和多线程

1.Redis的单线程 Redis的单线程主要是指Redis的网络IO和键值对读写是由一个线程完成的&#xff0c;Redis在处理客户端的请求时包括获取&#xff08;Socket读&#xff09;、解析、执行、内容返回&#xff08;Socket写&#xff09;等都由一个顺序串行的主线程处理&#xff0c;这…

OpenCV绘图函数(3)判断点一条直线是否在一个矩形范围内的函数clipLine()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 裁剪线段与图像矩形相交的部分。 cv::clipLine 函数计算出完全位于指定矩形内的线段部分。如果线段完全位于矩形之外&#xff0c;则返回 false。…

实现流程化办公,可专注于开源可视化报表设计器!

近日&#xff0c;有很多粉丝和朋友们会问我们关于低代码技术平台、开源可视化报表设计器的相关内容和问题。其实&#xff0c;在流程化办公新时代&#xff0c;愿意启用新软件平台的客户朋友会收获市场红利&#xff0c;也会站在前沿之地上斩获更多市场份额。今天我们就一起来了解…

【LLM之Data】SKYSCRIPT-100M论文阅读笔记

研究背景 随着短视频和短剧的兴起&#xff0c;自动化的剧本生成和短剧制作在影视行业中的需求逐渐增加。传统的剧本生成过程需要大量的人工干预&#xff0c;限制了其在规模和效率上的扩展性。当前的大型语言模型&#xff08;LLM&#xff09;在剧本生成方面展现出一定潜力&…

Leetcode面试经典150题-5.最长回文子串

解法都在代码里&#xff0c;不懂就留言或者私信 class Solution {public static String longestPalindrome(String s) {if(s null || s.length() 0) {return null;}//加工字符串&#xff0c;例如abcdcba加工成#a#b#c#d#a#b#c#d#String str getManacherString(s);char[] str…

UWB实操:用litepoint确认UWB SP0和SP3帧长度

用litepoint确认UWB SP0和SP3帧长度 预备知识 SP0 frame length Sync+SFD = 65.1+ 8.1 = 73 us

uniapp定义scss颜色变量deep()修改子组件样式

uni.scss中 import "/common/style/base-style.scss"; 在base-style.scss中 $brand-theme-color:#28B389;//品牌主体红色$border-color:#e0e0e0 ; $border-color-light:#efefef; $text-font-color-1: #000 ;//文字主色 $text-font-color-2:#676767;//副标题颜色 $…

​​聆思CSK6大模型语音视觉开发板接入AIUI技能实操(控制风扇开关)

前言 本文以大模型语音控制灯的开关为例,讲解如何通过LSPlatform的云端编排功能在大模型语音交互流程中加入AIUI技能&#xff0c;实现更丰富的产品功能。 大模型语音模板加入AIUI技能节点后的数据流程如下图所示&#xff1a; 大模型语音控制AIUI之风扇 硬件准备工作 聆思CSK6大…

使用 FinalShell 链接 Centos

1. 安装 FinalShell 下载地址&#xff1a;https://www.hostbuf.com/t/988.html 2. 查看 IP地址。 2.1 通过命令查询IP 输入 ip addr show 查询&#xff0c;输出效果如下截图&#xff0c;其中的 192.168.1.5 就是 IP 地址。 2.2 通过可视化界面查询IP 点击右上角的网络图标…

LLM自对齐技术最新研究分享(二):对齐 Pipeline 数据合成(下)

LLM 自对齐技术最新研究进展分享 系列文章继续更新啦&#xff01;本系列文章将基于下图的架构&#xff0c;对当前 Self-alignment 相关工作进行全面梳理&#xff0c;厘清技术路线并分析潜在问题。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 在上一篇…

MySQL数据库——概念与安装

目录 一、数据库的概述 1、数据库的基本概念 2、数据库管理系统&#xff08;DBMS&#xff09; 2.1、数据库管理系统概述 2.2、DBMS的工作模式 3、数据库系统&#xff08;DBS&#xff09; 3.1、数据库系统概述 3.2、数据库系统发展史 3.3、当今主流数据库介绍 4、关系…

VS2022离线安装包 - 下载安装教程

总目录 前言 一般情况下我们都是通过网络下载并安装VS2022&#xff0c;但是有些情况下&#xff0c;由于公司内部网络管理比较严格&#xff0c;可能会需要安装离线安装包这样的操作。 一、下载Visual Studio bootstrapper 进入Visual Studio bootstrapper下载界面按照如下图示…