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

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

3天内不再提示

由于时钟域交汇处理不当所导致罕见的比特翻转

XILINX开发者社区 来源:XILINX开发者社区 作者:赛灵思开发者 2021-09-10 09:44 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本篇博文中的分析是根据真实客户问题撰写的,该客户发现在现场出现罕见的比特翻转, 本篇博文旨在演示用于缩小根本原因范围以及修复此问题的部分调试技巧。

最终发现,此问题是由于时钟域交汇 (CDC) 处理不当所导致的,在 report_methodology 和 report_cdc 报告中高亮显示了相关处理错误。

这是使用方法论报告系列博文的第 4 部分。如需阅读整个系列中的所有博文,请点击如下标题查看。

第1部分:时序以满足,但硬件功能出现错误

第2部分:方法违例对于QoR的影响

第3部分:时序已满足,但硬件中存在 DDR4 校准失败

问题说明:

此客户在现场部署了数万个基于 Zynq-7000 系列的产品,这些产品都是使用 Vivado 2013.4 开发的,其最终客户报告称大量卡上出现数据包损坏,调查显示在所有数据包损坏案例中,设计中的相同位置都发生了比特翻转。

根本原因分析:

为了缩小范围,我们首先要求客户提供网表中这些寄存器的位置:

我们要求客户提供 DCP 以便我们使用各项报告来审查设计。

虽然通常随机问题是由电源问题所导致的,但我们同时还要求客户提供操作期间的 VCCINT/VCCAUX/VCCIO 测量方法,以便测量电平和噪声,如(赛灵思答复记录 62181-点击阅读原文可查看)中的硬件调试最佳实践中所述。

我们还要求其提供板级原理图 (schematic) 以复查使用的去耦电容是否足够。

很快我们就把电源问题排除在原因之外。

收到 DCP 后,我们首先使用最新版本的 Vivado 运行

report_timing_summary、report_methodology、report_drc 和 report_cdc。

有多个问题马上显现了出来。

最重要的发现与可疑 FF 相关,report_methodology LUTAR-1 检查标记出了这些可疑 FF:LUT 驱动异步复位警告

FF 具有异步复位,由逻辑级数深度为 2 的路径驱动:

其危险性在于 LUT(红色箭头)可出现毛刺并触发意外复位。

第二项最严重的发现与时钟域交汇和约束有关。

Report_cdc 发现约有 40000 条路径采用非推荐 CDC 架构:

不安全的时钟域交汇可能导致翻转 FF 下游或上游出现问题,并且可能成为所观测到的行为的真正根源。

就约束而言,report_methodology 的“TIMING-24:仅最大延迟数据路径已被覆盖”检查发现多项严重违例。

在移除 set_clock_groups -asynchronous 约束并将其替换为 set_max_delay -datapath_only 和时钟对的最小时钟周期后,发现出现了非常严重的时序违例:-5.8ns,原因是异步时钟之间的逻辑级数达到 11。

第二轮审查发现设计中几乎所有复位上都存在伪路径约束,这些约束是为了帮助达成时序收敛而添加的,根据经验,我们知道这是非常危险的:如果状态机的各个位在不同时间脱离复位,则可能进入非法状态、无法恢复并且导致设计运行错误。

即使复位为异步,取消复位仍需达成时序收敛,因此永远不能忽略复位上的时序收敛,您应该尽可能明确自己实际是否需要复位,因为不使用复位可节省宝贵的布线资源,并且使 SR 管脚可用于控制置位的重映射,从而减小设计规模,因为逻辑函数可部分映射到这些 SR 管脚。

修复所报告的问题(LUT 驱动异步复位、CDC、CDC 约束)并在现场部署一些新固件后,这些罕见的比特翻转就没有再出现。

结论:

Vivado 报告功能(方法论、CDC)的进步使我们得以成功调试并解决罕见的比特翻转问题。

无论何时遇到任何疑问,都应该首先考虑使用最新版本的 Vivado 来重新审查设计,最新版本的 Vivado 中包含 CDC 分析和最新的方法论检查,这些都是进行原始设计所没有的。

责任编辑:haq

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

    关注

    11

    文章

    747

    浏览量

    68527
  • 硬件
    +关注

    关注

    11

    文章

    3555

    浏览量

    68741
  • Xinlix
    +关注

    关注

    0

    文章

    6

    浏览量

    8131

