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

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

3天内不再提示

如何处理跨时钟域信号?

8ECz_icstudy 来源:未知 作者:胡薇 2018-09-25 09:39 次阅读

最近是IC相关专业学生找工作的高峰期,大家可以在文章末尾或者知识星球留言讨论笔试或者面试题哦。跨时钟域的处理在面试中常常被问到,今天IC君就来聊一聊这个话题

1

跨时钟域是如何产生的呢?现在的芯片(比如SOC,片上系统)集成度和复杂度越来越高,通常一颗芯片上会有许多不同的信号工作在不同的时钟频率下。比如SOC芯片中的CPU通常会工作在一个频率上,总线信号(比如DRAM BUS)会工作在另一个时钟频率下,而普通的信号又会工作在另外的时钟频率下。这3个不同时钟频率下工作的信号往往需要相互沟通和传递信号。

不同时钟域下的信号传递就涉及到跨时钟域信号处理,因为相互之间的频率、相位不一样,如果不做处理或者处理不当,如下图所示的时钟域CLK_A的数据信号A可能无法满足时钟域CLK_B的setup/hold时间,可能导致:

1.数据丢失,无法采到预期中的信号;

2.亚稳态的产生。

从而导致某个电路模块或者整颗IC无法工作。

2

那么,常见的跨时钟域信号处理方法都有哪些呢?有如下的三种:

两级DFF同步器

握手协议

异步FIFO

最简单的单比特信号处理通常采用两级DFF串联进行同步,如下图所示:

从时钟域A(CLKA)传过来的信号a_in, 直接用时钟域B CLKB采用很容易产生亚稳态,用两级DFF 敲过后再使用就可以把亚稳态概率降到一个合理的值。

很多人可能会问,为什么是两级DFF呢?一级或者三级DFF行不行呢?这里有一个平均失效间隔时间MTBF(Mean Time Between Failure)的考虑。MTBF时间越长,出现亚稳态的概率就越小,但是也不能完全避免亚稳态。注意采样时钟频率越高,MTBF可能会迅速减小。

有文献给出的数据:对于一个采样频率为200Mhz的系统,如果不做同步MTBF是2.5us,一级DFF同步的MTBF大概是23年,两级DFF同步的大约MTBF大概是640年,MTBF越长出错的概率越小。所以一级看上去不太稳,二级差不多够用了,至于三级可能会影响到系统的性能,而且增加面积,所以看上去没什么必要。

两级DFF同步器听起来够简单的吧?这个方法虽然很简单,但是很多人用起来还是常常会犯错。

3

错误1 :时钟域A的组合逻辑信号直接敲两级DFF同步到时钟域B

如下图(1)所示虽然时钟域A的逻辑信号c0 传输到时钟域B的时候,也用了两级DFF 同步器,但我们知道组合逻辑电路各个输入信号的不一致性以及组合逻辑内部路径的延时时间不一样,运算后的信号存在毛刺如图(2),而我们又无法预先知道CLKB 的上升沿何时会到来,CLKB 采样到的信号就无法预知,这显然不是我们想要的结果。

因此,要想CLKB 能采到稳定的信号,时钟域A的信号必须是经过CLKA 敲过,在一个时钟周期内是稳定的信号,如图(3)所示:

4

错误2 :Clock-gating enable 信号没有经过异步处理

在下图中a_in 信号经过CLKA的DFF敲过,再送到两级DFF 同步器处理,完全没毛病。但是F2的使能信号EN是从时钟域A来的,当EN信号变化的时候,由于时钟域不一样,无法保证使能之后的CLKB信号采样数据时满足setup/hold time 要求,这时F2输出信号也就变得无法预测了。

两级同步器处理单比特信号虽然比较简单,但还是要注意它的使用方法,不要犯上面的错误哦。

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

    关注

    36

    文章

    5870

    浏览量

    175039
  • 时钟域
    +关注

    关注

    0

    文章

    51

    浏览量

    9524

原文标题:IC面试中常被问到——跨时钟域信号如何处理?

