首页 > 其他分享 >2级同步引发的思考

2级同步引发的思考

时间:2024-10-29 11:58:04浏览次数:3  
标签:采样 触发器 同步 引发 亚稳态 思考 bit 时钟

1. 2级同步的第二拍亚稳态出现概率非常小,但是也有可能出现,这一点对于从慢到快和从快到慢都是一样的;
如果认为第二拍亚稳态不会出现的话,从慢到快从功能上,一定可以采到正确的值;从快到慢从功能上,不一定
可以采到正确的值;

电路如下所示:

 

时序如下所示:

 

 

情况1和情况2都是假定q2不会出现亚稳态,情况3假定q2发生了概率极小的亚稳态事件。

对于从慢到快,情况1和情况2都采到了正确的值,功能正确;情况3时序说明2级同步失败;

对于从快到慢,情况1采到了正确的值,功能正确,情况2采到了错误的值,功能错误;情况3时序说明2级同步失败;


2.接下来说明q2出现亚稳态的概率极小的原因,从MTBF角度分析:首先MTBF(Mean Time Between Failures):触发器采样失败的时间间隔;

每一个触发器都有其规定的建立(setup)和保持(hold)时间参数, 在这个时间参数内, 输入信号在时钟的上升沿是不允许发生变的。 如果在信号的建立时间中对其进行采样, 得到的结果将是不可预知的,即亚稳态。

触发器进入亚稳态的时间可以用参数 MTBF(mean time between failures)来描述, MTBF即触发器采样失败的时间间隔,其公式描述如下:

 

通常,MTBF越大说明系统采样失败的可能越小。可见,对于高速的设计,MTBF是更容易发生的。对于一个典型的 0.25µm 工艺的 ASIC 库中的一个触发器,我们取如下的参数:

tr = 2.3ns, τ = 0.31ns, T0 = 9.6as, f=100MHZ, a = 10MHZ, MTBF = 2.01 days

也就是说触发器以100MHZ工作,假设异步事件触发的频率,也就是数据变化的频率10M。我们用100MHZ的频率去不停地采它的数据,则每两天第一级触发器就可能采集到一次亚稳态。

为了避免所述的亚稳态问题,就应当使参数 MTBF 尽可能的大,通常采用的方法 是双锁存器法,即在一个信号进入另一个时钟域之前,将该信号用两个锁存器连续锁存两次, 最后得到的采样结果就可以消除亚稳态问题。

也就是说,第二级触发器采样失败的间隔时间是9.57*10……9年。

 

3.从电路角度去看亚稳态这件事,可以得到如下分析:

触发器发生亚稳态后,Q端电平是增加还是减小去否取决于CLK采样D端是大于0.5VDD,还是小于
0.5VDD?最终将稳定到1或0? 当采到0.5VDD时,Q端电平将如何变化?
从定性的角度来看,CLK采样D端大于0.5VDD,最终将稳定到1,CLK采样D端小于0.5VDD,最终将稳定到0,但是实际上跟触发器本身阈值电压密切相关,
例如触发器阈值电压0.2VDD,那么CLK采样D端0.3VDD,最终触发器输出也有可能为1,因此只是一个定性的分析,无法说给出一个确定的亚稳态最终
将稳定到何值的预测;
采样到0.5VDD时,Q端电平和采样到非0.5VDD时一样,没有区别,0.5VDD并不是一个特例。


格雷码同步多bit信号有一个大的前提条件,即此多bit信号是连续递增或递减的,在此基础上分类讨论:
1.多bit信号时钟域相比module时钟域是慢时钟域,那么多bit信号虽然中间值有可能出现1bit错误,但是下一拍此值可以正确被同步,
因此多bit信号的每一个信号都是可以正确被同步的;
2.多bit信号时钟域相比module时钟域是快时钟域,那么除了多bit信号中间值有可能出现1bit错误外,多bit信号的值是被间隔着同步的,
无法做到每一个值都被正确同步;

如下图所示:

对应时序图解释:

 

 

因此使用格雷码计数器同步多bit信号这种CDC方式很受限,基本上只在异步FIFO中有用到;但是在具体设计中如果满足以上格雷码同步的前提,并知晓格雷码同步

