0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数字电路设计中跨时钟域处理的亚稳态

FPGA之家 来源:FPGA开发之路 作者:FPGA开发之路 2021-08-25 11:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

数字电路设计中遇到跨时钟域(Clock Domain Crossing, CDC)的电路时一般都需要特别的处理,例如同步器,异步FIFO等。那么为什么CDC需要特别的处理,如果不做处理又会导致什么问题。

亚稳态

我们都知道数字电路中有两个最重要的概念,建立时间和保持时间。通过满足建立时间和保持时间,我们可以确保信号被正确的采样,即1采到便是1,0采到便是0。但是如果不满足建立时间和保持时间,采到的信号会进入一个不稳定的状态,无法确定是1还是0,我们称之为亚稳态。这个亚稳态的信号会在一段时间内处于震荡状态,直到稳定,而稳定后的状态值与被采样值无关,可能是0也可能是1。

图1【1】所示的是异步时钟采样失败的情况。当数据(adat)的变化离采样时钟(bclk)的变化沿很近时,由于不满足建立时间,导致采样到的信号(bdat1)进入亚稳态。

异步时钟由于时钟相位不同,图1的情况往往难以避免,这也是跨时钟域时容易发生亚稳态的原因。

亚稳态会导致什么问题

由于亚稳态的信号会在一段时间内处于震荡状态,后续不同的逻辑可能会将该信号识别为不同的状态值,甚至是后续逻辑也出现亚稳态的情况,导致逻辑的错误和混乱,比如状态机出现错误的跳转从而锁死在某个状态。

同步器

第一级触发器采样后出现亚稳态,第二级触发器在经过一个时钟周期的等待之后采样到一个稳定状态的信号,达到消除不定态的目的。不过要注意,这样的同步器只是减小了亚稳态发生的概率,并不能完全消除亚稳态的发生。而亚稳态发生的概率的大小一般可以用MTBF(Mean Time Between Faliure)来表示。MTBF的值越小表示亚稳态发生的频率越高。

表示了MTBF的影响因子,可以看到,当时钟频率越高,数据发生变化的频率越高,MTBF越小,即亚稳态发生的频率也越高。

对于一些高频电路设计,两级触发器所构成的同步器MTBF仍然很小,这时候可以考虑再添加一级触发器,即使用三级触发器。另外,我们也希望当数据被异步时钟采样时数据的变化频率也尽可能小,因此一般数据在跨时钟域之前最好可以用寄存器打一拍,减少数据的变化,从而减小亚稳态发生的概率。

值得注意的是,同步器的使用只是消除了不定态,但是同步器的输出仍然可能是错误的,可能被采样的信号是1,但是同步器输出的确是0。这样的错误是否是电路可以接受的要依据不同的设计来看,这便涉及到另外一个话题,如何使系统对产生的错误不敏感,本文暂不讨论。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电路
    +关注

    关注

    173

    文章

    6063

    浏览量

    177474
  • 时钟
    +关注

    关注

    11

    文章

    1953

    浏览量

    134543
  • 同步器
    +关注

    关注

    1

    文章

    117

    浏览量

    15527

原文标题:跨时钟域处理-亚稳态与同步器

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    高速数字电路设计与安装技巧

    内容简介: 详细介绍印制电路板的高速化与频率特性,高速化多层印制电路板的灵活运用方法,时钟信号线的传输延迟主要原因.高速数字电路板的实际信号波形,传输延迟和歪斜失真的
    发表于 09-06 15:21

    异步时钟处理方法大全

    该方法只用于慢到快时钟的1bit信号传递。在Xilinx器件,可以使用(* ASYNC_REG = "TRUE" *)标记,将两个寄存器尽量靠近综合,降低 亚稳态因导线延迟太大而传
    的头像 发表于 05-14 15:33 1280次阅读
    <b class='flag-5'>跨</b>异步<b class='flag-5'>时钟</b><b class='flag-5'>域</b><b class='flag-5'>处理</b>方法大全

    模拟示波器在电路设计与调试的应用

    电路的性能。例如,在高速数字电路设计,模拟示波器能帮助工程师捕捉到那些瞬间变化的信号,通过调整电路参数确保数据的准确传输。 波形观测与分析: 模拟示波器能够实时显示
    发表于 03-31 14:07

    数字电路—24、计数器

    数字电路,能够记忆输入脉冲个数的电路称为计数器
    发表于 03-26 15:13

    数字电路—23、寄存器

    数字电路,用来存放二进制数据或代码的电路称为寄存器。
    发表于 03-26 15:11

    数字电路设计:前端与后端的差异解析

    本文介绍了数字电路设计“前端”和“后端”的区别。 数字电路设计“前端”和“后端”整个过程可类比盖一栋大楼:前端好比建筑师在图纸上进行功能和布局的抽象设计,后端则是工程队把图纸变成实
    的头像 发表于 02-12 10:09 1332次阅读

    数字电路有哪些特点和作用

    在电子技术领域,数字电路具有一系列鲜明的特点,这些特点使其在众多应用场景中发挥关键作用,推动着现代科技不断向前发展。 信号的离散性是数字电路最为突出的特点之一。数字电路处理
    的头像 发表于 02-04 17:17 1570次阅读

    数字电路与控制系统关系

    的基本概念 数字电路,也称为数字电子技术,是处理数字信号的电子电路。这些信号通常是二进制的,即由0和1组成的序列。
    的头像 发表于 01-24 09:43 1160次阅读

    数字电路在嵌入式系统的应用

    和可靠性。 数字电路的基本概念 数字电路是由逻辑门、触发器、计数器等基本数字元件构成的电路,它们处理的是离散的
    的头像 发表于 01-24 09:41 1148次阅读

    数字电路编程语言介绍

    文本形式描述电路的行为和结构。 并行性和并发性 :数字电路编程语言支持并行和并发操作的描述,这是数字电路设计的基本特性。 模块化 :这些语言支持模块化设计,允许设计师将复杂的
    的头像 发表于 01-24 09:39 1390次阅读

    数字电路与模拟电路的区别

    可以是电压、电流或任何其他物理量,它们随时间连续变化。模拟电路的信号通常不进行量化,这意味着它们可以取任意值。模拟电路的例子包括放大器、滤波器和振荡器等。 1.2 数字电路 与模拟
    的头像 发表于 01-24 09:36 2105次阅读

    模拟电路数字电路的区别

    在现代电子技术,模拟电路数字电路是两种截然不同的电路类型,它们各自有着独特的特点和应用场景。 一、信号处理方式 模拟
    的头像 发表于 01-24 09:22 2048次阅读

    卡诺图在数字电路的应用

    卡诺图(Karnaugh map,简称K-map)在数字电路具有广泛的应用,它主要用于布尔代数表达式的简化和最小化,从而优化数字电路的设计。以下是卡诺图在数字电路
    的头像 发表于 01-14 17:08 2331次阅读

    BJT在数字电路的应用

    数字电路设计,BJT因其独特的电气特性和成本效益而被广泛使用。BJT可以作为开关使用,控制电流的流动,从而实现逻辑功能。 1. BJT作为开关 在数字电路,BJT最常见的应用之一
    的头像 发表于 12-31 16:34 1596次阅读

    如何使用 Verilog 进行数字电路设计

    使用Verilog进行数字电路设计是一个复杂但有序的过程,它涉及从概念设计到实现、验证和优化的多个阶段。以下是一个基本的步骤指南,帮助你理解如何使用Verilog来设计数字电路: 1. 明确设计需求
    的头像 发表于 12-17 09:47 1754次阅读