静态时序分析STA——2. 数字单元库-(1)

参考文献
[1]Static Timing Analysis for Nanometer Designs A Practical Approach
[2]静态时序分析圣经翻译计划——第三章:标准单元库 (上)

一. 引脚电容

  标准单元库的每个cell的每个输入和输出都可以在pin上指定电容。在大多数情况下,仅为单元输入引脚指定电容,而不为输出引脚指定电容,即大多数单元库中的输出引脚电容为 0。
在这里插入图片描述

  上例中展示了输入 INP1 引脚电容值的一般规格(specification)。在最基本的格式中,引脚电容被指定为单个值(在上面的示例中为 0.5 个单位)。电容单位通常为皮法拉(pF),一般在库文件的开头指定。单元描述中还可以为 rise_capacitance(0.5 个单位)和 fall_capacitance(0.45 个单位)分别指定值,这些值是指引脚 INP1 上发生电平上升和下降跳变时的值。也可以将rise_capacitance 和 fall_capacitance 的值指定为范围,并在描述中指定下限值和上限值。

二. 时序模型

  逻辑单元的时序模型(timing model)旨在为设计中的各种单元实例(instance)提供准确的时序信息。通常会从单元的详细电路仿真中获得时序模型,用以对单元工作时的实际情况进行建模,且需要为逻辑单元的每个时序弧都建立一个时序模型。
在这里插入图片描述

  对于一个反相器(inverter)的时序弧,可以使用Tr(输出上升延迟)和Tf(输出下降延迟)来表征反相器的延迟。
  通过反相器的时序弧的延迟取决于两个因素:

  • 1)输出负载,即反相器输出引脚上的电容负载,负载电容越大,延迟越大。
  • 2)输入信号的过渡(transition)时间,在大多数情况下,延迟会随着输入信号过渡时间的增加而增加。

  而在某些情况下,输入信号阈值点(用于测量延迟)与单元的内部开关点(switching point)明显不同。在这种情况下,通过单元的延迟可能相对于输入信号过渡时间表现出非单调行为:较大的输入信号过渡时间可能会产生较小的延迟,尤其是在输出负载较小的情况下。

  逻辑单元输出引脚的压摆(slew)主要取决于输出引脚电容:输出信号过渡时间会随着输出负载的增加而增加。 因此,在输入端压摆较大(输入信号过渡时间较长)的情况下,选择合适的单元类型及输出负载,可以改善输出端的压摆。图 3-2 展示了通过调节逻辑单元的输出负载,可以改善或恶化单元输出信号过渡时间的情况。
在这里插入图片描述

1. 线性时序模型-linear delay model

  较为简单的时序模型是线性延迟模型(linear delay model)。该模型使用含两个参数的线性函数表示逻辑单元的延迟和输出过渡时间,这两个参数是:输入过渡时间(input transition time)和输出负载电容(output load capacitance)。通过逻辑单元的延迟(D)使用线性模型的一般形式如下所示:
在这里插入图片描述

  其中 D0, D1, D2 是常数, S 是输入过渡时间, C 是输出负载电容。对于亚微米(submicron)技术,线性延迟模型在输入过渡时间和输出负载电容的范围内并不准确,因此,目前大多数单元库都使用更复杂的模型,例如非线性延迟模型(non-linear delay model)。

2. 非线性时序模型-non-linear delay model

  大多数单元库都包括表格模型(table model),用于为单元的各种时序弧指定延迟并进行时序检查。这些表格模型被称为 NLDM(NonLinear Delay Model),可用于延迟、输出压摆计算或其他时序检查。表格模型中提供了:在单元输入引脚处输入过渡时间和输出引脚处输出负载电容的各种组合下通过单元的延迟。

如何查表计算输出延迟

  NLDM 模型以二维形式表示,两个独立变量是输入过渡时间和输出负载电容,表中的数值表示延迟。以下是一个典型反相器单元的表格模型示例:
在这里插入图片描述