后的结果,可以做出对应设计。例如一个module输入10bit信号sig,慢于module时钟域且sig是逐次递增的,想要将sig同步的module时钟域,那么可以用格雷码同步。

 

4. 多bit寄存器动态可配这件事如何去做?转化成格雷码,寄存器时钟域打一拍,然后同步取沿,用取到的沿
去寄存变化的寄存器值;这样的话,假定无论寄存器打出时钟是快还是慢,寄存器本身的变化是慢于使用寄存器
的module的时钟的,那么从快到慢和从慢到快都是可以这样去做;不能这样做,因为寄存器值的变化不是连续的!!
有什么别的方法吗?

用握手方式去做,即reg_wr脉冲同步到module时钟域,然后module时钟域的pulse有效时,将写数据寄存到module时钟域,在此期间,注意写数据是hold住不变的。

标签:采样,触发器,同步,引发,亚稳态,思考,bit,时钟
From: https://www.cnblogs.com/senyingpengpeng/p/18512672

相关文章

  • 【项目实战】分布式日志搜索系统之数据同步方案(Logstash-input-jdbc、go-mysql-elast
    在构建分布式日志搜索系统时,数据同步是一个核心环节。以下是针对您提出的五种数据同步方案的详细分析:一、Logstash-input-jdbcLogstash是ElasticStack的一部分,用于从各种来源收集数据,并将其发送到Elasticsearch。Logstash-input-jdbc插件允许Logstash从关系型数据库(如My......
  • 项目升级到.Net8.0 Autofac引发诡异的问题
    前两天把项目升级到.Net8.0了,把.Net框架升级了,其他一些第三方库升级了一部分,升级完以后项目跑不起来了,报如下错误:Anunhandledexceptionoccurredwhileprocessingtherequest.DependencyResolutionException:Noneoftheconstructorsfoundwith'Autofac.Core.Activators......
  • FreeRTOS同步互斥与通信(有缺陷的同步示例,有缺陷的互斥示例)
    同步互斥1.同步同步指的是协调多个线程或进程的执行顺序,以确保某些操作按预期的顺序进行。同步主要用于解决依赖关系的问题,确保线程之间的协调。目的:保证操作的顺序,确保某些条件成立前不进行后续操作。实现方式:信号量:控制访问共享资源的数量,可以限制同时访问的线......
  • 算法汇总整理篇——回溯与图论的千丝万缕及问题的抽象思考
    回溯算法(重中之重)回溯法解决的问题都可以抽象为树形结构,集合的大小就构成了树的广度,递归的深度就构成了树的深度。(回溯的核心:分清楚什么数据作为广度,什么数据作为深度!!!!!)voidbacktracking(参数){if(终止条件){存放结果;return;}for......
  • 【Nginx系列】关于一次请求超时的思考
    ......
  • 同步电机与异步电机的区别
    同步电机和异步电机是电机领域中常见的两种类型,它们在工作原理、性能特点和应用领域上存在显著差异。本文将深入探讨同步电机和异步电机之间的区别,以帮助读者更好地理解它们的运行原理和适用场景。引言电机是现代工业和家庭中不可或缺的设备之一。同步电机和异步电机是两种常......
  • 线程同步(互斥锁条件变量)
     线程同步互斥锁(互斥量)条件变量生产/消费者模型一、互斥锁C++11提供了四种互斥锁:mutex:互斥锁。timed_mutex:带超时机制的互斥锁。recursive_mutex:递归互斥锁。recursive_timed_mutex:带超时机制的递归互斥锁。包含头文件:#include<mutex>1、mutex类1)加锁lock()互斥锁......
  • 节能型后台数据同步器:HarmonyOS Next的智能延迟任务管理
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、项目背景与需求分析后台数据同步......
  • 轻易云平台成功实现金蝶云星空与马帮的数据同步
    新增供应商同步金蝶=》马帮(测试通过)在企业信息化系统中,数据的高效集成与同步是确保业务流程顺畅运行的关键环节。本文将分享一个实际案例,展示如何通过轻易云数据集成平台实现金蝶云星空与马帮之间的数据对接。具体方案为“新增供应商同步金蝶=》马帮(测试通过)”。在这个案例中,我......