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

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

    关注

    170

    文章

    5482

    浏览量

    169552
  • 时钟
    +关注

    关注

    10

    文章

    1479

    浏览量

    130306
  • 同步器
    +关注

    关注

    1

    文章

    78

    浏览量

    14489

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

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

收藏 人收藏

    评论

    相关推荐

    什么是时钟信号?数字电路时钟信号是怎么产生呢?

    什么是时钟信号?数字电路时钟信号是怎么产生呢? 时钟信号,也称为时钟脉冲,是用于同步数字电路
    的头像 发表于 01-25 15:40 2179次阅读

    两级触发器同步,就能消除亚稳态吗?

    原理 两级触发器同步是一种数字电路设计技术,用于确保数据在传输过程中的可靠性。它通过两级触发器的级联来实现同步传输,可以有效地减少数据传输中的噪声、时钟抖动等因素对数据的干扰和误差。 在两级触发器同步中,两个触发器都由同一
    的头像 发表于 01-16 16:29 372次阅读

    数字电路中的亚稳态产生原因

    亚稳态是指触发器的输入信号无法在规定时间内达到一个确定的状态,导致输出振荡,最终会在某个不确定的时间产生不确定的输出,可能是0,也可能是1,导致输出结果不可靠。
    的头像 发表于 11-22 18:26 1252次阅读
    <b class='flag-5'>数字电路</b>中的<b class='flag-5'>亚稳态</b>产生原因

    硬件电路设计之晶体与晶振电路设计

      晶体与晶振在电路设计中的应用十分广泛,对于数字电路,一个稳定的时钟信号,是系统稳定的前提。
    的头像 发表于 11-22 10:44 715次阅读
    硬件<b class='flag-5'>电路设计</b>之晶体与晶振<b class='flag-5'>电路设计</b>

    FPGA/CPLD数字电路设计经验分享

    电子发烧友网站提供《FPGA/CPLD数字电路设计经验分享.pdf》资料免费下载
    发表于 11-21 11:03 3次下载
    FPGA/CPLD<b class='flag-5'>数字电路设计</b>经验分享

    FPGA项目开发之同步信号和亚稳态

    位同步器同步多个数据位,因为不能保证传输的数据对齐,从而导致数据损坏。还需要注意recombination,这是两个或多个静态信号跨越时钟并在逻辑功能重组的地方。由于亚稳态恢复,同
    发表于 11-03 10:36

    时钟信号的同步 在数字电路里怎样让两个不同步的时钟信号同步?

    时钟信号的同步 在数字电路里怎样让两个不同步的时钟信号同步? 在数字电路中,时钟信号的同步是非常重要的问题。因为在信号
    的头像 发表于 10-18 15:23 869次阅读

    FPGA设计中的亚稳态解析

    说起亚稳态,首先我们先来了解一下什么叫做亚稳态亚稳态现象:信号在无关信号或者异步时钟域之间传输时导致数字器件失效的一种现象。
    的头像 发表于 09-19 15:18 1310次阅读
    FPGA设计中的<b class='flag-5'>亚稳态</b>解析

    亚稳态理论知识 如何减少亚稳态

    亚稳态(Metastability)是由于输入信号违反了触发器的建立时间(Setup time)或保持时间(Hold time)而产生的。建立时间是指在时钟上升沿到来前的一段时间,数据信号就要
    的头像 发表于 09-19 09:27 434次阅读
    <b class='flag-5'>亚稳态</b>理论知识 如何减少<b class='flag-5'>亚稳态</b>

    FPGA设计拦路虎之亚稳态度决定一切

    亚稳态这种现象是不可避免的,哪怕是在同步电路中也有概率出现,所以作为设计人员,我们能做的是减少亚稳态发生的概率。
    发表于 08-03 09:04 254次阅读
    FPGA设计拦路虎之<b class='flag-5'>亚稳态</b>度决定一切

    亚稳态的分析与处理

    本文主要介绍了亚稳态的分析与处理
    的头像 发表于 06-21 14:38 2449次阅读
    <b class='flag-5'>亚稳态</b>的分析与<b class='flag-5'>处理</b>

    简谈数字电路设计的抖动

    和大侠简单聊一聊数字电路设计的抖动,话不多说,上货。 既然说到了抖动,那么什么是抖动?那首先我们就来了解一下什么是抖动。 一、抖动的几个重要概念 1、抖动的基本概 在理想情况下,一个频率固定
    发表于 06-02 17:53

    高级FPGA设计技巧!多时钟和异步信号处理解决方案

    特信号异步时钟传输时,用来将该单比特信号重新同步到异步时钟。 理论上来说,第一个触发器的输出应该一直保持不确定的亚稳态,但是在现实
    发表于 06-02 14:26

    FPGA入门之复位电路设计

    前面在时序分析中提到过亚稳态的概念,每天学习一点FPGA知识点(9)之时序分析并且在电路设计中如果不满足Tsu(建立时间)和Th(保持时间),很容易就出现亚稳态;在跨时钟域传输的一系列
    的头像 发表于 05-25 15:55 1025次阅读
    FPGA入门之复位<b class='flag-5'>电路设计</b>

    什么是亚稳态?如何克服亚稳态

    亚稳态电路设计中是常见的属性现象,是指系统处于一种不稳定的状态,虽然不是平衡状态,但可在短时间内保持相对稳定的状态。对工程师来说,亚稳态的存在可以带来独特的性质和应用,如非晶态材料、晶体缺陷
    的头像 发表于 05-18 11:03 2957次阅读