Vivado时序报告六:Report Timing详解
目录
一、前言
二、配置选项概览图
三、配置选项详解
3.1 Targets
3.2 Options
3.1.1 Report
3.1.2 Path limits
3.1.3 Path display
3.2 Advanced
3.2.1 Report
3.2.2 File Output
3.2.3 miscellaneous
3.3 Timer Settings
3.4 共有部分
四、 设计示例
4.1 设计工程
4.2 Report Timing报告
4.2.1 General information
4.2.2 Settings
4.2.3 Timing checks
一、前言
时序分析中,Report_timing_summary默认是对所有路径进行分析,当工程设计较大时,时序路径较多,想要查找指定时序路径的时序情况就不方便,此时就可以使用“Report Timing"功能,但“ReportTiming”不会报告“Pulse Width” (脉冲宽度)。
二、配置选项概览图
下图是Report Timing 中所有配置选项的结构图。

三、配置选项详解
下面,将对配置选项逐项进行解释。
3.1 Targets
最上面的Result name是设置名称,默认是“timing_x”,如果会多次运行分析,x将从1开始计数的

Start points (From):设置时序路径的起点,可为网表Cells,时钟Clocks,引脚Cells pin和端口Ports,可同时设置多个,设置多个时符合其中任意一个都会进行分析,都符合则都进行分析
Transtion(Rise/Fall):用于设置源时钟边沿(上升沿/下降沿)。
Through Points (Through) : 设置路径的中间经过单元,可为网表Cells,线Nets,引脚Cells pin。可同时设置多个,设置多个时会对分析所有的对象。
Endpoints (To): 设置时序路径的终点,可为网表Cells,时钟Clocks,引脚Cells pin和端口Ports,可同时设置多个,设置多个时符合其中任意一个都会进行分析,都符合则都进行分析
时钟。
3.2 Options
3.1.1 Report

Path delay type: 设置运行分析的类型,可设为min,max,min_max,综合阶段和实现阶段默认max和min都会分析,如果选择min,则只进行hold和removal分析
Report unconstrained paths:该选项默认勾选,对无约束的路径进行报告,当使用tcl命令report_timing_summary时是不会打开该配置
3.1.2 Path limits

Number of paths per clock:控制每个时钟组或路径组的最大数目,等效的tcl命令为-max_paths
Number of per endpoint:控制每个路径终点的最大路径数,该值一定是小于或等于maximum number of paths per clock or path group的值,等效的tcl命令为-nworst
Limits paths to group:设置每个时钟组的路径数,每个时钟属于一个时钟组
3.1.3 Path display

Display paths with slack greater than: 通过路径的slack值进行过滤,设置所能显示的slack值的最小值
Display paths with slack less than:通过路径的slack值进行过滤,设置所能显示的slack值的最大值
Significant digits:控制报告中数字显示的精度,默认是3位小数
Sort paths by:设置按组(默认) 还是按裕量slack来显示报告的路径。如果按组排序, 报告中会包含每个组和每种分析类型 (-delay_type min/max/min_max) 的 N 条(Number of per endpoint的设置值)最差的路径,最差的违例的组排在最前面。如果按裕量排序, 将按分析类型报告 N 条最差的路径(所有组已组合在一起), 并按裕量值升序排序。等效的 Tcl 选项为-sort_by。
3.2 Advanced
3.2.1 Report

Report from cells:指定报告的时序路径都经过设置的cells,该cells可以是起点,终点或中间部分
Show input pins in path:勾选后会显示时序路径上每个单元的输入引脚
Report number of routable nets:勾选后只报告布线成功net的
Report unique pins:勾选后,对于每一组引脚(起点和终点)仅展示一条时序路径
Report user ignored paths:勾选后将不会报告Unconstrained paths内容
3.2.2 File Output

Export to file:默认的时序报告结果是写入时序窗口中,可以指定导出到指定的文件,写入时可以指定时覆盖overwrite或追加append写入
Interactive report file:以赛灵思RPX格式写入指定名称的文件中,RPX文件是一个包含所有报告信息的交互式报告,可以被重载入内存中
3.2.3 miscellaneous

Ignore command errors:直接执行命令,会忽略命令中的错误也不会返回错误信息,等效的tcl命令为-quiet
Suspend message limits during command execution:暂时性的忽略任何信息显示限制的设置,返回所有信息,等效的tcl命令为-verbose
3.3 Timer Settings