在上例中描述了输出引脚OUT的延迟信息。单元描述里的这个部分包含了从引脚 INP1 到引脚 OUT 时序弧的上升和下降延迟模型,以及引脚 OUT 的 max_transition 允许时间。上升和下降延迟有单独的模型(用于输出引脚),分别标记为 cell_rise 和 cell_fall。其中delay_tempate_3x3是一个查找表模板,可以在数字单元库里面找到,其中index_1表示的是输入转换时间的索引值,而index_2表示的是输出负载电容的索引值,values表示的是基于index_1和index_2的二维查找表,查找表中的值为NLDM的输出延迟结果。此外,表格模型可以是三维的,例如一个具有互补输出Q和QN的触发器。
在这里插入图片描述

  根据延迟表,输入下降过渡时间为 0.3ns 且输出负载为 0.16pf 时,反相器的上升延迟为 0.1018ns。 由于输入的下降沿跳变导致反相器输出的上升沿跳变,因此当输入引脚发生下降沿跳变时,应该去查询cell_rise 延迟表。
  NLDM 模型不仅可以用于计算延迟,而且还可用于计算逻辑单元输出引脚的过渡时间,该时间同样由输入过渡时间和输出负载电容来表征。因此,还存在着另外一张独立的用于计算单元的输出上升和下降过渡时间的二维表格。输出过渡时间也同样有两张表: rise_transition 和 fall_transition。过渡时间是根据特定的压摆阈值点(通常为电源的10%-90%)测量的。
在这里插入图片描述

如何线性插值计算输出延迟/输出过渡时间

  如果输入过渡时间和输出电容正好与表格条目中的值相对应,则表格查找是很简单的,因为可以直接从表中对应的位置读出时序值。以下示例对应于一般情况,即输入过渡时间和输出电容无法与表格条目中的值对应的情况。在这种情况下,可利用二维插值的方法来得到最终的时序值,一般选择每个维度中两个最接近的表格条目中的值以进行表格插值。考虑输入过渡时间为 0.15ns、输出电容为 1.16pF 的输出下降沿查找表。查找表如下。
在这里插入图片描述

  假设index_1和index_2的两个值设置为x1和x2,index_2的两个值设置为y1和y2,对应的输出过渡时间为T11,T12,T21和T22。我们需要求的值为(x0,y0)对应的查表值为T00。可以通过双线性插值算法来计算T00。
在这里插入图片描述

  假设(x0,y0)=(0.15,1.16)可以计算得到
在这里插入图片描述

此外,上面的等式对于内插和外推均有效,即当索引值(x0, y0)超出范围时依然成立。例如,当 index_1 索引值为 0.05 且 index_2 索引值为 1.7 时, fall_transition 值计算如下:
在这里插入图片描述

3. 阈值规格和压摆降额-Threshold Specifications and Slew Derating

  压摆值(slew)基于的是在库中指定的测量阈值点,大多数上一代的库(0.25um 或更旧的库)都使用 10%和 90%作为压摆(或称过渡时间)的测量阈值点。压摆阈值点的选择对应的是波形的线性部分。随着技术的发展,实际波形最线性的部分通常在 30%至 70%之间。 因此,大多数新一代时序库都将压摆测量阈值点指定为 Vdd 的 30%和 70%。但是,由于之前测得的过渡时间在 10%至 90%之间,因此在填充库时,通常将测得的 30%至 70%的过渡时间加倍,这由压摆降额系数(slew deratefactor)指定,通常指定为 0.5。压摆测量阈值点为 30%和 70%且压摆降额系数为 0.5,等效于测量阈值点为 10%和 90%。 阈值设置的示例如下:
在这里插入图片描述

  上例的设置规定了要将表格中的过渡时间乘以 0.5,以获得与阈值(30%-70%)设置相对应的过渡时间。这意味着表格中的值(以及相应的索引值)实际上是 10%-90%阈值点的测量值。在标定过渡时间值时,首先在 30%-70%处测量,然后再把测量值外推到 10%至 90%((70-30) /(90-10) = 0.5)。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  在上述 20%-80%压摆阈值设置的例子中,未指定slew_derate_from_library(默认值为 1.0),这意味着库中的过渡时间不会降额(derate)。表格中的过渡时间值直接对应于 20%-80%的阈值点,如图 3-4 所示:
