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

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

3天内不再提示

cdc路径方案帮您解决跨时钟域难题

数字前端ic芯片设计 来源:互联网 作者:佚名 2017-11-30 06:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Hi,根据之前大家的反馈,这一章就来简单介绍一下CDC也就是跨时钟域可能存在的一些问题以及基本的跨时钟域处理方法。

跨时钟域的问题主要存在于异步时钟信号之间。首先同步时钟和异步时钟的主要区别在于同步时钟是同源的,有一个确定的相位关系,在综合约束的保证下同步时钟路径可以尽可能的去满足setup/hold的要求。同步时钟在CDC中属于同一个时钟域。

而异步时钟来自不同的晶振源,他们之间没有一个确定的相位关系,也就是说如果一个条路径的起点和终点寄存器由异步时钟驱动,没有任何办法来保证信号在何时会到达终点寄存器,这样可能引发一系列的问题,比如亚稳态。我们知道对于同步时钟信号,在综合工具以及后端工具中有时钟约束,可以解决同步时钟路径的setup/hold,而对于异步信号,在综合以及后端中都设为false path,也就是说没有办法从工具的角度进行解决。在这种情况下,就需要从设计层面来解决这个问题,避免这些路径的违例对电路功能造成影响。

Synopsys提供的Spyglass工具可以用于检测系统中存在的CDC路径,并且分析其可能产生的问题,在综合之前进行CDC的检测以及相关设计的修改,可以最大程度地避免这些问题。下面我们来看下几种CDC可能造成的问题以及相应的检测和简单的解决方案。

1.metastability

亚稳态是跨时钟域中最主要的一个问题,因为在一条时钟路径中我们无法预知信号会在何时到达终点寄存器,那么有可能信号就会造成setup/hold的违例

上图所示的例子是一个很典型的metastability 问题。由于A信号在F2寄存器的setup违例,造成的亚稳态会在F2的下接负载中进行传播。

对于亚稳态问题,针对具体信号的功能,一般有不同的处理。

对于多bitdata信号,我们可以使用使能技术,也就是通过一个使能信号来判断data信号是否已经稳定,当使能信号有效的时候说明data处于稳定状态,在这种情况下终点寄存器才对信号进行采样,可以保证没有setup/hold违例。而使能信号一般使用double FF的方法来进行同步。下面是一些简单的data同步电路的例子:

在该电路中Cntrl信号通过两级寄存器同步,通过mux来控制data的采样,注意到这里使用的是recirculatemux

当然也可以不适用recirculatemuxmux的另一个输入同样来自终点时钟域。

此外还可以通过long-delay,也就是给信号长的延时来保证信号能在指定的时间到达。

如果是控制信号,我们可以直接使用double FF的方法,也就是多级寄存器同步的方法来进行同步。这是因为控制信号位数较少,不需要额外使用使能信号资源。

上图是个最基本的两级flop的同步器,原理很简单,我们默认亚稳态会在一个时钟周期之内解决,因此从第一级flop输入的亚稳态到第二级flop就稳定了。因为这是一个1-bit的信号,所以如果第一个时钟亚稳态稳定的值不是我们预估的值,比如1->0的跳变,亚稳态最后结果是1,那么0的稳定值也会在下一个周期到达第二级flop

以上是一些最基本的信号同步器,根据具体design的不同,可以设置不同的同步逻辑,但同步逻辑的基本思路都类似,通过控制信号来保证来自时钟源A的信号在稳定的情况下才被来自时钟源B的终点寄存器采样,而控制信号因为多为单bit,一般都使用两级寄存器来采样。

2. fast-slow CDC

除了亚稳态之外,如果信号起始时钟源频率比终点时钟源高很多,那么可能就会导致信号的丢失。

在上图的例子中,虽然A信号到B信号之间使用了同步器,但是如果时钟域A的频率过高,很容易造成信号的丢失。对此,我们需要使用额外的结构来保证A信号不丢失。

常用的方法有两种,一是使用定制化的电路,使A->B之间有至少一个B周期的延时。

另一个是使用控制信号,控制信号的信息来自B时钟域的反馈信号,当B成功完成一次有效采样之后,才让A读取下一个信号。针对不同的具体电路有不同的设计方案,这里就不一一列出。

3. multi-bit data correlation

对于多bitdata信号,如果采用每个bit分别同步的方法,由于每个bit到达同步器的延时不同,可能造成采样时刻多bit的信号corelation有问题。