Interconnect:用于控制net的时延值的计算方式,可以是评估的cell间的布线距离,实际的布线或者时序分析时移除net的时延。默认情况下,综合后阶段是用估算的net延时值,实现阶段后是用实际的net时延。可以设置值:actual,estimated,none
Estimated:对于未布局的单元cells,走线时延值是用最可能的布局情况下的值,会考虑driver和load以及扇出;对于已经布局的cells,走线时延是基于driver和load的距离以及扇出
actual:对于已经布线的net,走线时延是和实际硬件走线的时延一致
none:不考虑走线时延,等效走线时延值为0
Speed grade:设置器件的速度等级,通常情况下该值和工程创建时设置的速度一致,也可以不需要重新运行综合和实现,直接改变速度等级进行时序分析,等效的tcl命令为 set_speed_grade
Multi-corner configuration:指定fast/slow corner(可以理解为芯片运行的外部环境的好坏)下分析的路径时延类型,可以为none,min,max,min_max
Disable flight delays:勾选后时序分析不会考虑I/O端口的封装时延,
3.4 共有部分

Command:根据当前配置选项的情况自动生成对应的tcl命令
Open in a New Tab:勾选后在一个新的tab中显示结果,原先的tab标签结果保留,不勾选则会覆盖原有的结果
Open in Timing Analysis Layout:勾选后时序分析中以“Timing Analysis”的布局方式呈现结果
四、 设计示例
4.1 设计工程
module report_timing(d1,I1,I2,I3,clk1,clk2,clk3,ce,out1,out2);
input d1,I1,I2,I3,clk1,clk2,clk3,ce;
output out1,out2;
reg ff0,out1,out2;
wire result;
always@(posedge clk1,negedge ce)
begin
if(!ce)
ff0<=0;
else begin
ff0<=d1;end
end
assign result=ff0&ff0;LUT4 #(.INIT(16'h0810) // Specify LUT Contents) LUT4_inst (.O(o_lut), // LUT general output.I0(result), // LUT input.I1(I1), // LUT input.I2(I2), // LUT input.I3(I3) // LUT input);
always@(posedge clk2,negedge ce)
begin
if(!ce)
out1<=0;
else
out1<=o_lut;
endalways@(posedge clk3)
begin
if(!ce)
out2<=0;
else
out2<=o_lut;
end
endmodule
时序约束
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]
4.2 Report Timing报告
Exception报告包含四个部分:General information,Settings,Timing Checks;
4.2.1 General information
与其他时序报告类似,General information主要包含一些基本信息,报告类型,设计模块名称,器件信息,Vivado版本,报告生成时间,报告生成对应的tcl命令

4.2.2 Settings
Settings中显示了生成报告前的配置选项界面的设置,也是分Targets,Report Options,Advanced,Timer Settings四类来展示

4.2.3 Timing checks
在使用默认配置时,结果和report_timing_summary的报告结果一致,除了无pulse_width的内容,下图是上述设计默认配置下的报告

将End points设为clk3,报告只有destination clock为clk3的路径

将sort paths by设为slack,则报告结果按slack来展示

将slow/fast corner下的延时类型都设为min

则报告只有hold分析

