Vivado时序报告五:Report Exceptions详解

news2024/11/24 11:05:57

目录

一、前言

二 Report Exceptions

2.1 配置界面

2.2 设计示例

2.3 Exception报告

2.3.1 General information

2.3.2 Summary

2.3.3 Exceptions

2.3.4 Ignored Objects


一、前言

        时序约束中,有一类约束属于Exceptions类,之所以称为Exceptions(例外)是指约束后进行时序分析时与默认的边沿选取不同,包含set_multicycle_path/set_false_path/set_max_dealy/set_min_delay四种约束。在运行时序分析时,Report Exceptions即是专门针对涉及Exceptions的路径进行报告,并且还会报告clk group约束,通过时序例外约束报告可以获取以下信息。

a) 设计中设置的所有影响时序分析的时序例外约束

b) 设计中设置的因被其他时序例外覆盖而不影响时序的时序例外约束

       有些设计存在着复杂的时序例外约束,同时时序例外约束的优先级规则较多,通过时序例外报告可以用于调试时序例外相关的问题。

二 Report Exceptions

2.1 配置界面

通过菜单栏的Reports->Timing->Report Exceptions可以进入到报告的配置界面

 

配置界面主要有Targets和Options两部分组成

 

Results Name:设置Exceptions报告的名称

Start Points:指定生成Exceptions报告的时序路径起点,类型可为Cells,Clocks,Cell Pins,I/O Port四种

Transition:指定start points的上升沿/下降沿或两个边沿都有效

 

Through Points:指定时序分析路径中间经过的对象,可为Nets,Cells,Cell Pins三类

 

End Points:指定时序分析路径的终点,类型可为Cells,Clocks,Cell Pins,I/O Port四种,同样也可以在Transition设置对象生效的边沿rise/fall

Options界面如下图

 

Coverage:报告是否包含所有时序例外,

File Output:用于设置是否将报告结果导出为txt文件,默认不导出。如果勾选了设置导出文件路径后,默认选择Overwrite,即如果存在报告文件,则新的报告内容直接覆盖原有的内容,如果选择Append则在原来内容后面追加新的报告内容

Ignore command errors (quiet mode):勾选后将会忽略运行报告时遇到的错误

Suspend message limits during command:勾选后将会忽略运行报告时的信息输出限制

Command:根据上述的配置自动生成对应的tcl命令

Open in a new tab:勾选后每执行一次分析会打开一个新的窗口,默认勾选,下图是勾选后执行了两次分析生成的两个tab。

 

Open in Timing Analysis layout:勾选后在生成报告的同时会打开Device窗口,默认不勾选

 

2.2 设计示例

module report_exception(d1,d2,d3,d4,clk1,clk2,clk3,ce,ff_min,ff_max,ff_false,ff_multi,out,out_group);
input d1,d2,d3,d4,clk1,clk2,clk3,ce;
output ff_min,ff_max,ff_false,ff_multi,out,out_group;
reg ff_min,ff_max,ff_false,ff_multi,out,out_group;
wire result;
always@(posedge clk1,negedge ce)
begin
if(!ce)
ff_min<=0;
else begin
ff_min<=d1;
ff_max<=d2;
ff_multi<=d3;
ff_false<=d4;
 end
end
assign result=ff_min+ff_max+ff_false+ff_multi;
always@(posedge clk2,negedge ce)
begin
if(!ce)
out<=0;
else 
out<=result;
end

always@(posedge clk3,negedge ce)
begin
if(!ce)
out_group<=0;
else 
out_group<=result;
end
endmodule

2.3 Exception报告

Exception报告包含四个部分:General information,Summary,Exceptions,Ignored Objects;

2.3.1 General information

与其他时序报告类似,General information主要包含一些基本信息,报告类型,设计模块名称,器件信息,Vivado版本,报告生成时间,报告生成对应的tcl命令

 

2.3.2 Summary

summary中根据Exception类型对设置的约束,约束如下

create_clock -period 10.000 -name clk1 -waveform {1.000 6.000} [get_ports clk1]
create_clock -period 8.000 -name clk2 -waveform {0.000 4.000} [get_ports clk2]
create_clock -period 8.000 -name clk3 -waveform {0.000 4.000} [get_ports clk3]
set_false_path -from [get_pins ff_false_reg/C] -to [get_pins out_reg/D]
set_multicycle_path -from [get_pins ff_multi_reg/C] -to [get_pins out_reg/D] 3
set_max_delay -from [get_pins ff_max_reg/C] -to [get_pins out_reg/D] 2.000
set_min_delay -from [get_pins ff_min_reg/C] -to [get_pins out_reg/D] 3.000
set_clock_groups -name clk3_group -asynchronous -group [get_clocks clk3]
set_max_delay -datapath_only -from [get_pins ff_min_reg/C] -to [get_pins out_reg/D] 4.000

