静态时序分析详解之时序路径类型

目录

一、概览

二、时序路径

2.1 数据路径

2.2 时钟路径

2.3 时钟门控路径

2.4 异步路径

2.5 关键路径

2.6 False路径

2.7 单周期路径

2.8 多周期路径

2.9 最长路径和最短路径

三、参考资料


一、概览

    ​    ​静态时序分析通过模拟最差条件下分析所有的时序路径,报告出存在违例的路径,来验证设计的时序性能是否满足要求。

    ​    ​相比动态分析的模拟仿真,静态时序分析因为不需要大量的测试向量,分析更快,再者因为是分析所有的时序路径,分析结果齐全,单缺点是只能分析时序结果,无法验证设计功能的正确性。静态时序分析主要有三个流程:设计连接划分为一系列的时序路径,计算每一条路径的信号传输时延,检查时序约束下违例的路径。

二、时序路径

    ​    ​时序路径可以根据信号的类型分为不同的路径,如数据路径,时钟路径,时钟门控路径,异步路径等。每一条时序路径都有一个起点和一个终点,不同时序路径类型的起点和终点存在些差异,一般起点是设计中由发送时钟边沿触发的位置,终点是设计中数据由起点发出,经过组合逻辑后由捕获时钟边沿触发接收的位置。

2.1 数据路径

    ​    ​数据路径中起点可以是设计的输入端口(输入数据可以由芯片外部时钟发送),或者是时序单元的时钟引脚,终点可以是时序单元的数据端口或设计的输出端口(由芯片外部的时钟捕获数据)。下图是根据起点和终点单元类型对时序路径的分类。

由上图可知,数据路径有四种类型

路径1:外部器件通过输入端口DIN到FPGA内部的寄存器单元REG A

路径2:输入寄存器REG A到输出寄存器REG B 

路径3:FPGA内部寄存器REGB的数据通过输出端口DOUT输出到芯片外部

路径4:芯片输入端口DIN到输出端口DOUT间的路径

2.2 时钟路径

时钟路径中起点是时钟输入端口,终点是时序单元如触发器,存储器的时钟引脚,以下图为例,源时钟路径和目标时钟路径就是两条时钟路径,终点分别是触发器REGA和REGB的时钟引脚。

2.3 时钟门控路径

时钟门控路径中起点是设计的输入端口,终点是时钟门控单元的输入端口,以下图示例。输入信号En不属于时钟的一部分,但是可以控制输入时钟信号是否能有效作用于CLK端口。这种路径既不属于时钟路径也不属于数据路径,成为时钟门控路径

2.4 异步路径

异步路径中起点是设计的输入端口,终点是时序单元的异步复位,置位或清零引脚,异步信号不依赖于时钟信号的有效沿。

2.5 关键路径

简单理解,关键路径就是延时最大的组合路径,决定了设计正常运行时的最大频率,也是时序敏感的功能路径。关键路径也是不满足时序要求的路径。综合后时序分析工具就能报告出时序违例的路径,看到违例路径后首要做的是确认这些路径是否属于不用分析或者多周期的路径。

在分析设计中的违例路径时,了解关键路径周围的相互作用很有帮助。 要了解关键路径上可能存在的拉动因素,可以使用以下 report_timing 命令。 在项目目录中,运行 report_timing 命令查找关键路径中的节点。 将以下代码复制到 .tcl 文件中,并将前两个变量替换为最差路径的“起始节点”和“终止节点”列中的节点名称。该脚本将分析最差源寄存器和目标寄存器之间的路径。以下图示例,设计的关键路径以红色显示。

set wrst_src <insert_source_of_worst_path_here>
set wrst_dst <insert_destination_of_worst_path_here>
report_timing -setup -npaths 50 -detail path_only -from $wrst_src \
-panel_name "Worst Path||wrst_src -> *"
report_timing -setup -npaths 50 -detail path_only -to $wrst_dst \
-panel_name "Worst Path||* -> wrst_dst"
report_timing -setup -npaths 50 -detail path_only -to $wrst_src \
-panel_name "Worst Path||* -> wrst_src"
report_timing -setup -npaths 50 -detail path_only -from $wrst_dst \
-panel_name "Worst Path||wrst_dst -> *"