相关文章:
Vivado时序报告六:Report Timing详解
目录 一、前言 二、配置选项概览图 三、配置选项详解 3.1 Targets 3.2 Options 3.1.1 Report 3.1.2 Path limits 3.1.3 Path display 3.2 Advanced 3.2.1 Report 3.2.2 File Output 3.2.3 miscellaneous 3.3 Timer Settings 3.4 共有部分 四、 设计示例 4.1 设…...
java基础:数据类型的总结
一、Java 常用数据类型 1.数据类型分为:(1)基本数据类型 (2)引用数据类型 2.基本数据类型分类:数值型,非数值型。 3.数值型:(1) 整数类型(byte,short,int,long) (2) …...
【目标检测论文解读复现NO.39】基于改进 YOLOv8 的轻量级复杂环境苹果叶片病害检测方法
前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,…...
python 基础笔记 2(函数, 类)
起因, 目的: 把很久以前,自己写的笔记发布出来。 现在粉丝多了,也不觉得丢人了。 为什么这些序号不连贯,因为有些很熟悉的东西,我都删了。 内建函数, 函数 zip()函数,利用 * 号操作符,可以将元组解压为列表。 我怀疑是zip的解包只能用一次。在内存中解开一次之后就销…...
LeetCode 2090.半径为K的子数组平均值
题目: 给你一个下标从 0 开始的数组 nums ,数组中有 n 个整数,另给你一个整数 k 。 半径为 k 的子数组平均值 是指:nums 中一个以下标 i 为 中心 且 半径 为 k 的子数组中所有元素的平均值,即下标在 i - k 和 i k 范…...
Qt C++ 编程中定义了一个槽函数(slot)deleteLater的作用
这行代码是在 Qt C编程中定义了一个槽函数(slot)deleteLater。 在 Qt 框架中,Q_SLOTS关键字用于声明类中的槽函数。deleteLater是一个非常有用的函数,它会安排接收对象在事件循环返回后被删除。 通常在以下情况下会使用deleteLa…...
【Hive】8-Hive性能优化及Hive3新特性
Hive性能优化及Hive3新特性 Hive表设计优化 Hive查询基本原理 Hive的设计思想是通过元数据解析描述将HDFS上的文件映射成表 基本的查询原理是当用户通过HQL语句对Hive中的表进行复杂数据处理和计算时,默认将其转换为分布式计算 MapReduce程序对HDFS中的数据进行…...
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18目录1. On the Reliability of Large Language Models to Misinformed and Demographically-Informed Prompts2. SafeLLM: Dom…...
CTF(四)
导言: 本文主要讲述在CTF竞赛中,web类题目file_include。 靶场链接:攻防世界 (xctf.org.cn) 一,观察页面。 可以看到一段php代码。从则段代码中我们可以知道: 1,使用include引入check.php文件ÿ…...
智慧商城项目1-项目初始化创建
这是一个面向移动端的项目,先看看做了这个项目能收获什么,注意这是vue2的项目, 是个经典项目,能为未来学习vue3项目打下基础。 首先来说一下为啥是vue2,因为vue3还没有大范围普及,目前大部分企业还在用vue2…...
Java集合(四)--treeset/treemap/章节练习题目/去重原理的解读和应用
文章目录 1.treeset结构2.treemap结构3.集合去重辨析总结4.对于arraylist的练习题目5.对于HashMap的练习题目6.第三点的去重运用7.HashSe练习题目 1.treeset结构 下面的这个就是对于这个treeset结构进行测试的一个程序,在这个里面,add表示的就是对于这个…...
如何开启华为交换机 http
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…...
SpringBoot中的RedisTemplate对象中的setIfAbsent()方法有什么作用?
文章目录 原子性操作用于分布式锁可选的过期时间 setIfAbsent() 方法是 Redis 中用于设置一个键值对的命令,只有在该键不存在时才会设置成功。它通常用于实现分布式锁的逻辑 主要功能: 原子性操作 setIfAbsent() 是一个原子性操作,意味着在执行该操作的…...
《合肥工业大学学报(自然科学版)》
《合肥工业大学学报(自然科学版)》以基础理论、应用科学和工程技术为主的综合性学术刊物,主要刊登机械工程、仪器科学与光电工程、材料科学与工程、电气与自动化工程、计算机与信息工程、电子科学与应用物理、土木与水利工程、资源与环境工程、汽车与交通工程、化学…...
Android11 USB Camera会出现预览绿屏问题
目录 一、问题描述 二、问题原因 三、解决方法 一、问题描述 DDR容量是4G及以上的机器,USB Camera会出现预览绿屏问题。 串口中会刷如下log: 二、问题原因 RGA2使用超过4G内存会异常,导致USB Camera调用rga相关操作报错,从而预览绿屏 三…...
Mongodb 获取集合(collection)的统计信息
在MongoDB中,获取指定集合(collection)的统计信息可以通过执行collStats命令来实现。这个命令提供了关于集合的详细信息,包括: 集合的大小索引的大小和数量文档的数量存储空间的使用情况各种统计数据,如平…...
Java中的集合(1)——List、Map和Set
Java标准库自带的java.util包提供了集合类:Collection,它是除Map外所有其他集合类的根接口。Java的java.util包中提供了以下三种类型的集合: List:一种有序列表的集合,例如,按索引排列的Student的List&…...
MySQL8.0主从同步报ERROR 13121错误解决方法
由于平台虚拟机宿主机迁移,导致一套MySQL主从库从节点故障,从节点服务终止,在服务启动后,恢复从节点同步服务,发现了如下报错: mysql> show slave status\G; *************************** 1. row *****…...
【论文阅读】03-Diffusion Models and Representation Learning: A Survey
Abstract(摘要) 扩散模型是各种视觉任务中流行的生成建模方法,引起了人们的广泛关注它们可以被认为是 自监督学习方法【通过数据本身的结构和特征来训练模型,而不是依赖外部标签】 的一个独特实例,因为它们独立于标签注…...
【深度学习】RNN的简单实现
目录 1.RNNCell 2.RNN 3.RNN_Embedding 1.RNNCell import torchinput_size 4 hidden_size 4 batch_size 1idx2char [e, h, l, o] x_data [1, 0, 2, 2, 3] # 输入:hello y_data [3, 1, 2, 3, 2] # 期待:ohlol# 独热向量 one_hot_lookup [[1, …...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
python读取SQLite表个并生成pdf文件
代码用于创建含50列的SQLite数据库并插入500行随机浮点数据,随后读取数据,通过ReportLab生成横向PDF表格,包含格式化(两位小数)及表头、网格线等美观样式。 # 导入所需库 import sqlite3 # 用于操作…...
Python异步编程:深入理解协程的原理与实践指南
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 持续学习,不断…...
