新芯计划(0)同步设计——亚稳态

2024-05-03 23:36

本文主要是介绍新芯计划(0)同步设计——亚稳态,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、亚稳态是什么
  • 二、亚稳态概率


前言

马上成为新ICer,利用空闲时间展开对自己的首轮培训,取名为”新芯计划“哈哈哈
这个系列主要给自己做个基础知识的巩固,本节的内容围绕亚稳态展开,如若有内容有误,欢迎和感谢各位指正
参考文章:MTBF 是如何指导跨时钟域设计的


一、亚稳态是什么

亚稳态发生于 :

  • 输入数据不满足时钟的建立/保持时间
  • 复位信号不满足时钟的Recovery/Removal时间
    在这里插入图片描述
    以不满足建立时间为例:
    在这里插入图片描述

经过寄存器延时 T c o T_{co} Tco,经过 T m e t T_{met} Tmet的振荡时间,此时间段内信号不稳定,在0和1之间变化,即为亚稳态,当振荡结束回到稳定状态0或者1,这是随机的。亚稳态往后传播可能导致系统电路瘫痪,影响恶劣,因此跨时钟的同步设计是非常重要的一环,跨时钟域所做的一切努力,只是为了防止亚稳态造成电路功能失败。

二、亚稳态概率

亚稳态发生概率通常使用MTBF(Mean Time Between Failure)值来衡量:
M T B F = e t M E T / T a u T o ∗ f C L K ∗ f D A T A MTBF = \frac{e^{t_{MET}/T_{au}}}{T_{o}*f_{CLK}*f_{DATA}} MTBF=TofCLKfDATAetMET/Tau
MTBF表示亚稳态导致电路功能失败的平均时间,其值越大,表示失败发生所需要的时间越长,那么电路就越稳定

式中,

  1. T a u T_{au} Tau T o T_{o} To为常数,由芯片制造工艺和工作环境决定
  2. t M E T t_{MET} tMET为等待亚稳态稳定的可用时间,其值越大表示亚稳态在此时间内越可能恢复到稳定状态,电路越可靠
  3. f C L K f_{CLK} fCLK表示接收时钟域的时钟频率
  4. f D A T A f_{DATA} fDATA表示待接收信号所在时钟域的时钟频率

MTBF 影响了哪些跨时钟域的设计细节 ?
参考文章:MTBF 是如何指导跨时钟域设计的

  • 源时钟域异步信号要寄存器输出

寄存器输出可以避免毛刺,毛刺意味着什么,异步信号的跳变。也就是说寄存器输出可以减少异步信号的跳变,即减小 fdata 的值,使 MTBF 变大,电路则更不容易失败。

  • 时钟频率越高时,同步器级联的寄存器数目越多

时钟频率越高,fclk 越大,MTBF 越小,电路越容易因为亚稳态失效。因此为了增大 MTBF 的值,可以通过增加级联的寄存器,从而增加 tMET 的值

  • 布局约束时,同步器级联的寄存器越近越好,尤其是当时钟频率很高时

当 FF1 与 FF2 越近,FF1 与 FF2 的连线越可能短,FF2 的 timing slack 则越大,tMET 的值便越大,因而 MTBF 越大。

同步化不仅要考虑打拍级数(一般>300MHz,打拍级数>5),还要考虑后端约束:
Xilinx 有两个专门的约束:

 1. ASYNC_REG="TRUE" :约束同步寄存器尽可能靠近2. SHREG_EXTRACT="NO" :约束同步寄存器不被综合成移位寄存器

这篇关于新芯计划(0)同步设计——亚稳态的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/957896

相关文章

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Mac备忘录怎么导出/备份和云同步? Mac备忘录使用技巧

《Mac备忘录怎么导出/备份和云同步?Mac备忘录使用技巧》备忘录作为iOS里简单而又不可或缺的一个系统应用,上手容易,可以满足我们日常生活中各种记录的需求,今天我们就来看看Mac备忘录的导出、... 「备忘录」是 MAC 上的一款常用应用,它可以帮助我们捕捉灵感、记录待办事项或保存重要信息。为了便于在不同

查看MySql主从同步的偏移量方式

《查看MySql主从同步的偏移量方式》:本文主要介绍查看MySql主从同步的偏移量方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 1.mysql的主从同步方案mysqlphp为了在实现读写分离,主库写,从库读mysql的同步方案主要是通过从库读取主库的binl

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步