.tcl 脚本与图形之间的关系如下: 前两行显示了关键路径两个端点内部的所有内容,这些路径将它们拉向不同的方向。 第一个 report_timing 命令分析源驱动的所有路径,以绿色显示。 第二个 report_timing 命令分析通往目标的所有路径,包括关键路径,以橙色显示。 最后两个 report_timing 命令显示了端点外部的所有内容,这些路径将它们拉向不同的方向。 如果这些相邻路径中的任何一条在关键路径附近有松弛,则过滤器会平衡这些路径与关键路径,以尝试实现最佳松弛。

2.6 False路径

对于设计中实际存在,但逻辑功能不正确的路径,没有数据从起点到终点,这种没有时序要求的路径成为False路径。因为时序分析工具默认会分析所有的路径,对于False路径,需要约束为False path,否则会因优化时序结果而增加运行时间。

以下图选择器设计为例,False path2和False path1不会同时出现,但是时序分析的时候STA工具无法识别这种逻辑,因此必须人为地设置false path约束

常见的False path场景

a)来自配置输入的场景

b)来自测试的输入,输入信号仅用于芯片测试,正常运行模型下不生效

c)来自异步输入进入到芯片

2.7 单周期路径

单周期路径是设计中数据从起点传输到终点要求在一个时钟周期完成,单周期路径可分为发送路径和接收路径。下图中UFF0是发送触发器,UFF1是接收触发器,两者之前的为数据路径,数据路径的起点为UFF0/CK,终点是UFF1/D。

发送时钟路径加上数据路径就是数据到达接收触发器的到达时间(Arrival Time),接收时钟的周期加上时钟延时就是数据到达接收触发器的要求时间(Required Time)

2.8 多周期路径

多周期路径是需要非默认设置或保持关系进行正确分析的数据路径。

例如,一个寄存器可能被需要用于采集每第二个或第三个上升时钟边沿上的数据。乘法器的输入寄存器与输出寄存器之间的多周期路径的示例,其中目地寄存器在每隔一个时钟边沿上锁存数据。

当源时钟src_clk的周期为10 ns,目的时钟dst_clk的周期为5 ns时,用于默认设置和保持关系的寄存器到寄存器路径,源和目的时钟的相应时序图,默认设置和保持关系。默认设置关系为5 ns;默认保持关系为0 ns。

为满足系统要求,您可以通过对寄存器到寄存器路径指定多周期时序约束来修改默认设置和保持关系。

异常(exception)的multicycle setup assignment值为2,以使用第二个出现的锁存沿;在此实例中,从默认值5 ns到10 ns。

2.9 最长路径和最短路径

任何两个起点和终点间,都可能存在很多路径,最长的路径是延时最长的路径,也成为最差路径或最迟路径或Max路径。最短路径是延时最小的路径,也称为最好路径或Min路径。下图中最长路径是经过UBUF1,UNOR2,UNAND3单元后的路径,最短路径是只经过UNAND3的路径

三、参考资料

https://www.intel.cn/content/www/cn/zh/docs/programmable/683243/20-1/multicycle-path-analysis.html

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

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

相关文章

SpringBoot埋点功能技术实现方案深度解析:架构设计、性能优化与扩展性实践

SpringBoot埋点功能技术实现方案深度解析&#xff1a;架构设计、性能优化与扩展性实践 1. 原理剖析与技术实现细节 1.1 埋点技术基本原理 埋点&#xff08;Tracking&#xff09;是通过在代码中植入特定逻辑&#xff0c;收集用户行为数据、系统运行状态和业务指标的技术手段。在…

自建prometheus监控腾讯云k8s集群

