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

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

3天内不再提示

如何调试设计中的时钟域交汇问题

思佳讯SkyworksSolutions 来源:XILINX开发者社区 作者:XILINX开发者社区 2021-08-20 09:32 次阅读

本篇博文中的分析是根据客户真实问题撰写的,该客户发现即使时序已得到满足的情况下,硬件功能仍出现错误。最后发现,问题与时钟域交汇 (Clock Domain Crossing) 有关,因此,本篇博文介绍了如何调试设计中的时钟域交汇问题。

问题说明:

在此设计中,用户生成了比特流并将其用于器件编程,在硬件上进行测试时,用户发现少量时钟域上无法获得期望的功能。

用户对行为仿真和实现后仿真进行了测试,发现信号上可得到正确的结果。

同时,这些用户未发现任何种类的时序违例,所有值均为正值,如“设计时序汇总 (Design Timing Summary)” 中所示。

注:您可使用以下选项自行检查设计的时序汇总信息

■ 在 Vivado GUI 中,转至“报告 (Reports)”选项卡 -》“时序 (Timing)”-》“时序汇总报告 (Report Timing Summary)”

■运行以下 Tcl 命令:

report_timing_summary -file 《filepath》/timingreport.txt

根本原因:

硬件功能问题背后可能存在多种原因。

包括缺少时钟域交汇 (CDC) 同步器、时钟拓扑欠优化、时钟结构中使用了组合逻辑、亚稳态以及经典的未约束路径问题。

要检查与时钟/架构/CDC 等相关的警告/严重警告,可使用方法论报告。

要在 Vivado GUI 中打开方法论报告,请转至“报告 (Report)”选项卡 -》“方法论报告 (Report Methodology)”,或者在 Tcl 控制台 (Tcl console) 中,使用 report_methodology。

报告打开后,您可能会看到几条与设计相关的警告和严重警告,需您进行检查。

在此示例中,报告中显示了几条警告,这些警告与 CDC 相关的错误实践有关(这些警告的 ID 为 Timing-9 和 Timing-10),如下所示。

a4422284-00d4-11ec-9bcf-12bb97331649.png

这些警告声称工具经由约束语句(例如,set_false_path 或 set_clock_groups)的使用,在 2 个时钟域之间检测到一个或多个异步时钟域交汇。

但它在捕获时钟端未找到任何双寄存器逻辑同步器。因此,它建议用户运行 report_CDC 并对这些 CDC 路径执行进一步分析。

要在 Vivado GUI 中打开 CDC 报告,请转至“报告 (Report)”选项卡 -》 “时序 (Timing)”-》“CDC 报告 (Report CDC)”。或者,您可在 Tcl 控制台中运行 report_cdc 命令。

请参阅 (UG906) 以获取有关阅读此 CDC 报告的详细指南。

CDC 报告显示在发生硬件功能错误的时钟域内存在不安全的未知 CDC 端点(如下所示)。请参阅 (UG906) 以了解此报告命名法。

如何解决这些警告/严重警告?

1) (UG906)包含有关这些警告以及其它时序方法论检查的详细说明。请详查其中提供的示例,以理解每一项警告及其根本原因。您可通过添加适当的同步电路(通过修改 RTL 或者使用赛灵思可参数化宏 (XPM))来相应改善设计。

2) 您可能还需要相应添加或修改约束,或者在 RTL 源代码中为 CDC 端点添加 ASYNC_REG 属性。(您还可参阅(UG906)以便详细了解 CDC 拓扑结构。)

3) 对于伪静态寄存器接口,最好将 CDC 接口豁免,而不是对其进行过度设计。

如需获取有关豁免以及如何创建豁免的更多信息,请参阅 (UG906)。

注:伪静态 CDC 寄存器接口为包含近似静态的配置寄存器的 CDC 路径。这些路径初始化后可能不再改变,或者可能仅改变 1 次,因此用户几乎可以将其看作是静态的。

结论

对 CDC 路径完成必要修改后,客户得以成功通过硬件的功能测试。

编辑:jq

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

    关注

    31

    文章

    5343

    浏览量

    120345
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59781
  • CDC
    CDC
    +关注

    关注

    0

    文章

    57

    浏览量

    17809

原文标题:开发者分享 | 使用方法论报告 1:时序已满足,但硬件功能出现错误