在这里插入图片描述

  在这种情况下,将 slew_derate_from_library 设置为 0.6,并将压摆测量阈值点指定为 20%和 80%,这意味着库中的过渡时间表里的数据对应于外推到 0%至 100%((80-20) /(100-0) = 0.6)的值,如图 3-5 所示:
在这里插入图片描述

  指定了压摆降额后,计算延迟使用的压摆值的计算值为在这里插入图片描述

为什么需要找个slew_derate压摆降额(个人理解)

  在许多现有的电子设计自动化(EDA)工具、仿真软件和时序分析工具是基于传统的10%-90%压摆时间标准开发的。在现代时序分析中,为了更精确地测量信号的线性部分,压摆阈值被设置在30%和70%。为了兼容传统的10%-90%压摆时间标准,需要通过压摆降额系数(0.5)将30%-70%的测量值加倍,从而得到等效的10%-90%压摆时间。这种调整方法确保了新旧标准之间的兼容性,同时提高了时序分析的精度。

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

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

相关文章

Spring-事务

Spring 事务 事务的基本概念 🔹 什么是事务? 事务是一组数据库操作,它们作为一个整体,要么全部成功,要么全部回滚。 常见的事务场景: 银行转账(扣款和存款必须同时成功) 订单系统…

蓝桥备赛(13)- 链表和 list(下)

一、动态链表 - list (了解) new 和 delete 是非常耗时的操作 在算法比赛中,一般不会使使用 new 和 delete 去模拟实现一个链表。 而且STL 里面的 list 的底层就是动态实现的双向循环链表,增删会涉及 new 和 delete,效率不高,竞赛…

MySQL中like模糊查询如何优化?

大家好,我是锋哥。今天分享关于【MySQL中like模糊查询如何优化?】面试题。希望对大家有帮助; MySQL中like模糊查询如何优化? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 MySQL 中,LIKE 模糊查询虽然非常常见,…

DeepSeek使用教程--让DeepSeek生成精准题库

想让DeepSeek出好题,关键在于提示词的设计。总结了一个基本模板: 请帮我生成一套关于[学科/知识点]的题目,包括[题型],难度为[简单/中等/困难],适合[年级/学习阶段]的学生,总共[数量]道题。每道题请提供详细…

字符串习题

单词个数统计 原作: 输入: 一行字符串。仅有空格和英文字母构成。 输出: 英文字母个数letter_num 单词个数word_num 出现最多的字母max_letter 出现最多的字母的出现次数max_letter_frequ 处理: 统计并输出此句子英文字母…

k8s概念及k8s集群部署(Centos7)

Centos7部署k8s集群 部署之前,先简单说下k8s是个啥: 一、k8s简介: k8s,全称:kubernetes,它可以看作是一个分布式系统支撑平台。k8s的作用: 1、故障自愈: k8s这个玩意可以监控容器…

牵引线标注:让地图信息更清晰的ArcGIS Pro技巧

在地图制作的世界里,标注的清晰度直接决定了地图的可读性和实用性。 今天,就让我们一同探索如何在ArcGIS Pro中巧妙地实现牵引线标注,为地图信息的呈现增添一份专业与清晰。 一、引言:牵引线标注的魅力 在地图制作中&#xff0…

VBA 数据库同一表的当前行与其他行的主键重复判断实现方案

目的,判断是否主键重复,不重复则登录新数据,重复则不登录。 定义类型: DataRecord   tableName 表名   rowNumber 行号   columnName 列名   data 数据 想要实现的代码逻辑如下: 模拟数据库的登录过程。假设…

Qt常用控件之树形QTreeWidget

树形QTreeWidget QTreeWidget 表示一个树形控件,里面的每一个元素,都是一个 QTreeWidgetItem 类型的对象,每个 QTreeWidgetItem 都可以包含多个文本和图标,每个文本或图标为一个列。 需要注意的是, QTreeWidget 向用…

java通用自研接口限流组件