在上图所示例子中,由于每个bit到达2-FFs同步器的时间不同,如果这几位bit同时跳变,可能在第一拍采样的时候采到的不是我们想要的结果。

对此,我们可以使用格雷码,来确保对于多bit信号每次只有一位bit发生了跳变。另外可以使用使能信号,在所有bit的信号都稳定之后,才进行同步采样。

4. FIFO

我们可以使用FIFO来完成跨时钟域的信号转换,下图是一个简单的FIFO例子

FIFO会占用比较多的资源,但对于跨时钟域问题能够有很好的保证。对于FIFO,我们可以使用DesignWare中已经搭建好的标准单元,这是经过验证的可综合的FIFO。在Spyglass中,我们也可以对FIFO的正确性进行验证。

5.reset synchronization

复位信号是一个系统中最重要的几种信号。复位信号的同步也是系统中很关键的一个环节。对于复位信号的同步,我们有一个经典的标准设计方案

从上图中我们可以看到,我们采用了异步复位同步释放地方法。这里并不是直接将复位信号进行两级同步。

以上就是CDC的一些基本问题和经典的解决方案,针对不同设计我们可以有不同的解决方法,而通过Spyglass,我们可以在综合之前对CDC的问题进行一个完整的检测。希望以上对大家的设计有所帮助。

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

    关注

    0

    文章

    58

    浏览量

    18512

原文标题:关于跨时钟域的分析和简单的解决方案