文章出处:【微信号:gh_2d0d1910c28b,微信公众号:思佳讯SkyworksSolutions】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA设计解决跨时钟的三大方案

    时钟处理是FPGA设计中经常遇到的问题,而如何处理好跨时钟间的数据,可以说是每个FPGA初学者的必修课。如果是还是在校的学生,跨时钟
    的头像 发表于 11-21 11:13 3878次阅读
    FPGA设计<b class='flag-5'>中</b>解决跨<b class='flag-5'>时钟</b><b class='flag-5'>域</b>的三大方案

    vivado约束案例:跨时钟路径分析报告

    时钟路径分析报告分析从一个时钟(源时钟)跨越到另一个时钟
    的头像 发表于 11-27 11:11 5877次阅读
    vivado约束案例:跨<b class='flag-5'>时钟</b><b class='flag-5'>域</b>路径分析报告

    如何处理好FPGA设计时钟问题?

    时钟处理。先利用 ADC 芯片提供的 60MHz 时钟将 ADC 输出的数据写入异步双口 RAM,然后使用 100MHz 的时钟从 RAM
    发表于 09-22 10:24

    如何处理好FPGA设计时钟间的数据

    时钟处理是FPGA设计中经常遇到的问题,而如何处理好跨时钟间的数据,可以说是每个FPGA初学者的必修课。如果是还是在校的学生,跨时钟
    发表于 07-29 06:19

    基于多时钟的异步FIFO设计

    在大规模集成电路设计,一个系统包含了很多不相关的时钟信号,当其目标时钟与源时钟不同时,如何
    发表于 12-14 10:19 14次下载

    关于FPGA时钟的问题分析

    时钟问题(CDC,Clock Domain Crossing )是多时钟设计的常见现象。在FPGA领域,互动的异步时钟
    发表于 08-19 14:52 3356次阅读

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

    本篇博文中的分析是根据真实客户问题撰写的,该客户发现在现场出现罕见的比特翻转, 本篇博文旨在演示用于缩小根本原因范围以及修复此问题的部分调试技巧。 最终发现,此问题是由于时钟交汇
    的头像 发表于 09-10 09:44 1417次阅读

    如何调试设计时钟交汇问题

    本篇博文中的分析是根据客户真实问题撰写的,该客户发现即使时序已得到满足的情况下,硬件功能仍出现错误。最后发现,问题与时钟交汇 (Clock Domain Crossing) 有关,因此,本篇博文介绍了如何
    发表于 08-02 11:44 344次阅读
    如何<b class='flag-5'>调试</b>设计<b class='flag-5'>中</b>的<b class='flag-5'>时钟</b><b class='flag-5'>域</b><b class='flag-5'>交汇</b>问题

    CDC跨时钟的基础概念

    时钟clock domain:以寄存器捕获的时钟来划分时钟。 单时钟
    的头像 发表于 08-29 15:11 2511次阅读

    CDC跨时钟的基础概念介绍

    时钟clock domain:以寄存器捕获的时钟来划分时钟。单时钟
    的头像 发表于 12-26 15:21 1762次阅读

    时钟CDC之全面解析

    在一些较为简单的数字电路,只有一个时钟,即所有的触发器都使用同一个时钟,那么我们说这个电路只有一个时钟
    的头像 发表于 03-15 13:58 3787次阅读

    时钟电路设计总结

    时钟操作包括同步跨时钟操作和异步跨时钟操作。
    的头像 发表于 05-18 09:18 745次阅读
    跨<b class='flag-5'>时钟</b><b class='flag-5'>域</b>电路设计总结

    时钟处理方式

      类似于电源(电源规划与时钟规划亦是对应的),假如设计中所有的 D 触发器都使用一个全局网络 GCLK ,比如 FPGA 的主时钟输入,那么我们说这个设计只有一个时钟
    的头像 发表于 06-21 11:53 3462次阅读
    跨<b class='flag-5'>时钟</b><b class='flag-5'>域</b>处理方式

    fpga跨时钟通信时,慢时钟如何读取快时钟发送过来的数据?

    fpga跨时钟通信时,慢时钟如何读取快时钟发送过来的数据? 在FPGA设计,通常需要跨时钟
    的头像 发表于 10-18 15:23 1072次阅读

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

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