FPGA静态时序分析与约束(三)、读懂vivado时序报告
系列文章目录
FPGA静态时序分析与约束(一)、理解亚稳态
FPGA静态时序分析与约束(二)、时序分析
文章目录
- 系列文章目录
- 前言
- 一、时序分析回顾
- 二、打开vivado任意工程
- 2.1 工程布局路由成功后,点击vivado左侧**IMPLEMENTATION**->再点击**Report Timing Summary**
- 2.2 在弹出的界面下面的命令栏,点击**Timing**
- 2.3 点击方框1里面的intra-Clock Paths
- 三、分析静态时序路径
- 3.1 分析源时钟路径
- 3.2 分析数据路径
- 3.3 分析目的时钟路径
- 四、 计算建立时间余量
前言
前两篇文章介绍了什么是亚稳态?以及静态时序分析,但那些终究还是理论,那么在实际工程中,如何分析时序路径呢?如何将理论转到实际呢?
一、时序分析回顾
上篇文章我们知道了建立时间余量和保持时间余量公式为:
- 数据到达时间 Data Arrival time = Tclk1 + Tco + Tdata
- 数据锁存时间 Data Required Time = 锁存沿时间 + Tclk2 - Tsu
- 建立余量公式Setup Slack= 数据锁存时间 - 数据抵达时间
- 数据保持时间 Data Hold Time = Tclk1 + Tco + Tdata +时钟周期
- 数据锁存时间 Data Required Time = 锁存沿 + Tclk2 + Th
- 保持余量 = 数据保持时间 - 数据锁存时间
二、打开vivado任意工程
平台:vivado2020.1
2.1 工程布局路由成功后,点击vivado左侧IMPLEMENTATION->再点击Report Timing Summary

2.2 在弹出的界面下面的命令栏,点击Timing

- 方框1里:
①:整个设计的时序总结,如右边两个方框所示
②:整个设计里所有使用的时钟
③:相同时钟域路径
④:异步时钟域路径 - 方框2显示的是建立时间总共的信息:
①:最差建立时间余量
②:总的负建立时间余量之和
③:建立时间违规的节点路径数量
④:总的节点建立时间路径数量 - 方框3显示的是保持时间总共的信息:
①:最差的保持时间余量
②:总的负保持时间余量之和
③:保持时间违规的节点路径数量
④:总的节点保持时间路径数量
2.3 点击方框1里面的intra-Clock Paths
随便点击一个时钟域,看右侧的路径

右侧会显示最差的时序的路径(默认十条),双击path21

- 为该路径的时序余量,等于Data Required Time - Data Arrival time
- 该路径源时钟,这里是27M,周期37.037ns
- 该路径目的时钟,因为这里是同时钟域下的节点路径,所以也是27M,周期37.037ns
- 时序模型为建立时间
- 理想的建立时间为一个周期,参考FPGA静态时序分析与约束(二)、时序分析
- 这条路径总的数据延迟时间,Tdata
- 时钟偏斜
- 时钟的不确定性
- 源时钟路径
- 数据路径
- 目的时钟路径
三、分析静态时序路径
3.1 分析源时钟路径

- 时钟从外部管脚进来,经过IBUF,延迟了1.526ns
- 再经过走线net 延迟了2.18ns
- 然后进入BUFG延迟了0.093ns
- 最后经过走线net延迟了1.225ns,到达源寄存器时钟端口
- 总共源时钟路径Tclk1 = 1.526 + 2.18 + 0.093 + 1.225 = 5.024
3.2 分析数据路径

- 数据经过源寄存器Tco时间0.223ns
- 数据经过走线net延迟了4.641ns
- 数据再经过组合逻辑延迟了0.043ns
- 数据最后经过走线延迟了5.485ns
- 根据公式Data Arrival time = Tclk1 + Tco + Tdata=5.024 + 0.223 + (4.641 + 0.043 + 5.485)=15.417ns
3.3 分析目的时钟路径

- 锁存沿时间,一个时钟周期37.037ns
- 进入IBUF延迟了1.394ns
- 经过走线延迟了2.022ns
- 经过BUFG延迟了0.083
- 走线延迟了1.444ns
- 时钟悲观延迟,由软件自动算出的延迟0.313ns
- 时钟不确定性因素,-0.035ns
- 寄存器建立时间0.281ns
- Data Required Time = 锁存沿时间 + Tclk2 - Tsu=37.037 + (1.394+2.022+0.083+1.444+0.313 -0.035)-0.281=41.977ns
四、 计算建立时间余量
根据建立余量公式Setup Slack= 数据锁存时间 - 数据抵达时间=41.977-15.417=26.560ns

