FPGA设计时序约束九、others类约束之Group Path

目录

一、序言

二、Group Path

2.1 基本概念

2.2 设置界面

2.3 命令语法

2.4 命令示例

三、工程示例

四、参考文件


一、序言

    在Vivado的时序约束窗口中,存在一类特殊的约束,划分在others目录下,可用于设置忽略或修改默认的时序路径分析,以Vivado2022.1版本为例,主要包括以下4类,本文将介绍其中的Group Path,示例的为Vivado2022.1

二、Group Path

2.1 基本概念

    Group path约束可以让用户改变一组路径的成本功能计算,可通俗理解基于时序驱动的布局布线过程中设置的路径有优先权。正常情况下,为了一些特殊情况的处理,Vivado 工具会自动地定义时钟信号的路径组。也可以通过用户定义起点,终点或起点,中间路径,终点的来设定路径组。一旦创建了路径组,执行report_timing时,时序分析将会作用于路径组。

    用户可以在已存在的时钟路径组中指定一个权重,让布局,布线,以及优化流程优先处理这些路径,主要可以优化时序。

    优点:通过设置路径组可以减少false path的数量,以及由于对于所有路径使用全局约束带来的时序违例,并且因每个组中路径的关联性从而提高时序分析的准确性和效率,简化时序报告。最后,也可以将和特定模块,功能的路径约束到相同的组,生成单独的报告进行分析。

    缺点:设置Group path对于时序分析工具处理更复杂,比如增加了定义和管理路径组的复杂度,因为这个对每个组都需要创建和更新多个约束文件和脚本,保证在设计改变时相互间的兼容性和一致性。另外,在路径组中存在丢失或错误路径的风险,这将导致不准确或不完全的时序分析

2.2 设置界面

    进入Timing Constraints界面,在左侧Others栏中选中Group Path,右侧即显示Group Path界面,双击空白位置

Group Path页面有两个子页面Targets和Options,Targets中Group name设置路径组的名称,再依次设置起点,中间节点,终点。

Options界面设置权重值,可以1或2,默认为1。

2.3 命令语法

命令格式如下

group_path [‑name <args>] [‑weight <arg>] [‑default] [‑from <args>] [‑to <args>] [‑through <args>] [‑quiet] [‑verbose]

参数含义列表如下

2.4 命令示例

1)设置一个路径组名称为signal_grp,路径的终点为指定的信号或寄存器的D口

group_path -to [get_pins *signal*reg/D -hierarchical] -name signal_grp

2)使用get_path_groups可以获取路径组信息

get_path_groups signal_grp

3)通过参数default可以移除设置的路径组,使路径恢复到默认的路径组

group_path -to [get_pins *signal*reg/D -hierarchical] -default

三、工程示例

工程代码:

module timing_analysis(d1,d2,clk1,clk2,clk3,clk4,rst,out1,out2); input d1,d2,clk1,clk2,clk3,clk4,rst; output out1,out2; reg ff1,ff2,ff3,ff4,ff5; always @(posedge clk1)     if(!rst)         ff1<=0;     else         ff1<=d1; always @(posedge clk2)     if(!rst)         ff2<=0;     else         ff2<=ff1; always @(posedge clk3)     if(!rst)         ff3<=0;     else         ff3<=ff2; assign out1=ff3&ff2; always @(posedge clk4)     if(!rst)         ff4<=0;     else         ff4<=d2; always @(posedge clk4)     if(!rst)         ff5<=0;     else         ff5<=ff4; assign out2=ff5; endmodule 

综合后网表连接图

约束内容如下,设置clk1和clk2的路径组

create_clock -period 10.000 -name clk1 -waveform {0.000 5.000} [get_ports clk1]
create_clock -period 7.000 -name clk2 -waveform {0.000 3.500} [get_ports clk2]
create_clock -period 8.000 -name clk3 -waveform {0.000 5.000} [get_ports clk3]
create_clock -period 5.000 -name clk4 -waveform {0.000 3.500} [get_ports clk4]
set_input_jitter [get_clocks clk1] 1.660
group_path -name {group_name} -weight 2.000 -from [get_clocks clk1] -to [get_clocks clk2]