某业务中需要对后端接口进行限流,我们可以直接引入阿里巴巴的Sentinel快速实现,但是某企业中出于安全考虑,需要部门自己研发一套,可以采用RedisLua脚本AOP反射自定义注解来实现 思路来源于链接 项目结构: 启动类&…

小程序事件系统 —— 33 事件传参 - data-*自定义数据

事件传参:在触发事件时,将一些数据作为参数传递给事件处理函数的过程,就是事件传参; 在微信小程序中,我们经常会在组件上添加一些自定义数据,然后在事件处理函数中获取这些自定义数据,从而完成…

【2025小黑课堂】计算机二级WPS精选系列20G内容(可下载:真题+预测卷+软件+选择题)

2025年3月全国计算机等级考试即将于3月29日至31日举行。为了帮助广大考生高效备考,小编特意收集并整理了最新版(备考2025年3月)的小黑课堂计算机二级WPS 电脑题库软件,助力考生在考试中游刃有余,轻松通关! …

你会测量管道液体流阻吗?西-魏斯巴赫方程(Darcy-Weisbach Equation)、Colebrook-White 方程帮你

测量管道液体流阻需要测量以下关键量: 需要测量的量 压力差(ΔP):管道入口和出口之间的压力差,通常通过压力传感器或差压计测量。流量(Q):流经管道的液体体积流量,可通…

行为模式---中介者模式

概念 中介者模式是一种行为模式, 他的核心思想是通过引入一个中介者对象,将多个对象之间的复杂交互逻辑统一管理。每个对象只需要与中介者通信,而不需要直接与其他对象交互,从而降低系统的耦合度。 适用场景 对象之间交互复杂&…

可狱可囚的爬虫系列课程 18:成都在售新房数据爬虫(lxml 模块)实战

上一篇文章中带大家学习了 lxml 模块以及 XPath 语法,本文针对某网新房数据编写爬虫进行实战。 一、网页信息的获取 抓取地址:https://cd.fang.lianjia.com/loupan/ import requestsLink https://cd.fang.lianjia.com/loupan/ Headers {User-Agent: …

行为模式---迭代器模式

概念 迭代器模式是设计模式的行为模式,它的主要设计思想是提供一个可以操作聚合对象(容器或者复杂数据类型)表示(迭代器类)。通过迭代器类去访问操作聚合对象可以隐藏内部表示,也可以使客户端可以统一处理…

自定义组件渲染search框

1创建search分支 创建自定义组件 2.渲染my_search的基本结构 3.封装自定义属性和click事件 通过自定义属性增强组件的通用性 4.封装click事件 5.导航跳转 6.吸顶效果 7自动获得焦点与防抖效果 搜索页面搜索框基本结构 8实现搜索框自动获取焦点功能 9处理防抖效果

大语言模型学习--向量数据库基础知识

1.向量 向量是多维数据空间中的一个坐标点。 向量类型 图像向量 文本向量 语音向量 Embedding 非结构化数据转换为向量过程 通过深度学习训练,将真实世界离散数据,投影到高维数据空间上,通过数据在空间中间的距离体现真实世界的相似度 V…

JVM详解

目录 一.JVM的概念 1. 什么是JVM? 2.JVM用来干什么? 二JVM运行流程 JVM执⾏流程 2.1类加载机制 2.2类加载机制带来了哪些好处? 2.3类加载的过程是什么? 2.3.1加载 2.3.2验证 2.3.3准备阶段 2.3.4解析阶段 符号引⽤ 直接引⽤ 2.3.5初始化阶段 2.4类加载器 什么…

【JavaScript】08-作用域+箭头函数+解构赋值

本文以后的文章主要是介绍ES6语法。 目录 1.作用域 1.1 局部作用域 1.1.1 函数作用域 1.1.2 块作用域 1.2 全局作用域 1.3 作用域链 1.4 垃圾回收机制GC 1.4.1 内存生命周期 1.4.2 注意 1.4.3 内存泄漏 1.5 闭包 1.5.1 概念 1.5.2 闭包的作用 1.5.3 闭包应用 1.…