和显示时间余量的一样。
以上就是对viavdo建立时间余量报告的解读,保持时间同理。
FPGA静态时序分析与约束(四)、时序约束
相关文章:
FPGA静态时序分析与约束(三)、读懂vivado时序报告
系列文章目录 FPGA静态时序分析与约束(一)、理解亚稳态 FPGA静态时序分析与约束(二)、时序分析 文章目录 系列文章目录前言一、时序分析回顾二、打开vivado任意工程2.1 工程布局路由成功后,点击vivado左侧**IMPLEMENT…...
鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Badge)
可以附加在单个组件上用于信息标记的容器组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 说明: 子组件类型:系统组件和自定义组件…...
Python程序设计基础——代码习题
1 __name__属性 import demodef main():if __name__ __main__:print(这个程序被直接运行。)elif __name__demo:print(这个程序作为模块被使用。) main()3.3 编写程序,生成包含1000个0~100之间的随机整数,并统计每个元素出现的次数。 import randomx[r…...
代码随想录 贪心算法-中等题目-序列问题
目录 376.摆动序列 738.单调递增的数字 376.摆动序列 376. 摆动序列 中等 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列…...
pytest生成allure的报告
首先要下载安装配置allure allure serve ./outputs/allure_report 可以生成html的文件自动在默认浏览器中打开...
Python控制摄像头并获取数据文件
一、引言 摄像头作为计算机视觉领域的核心设备之一,广泛应用于视频监控、图像采集和数据处理等领域。通过Python编程语言,我们可以实现对摄像头的精确控制,包括摄像头的开启、关闭、参数设置以及数据获取等功能。 目录 一、引言 二、摄像头…...
免费分享一套SpringBoot+Vue自习室(预约)管理系统,帅呆了~~
大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue自习室预约)管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue自习室预约(预约)管理系统 Java毕业设计_哔哩哔哩_bilibili【免费】SpringBootVue自习室预约(预约)管理系统…...
mac删除带锁标识的app
一 、我们这里要删除FortiClient.app 带锁 常规方式删除不掉带锁的 app【如下图】 二、删除命令,依次执行即可。 /bin/ls -dleO /Applications/FortiClient.app sudo /usr/bin/chflags -R noschg /Applications/FortiClient.app /bin/ls -dleO /Applications/Forti…...
PHP异世界云商系统开源源码
系统更新与修复列表 1. 基于彩虹的二次开发 - 对彩虹系统进行了二次开发,增强了系统的功能和性能。2. 新增自定义输入框提示内容(支持批量修改) - 用户可以自定义输入框的提示内容,并支持批量修改,提升用户体验。3. 新…...
Vue生成Canvas二维码
npm install qrcode在Vue组件中引入QRCode库:import QRCode from qrcode;在Vue组件的methods中创建一个方法来生成二维码: generateQRCode() {const canvas this.$refs.qrCodeCanvas; // 获取canvas DOM元素的引用const text Hello, World!; // 要生成…...
JAVA基础—JVM内存结构基础需知
1.JVM内存结构 JVM内存结构分为5个区域:方法区,虚拟机栈,本地方法栈、堆、程序计数器。 1.方法区(Method Area):用于存储类的结构信息、常量、静态变量、即使编译器编译后的代码等数据。方法区也是所有线…...
【滤波专题-第8篇】ICA降噪方法——类EMD联合ICA降噪及MATLAB代码实现(以VMD-ICA为例)
今天来介绍一种效果颇为不错的降噪方法。(针对高频白噪声) 上一篇文章我们讲到了FastICA方法。在现实世界的许多情况下,噪声往往接近高斯分布,而有用的信号(如语音、图像特征等)往往表现出非高斯的特性。F…...
jeecg 启动 微服务 更改配置本地host地址
127.0.0.1 jeecg-boot-redis 127.0.0.1 jeecg-boot-mysql 127.0.0.1 jeecg-boot-nacos 127.0.0.1 jeecg-boot-gateway 127.0.0.1 jeecg-boot-system 127.0.0.1 jeecg-boot-sentinel 127.0.0.1 jeecg-boot-xxljob 127.0.0.1 jeecg-boot-rabbitmq1. windows系统下,在开…...
微服务day01 -- SpringCloud01 -- (Eureka , Ribbon , Nacos)
介绍微服务 1.认识微服务(p1-p5) 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构&#…...
AI推介-大语言模型LLMs论文速览(arXiv方向):2024.03.10-2024.03.15
文章目录~ 1.Large Language Models and Causal Inference in Collaboration: A Comprehensive Survey2.VisionGPT-3D: A Generalized Multimodal Agent for Enhanced 3D Vision Understanding3.MT-PATCHER: Selective and Extendable Knowledge Distillation from Large Langu…...
ThingsBoard Edge 安装部署
文章目录 一、概述1.官方文档2.部署说明3.安装准备3.1. 克隆服务器3.2.安装 Docker3.3.安装 Java 113.4.安装 PostgreSQL3.5.下载安装包 二、安装部署1.创建 Edge 实例2.创建数据库3.Edge 服务安装3.1.安装服务3.2.配置 Edge3.3.运行安装脚本3.4.重新启动服务 4.访问 Edge5.故障…...
CSS进阶空间转换和 less
<html> <head> <meta charset"UTF-8" /> <title>空间转换</title> </head> <body> <!-- 空间转换 空间:是从坐标轴角度定义的X,Y,和Z三条坐标轴构成一个立体空间 Z轴位置与视线方向相同 空间转换也叫3D转…...
C/C++ 知识点:| 与 || 的区别
文章目录 一、|与 || 的区别1、按位或运算符 |2、逻辑或运算符 ||3、区别4、总结 前言 在C编程语言中,逻辑或运算符用于连接两个条件表达式,当至少有一个条件为真时,整个表达式的结果为真。C提供了两种逻辑或运算符:按位或|和逻辑…...
CSS中如何设置单行或多行内容超出后,显示省略号
1. 设置超出显示省略号 css设置超出显示省略号可分两种情况: 单行文本溢出显示省略号…多行文本溢出显示省略号… 但使用的核心代码是一样的:需要先使用 overflow:hidden;来把超出的部分隐藏,然后使用text-overflow:ellipsis;当文本超出时…...
PFA烧杯透明聚四氟乙烯刻度量杯
PFA烧杯,刻度清晰,耐酸碱,和有机溶剂。...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
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、写…...