时序结果,设置了group_path的路径展示在报告的Other Path Groups中

四、参考文件

1、用户手册《ug835-vivado-tcl-commands-en-us-2023.1.pdf》

文档链接:https://pan.baidu.com/s/1Su_w9CDHR7R9_tt_in_arQ?pwd=7w4f 

提取码:7w4f

2、Vivado的command reference

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/159812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【EI会议征稿】2024年智慧城市与信息系统国际学术会议 (ICSCIS 2024)

2024年智慧城市与信息系统国际学术会议 (ICSCIS 2024) 2024 International Conference on Smart City and Information System 随着互联网技术的发展&#xff0c;城市化进程的深入&#xff0c;智慧城市的研究与发展越来越普遍&#xff0c;运用物联网、云计算、大数据等先进信…

找到matplotlib的字体储存位置

import matplotlib.font_manager as fm >>> fm.findfont(Arial) # 随便找一个不存在的就行 findfont: Font family [Arial] not found. Falling back to DejaVu Sans. /home/user01/.conda/envs/tcmdataset/lib/python3.11/site-packages/matplotlib/mpl-data/fonts…

C/C++ 实现Windows注册表操作

Windows注册表&#xff08;Registry&#xff09;是Windows操作系统中用于存储系统配置信息、用户设置和应用程序数据的一个集中式数据库。它是一个层次结构的数据库&#xff0c;由键&#xff08;Key&#xff09;和值&#xff08;Value&#xff09;组成&#xff0c;这些键和值被…

【考研数学】数学一“背诵”手册(一)| 高数部分(2)

文章目录 引言一、高数级数空间解析几何球坐标变换公式零碎公式 写在最后 引言 高数一篇文章还是写不太下&#xff0c;再分一些到这里来吧 一、高数 级数 阿贝尔定理&#xff1a;若级数 ∑ a n x n \sum a_nx^n ∑an​xn 当 x x 0 xx_0 xx0​ 时收敛&#xff0c;则适合不…

QT搭建的Ros/librviz的GUI软件

1.前言 开发初期学习了下面博主的文章&#xff0c;也报了他在古月局的课&#xff0c;相当于感谢吧。 ROS Qt5 librviz人机交互界面开发一&#xff08;配置QT环境&#xff09;-CSDN博客​​​​​​​r 软件前期也是参考他的开源项目 GitHub - chengyangkj/Ros_Qt5_Gui_App …

代码随想录 完结撒花 60 天总结

“编筐编篓&#xff0c;重在收口”。对为期60天的代码训练营做一个总结&#xff0c;同时也是对我加入知识星球60天和秋招找工作的回顾。 在九月结束了论文的长跑&#xff0c;匆匆忙忙地迎来了秋招&#xff0c;被打的措手不及&#xff0c;突然发现学校期间所学和找工作所需天差地…

Linux-编译器

编译器 gcc-arm-linux-gnueabihf gcc-arm-linux-gnueabihf 是一个针对 ARM 架构 Linux 系统的交叉编译工具链&#xff0c;它包括了 C、C、Objective-C 和 Fortran 编译器以及一些辅助工具&#xff0c;用于将源代码编译成可在 ARM 架构的 Linux 系统上运行的二进制程序。arm架…

2024贵州大学计算机考研分析

24计算机考研|上岸指南 贵州大学 贵州大学计算机科学与技术学院&#xff08;贵州大学省级示范性软件学院&#xff09;位于贵州省贵阳市花溪区贵州大学东校区。 计算机科学与技术学院&#xff08;软件学院&#xff09;自1972年创办计算机软件本科专业开始&#xff0c;至今已有…

