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

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

3天内不再提示

详细解析vivado约束时序路径分析问题

电子设计 来源:FPGA开源工作室 作者:FPGA开源工作室 2020-11-29 10:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

时序不满足约束,会导致以下问题:

• 编译时间长的令人绝望
• 运行结果靠运气——时对时错

导致时序问题的成因及其发生的概率如下表:


由上表可见,造成时序问题的主要原因除了约束不完整,就是路径问题,本文就时序路径分析问题作一介绍:

1、时钟网络分析

时钟网络反映了时钟从时钟引脚进入FPGA后在FPGA内部的传播路径。

报告时钟网络命令可以从以下位置运行:
① Vivado®IDE中的Flow Navigator
② Tcl命令:report_clock_networks -name {network_1}

报告时钟网络提供设计中时钟树的树视图。 如下图。每个时钟树显示从源到端点的时钟网络,端点按类型排序。


时钟树:
• 显示由用户定义或由工具自动生成的时钟。
• 报告从I / O端口加载的时钟。
• 可用于查找驱动其他BUFGs的BUFGs。
• 显示驱动非时钟负载的时钟。

温馨提醒:完整的时钟树仅在报告的GUI形式中详细说明。此报告的文本版本仅显示时钟根的名称。

以vivado自带的例子wavegen为例。点击Synthesis的Report CLock Networks如下图所示:


时钟clk_pin_p从输入引脚输入之后,经过IBUFDS,再通过MMCM生成时钟,同时显示了各个时钟的频率。如果我们未添加时钟约束,报告将显示Unconstrained(未约束的时钟,root clock).可以选中未约束的时钟右击选择Create Clock创建时钟。

如下图所示:


2、 跨时钟域路径分析

若要查看跨时钟域路径分析报告,可选择以下内容之一来查看:

• Reports > Timing > Report Clock Interaction

• Flow Navigator > Synthesis > Report Clock Interaction

• Flow Navigator > Implementation > Report Clock Interaction

• Tcl command: report_clock_interaction -name clocks_1

如下图所示,点击Synthesis–>Report Clock Interaction.


跨时钟域路径分析报告分析从一个时钟域(源时钟)跨越到另一个时钟域(目标时钟)的时序路径。跨时钟域路径分析报告有助于识别可能存在数据丢失或亚稳态问题的情况.

运行“Report Clock Interaction”命令后,结果将在“时钟交互”窗口中打开。如下图所示,时钟交互报告显示为时钟域矩阵,源时钟位于垂直轴,目标时钟位于水平轴。


No Path --用黑色框来表示:没有从源时钟到目标时钟的定时路径。在这种情况下,没有时钟交互,也没有任何报告。

Timed – 用绿色框来表示:源时钟和目标时钟具有同步关系,并安全地被约束在一起。当两个时钟具有共同的主时钟和简单的周期比时,该状态由定时引擎确定。

User Ignored Paths–用深蓝色框来表示:用户定义的假路径或时钟组约束涵盖从源时钟到目标时钟的所有路径。

Partial False Path–用淡蓝色框来表示:用户定义的伪路径约束覆盖了从源时钟到目标时钟的一些时序路径,其中源时钟和目标时钟具有同步关系。

Timed (Unsafe)–用红色框来表示:源时钟和目标时钟具有异步关系。在这种情况下,没有共同的主时钟或没有可扩展的时段。

Partial False Path (Unsafe)–用橘橙色框来表示:此类别与Timed(Unsafe)相同,只是由于伪路径异常,从源时钟到目标时钟的至少一条路径被忽略。

Max Delay Datapath Only --用紫色框来表示:set_max_delay -datapath_only约束涵盖从源时钟到目标时钟的所有路径。

Report_clock_interaction呈现的报告并不是根据时序约束生成的,但是和时序约束有关,它反映出用户定义的伪路径。

以wavegen工程为示例,点击Report Clock Interaction,如下图所示:


ID: 正在显示的源/目标时钟对的数字ID。

Source Clock: 路径源时钟域。

Destination Clock: 路径终端的时钟域。

Edges (WNS):用于计算最大延迟分析(设置/恢复)的最差裕度的时钟边缘。

WNS (Worst Negative Slack):为跨越指定时钟域的各种路径计算的最差裕度时间。负裕量时间表示路径违反了所需的建立(或恢复)时间的问题。

TNS (Total Negative Slack):属于跨越指定时钟域的路径的所有端点的最差松弛违规的总和。

Failing Endpoints (TNS): 交叉路径中的端点数量无法满足时序要求。违规的总和对应于TNS。

Total Endpoints (TNS):交叉路径中端点的总数。

Path Req (WNS):定时路径要求对应于WNS列中报告的路径。如果两个时钟中的至少一个时钟的上升沿和下降沿都有效,则在任何时钟对之间可能存在若干路径要求,或者在两个时钟之间的路径上应用了一些时序异常。本专栏中报告的值并不总是最具挑战性的要求。

Clock Pair Classification: 提供有关公共节点和时钟对之间的公共周期的信息。从最高优先级到最低优先级:忽略,虚拟时钟,无公共时钟,无公共周期,部分公共节点,无公共节点和清除。

