Xilinx Vivado开发环境之Timing Constraints的使用

2023-11-02

  •  引言     

       随着设计复杂度和调用IP丰富度的增加,在调试时序约束的过程中,用户常常会对除了顶层约束外所涉及的繁杂的时序约束感到困惑而无从下手。

        举个例子, XDC里面并没有指定set_false_path,为什么有些路径在分析时忽略了?我怎么去定位这些约束是哪里设定的?

        事实上,Vivado集成设计环境提供了很多辅助工具来协助用户完成时序约束的分析。本文阐述了如何结合Timing Constraints窗口对设计中的约束进行查看及分析,希望为读者的设计调试提供一些思路和方向。

Timing Constraints窗口的开启

Timing Constraints窗口仅对Synthesized Design或Implemented Design适用。你可以通过以下三种方式之一找到其入口:

  • Open Synthesized/Implemented Design,选择菜单Windows > Timing Constraints

 

  • Open Synthesized Design,选择Flow Navigator里Synthesized Design部分的Edit Timing Constraints

 

  • Open Implemented Design,选择Flow Navigator里Implemented Design部分的Edit Timing Constraints



Timing Constraints窗口一览

Timing Constraints窗口可以以图示的方式直观显示当前导入的设计中所存储的时序约束,以分类组织的架构,用户可以方便地定位约束创建的顺序及来源。
打开后的窗口整体如下图所示:



左上部分子窗口将约束做了分类,括号里是每一类约束的数量。


当选定某一类约束后,设计中所有这类约束信息会以电子表格的形式显示在右上部分子窗口。以Create Clock约束为例,



Position列是约束的位置信息,跟约束的读入顺序对应。前面带锁图标表明此约束无法在表格上直接编辑,通常是IP自带的约束。
Source File列显示了约束来源于哪个XDC或是Tcl文件。
Scoped Cell列显示了约束的作用范围,是全局还是某一个实例,通常此列显示的名称对应于自带特定约束的IP实例名。
当点击某一行选中约束后,同时在下方的All Constraints子窗口会高亮此约束语句:


你可以快速看到原始约束语句以及其来源XDC的具体文件位置。
All Constraints子窗口显示加载到内存中的约束的完整列表,其顺序与应用它们的顺序相同。 约束根据它们所源自的 XDC file 或 Tcl 脚本进行分组,根据查看需要可切换多种视图。
你可以点击expand或collapse图标展开或折叠每个约束文件的约束,如下图所示:

展开约束:


折叠约束:

此时点击Constraints旁的箭头可以看到所有关联的约束文件,进一步可以点击某个约束文件旁的箭头进行逐一查看。

你也可以取消选择 Group by Source 图标,将视图切换到一个表格,按序显示设计中的所有时序约束,其中 source constraint 文件和Scoped Cell信息显示在右侧的两列中。



在Timing Constraints窗口进行约束编辑

除了在表格中查看已有约束,还可以对已有约束进行删减、修改或者添加新的约束,改动结果也会实时反映在下方的All Constraints窗口并应用在当前的in-memory设计,方便用户在不重新跑综合实现的前提下进行多角度的时序分析试验。
要删除某一条约束,可以从任一子窗口选中此约束,右键选Remove Constraint,或者点击-图标,并点击窗口下方的Apply按键以刷新内存中的约束。


要编辑某一条约束(注意只能修改非只读,即约束前没有带锁标志的),可以选中此约束,右键选Edit Constraint,或者点击编辑图标。



在随后打开的约束编辑对话框中完成修改,并点击窗口下方的Apply按键以刷新内存中的约束。
要添加新的约束,可以点击分类表格子窗口的+图标,或者在某一类约束的空白处双击,在随后打开的对话框中将约束信息补充完整。



也可以在Tcl Console敲入新的约束进行添加。
新约束出现在名为<unsaved_constraints> 的组中的列表末尾。


约束修改后可以直接在in-memory设计上生效,由此展开更新后的时序分析,在当前布局布线的结果上评估修改后的时序。
评估完成后,如果需要保存所作的修改,可以在Close Design的时候选择Save Constraints,工具会自动选择标记为Target的XDC文件进行保存。如果并不想改动原始约束或者并不需要保存全部改动,可以在退出设计时忽略Save Constraints,之后再手动修改设计中的约束文件,加入想要的改动。


总结

以上内容对Vivado IDE中的Timing Constraints窗口做了介绍,与write_xdc命令相比,其最大的优势是能直观显示设计中所有约束的分组及来源,为时序约束的查看、验证及假设分析提供了比较方便的接口,与其他调试手段结合,可以提升设计效率。

原文标题:《读懂用好TimingConstraints窗口》,作者Grace Sun。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xilinx Vivado开发环境之Timing Constraints的使用 的相关文章