文章出处:【微信号:icstudy,微信公众号:跟IC君一起学习集成电路】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    何处理时钟电路的常见故障

    处理时钟电路的常见故障是一个涉及多个步骤和细节的过程,需要仔细分析和逐步排查。时钟电路在电子设备中扮演着至关重要的角色,负责提供稳定的时钟信号
    的头像 发表于 09-09 16:49 410次阅读

    FPGA异步信号处理方法

    FPGA(现场可编程门阵列)在处理异步信号时,需要特别关注信号的同步化、稳定性以及潜在的亚稳态问题。由于异步信号可能来自不同的时钟
    的头像 发表于 07-17 11:10 967次阅读

    介绍一个IC设计错误案例:可读debug寄存器错误时钟

    本文将介绍一个时钟错误的案例如图所示,phy_status作为一个多bit的phy_clk时钟信号,需要输入csr模块作为一个可读状态
    的头像 发表于 03-11 15:56 453次阅读
    介绍一个IC设计错误案例:可读debug寄存器错误<b class='flag-5'>跨</b><b class='flag-5'>时钟</b>

    减速机渗油问题如何处理

    电子发烧友网站提供《减速机渗油问题如何处理.docx》资料免费下载
    发表于 03-05 09:18 2次下载

    芯片时钟设计案例简析(一)

    最经典的2DFF 1-bit同步器如下,下图结构通常用于单bit控制信号的异步处理
    的头像 发表于 01-18 09:24 941次阅读
    芯片<b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>设计案例简析(一)

    时钟的解决方案

    在很久之前便陆续谈过亚稳态,FIFO,复位的设计。本次亦安做一个简单的总结,从宏观上给大家展示时钟的解决方案。
    的头像 发表于 01-08 09:42 827次阅读
    <b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>的解决方案

    何处理时钟这些基础问题

    对于数字设计人员来讲,只要信号从一个时钟跨越到另一个时钟,那么就可能发生亚稳态。我们称为“
    发表于 01-08 09:39 557次阅读
    如<b class='flag-5'>何处理</b><b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>这些基础问题

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

    有一个有趣的现象,众多数字设计特别是与FPGA设计相关的教科书都特别强调整个设计最好采用唯一的时钟
    的头像 发表于 12-22 09:04 1389次阅读
    FPGA设计技巧—多<b class='flag-5'>时钟</b><b class='flag-5'>域</b>和异步<b class='flag-5'>信号</b><b class='flag-5'>处理</b>解决方案

    示波器如何处理有噪声的信号

    示波器如何处理有噪声的信号  示波器是一种用于测量和显示电信号的设备,可以帮助工程师和科学家分析和诊断电路故障。然而,在实际的测量中,信号往往会受到各种噪声的干扰,这可能会导致测量结果
    的头像 发表于 12-21 15:37 984次阅读

    AD8302输入信号何处理

    在使用AD8302的时候,芯片手册上描述输入信号为-60dBm~0dBm在50Ω的系统中,转换过来就是223.61uV~632.46mV的电压范围。 请问下,1. 如何控制输入信号在AD8302的要求范围内呢? 2.当信号高于这
    发表于 12-08 06:06

    何处理MOS管小电流发热?

    何处理MOS管小电流发热?
    的头像 发表于 12-07 15:13 565次阅读
    如<b class='flag-5'>何处理</b>MOS管小电流发热?

    什么是串扰?该如何处理它?

    什么是串扰?该如何处理它?
    的头像 发表于 12-05 16:39 756次阅读
    什么是串扰?该如<b class='flag-5'>何处理</b>它?

    何处理同轴阻抗失配?如何避免阻抗失配这种风险呢?

    何处理同轴阻抗失配?如何避免阻抗失配这种风险呢? 同轴阻抗失配是电子通信领域中一种常见的问题,当同轴电缆的输出端口的阻抗与接收端口不匹配时,就会发生阻抗失配。这种失配会导致信号反射、传输效率降低
    的头像 发表于 11-28 14:18 955次阅读

    在布局、布线中如何处理才能保证50M以上信号的稳定性?

    在布局、布线中如何处理才能保证50M以上信号的稳定性? 布局和布线是确保电子设备的信号稳定性的关键步骤。在保证50M以上信号稳定性的前提下,以下是一些布局和布线的最佳实践,能够帮助你
    的头像 发表于 11-24 14:51 531次阅读

    IC设计:ram的应用-异步时钟位宽转换

    在进行模块设计时,我们经常需要进行数据位宽的转换,常见的两种转换场景有同步时钟位宽转换和异步时钟位宽转换。本文将介绍异步时钟
    的头像 发表于 11-23 16:41 766次阅读
    IC设计:ram的应用-异步<b class='flag-5'>时钟</b><b class='flag-5'>域</b>位宽转换