Inter-Clock Constraints: 显示源时钟和目标时钟之间所有路径的约束摘要。

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

    关注

    19

    文章

    860

    浏览量

    71396
  • 时序路径
    +关注

    关注

    0

    文章

    12

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Vivado时序约束中invert参数的作用和应用场景

    Vivado时序约束中,-invert是用于控制信号极性的特殊参数,应用于时钟约束(Clock Constraints)和延迟约束(De
    的头像 发表于 02-09 13:49 429次阅读
    <b class='flag-5'>Vivado</b><b class='flag-5'>时序</b><b class='flag-5'>约束</b>中invert参数的作用和应用场景

    vivado中常用时序约束指令介绍

    vivado中,我们常用的时序约束指令主要包括如下几个方面。
    的头像 发表于 01-20 16:15 628次阅读

    输入引脚时钟约束_Xilinx FPGA编程技巧-常用时序约束详解

    基本的约束方法 为了保证成功的设计,所有路径时序要求必须能够让执行工具获取。最普遍的三种路径以及异常路径为: 输入
    发表于 01-16 08:19

    vivado时序分析相关经验

    vivado综合后时序为例主要是有两种原因导致: 1,太多的逻辑级 2,太高的扇出 分析时序违例的具体位置以及原因可以使用一些tcl命令方便快速得到
    发表于 10-30 06:58

    移植E203到Genesys2开发板时遇到时序问题的常见原因

    在移植E203到自己的Genesys2开发板时候遇到时序问题的常见原因 1.在vivado中,连接的管脚的信号一般都会自动添加OBUF或IBUF。 但是对于inout类型的接口,不会主动添加
    发表于 10-29 07:04

    在Windows10上运行vivado使用tcl文件创建E203项目路径错误的问题

    软件版本是vivado2020.1,开发板是MCU200T。由于习惯使用了Windows系统所以想在Windows上创建vivado项目进行开发。但是由于Makefile更适合Linux系统,所以
    发表于 10-28 07:19

    win10环境下使用vivado生成.bit与.mcs文件

    ,这里介绍一种可以直接在windows环境下使用vivado生成system.bit和system.mcs文件的方法。 1.在windows环境安装vivado,准备好e203_hbirdv2工程
    发表于 10-27 08:25

    E203内核移植到FPGA开发板时出现时序违例的解决方式

    在移植内核时,用VIVADO进行综合实现后会出现时序违例,如图: 虽然可以上板正常进行开发,但是还是想把这些违例解决下^_^ 检查后,发现是 apb_adv_timer 这条路径报的违例,解决方式
    发表于 10-27 07:32

    时序约束问题的解决办法

    在使用vivado对 Verilog 代码进行综合后,点击“SYNTHESIS”下的“Report Timing Summary”,可以查看综合后的时序报告,查看 Setup Time 和 Hold
    发表于 10-24 09:55

    关于综合保持时间约束不满足的问题

    1、将 nuclei-config.xdc 和 nuclei-master.xdc 加入到项目工程中,综合得到时序约束报告如下: 保持时间约束不满足,分析原因,发现所有不满足均出现在
    发表于 10-24 07:42

    E203分享之DDR扩展方案实施流程(下)

    soc_top层的ddr3的接口引出到最顶层system,mig的ddr3管脚约束在配置mig核的时候已经完成,不用再考虑。 (2)综合时需要把ui_clk和clk_16M间的时序路径设成
    发表于 10-23 06:16

    京东:调用用户行为API分析购买路径,优化页面跳转逻辑

    ​  在电商平台的激烈竞争中, 用户购买路径的流畅性 直接影响转化率。京东通过深度整合用户行为API,构建了完整的购买路径分析体系,显著优化了页面跳转逻辑。以下是关键技术实现路径: 一、用户行为
    的头像 发表于 09-18 14:38 794次阅读
    京东:调用用户行为API<b class='flag-5'>分析</b>购买<b class='flag-5'>路径</b>,优化页面跳转逻辑

    技术资讯 I Allegro 设计中的走线约束设计

    本文要点在进行时序等长布线操作的时候,在布线操作的时候不管你是走蛇形线还是走折线,约束管理器会自动帮你计算长度、标偏差,通过精确控制走线长度,来实现信号的时序匹配。约束设计就是一套精准
    的头像 发表于 09-05 15:19 1524次阅读
    技术资讯 I Allegro 设计中的走线<b class='flag-5'>约束</b>设计

    Vivado无法选中开发板的常见原因及解决方法

    对应的器件信息和约束文件(XDC),大大简化工程初始化流程。然而,在某些情况下,我们可能会发现 Vivado 的界面中无法选中目标开发板,导致只能手动选择器件。那么,遇到这种情况该如何处理呢?
    的头像 发表于 07-15 10:19 1938次阅读
    <b class='flag-5'>Vivado</b>无法选中开发板的常见原因及解决方法

    西门子再收购EDA公司 西门子宣布收购Excellicon公司 时序约束工具开发商

    精彩看点 此次收购将帮助系统级芯片 (SoC) 设计人员通过经市场检验的时序约束管理能力来加速设计,并提高功能约束和结构约束的正确性   西门子宣布 收购 Excellicon 公司
    的头像 发表于 05-20 19:04 1812次阅读
    西门子再收购EDA公司  西门子宣布收购Excellicon公司  <b class='flag-5'>时序</b><b class='flag-5'>约束</b>工具开发商