文章出处:【微信号:ic_frontend,微信公众号:数字前端ic芯片设计】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CDC2351 1线转10线时钟驱动器技术文档总结

    CDC2351是一种高性能时钟驱动器电路,可将一个输入 (A) 分配到十个输出 (Y),时钟分配的偏斜最小。输出使能 (OE\) 输入将输出禁用为高阻抗状态。每个输出都有一个内部串联阻尼电阻,以提高负载的信号完整性。该
    的头像 发表于 09-24 14:20 547次阅读
    ‌<b class='flag-5'>CDC</b>2351 1线转10线<b class='flag-5'>时钟</b>驱动器技术文档总结

    CDC2536 锁相环时钟驱动器技术文档总结‌

    CDC2536是一款高性能、低偏斜、低抖动的时钟驱动器。它使用锁相环 (PLL) 将时钟输出信号在频率和相位上精确对齐到时钟输入 (CLKIN) 信号。它专门设计用于同步 DRAM 和
    的头像 发表于 09-24 14:10 551次阅读
    ‌<b class='flag-5'>CDC</b>2536 锁相环<b class='flag-5'>时钟</b>驱动器技术文档总结‌

    CDC391 时钟驱动器技术文档总结

    CDC391 包含一个时钟驱动器电路,该电路分配一个 输入信号到六个输出,时钟分配的偏差最小。 通过使用极性控制 (T\/C) 输入,各种 可以获得真实输出和互补输出的组合。这 output-enable 输入为 用于将输出禁
    的头像 发表于 09-24 14:04 526次阅读
    ‌<b class='flag-5'>CDC</b>391 <b class='flag-5'>时钟</b>驱动器技术文档总结

    CDC329A 时钟驱动器技术文档总结

    CDC329A包含一个时钟驱动器电路,该电路将一个输入信号分配到六个输出,时钟分配的偏斜最小。通过使用极性控制输入(T\/C),可以获得真输出和互补输出的各种组合。 该CDC3
    的头像 发表于 09-24 13:53 539次阅读
    ‌<b class='flag-5'>CDC</b>329A <b class='flag-5'>时钟</b>驱动器技术文档总结

    CDC340 1线至8线时钟驱动器技术文档总结

    CDC340 是一款高性能时钟驱动器电路,可将一 (A) 输入信号分配给八 (Y) 输出,时钟分配偏斜最小。通过使用控制引脚(1G 和 2G),无论 A 输入如何,输出都可以置于高电平状态。
    的头像 发表于 09-24 11:11 503次阅读
    ‌<b class='flag-5'>CDC</b>340 1线至8线<b class='flag-5'>时钟</b>驱动器技术文档总结

    CDC516 3.3V相位锁定环时钟驱动器技术文档总结

    CDC516 是一款高性能、低偏斜、低抖动、锁相环时钟驱动器。它使用锁相环 (PLL) 将反馈输出 (FBOUT) 与时钟 (CLK) 输入信号在频率和相位上精确对齐。它专为与同步 DRAM 一起使用而设计。
    的头像 发表于 09-23 10:15 638次阅读
    ‌<b class='flag-5'>CDC</b>516 3.3V相位锁定环<b class='flag-5'>时钟</b>驱动器技术文档总结

    CDC509 3.3V相位锁定环时钟驱动器技术文档总结

    CDC509 是一款高性能、低偏斜、低抖动、锁相环 (PLL) 时钟驱动器。它使用 PLL 在频率和相位上将反馈 (FBOUT) 输出精确对齐到时钟 (CLK) 输入信号。它专为与同步 DRAM 一起使用而设计。
    的头像 发表于 09-23 10:09 701次阅读
    ‌<b class='flag-5'>CDC</b>509 3.3V相位锁定环<b class='flag-5'>时钟</b>驱动器技术文档总结

    CDC2351-Q1 1:10时钟驱动器技术文档总结

    CDC2351是一种高性能时钟驱动器电路,可将一个输入 (A) 分配到十个输出 (Y),时钟分配的偏斜最小。输出使能 (OE\) 输入将输出禁用为高阻抗状态。每个输出都有一个内部串联阻尼电阻,以提高负载的信号完整性。该
    的头像 发表于 09-22 15:54 655次阅读
    ‌<b class='flag-5'>CDC</b>2351-Q1 1:10<b class='flag-5'>时钟</b>驱动器技术文档总结

    CDC5801A低抖动时钟倍频/分频器技术文档总结

    CDC5801A器件提供从单端参考时钟 (REFCLK) 到差分输出对 (CLKOUT/CLKOUTB) 的时钟乘法和分频。乘法和分频端子 (MULT/DIV0:1) 提供倍频比和分频比选择,生成
    的头像 发表于 09-19 14:35 653次阅读
    ‌<b class='flag-5'>CDC</b>5801A低抖动<b class='flag-5'>时钟</b>倍频/分频器技术文档总结

    CDC3RL02 低相位噪声双通道时钟扇出缓冲器总结

    CDC3RL02是一款双通道时钟扇出缓冲器,设计用于需要时钟缓冲的便携式终端设备,例如移动电话,这些设备具有最小的附加相位噪声和扇出功能。该器件将单个时钟源(例如温度补偿晶体振荡器
    的头像 发表于 09-17 09:57 605次阅读
    ‌<b class='flag-5'>CDC</b>3RL02 低相位噪声双通道<b class='flag-5'>时钟</b>扇出缓冲器总结

    CDC1104 1至4可配置时钟缓冲器技术文档摘要

    CDC1104是一个 1 到 4 可配置的时钟缓冲器。该器件接受输入参考时钟,并创建 4 个缓冲输出时钟,输出频率等于输入时钟的一半 频率。
    的头像 发表于 09-16 09:37 562次阅读
    ‌<b class='flag-5'>CDC</b>1104 1至4可配置<b class='flag-5'>时钟</b>缓冲器技术文档摘要

    黑芝麻智能时间同步技术:消除多计算单元的时钟信任鸿沟

    上海2025年7月21日 /美通社/ -- 本文围绕时间同步技术展开,作为智能汽车 "感知-决策-执行 -交互" 全链路的时间基准,文章介绍了 PTP、gPTP、CAN 等主流同步技术及特点
    的头像 发表于 07-22 09:17 407次阅读
    黑芝麻智能<b class='flag-5'>跨</b><b class='flag-5'>域</b>时间同步技术:消除多<b class='flag-5'>域</b>计算单元的<b class='flag-5'>时钟</b>信任鸿沟

    Texas Instruments CDC6CEVM评估模块数据手册

    Texas Instruments CDC6CEVM评估模块配置用于评估CDC6C低功耗LVCMOS BAW振荡器的运行情况。TI CDC6EVM可作为灵活的时钟源,用于合规性测试、性
    的头像 发表于 07-09 14:33 609次阅读
    Texas Instruments <b class='flag-5'>CDC</b>6CEVM评估模块数据手册

    异步时钟处理方法大全

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

    本土EDA企业英诺达亮相DVcon China 2025

    to deliver complete CDC solutions for advanced IC design》。该工具通过创新算法与全流程覆盖能力,为高性能芯片设计提供完整的CDC验证解决方案,显著提升复杂多
    的头像 发表于 04-24 09:17 1011次阅读