随机推荐

  • 怎么拥有自己的WeChat群聊总结助手-部署教程+安装包

    项目介绍 本项目是基于微信机器人的微信群聊总结助手 可以帮助群主或管理员自动收集群聊中的聊天记录 并使用 AI 进行总结 最终将其发送到指定的群聊中 这可能是最简单配置可以把完整功能跑起来的项目 因为尝试了几个项目 都不是很能搞得定 所以用
  • matplotlib画图在jupyter notebook中不显示

    matplotlib画图在jupyter notebook中不显示 开头加 matplotlib notebook 确保fig ax plt subplots 与plt show在一个cell执行 不能放到两个cell里
  • Nacos Server 1.1.3.zip网盘资源下载

    链接 https pan baidu com s 1 0TnUUh3rvzBRAUKaKZCsQ 提取码 yyds
  • 【定理】算术基本定理(唯一分解定理)

    大蒟蒻来水贴了 算术基本定理 唯一分解定理 一句话 任何大于 的自然数 都可以唯一分解成有限个质数的乘积 例如对于大于1的自然数n 这里P i i均为质数 其指数a i i是正整数 这样的分解称为的标准分解式 唯一分解定理具有 唯一性 分配
  • redis存取list数据,亲测可用

    redis存取list数据 亲测可用 String wl String redisTemplate opsForValue get k 获取 if Strings isBlank wl ExamWinNumLog w new ExamWin
  • linux 基于qt assistant制作软件帮助文档,基于Qt Assistant的软件帮助系统

    Qt Assistant是Qt自带的一款可定制 可重新发行的帮助文件浏览器 Qt Assistant支持HTML文件 用户可以利用其定制自己的功能强大的帮助文档浏览器 关于Qt Assistant定制的资料主要是Qt Assistant自身
  • 线上问题定位

    https blog csdn net kris958 article details 100623439 depth 1 utm source distribute pc relevant none task utm source dis
  • stm32 +cubemx 使用编码器电机测速

    一 配置定时器的编码器模式 配置tl1和tl2都检测输入 那么上升沿还是下降沿就没必要了 默认四倍频 二 配置定时器pwm 三 配置串口 四 开始撸代码 获取编码器计数值 并通过串口传输到电脑上 将CNT的初始值设置为30000 正转 反转
  • web自动化测试

    自动化测试的概念 软件自动化测试就是通过测试工具或者其他手段 按照测试人员的预定计划对软件产品进行自动化测试 他是软件测试的一个重要组成部分 能够完成许多手工测试无法完成或者难以实现的测试工作 正确合理的实施自动化测试 能够快速 全面的对软
  • java.lang.NoClassDefFoundError

    报错error提示 java lang NoClassDefFoundError 今天遇到一个项目加载报错 其实这个是一个运行时报错 但是我在项目启动时使用此类作为加载项目 具体内容为 org springframework beans f
  • 在AIX中安装与维护软件

    学习内容 在AIX中安装与维护软件 学习目标 1 了解安装软件包的含义及命名规则 2 了解AIX如何发布补丁 知道自己的AIX及已安装软件的版本情况 3 知道如何安装与管理软件及升级 4 会修复损坏的软件 5 知道如何通过Fix Centr
  • ActiveMQ 安全设置----设置安全认证账户和密码

    第一步 打开ActiveMQ 安装目录下的conf 文件夹 打开conf jetty xml
  • 运算符重载(个人学习笔记黑马学习)

    1 加号运算符重载 include
  • 深度学习知识点全面总结

    作者简介 大数据专业硕士在读 CSDN人工智能领域博客专家 阿里云专家博主 专注大数据与人工智能知识分享 公众号 GoAI的学习小屋 免费分享书籍 简历 导图等资料 更有交流群分享AI和大数据 加群方式公众号回复 加群 或 点击链接 专栏推
  • java文件流读写操作

    file 内存 输入流 gt 程序 输出流 gt file 内存 当我们读写文本文件的时候 采用Reader是非常方便的 比如FileReader InputStreamReader和BufferedReader 其中最重要的类是Input
  • Java内部培训:有哪些避免空指针的方法?

    在Java中 有几种方法可以避免空指针异常 NullPointerException 下面是其中一些常见的方法 并附带一些示例代码 1 使用条件判断 使用条件判断语句 如if语句 在使用可能为空的对象之前进行检查 以确保对象不为空 这是一种
  • 2021-10-20 q5 信号槽

    Qt5 1 自定义槽 普通函数的用法 2 任意的成员函数 普通全局函数 静态函数 3 由于信号都是没有返回值 所以 槽函数一定没有返回值 connect button QPushButton pressed this MainWidget
  • 【模板】一维前缀和与一维差分

    文章目录 1 一维前缀和 1 1 求解一维前缀和数组 1 2 区间查询 2 一维差分 2 1 定义 2 2 区间修改 2 3 初始化 前缀和是一种极其优秀的线性结构 也是一种重要的思想 能极大地降低区间查询的时间复杂度 为了方便 涉及到前缀
  • PyCharm 集成安装PyQt5及其工具(Qt Designer、PyUIC)

    注意 本文基于Python3 搭建Qt5 环境 进行相关工具完善总结 Qt Designer 安装 一 点击菜单栏 File 弹出下拉框 选择 Setting 弹出设置界面 在设置界面中选择 Tools External Tools 该部分
  • Xilinx Vivado开发环境之Timing Constraints的使用

    引言 随着设计复杂度和调用IP丰富度的增加 在调试时序约束的过程中 用户常常会对除了顶层约束外所涉及的繁杂的时序约束感到困惑而无从下手 举个例子 XDC里面并没有指定set false path 为什么有些路径在分析时忽略了 我怎么去定位这