自建prometheus监控腾讯云k8s集群 使用场景 k8s集群&#xff08;腾讯云容器服务&#xff09; promtheus (外部自建服务) 腾讯云提供了容器内部自建 Prometheus 监控 TKE 集群的文档&#xff0c;参考。 当前的环境promethues建在k8S外的云服务器上&#xff0c;与上面链接文…

2025高教社国赛数学建模C题参考论文(含模型和代码)

2025 年高教社杯大学生数学建模竞赛 C 题参考论文 目录 NIPT 的时点选择与胎儿的异常判定 摘要 1 问题重述 2 问题分析 2.1 问题 1 分析 2.2 问题 2 分析 2.3 问题 3 分析 2.4 问题 4 分析 3 模型假设与符号定义 3.1 模型假设 4. 孕周在 10-25 周内检测有…

iOS开发环境搭建及打包流程

一、下载xcode 直接去苹果商店的appstore下载就行 二、clone项目 1.登录xcode苹果账号或对应代码仓库账号 2.clone项目 3.安装设备真机环境&#xff08;未安装过的话&#xff09; 三.安装cocoapods 1. 检查并更新 Ruby 环境 CocoaPods 是基于 Ruby 编写的&#xff0c;因此…

数据结构之链表(单向链表与双向链表)

一&#xff0c;链表描述链表是一种常见的重要的数据结构,是动态地进行存储分配的一种结构。常用于需存储的数据的数目无法事先确定。1.链表的一般结构链表的组成&#xff1a; 头指针&#xff1a;存放一个地址&#xff0c;该地址指向一个元素 结点&#xff1a;用户需要的实际数据…

从反向代理到负载均衡:Nginx + Tomcat 构建高可用Web服务架构

从反向代理到负载均衡&#xff1a;Nginx Tomcat 构建高可用Web服务架构 文章目录从反向代理到负载均衡&#xff1a;Nginx Tomcat 构建高可用Web服务架构一、基础铺垫&#xff1a;什么是反向代理&#xff1f;1.1 反向代理的核心原理1.2 Nginx反向代理实战配置步骤1&#xff1a…

Simulink中使用Test sequence单元测试

一、Tips 在对simulink模型进行Test sequence单元测试时&#xff0c;如果采取书写测试用例的话&#xff0c;有以下操作。 1、使用”fprintf(‘time%f\n’, t);“来打印当前step的时间&#xff1b; 二、数据类型转换 1、double类型 -> boolean类型 clc; clear all;% 1、doubl…

【mysql】SQL自连接:什么时候需要,什么时候不需要?

SQL自连接:什么时候需要,什么时候不需要? 通过具体示例和对比解析,彻底搞懂SQL自连接的使用场景 在处理SQL查询时,尤其是当表中存在自引用关系(如referee_id引用同一张表的id)时,很多开发者会疑惑:这个查询到底需不需要自连接?本文将通过多个具体示例,带你彻底弄清何…

「美」创新在于人,而不是产品 - AxureMost 落葵网

添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 第一章&#xff1a;创新的心理学 创新与心理安全 蜡烛问题&#xff1a;卡尔邓克尔的蜡烛问题实验揭示了创造性思维的重要性。通过颠覆对盒子用途的先入为主观念&#xff0c;参与者能够找到创新性的解决方案…

新规则,新游戏:AI时代下的战略重构与商业实践

当你的客服AI能够真正像员工一样理解客户的行业术语&#xff0c;当AI能主动从大量的客户咨询中筛选出高价值潜在客户 —— 这已经不再是理想中才能存在的场景&#xff0c;而是当下 “人工智能 ” 行动深入推进中&#xff0c;企业智能化转型的真实写照。 "人工智能 " …

ScanNet: Richly-annotated 3D Reconstructions of Indoor Scenes 数据集构建