原文标题:开发者分享 | 使用方法论报告4: 罕见的比特翻转

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    解读

    C语言除了开发桌面应用等,还有一个很重要的领域,那就是「单片机」开发。单片机上的硬件资源十分有限,容不得我们去肆意挥洒。单片机使一种集成电路芯片,使采用超大规模集成电路技术把具有数据处理能力的CPU
    发表于 12-05 06:45

    时钟移项电路加速模块的设计

    入了Xilinx公司解决差分输入的原语IBUFGS,直接在接收端例化一个接口逻辑门,可将LVDS信号转换成单端信号。之后考虑是数据对齐的问题,由于传感器的数据信号和时钟信号是同步跳变的,如果不加处理直接传入到
    发表于 10-29 07:38

    E203软核提高CPU时钟频率方法

    本文将分享我们团队提高E203软核主频的办法。 查阅芯来科技官方出版的《手把手教你设计CPU——RISC-V处理器篇》教材,我们发现,原本设计的E203主时钟应该是100MHZ
    发表于 10-29 06:19

    rtthread 4.1.1 lwip 2.1.2 由于系统计数溢出导致的发送超时如何处理

    been written */ err = ERR_WOULDBLOCK; } else { /* partial write */ err = ERR_OK; } } 当系统计数器溢出时,不是会导致退出超时么?有什么处理比较好的
    发表于 09-24 07:49

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

    ,并以黑芝麻智能武当 C1296 芯片为例,通过多方式同步实现多高精度对齐,消除时钟信任鸿沟的实测效果。 智能汽车的核心是通过多维度感知、实时决策和精准控制实现辅助驾驶与智能交互,而这一切的前提是 "时间基准一致",由于不同传
    的头像 发表于 07-22 09:17 405次阅读
    黑芝麻智能跨<b class='flag-5'>域</b>时间同步技术:消除多<b class='flag-5'>域</b>计算单元的<b class='flag-5'>时钟</b>信任鸿沟

    废旧电池处理不当对环境的影响

    在技术驱动的世界中,电池为我们的设备供电并推动科技发展。但是,处理不当的电池会带来严重的环境和安全风险,导致污染和潜在危害。
    的头像 发表于 06-19 15:34 778次阅读

    rtthread 4.1.1 lwip 2.1.2 由于系统计数溢出导致的发送超时如何处理

    been written */ err = ERR_WOULDBLOCK; } else { /* partial write */ err = ERR_OK; } } 当系统计数器溢出时,不是会导致退出超时么?有什么处理比较好的
    发表于 06-13 08:07

    存储示波器触发电平设置不当导致什么后果?

    触发电平(Trigger Level)是存储示波器捕获稳定波形、定位关键事件的核心参数。若设置不当,会导致波形显示异常、触发不稳定、关键信号丢失等问题,甚至影响测试结果的准确性。以下为详细分析及应对
    发表于 05-29 14:13

    跨异步时钟处理方法大全

    该方法只用于慢到快时钟的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>方法大全

    RISC-V核低功耗MCU动态时钟门控技术解析

    机制‌ 时钟动态隔离‌ 通过硬件级时钟门控电路,按任务需求实时关闭空闲模块(如未使用的UART、SPI外设)的时钟信号,降低动态功耗。例如,当通信接口处于闲置状态时,自动切断其
    的头像 发表于 04-24 15:11 843次阅读

    HDMI时钟EMI问题的高效解决方案

    因素制约,这是让许多工程师头痛的。二时钟EMI问题高效处理方式今天给大家带来一种高效的时钟EMI问题处理方式——展频技术。简单的说展频技术
    的头像 发表于 03-11 11:34 1066次阅读
    HDMI<b class='flag-5'>时钟</b>EMI问题的高效解决方案

    STM32H750 FDCAN发送异常的原因?

    出现了,所以再去查之前的版本是否哪些代码导致了这个异常。 最后排查出来,原因是时钟的配置问题,由于其他部分需要,我的APB1时钟配置成了15MHz,而FDCAN1的
    发表于 03-07 08:42

    把ADS850的数据接口和时钟信号通过FPC线连接至FPGA,当FPC线缆大于5cm,会导致丢位,错位现象,怎么处理

    0000附近翻转时,会导致丢位,错位现象。采样值为其他值时,系统正常工作。线缆为5cm时,系统采样任何值都正常。 后添加SN74AHC541作为CMOS数据接口缓冲,但没添加串联限流电阻,发现无任何改善。 请问该问题根源是否在FPC线缆,有无解决办法?谢谢!
    发表于 02-11 07:27

    混合示波器的原理和应用

    混合示波器是一种集示波器和频谱仪于一体的革新性测试仪器,其原理和应用可以详细阐述如下:一、原理 组成:混合示波器主要由模拟部分和数字部分组成,同时还包含专门用于射频(RF)信号处理的通道。模拟
    发表于 12-27 15:54

    ADS1271使用不当会不会出现采样率的主时钟不是这个对应关系的情况?

    ADS1271在MODE浮空的情况下采样率Wie主时钟的512分之一,即fs=fclk/512,如果使用不当,会不会出现采样率的主时钟不是这个对应关系的情况,例如当fclk=1024kHz时,理论上fs=2K,但实际上fs=1
    发表于 12-20 08:24