算法刷题-动态规划-1

算法刷题-动态规划-1 不同路径不同路径||方法一&#xff1a;方法二 第N个泰波那契数递归写法滚动数组 三步问题递归操作滚动数组 使用最小画法爬楼梯递归 解码方法方法一方法二&#xff1a;&#xff08;大佬讲解&#xff09; 不同路径 //机器人不同的路径进入到指定的地点 publ…

Android13集成paho.mqtt.android启动异常

项目中原依赖是&#xff1a; implementation(org.eclipse.paho:org.eclipse.paho.android.service:1.1.1) {exclude module: support-v4transitive true } implementation org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5在Android10系统运行正常&#xff0c;能够连接…

人工智能-循环神经网络的简洁实现

循环神经网络的简洁实现 如何使用深度学习框架的高级API提供的函数更有效地实现相同的语言模型。 我们仍然从读取时光机器数据集开始。 import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2lbatch_size, num_steps 32, 35…

C#获取枚举Enum的描述

简单封装个扩展方法&#xff0c;方便下次使用。 using System.ComponentModel;namespace Order.Core.API.Enums {public enum AccountStatus{[Description("账号不存在&#xff01;")]AccountNotExist 1,[Description("密码错误&#xff01;")]PasswordE…

最常用的5款报表系统

在这个信息化飞速发展的时代&#xff0c;报表系统已经成为了企业管理和决策的重要工具。随着市场的需求不断增长&#xff0c;报表系统也在不断地更新和完善。如今&#xff0c;市面上有数不尽的报表系统&#xff0c;但是哪款才是最常用的呢&#xff1f;接下来&#xff0c;我们将…

开源之夏 2023 | Databend 社区项目总结与分享

开源之夏是由中科院软件所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动&#xff0c;旨在鼓励在校学生积极参与开源软件的开发维护&#xff0c;培养和发掘更多优秀的开发者&#xff0c;促进优秀开源软件社区的蓬勃发展&#xff0c;助力开源软件供应链建设。 官…

node.js获取unsplash图片

1. 在Unsplash的开发者页面注册并创建一个应用程序&#xff0c;以便获取一个API访问密钥&#xff08;即Access Key&#xff09;。 2. 安装unsplash-js库和axios&#xff1a; npm install axios3. 使用获取到的API密钥进行请求。 示例代码如下&#xff1a; const axios req…

3DEXPERIENCE许可管理工具:掌控设计软件许可,提高企业竞争力

在当今竞争激烈的设计领域&#xff0c;合理的软件许可管理对于企业的成功至关重要。3DEXPERIENCE作为一款功能强大的设计软件&#xff0c;提供了全面且易于使用的许可管理工具。本文将详细介绍3DEXPERIENCE的许可管理工具及其对企业管理的价值&#xff0c;帮助您更好地了解和利…

【正点原子STM32连载】第五十六章 DSP BasicMath实验 摘自【正点原子】APM32F407最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html## 第五…

【管理运筹学】背诵手册(四)| 整数规划

四、整数规划 整数规划根据变量取值的限制形式&#xff0c;可分为三种&#xff1a; 纯整数规划&#xff08;IP&#xff09;。混合整数规划&#xff08;MIP&#xff09;。0-1 整数规划&#xff08;BIP&#xff09;。 不能用凑整的方法去求整数规划问题的最优解&#xff0c;用…

ChinaSoft 论坛巡礼 | 新兴系统软件论坛

2023年CCF中国软件大会&#xff08;CCF ChinaSoft 2023&#xff09;由CCF主办&#xff0c;CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办&#xff0c;将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…

算法 全排列的应用

#include <iostream> #include <string>using namespace std;// 交换字符串中两个字符的位置 void swap(char& a, char& b) {char temp a;a b;b temp; }void fun(string str) {string a str.substr(0,4); int aa;sscanf(a.c_str(), "%d",…