paper link: paperlink Abstract: 这个数据集是个RGB-D视频数据集&#xff0c;在707个不同空间中获取了1513个扫描的场景&#xff0c;250w个视图&#xff0c;并且标注了相机位姿&#xff0c;表面重建&#xff0c;语义分割。本数据集共有20人扫描500名工作者进行标注。 数据集…

c语言期末复习

一、选择题(10道) 1、以下哪个不是C语言的关键字? A) int B) float C) string D) while (答案:C) 2、表达式 5 / 2 的结果是: A) 2.5 B) 2 C) 3 D) 2.0 (答案:B) 3、指针变量存储的是: A) 变量的值 B) 变量的地址 C) 变量的类型 D) 变量的名称 (答案:B) 4、以…

JLINK 调试器单步调试单片机

0 JLINK 调试器单步调试单片机 1 物理层1.1 调整电压和开发板一致2 环境搭建 2.1 安装 JLink_Windows_V862_x86_642.2 vscode 配置 {"version": "0.2.0","configurations": [{"name": "(gdb) 启动","type": "…

大模型(LLM)安全保障机制(技术、标准、管理)

大模型&#xff08;LLM&#xff09;的安全保障涉及技术、标准、管理等多个层面。下面我将结合其核心风险&#xff0c;为你梳理主要的安全机制、相关标准框架以及一些实践建议。为了让您快速了解大模型面临的主要风险及相应的应对机制&#xff0c;我准备了一个表格&#xff1a;安…

虚拟机之CentOS、网络设置的有趣问题

前言 年初射出的子弹&#xff0c;今天中了。 年初埋下的坑&#xff0c;今年踩了。 回首过往&#xff0c;why&#xff1f; because&#xff1a;当时下载VMware的时候。没有设置网络。 重点——使用VMware安装CentOS 9 使用VMware安装CentOS Stream 9_哔哩哔哩_bilibili 总…

Biomni:来自斯坦福的通用型生物医学 AI 智能体,科研“虚拟助手“来了!

在当今生物医学研究中&#xff0c;实验手段和数据量正以前所未有的速度膨胀。从基因组学、单细胞组学到多模态数据&#xff0c;再到可穿戴设备的健康监测&#xff0c;科研人员每天都在与庞大的数据和复杂的分析流程打交道。 然而&#xff0c;实验设计琐碎、工具分散、跨学科整合…

移植后 eto 阳性 干扰素 α1b、白介素 - 2 dli

在异基因造血干细胞移植&#xff08;allo-HSCT&#xff09;后仍存在 AML1-ETO&#xff08;ETO&#xff09;融合基因阳性的患者中&#xff0c;干扰素 α1b 联合白介素 - 2&#xff08;IL-2&#xff09; 是临床中探索用于清除微小残留病&#xff08;MRD&#xff09;、降低复发风险…

防止接口被薅羊毛(防刷)(DAY 002)

背景&#xff1a;短信验证码接口被不法分子用来做灰产&#xff08;短信邮箱轰炸机&#xff09; 如何避免⾃⼰的⽹站成为”⾁鸡“或者被刷&#xff1f; 增加图形验证码&#xff08;开发⼈员&#xff09;单IP请求次数限制&#xff08;开发⼈员&#xff09; 防刷之图形验证码&…

【RabbitMQ】----RabbitMQ 的7种工作模式

1.Simple(简单模式) P:⽣产者,也就是要发送消息的程序 C:消费者,消息的接收者 Queue:消息队列,图中⻩⾊背景部分.类似⼀个邮箱,可以缓存消息;⽣产者向其中投递消息,消费者从其中取出消息. 特点:⼀个⽣产者P&#xff0c;⼀个消费者C,消息只能被消费⼀次.也称为点对点(Point-to-P…

今日分享:C++ -- list 容器

&#x1f60e;【博客主页&#xff1a;你最爱的小傻瓜】&#x1f60e; &#x1f914;【本文内容&#xff1a;C list容器 &#x1f60d;】&#x1f914; --------------------------------------------------------------------------------------------------------------------…