报告如下,按照时序例外约束类型分类进行

 

其中Ignored Constraints中Clock Groups为1,是由于设置的clock_group约束无有效的时序路径

 

2.3.3 Exceptions

Exceptions中显示各类型约束命令的内容详情,Position为约束命令所在约束文件中的行数

 

Status显示约束命令的状态,为空表示约束生效,如果约束的路径对象不存在或约束被覆盖也会显示说明,例外上述set_false_path约束改成如下约束

set_false_path -to [get_pins out_reg/D]

结果如下,Min delay约束即被约束文件中第3行的false path约束覆盖,FP表示false path,其他类似的简写含义,MCP:multicycle path,MXD:max delay,MND:min delay,CG:clock group

 

约束设置了无效起点的status

 

部分约束被覆盖

 

2.3.4 Ignored Objects

        Ignored Objects报告是用于显示时序例外约束中约束的无效起点,终点,Vivado通常会直接忽略这些无效的对象,以下面约束为例,set_false_path和set_multicycle_path约束将触发器的所有引脚设为了起点

set_false_path -from ff_max_reg/*
set_multicycle_path -from [get_pins ff_multi_reg/*] 3

报告如下,除了时钟引脚有效外,其他4个引脚都属于无效的起点

 

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

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

相关文章

Base16编码解码在线工具

具体请前往&#xff1a;在线Base16编码/解码工具-支持utf-8,Latin1,ascii,GBK,Hex等编码

【股市人生】中年投资者的教训:短期盈利与家庭幸福的抉择,理智投资才是成功之道!

大家好&#xff0c;我是肝脑图弟&#xff0c;一个每天都在肝脑图的男人。今天我们来聊聊一个在股市中跌宕起伏的中年人的故事&#xff0c;这个故事不仅让人感慨&#xff0c;也给我们带来了深刻的反思。 股市就像一块美味的蛋糕&#xff0c;吸引着无数人前来品尝。初入股市的人&…

Gin框架教程01:创建一个简单的 Gin 应用

Gin是目前最流行&#xff0c;性能最好的的GOWEB框架&#xff0c;是学习GOLANG必备的知识。本人最近也在学Gin&#xff0c;在b站搜了很多教程&#xff0c;发现有的教程不够详细&#xff0c;有的教程工具包安装有问题&#xff0c;而官方文档又太简短&#xff0c;于是我就想&#…

Java项目:152 基于springboot的仓库管理系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 系统概要 ​ 本文将介绍一款基于Java开发的仓库管理系统&#xff0c;该系统可以帮助企业实现对仓库物品的高效管理&#xff0c;提高仓库运营效率。文章将详细介…

EMQX服务器的搭建,实现本地机和虚拟机之间的MQTT通信(详细教程)

前言 MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的&#xff0c;这些特点使它适用范围非常广泛。 MQTT协议中有三种身份&#xff1a;发布者&#xff08;Publish&#xff09;、代理&#xff08;Broker&#xff09;&#xff08;…

【MySQL】数据库基础指令(一)

前言 个人感觉 MySQL 没有太多的逻辑问题&#xff0c;只有对语句的熟练使用&#xff0c;会对数据进行增删查改操作即可。本章节的内容将会收集一些常用的 MySQL 的指令的使用。 目录 前言 解决MySQL无法输入中文字符的问题 数据库操作 显示当前的数据库 创建数据库 删除数据库 …

大数据存储,搜索智能化的实践分享 | OceanBase 城市交流会精彩回顾

9月21日&#xff0c;“OceanBase 城市交流会”来到了深圳&#xff0c;携手货拉拉大数据技术与产品部&#xff0c;联合举办了“走进货拉拉”的技术交流活动。货拉拉、万家数科、云集、百丽等多家企业的一线技术专家&#xff0c;就大数据存储、AI等热点话题&#xff0c;深入探讨并…

《学习方法报》是什么级别的报纸?

《学习方法报》是什么级别的报纸&#xff1f; 《学习方法报》是省级报纸。 它由山西省教育厅主管&#xff0c;山西教育教辅传媒集团主办。该报创办于 1993 年&#xff0c;国内统一刊号为 CN14-0706/(F)。其作为中国高教学会学习科学研究分会会报&#xff0c;以传递最新教改信…

C# 基于winform 使用NI-VISA USB口远程控制电源 万用表

1.下载完整版本NI-VISA NI-VISA Download - NI *注意支持的操作系统&#xff0c;以便后期编译 安装完成之后&#xff0c;打开NI MAX&#xff0c;插上usb口&#xff0c;打开测试面板进行通信 2.编程示例 见本地文件夹C:\Users\Public\Documents\National Instruments\NI-VIS…

笔记-Python爬虫技术基础及爬取百度新闻

笔记-Python爬虫技术基础及爬取百度新闻 1.1查看网页源代码1.2网页结构初步了解1.3HTML基础知识1.标题<h>标签&#xff1a;2.段落<p>标签&#xff1a;3.链接<a>标签&#xff1a;(定义链接)4.区块&#xff1a;5.类&#xff08;class&#xff09;与 ID 1.4百度…

在深圳宝安石岩路过一座关帝宫

​不管是在我老家还是这几年深漂&#xff0c;关帝爷的庙宇我还真没见过的。今天带娃骑行宝安石岩罗租村逛&#xff0c;居然看到一座古色古香的房子&#xff0c;走进一看原来这是关帝宫啊&#xff01;敬仰之情油然而生。 ​关帝宫和附近的小产权房紧凑在一起&#xff0c;但是现在…

探索人工智能在大规模采用电动汽车的时代将解决电力供需难的问题

1.导言 论文地址&#xff1a;https://arxiv.org/abs/2404.12520 随着电动汽车&#xff08;EV&#xff09;的普及&#xff0c;高峰期的用电需求可能会大幅增加。因此&#xff0c;如何适当控制电动汽车充电并尽量减少高峰期的用电量是一项重要挑战。传统上&#xff0c;基于模型和…

编程练习3 密码输入检测

#include<iostream> #include<vector> #include<string>using namespace std;// 判断字符是否为小写字母 bool isLower(char ch) {return ch > a && ch < z; }// 判断字符是否为大写字母 bool isUpper(char ch) {return ch > A && …

2024.10.8号培训计算机及外部设备装配调试员

1.理论 &#xff08;1&#xff09;电脑的种类&#xff1a;台式机&#xff1a;台式电脑&#xff0c;是一种各功能部件相对独立计算机&#xff0c;又分品牌机和兼容机。 &#xff08;2&#xff09;笔记本电脑&#xff1a;手提电脑或者膝上型电脑&#xff0c;是一种体积小&#…

【C++】内存管理,RALL原则和智能指针

1 C资源管理 C资源管理是确保程序运行效率和稳定性的关键。资源管理涉及变量、参数的存储和生命周期控制&#xff0c;以及动态内存的分配和释放。C通过一套内存管理机制来实现资源的有效分配和管理。 1.1 内存管理 为适用不同场景&#xff0c;C提供了多种内存管理方式&#…

基于Springboot+Vue的校园消费点评系统(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…

大顶堆优化dp,带限制的子序列

前言&#xff1a;看到这个题目的时候我们可以用大顶堆记录前面的最大值&#xff0c;这样我们转移的时候就少了很多繁琐的查询 题目地址 class Solution { public:int constrainedSubsetSum(vector<int>& nums, int k) {int n nums.size();vector<int> ans nu…

论文Idea | 人工智能与建筑的交叉领域探索

在人工智能&#xff08;AI&#xff09;与建筑领域的交叉研究中&#xff0c;学者们探索了如何利用AI技术优化建筑设计、施工、管理以及运营等各个环节。以下是关于这一交叉领域的一些关键内容、研究方向、代表性论文及资源。 1.人工智能在建筑领域的应用概述 人工智能技术的快速…

Dev-Cpp 5.11 安装教程【保姆级】

目录 1. 准备软件安装包 2. 软件安装 3. 软件使用过程中必备的预先设置 写在前面 1. 如果你的电脑是Win 7&#xff0c;建议安装Dev-Cpp 5.11&#xff0c;解决软件和系统的兼容问题。具体安装步骤按照本教程进行即可。 2. 如果你的电脑是Win 10&#xff0c;建议安装Embarca…