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

    文章

    711

    浏览量

    65218
  • 硬件
    +关注

    关注

    11

    文章

    3251

    浏览量

    66105
  • Xinlix
    +关注

    关注

    0

    文章

    6

    浏览量

    7990

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

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

收藏 人收藏

    评论

    相关推荐

    一文解析跨时钟传输

    一、单比特CDC传输1.1 慢到快 快时钟相比慢时钟采样速度更快,也就是说从慢时钟
    的头像 发表于 11-16 11:55 291次阅读
    一文解析跨<b class='flag-5'>时钟</b><b class='flag-5'>域</b>传输

    MCX射频头使用不当会出现什么情况

    连接过程中没有正确对准插座或插入深度不足,可能导致连接不稳,信号传输质量下降,甚至出现信号中断的情况。  损坏连接器:频繁插拔或不当操作可能导致MCX射频头或插座
    的头像 发表于 09-27 09:05 221次阅读
    MCX射频头使用<b class='flag-5'>不当</b>会出现什么情况

    FPGA异步信号处理方法

    FPGA(现场可编程门阵列)在处理异步信号时,需要特别关注信号的同步化、稳定性以及潜在的亚稳态问题。由于异步信号可能来自不同的时钟或外部设备,其到达时间和频率可能不受FPGA内部
    的头像 发表于 07-17 11:10 1047次阅读

    为什么二进制移相键控信号会出现倒π现象?

    倒π现象是指在二进制移相键控(BPSK)信号的解调过程中,由于相位跳变导致的180°相位翻转,使得接收到的信号与原始信号出现相反的比特表示。
    的头像 发表于 05-21 18:28 2731次阅读

    如果处理器的输入时钟频率超出了手册限定的范围,会导致什么样的结果?

    如果处理器的输入时钟频率超出了手册限定的范围,会导致什么样的结果?
    发表于 03-25 07:31

    请问STM32H743ZIT6使用GPIO输出翻转电平如何达到4Mhz?

    由于设计原因,所在引脚无法复用定时器PWM功能,只能用定时器在定时中断手动翻转引脚电平,但需要输出4MHz以上的时钟信号给其他芯片使用。听说GPIO能翻转50MHz,但实际1Mhz都不
    发表于 03-15 06:02

    求助,关于STM32F103翻转使用的疑问求解

    通用定时器输出比较TIM2,F103.根据参考手册输出比较是CNT与CRR比较。CNT=CRR翻转。程序设置:定时器时钟72M,预分频系数71,ARR=999.CRR为499.实际仿真波形和示波器输出波形1ms翻转一次。为什么不
    发表于 03-11 07:47

    电迁移导致半导体失效的机理探讨

    SRAM工艺的处理器是通过CMOS内部管道切换的方式工作,其产品处理速度较高,被众多用户接受。但是,CMOS工艺有一个致命缺陷,由于工艺原因,伴随CMOS工艺制成芯片产生米勒效应极其容易受到外界干扰,产生
    发表于 02-29 10:42 547次阅读
    电迁移<b class='flag-5'>导致</b>半导体失效的机理探讨

    instance是何时翻转的?每次有多少instance在翻转

    在run dynamic vectorless IR时,instance是何时翻转的?每次有多少instance在翻转
    的头像 发表于 01-26 09:31 498次阅读
    instance是何时<b class='flag-5'>翻转</b>的?每次有多少instance在<b class='flag-5'>翻转</b>?

    异步电路中的时钟同步处理方法

    异步电路中的时钟同步处理方法  时钟同步在异步电路中是至关重要的,它确保了电路中的各个部件在正确的时间进行操作,从而使系统能够正常工作。在本文中,我将介绍一些常见的时钟同步
    的头像 发表于 01-16 14:42 1079次阅读

    时钟的解决方案

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

    如何处理时钟这些基础问题

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

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

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

    是什么导致RAM中的内存数据损坏?纠错码(ECC)如何修复位翻转

    是什么导致RAM中的内存数据损坏?纠错码(ECC)如何修复位翻转? RAM中的内存数据损坏可能由多种原因导致。其中一些原因包括电磁干扰、电压波动、温度变化等外部因素,还有由内部设计和制造缺陷
    的头像 发表于 12-15 09:58 2111次阅读

    clock gating基础知识介绍:基本逻辑门控/ICG

    芯片中大部分的动态功耗消耗在时钟网络中。这是由于时钟树上的单元(cells)有较高的翻转率、驱动能力较大且数量较多所导致的。
    的头像 发表于 12-01 14:50 1.2w次阅读
    clock gating基础知识介绍:基本逻辑门控/ICG