当前位置: 首页 > news >正文

走进Prime Time系列 - 走进PT - 01

文章目录

  • PT是什么
  • STA
  • Basic Static Timing Analysis Flow
  • timing report

由于项目中需要我去接手STA方面的知识,因此需要赶紧补一下Primetime的知识,要把握好至少一天一讲的进度,力争一周的时间把STA的基础拿下。

PT是什么

一个timing 分析工具,是静态时序分析的工具。
它提取整个电路的所有时序路径,通过计算信号沿在路径上的延迟找出违背时许约束的错误,主要是检查建立时间和保持时间是否满足要求,而它们又分别通过对最大路径延迟和最小路径延迟的分析得到
而且无需仿真向量,所以仿真会非常快。
下面将介绍下面三部分

  • static Timing Analysis(STA)
  • Basic Static Timing Analysis Flow
  • Timing Reports

STA

在这里插入图片描述
通过打断长长的timing path,将其打断,归类为PT基本的timing path(如上图path x ,path y,path z等等)
每一条path都会被计算以及check是否符合时0序。

详细的STA的三个主要步骤如下所示:

具体的4种 timing path 如下图所示:

在这里插入图片描述
如下图所示,cell delay的计算分为两种,
第一种是post-layout,也就是说PD已经完成了布局和绕线,我们可以通过SDF,来获取cell的延迟和net的延迟。
第二种是pre-layout,也就是说是一种预估的,通过设置input transition和outputload,从而获取cell delay。(这个表格是model中的,我们需要通过设置input transition和outputload,从而产生cell delay)
在这里插入图片描述
对于 net delay,如果是post-layout,同样通过SDF获取,pre-layout net通过模型去估计,比如WLM模型。
在这里插入图片描述
通过下达一些constraint,比如时间周期,case值等,去看timing path是否满足。

在这里插入图片描述

Basic Static Timing Analysis Flow

在这里插入图片描述
如下图所示,你需要读取db,另外你要读取verilog的网表
在这里插入图片描述
接下来就是下达constraint:
在这里插入图片描述
prelayout需要指定的一些约束,如下图,其意义在于告诉PT要以这些约束条件去计算。

在这里插入图片描述
对于post-layout ,我们通过读取sdf以及读取寄生参数
在这里插入图片描述

timing report

当前面我们读取了netist、db,然后下达了约束之后,就可以去通过PT报告了。
Timing Reports
path type是MAX,代表报告的是setup,如果是min 代表报告的是hold
在这里插入图片描述
在这里插入图片描述
在上图中,我们看到的是数据的path,从第一个寄存器的时钟clk—>Q—>D 一点点的累加,我们可以看到数据的data arrive time是3.47
在这里插入图片描述
除了看数据到达的时间以外,如上图所示,我们还需要看时钟的path,通过时钟周期,计算要求数据在至少时钟的上升沿前面多少到达。【脑袋里面需要联想,setup计算的经典图】
因此,我们可以看到data require timing:3.5减去不确定时间0.3 ,为2.97.
然后我们用required time 减去arrival time=-0.5【因为我们要求数据需要在2.97ns之前到达,但是数据是在3.47ns才到达】
所以有violation。
在这里插入图片描述

相关文章:

  • 天龙八部科举答题问题和答案(全4/8)
  • 【聚类算法】带你轻松搞懂K-means聚类(含代码以及详细解释)
  • 【电源专题】案例:为什么芯片支持0.8V的工作电压,但EN却又要高达1.25V?
  • 湖仓一体电商项目(十四):实时任务执行流程
  • 猿创征文|Java中的IO流大家族 (两万字详解)
  • SQL Server 2014安装教程(保姆级图解教程)
  • 大白话理解-微信小程序获取授权
  • Spring常用注解。
  • Spring之拦截器
  • 【知识图谱】Louvain、LPA等5类经典社区发现算法 Python 实战
  • SQL server 2008 r2 安装教程
  • python wechat --- 企业微信机器人API
  • 阿里云ossutil使用
  • Spring——事务注解@Transactional【建议收藏】
  • scanf、printf使用详解
  • (三)从jvm层面了解线程的启动和停止
  • android 一些 utils
  • CEF与代理
  • CSS实用技巧
  • iOS | NSProxy
  • JavaScript的使用你知道几种?(上)
  • JWT究竟是什么呢?
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Meteor的表单提交:Form
  • vue-loader 源码解析系列之 selector
  • 创建一个Struts2项目maven 方式
  • 机器学习中为什么要做归一化normalization
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 详解NodeJs流之一
  • 携程小程序初体验
  • 应用生命周期终极 DevOps 工具包
  • 智能网联汽车信息安全
  • 《天龙八部3D》Unity技术方案揭秘
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 进程与线程(三)——进程/线程间通信
  • 如何用纯 CSS 创作一个货车 loader
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #、%和$符号在OGNL表达式中经常出现
  • #pragma data_seg 共享数据区(转)
  • $(selector).each()和$.each()的区别
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (9)目标检测_SSD的原理
  • (HAL库版)freeRTOS移植STMF103
  • (python)数据结构---字典
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)http-server应用
  • (转)Unity3DUnity3D在android下调试
  • (转)关于多人操作数据的处理策略
  • (转载)深入super,看Python如何解决钻石继承难题
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET大文件上传知识整理
  • .net经典笔试题