数字电路时序分析基础

2023-10-30

CMOS时序模型基础

大多数简化的时序模型基于以下公式:
D e l a y   o f   a   c e l l = I n t r i n s i c   d e l a y + t r a n s i t i o n   d e l a y + s l o p e   d e l a y \large \color{blue} Delay \ of \ a \ cell = Intrinsic \ delay + transition \ delay + slope \ delay Delay of a cell=Intrinsic delay+transition delay+slope delay
分别解释如下:

  1. 当一个单元由另一个相同的无负载单元驱动时,单元的本征延迟(Intrinsic delay)被定义为无负载单元的传播延迟。驱动单元和被驱动单元都应该是无负载的,即要求驱动单元间接驱动被驱动单元。本征延时
  2. 转换延迟(transition delay)被定义为驱动电容性负载的单元的额外延迟(除了固有延迟),但由另一个相同的无负载单元驱动。发生这种转换延迟的原因是,由于单元必须驱动电容性负载,其输出斜率与无负载情况相比变得不那么陡峭(即上升和下降时间增加)。转换延时
  3. 斜率延迟(slope delay)是由具有转换延迟的相同单元驱动的无负载单元的额外延迟(除了固有延迟和可能的转换延迟)。驱动单元驱动电容性负载(因此它表现出转换延迟),因此驱动单元的输出斜率比没有负载电容的驱动单元的输出斜率要小,较缓的坡度会导致被驱动单元的额外延迟。

线性延时模型

在该模型中,转换延迟被建模为与负载电容成线性比例,而斜率延迟被建模为与驱动波形的转换延迟成线性关系:
t r a n s i t i o n   d e l a y = o u t p u t   r e s i s t a n c e × l o a d   c a p a c i t a n c e s l o p e   d e l a y = s l o p e   s e n s i t i v i t y × t r a n s i t i o n   d e l a y   o f   i n p u t   w a v e f o r m \large \color{blue} transition \ delay = output \ resistance \times load \ capacitance \\ slope \ delay = slope \ sensitivity \times transition \ delay \ of \ input \ waveform transition delay=output resistance×load capacitanceslope delay=slope sensitivity×transition delay of input waveform
例如,对于一个反相器来讲:

rising transition delay = rising output resistance × load capacitance
falling transition delay = falling output resistance × load capacitance
rising slope delay = fall slope sensitivity × fall transition delay of input waveform
falling slope delay = rise slope sensitivity × rise transition delay of input wavefor

这里输出电阻(output resistance)被定义为当电压刺激施加到节点上时,电流变化相对于电压变化的导数。在 Synopsys 工具使用的线性模型中,输入和输出引脚的每个组合都有一对单独的上升和下降电阻值。即使对于同一个输出引脚,电阻也可能因哪个输入引脚触发输出转换而不同。同样,intrinsic delay 和 slope sensitivities 也会因不同时序路径的组合而不同。

时序约束

对于时序单元,不仅需要确定延迟,还需要一些时间约束,例如:

  • 建立和保持时间(setup and hold times)
  • 恢复和撤销时间(recovery and removal times),即在有效时钟边缘前后必须经过的时间量,直到异步信号被停用(例如,复位信号的恢复时间是在时钟关闭之前必须解除异步复位信号的时间量)。
  • 最小和最大时钟脉冲宽度

其中最重要的是建立时间。建立时间定义为在有效的锁存时钟边沿到来之前输入信号不再发生变化(已经是期望的输入值)的最小时间要求。
下图是一个上升沿触发的Flip-Flop的建立时间示意图:在这里插入图片描述
对于一个高电平有效的锁存器(Latch)建立时间示意图如下:在这里插入图片描述
保持时间(hold time)是指在时钟有效沿之后,数据输入端信号必须保持稳定的最短时间,确保新数据不会在触发器稳定输出初始数据之前过早到达D端而覆盖其初始数据。

输入电容

功耗计算工具(用于测量动态功耗)和延迟(速度)计算工具都要用到输入电容(Input capacitance)值。电容与电容器两端的电压和积累的电荷有关:
C = Q / V = I ∆ t / V \large \color{blue} C = Q/V = I ∆t/V C=Q/V=It/V
对于逻辑单元输入引脚的输入电容,可以通过向输入引脚施加激励(0V 到 VDD 上升脉冲或 VDD 到 0V下降脉冲),然后测量流入(或流出)引脚的电荷量来实现。流入引脚的电荷量取决于其他输入和输出的状态。一个精确的模型可能是通过模拟所有可能的情况来提供三种情况,最好的、平均的和最差的。

NLDM与CCS

前面介绍的线性延迟模型在亚微米工艺下就不太准确了,因此目前大多数 lib 库使用更复杂的模型,例如非线性延迟模型(non-linear delay model)。

NLDM

nldm(non linear delay model)是最早引入的单元延时表征技术。在65nm以及之前,一直是一种可靠的迅速得到单元延时的方法。
nldm包括 nldm driver model 和 nldm receiver model
在这里插入图片描述
nldm 表征的是单元的输入到输出的 delay 值以及输出的 transition time。
对于电压波形,nldm 是通过三个点进行取样。三个点分别为 delay threshold,transition threshold (upper & lower)。一个 delay threshold 指的是电压到 50% VDD的位置。而 transition threshold,取值可能有所不同,有的用的是30% 70%,有的是20% 80% 。如果.lib用的组合不同,工具会自动进行换算。
在.lib文件中,nldm 是一个二维查找表。这个查找表的两个 index 分别代表的是 input transition,output load,如图所示。
在这里插入图片描述
lib 文件中的延时模型模板:

lu_table_template(delay_template_3x3) {
variable_1 : input_net_transition;
variable_2 :total_output_net_capacitance;
index_1 ("1000, 1001,1002");
index_2 ("1000, 1001,1002");
}/* The input transition and the output capacitance can be in either order, 
that is, variable_1 can be the output capacitance. 
However, these designations are usually consistent across all templates in a library. */

上面的查找表模板指定表中的第一个行索引变量是input transition time,第二个列索引变量是output capacitance。索引值(1000, 1001, 1002)只是模板,会被实际索引值覆盖。
实际如下:

pin(OUT) {
max_transition : 1.0;
timing() {
related_pin : "INP1";
timing_sense : negative_unate;
cell_rise(delay_template_3x3) {
index_1 ("0.1, 0.3, 0.7");/* Input transition */
index_2 ("0.16, 0.35,1.43"); /* Output capacitance */
values ( /* 0.16 0.35 1.43 */ 
/* 0.1 */ "0.0513, 0.1537, 0.5280", 
/* 0.3 */ "0.1018, 0.2327, 0.6476", 
/* 0.7 */ "0.1334, 0.2973, 0.7252");
}
cell_fall(delay_template_3x3) {
index_1 ("0.1, 0.3, 0.7");/* Input transition */
index_2 ("0.16, 0.35,1.43"); /* Output capacitance */
values ( /* 0.16 0.35 1.43 */ 
/* 0.1 */ "0.0617, 0.1537, 0.5280", 
/* 0.3 */ "0.0918, 0.2027, 0.5676", 
/* 0.7 */ "0.1034, 0.2273, 0.6452");
}

在65nm之前,NLDM相对准确。但是随着工艺尺寸的减少。NLDM 模型暴露出如下缺点:

  • 仅通过3个输出点来评估延时,线性度不够精确;
  • NLDM 的 driver model 是个内阻恒定的电压源,即输出电压是时间的线性函数V(t),当65nm节点以下时,驱动线网的电阻将大得可观,模型会失真。
  • NLDM 的 receiver model 是单一的 input cap,不能捕获 Miller 效应,对于很小的阻抗网络,Miller 效应决定了延迟。

CCS

CCS(composite current source)model 很好的解决了NLDM存在的这些问题。
同样,CCS也包括了 CCS driver model 和 CCS receiver model。

CCS deiver model 表征的是流入 load cap 的电流值。其参数同样是输入的 transiton time 以及输出的load。
CCS描述的是一个内部无限的电流源,因此,即使net的电阻非常大的情况,它也可以非常精确。
在.lib中,对应于不用的 input transition 以及 output load,表中的值也不再是一个定值,而是电流的波形。
在这里插入图片描述
为了更精确的反应 miller 电容效应。model 中用两个电容 C1 和 C2 来进行描述。在 receiver 的电压波形到达 delay thereshold(50% vdd)之前时,用 C1 的值,而在到达 delay threshold 之后,则采用 C2 值。
与 spice 相比的拟合精度:
在这里插入图片描述
从精度上来说,NLDM模型跟SPICE模型的误差在正负5%左右,而CCS模型跟SPICE模型的误差能达到正负2%。
为了提供准确的电流矢量模型,CCS会存储波形,且每个波形存储10个电流值和10个时间值,共20个数字。NLDM对于每个输入转换和输出负载存储2个数字。因此,与NLDM模型相比,CCS模型大小将增加10倍。
CCS lib/db 里,可以同时含 timing/power/noise 信息。CCS lib 里会看到有 ccsn_first_stage /ccsn_last_stage group,分别是最前/后级管子受 noise 的影响。

STA基础

静态时序分析(Static Timing Analysis,STA)是验证数字集成电路时序是否合格的一种方法。在综合工具(DC/Genus 等)、布局布线工具(ICC2/Innovus 等)、时序分析工具(PrimeTime/Tempus 等)中都嵌入了不同的STA引擎,这些引擎往往在时间和精度方面有一些折衷,但是目的就是以尽量小的误差去模拟物理器件和绕线的SPICE模型,从而更接近芯片生产出来后真实的性能。
为什么需要STA呢,目前的芯片晶体管已经上亿了,如果用 spice 仿真的话计算量非常巨大,仿真时间难以忍受。STA 与时序仿真相比有以下优点:

  • 第一点是激励波形,STA是不需要的激励波形的,但是需要 SDC(Synopsys Design Constraint,时序约束),而时序仿真时严重依赖激励波形;
  • 第二点是完整度,STA能够对数字电路中所有的时序路径进行全面的检查,而时序仿真在覆盖率上有一定限制;
  • 第三点是效率,STA比较简单,速度更快,而生成仿真需要的激励,建立仿真环境可能费时费力;
  • 第四点是鲁棒性,STA能够考虑到电路中串扰噪声以及OCV(On Chip Violation,片上偏差)的影响,提高芯片制成后的良率,而时序仿真做不到这一点。

当然STA也有局限性:

  • STA针对的是数字电路,和模拟电路相关的路径无法通过STA验证
  • 数字电路中产生的不定态在STA不会验证,这个需要通过仿真进行仔细检查确认
  • 电路中不同状态机之间的同步需求不能通过STA来验证
  • 对时钟生成电路的验证无法通过STA完成
  • 时序约束中会有例外情况,需要人工处理

参考:
https://blog.csdn.net/u011075954/article/details/121229023
https://blog.csdn.net/graymount/article/details/106010388
https://blog.csdn.net/u011075954/article/details/121229023

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数字电路时序分析基础 的相关文章

  • 电路端接电阻与信号完整性

    信号沿着传输线传播时 每时每刻阻抗都可能发生变化 例如 PCB走线的宽度或者厚度发生变化 PCB过孔 PCB转角 PCB上的电阻 电容 电感 接插件和器件引脚都会产生阻抗变化 若走线的瞬时阻抗 只和传输线的横截面积和材质特性有关 发生变化
  • 各种FIFO硬件设计(FIFO概念、异步、同步、非2次幂深度FIFO)

    文章目录 一 FIFO概述 二 FIFO分类 三 FIFO重要信号与参数 3 1 信号 3 2 参数 3 2 1 data depth的确定 四 FIFO存储原理 五 同步FIFO 5 1 空满信号判断 5 2 同步FIFO源码 5 3 测
  • 学生正版Altium Designer许可证到期怎么再申请

    学生如何使用正版Altium Designer软件 适用于老师 学生 校友等等 目录 一 前情提要 二 许可证延期步骤 2 1 重要前提 2 2 许可证申请 2 3 申请完成 一 前情提要 如果不知道怎么安装学生版AD 可点击以下链接学生如
  • 带你了解锂电池保护板的工作原理

    拆过手机或者平板的用户 应该都注意过 在手机或者平板的锂电池部分 其上端有一块质地较软且被塑料膜包裹起来的电路板 电池大小不同 电路板尺寸也不一样 揭开塑料膜 你会发现 其上布置了很多的元器件 或许会有人问 这块板子究竟有何作用 其实呢 电
  • AD20铺铜显示和隐藏的设置

    如果只想隐藏当前选中的铜皮 那么就选中对应需要隐藏的铜 然后鼠标右击 在弹出的对话框中选择 铺铜操作 隐藏选中铺铜 需要隐藏一部分铜皮 即打开铺铜管理器 选择菜单栏中 工具 铺铜 铺铜管理器 在弹出的铺铜管理器对话框中 想将哪些铜皮去进行隐
  • 手把手教你Modelsim仿真【2020.4版本】

    首先新建一个文件夹 test5 打开Modelsim 依次选择 File gt Change Directory 把目录选择到创建的 test5 文件夹 创建库 依次选择 File gt New gt Library 一般我们选择第三个 库
  • 最详细的Vivado安装教程

    V i v a d o 安 装
  • 继电器、并联的二极管和驱动三极管选型实战演练

    继电器选型原则 继电器的选用原则参见下表 在表中 必须确定 栏中有 号的项目被确定之后 就可选定一款继电器 如果有进一步的要求 需要进一步考虑 参考 栏中有 号的相应项目 下面对表格中的所有参数进行详细说明 触点 1触点负载 确定继电器所能
  • DC/DC:闭环控制的隔离型反激变换电路设计及实验仿真(文章底部含仿真程序获取方式)

    反激变换电路在开关管导通时电源将电能转为磁场能储存在变压器中 当开关管关断时再将磁能转变为电能传送到负载 单端反激变换电路是由升降压 Buck Boost 变换电路派生而来的 电路图如图所示 反激变换电路的原理设计可参考文章 DC DC 单
  • 5V转±12V无变压器双boost电路

    最近有个新项目 需要 10V范围的模拟量输出 非隔离 对于5V以下供电的控制板而言单端输出绝对没问题 可现在需要有正负输出 是少不了正负电源的 因此准备设计一个5V转 12V的电源 然后选择一个双向供电的运放 来实现单端模拟量信号向双向模拟
  • 【模电】0017 开关电源的原理及分析

    开关电源一般简称为DCDC 比我们前两节分析的线性电源复杂一些 它与线性电源最大的不同在于其调整管的工作状态 开关电源中的调整管工作在开关状态 即只工作在饱和区和截止区 1 典型开关电源的原理 一个典型的降压型开关电源原理如下图 首先 我们
  • 【零基础玩转BLDC系列】基于反电动势过零检测法的无刷直流电机控制原理

    无刷直流电动机基本转动原理请参考 基于HALL传感器的无刷直流电机控制原理 基本原理及基础知识本篇不再赘述 目录 反电势过零检测法的原理 反电势过零检测实现方法 位置传感器的存在限制了无刷直流电机在某些特定场合中的应用 如 使电机系统的体积
  • 硬件系统工程师宝典(30)-----降压式Buck电路分析

    各位同学大家好 欢迎继续做客电子工程学习圈 今天我们继续来讲这本书 硬件系统工程师宝典 上篇我们说到DC DC变换中的开关调节模式有功耗小 效率高并且稳压范围宽的特点以及DC DC的指标参数和设计要求 今天我们来分析一下DC DC中的一个典
  • 硬件基础之继电器

    一 技术理论 继电器 Relay 是一种电子控制器件 它具有控制系统 又称输入回路 和被控制系统 又称输出回路 通常应用于自动控制电路中 它实际上是用较小的电流去控制较大电流的一种 自动开关 如下图 因为继电器是由线圈和触点两部分组成 所以
  • ADS Via Designer 快速建模举例

    如何快速地对设计中的差分过孔进行建模 是layout前仿真中经常遇到的问题 好在目前主流的仿真软件都提供了独立的过孔建模向导 可以很方便地进行操作 本文以ADS提供的Via Designer向导为例 展示如何快速完成过孔的建模操作 以下图所
  • allegro画PCB如何更新元件的PCB封装

    allegro画PCB如何更新元件的PCB封装 一 更新单个器件的PCB封装 首先菜单栏选择Place gt Update Symbols 如下图 注意此案例是更新了C0805封装 中更新封装 就将上图第二个红色方框中的勾选即可 二 更新某
  • allegro画PCB如何更新元件的PCB封装

    allegro画PCB如何更新元件的PCB封装 一 更新单个器件的PCB封装 首先菜单栏选择Place gt Update Symbols 如下图 注意此案例是更新了C0805封装 中更新封装 就将上图第二个红色方框中的勾选即可 二 更新某
  • 基于信号完整性的PCB设计原则

    最小化单根信号线质量的一些PCB设计建议 1 使用受控阻抗线 2 理想情况下 所有信号都应该使用完整的电源或地平面作为其返回路径 关键信号则使用地平面作为返回路径 3 信号的返回参考面发生变化时 在尽可能接近信号换层孔的位置增加至少一个返回
  • 有效降低信号串扰的PCB设计原则

    降低信号串扰的一些PCB设计建议 1 对于传输线 保持相邻信号线之间的间距至少为两倍信号线宽 2 尽量避免信号跨越返回路径中的不连续点或者空隙 3 如果必须在返回路径中跨越空隙 则尽量使用差分线 4 电容器不是一种低阻抗互连结构 其高频阻抗
  • 如何正确使用RC滤波网络

    众所周知 最有效的滤波电路应靠近噪声源放置 滤波的作用是对噪声电流进行及时有效地阻止和转移 实际设计中 工程师经常使用高的串联阻抗 电阻 电感和铁氧体 阻止电流 并使用低的并联阻抗 电容 转移电流 通常情况下 我们期望滤波器可以对噪声信号衰

随机推荐

  • 【游戏引擎】win7配置安装firefly【草稿尝试篇】

    firefly是python的开源服务端游戏引擎 而且它使用了不少软件 数据库mysql 缓存memcached等等 配置firefly其实就是配置完整的一个服务器环境 python2 7安装 安装python2 7 mysql memca
  • 感谢Python

    2012 12 20 不得不说 要不是读了Thinking in Java 要不是受不了作者的的唠叨 不停的推荐Python 我目前所学习到的一切也都无从说起了 感谢Python 到目前为止 Python依然是我的最爱 写代码起来最实用 S
  • 会话技术 Cookie +jsp(实现上次登录时间功能)

    会话技术 1 会话 一次会话中包含多次请求和响应 一次会话 浏览器第一次给服务器资源发送请求 会话建立 直到有一方断开为止 2 功能 在一次会话的范围内的多次请求间 共享数据 3 方式 1 客户端会话技术 Cookie 2 服务器端会话技术
  • 什么是煤矿智能化综采工作面?

    转载 https zhuanlan zhihu com p 354323715 什么是煤矿智能化综采工作面 2021年对于煤矿产业是关键性一年 从国家到集团公司对于煤矿的智能化建设都提出了要求 将人工智能 5G通信 大数据技术引入 基本实现
  • stm32编码器接口测速

    本文章转自B站江科大自化协 目录结构 Encoder c include stm32f10x h Device header void Encoder Init void 第一步开启RCC时钟 开启GPIO和定时器的时钟 RCC APB1P
  • c#窗体程序添加图标详细教程

    一 为什么要给窗体程序添加图标 俗话说 人靠衣装 马靠鞍 一个有个性的窗体程序 不能总是使用微软自带的默认图标 而给程序添加一个自己喜欢的图标 不仅彰显水平 还会增加用户的使用体验 所以 窗体程序加入合适的图标值得程序员的学习 下面就开始教
  • 计算机视觉 图像检索与识别

    目录 一 图像检索相关介绍 1 起因 2 参数介绍 图像纹理 词序无关的文本表述 图像分类 图像特征词典 图像整体描述子 二 图像分类 检索具体内容 图像分类 检索 单词的TF IDF权重 倒排表 Inverted file 图像检索流程
  • QT 添加资源文件

    转自 https blog csdn net dianzishi123 article details 86475565 鼠标点击工程文件目录右键选择 添加新文件 在模板中选择 Qt gt Qt Resource File 资源名称 不要有
  • Shell 基础知识

    Shell 基础知识 number 传递的参数 test sh myvalue1 myvalue2 1是第一个参数 2是第二个参数 echo first 1 second is 2 上一条命令 上一条命令的最后一个参数 Ctrl R 历史搜
  • 无人系统群体智能及其研究进展

    来源 无人机 作者 周兴社 武文亮 西北工业大学 计算机学院 陕西 西安 710129 摘 要 群体智能是人工智能的重要发展方向之一 无人系统群体智能作为人工群体智能的主要形态之一 在许多军用和民用领域都具有广阔且重要的应用前景 同时在基础
  • 服务网格实施周期缩短 50%,丽迅物流基于阿里云 ACK 和 ASM 的云原生应用管理实践

    作者 王夕宁 刘强 华相 公司介绍 丽迅物流是百丽旗下专注于时尚产业 为企业提供专业物流及供应链解决方案的服务商 其产品服务主要包括城市落地配 仓配一体 干线运输及定制化解决方案 通过自研智能化物流管理平台 全面助力企业合作集约化发展 目前
  • Ext_面板_Ext.Panel .

    javascript view plain copy print Ext Panel主要配置表 animCollapse Boolean 设置面板折叠展开是否显示动画 Ext Fx可用默认true 否则false applyTo Mixed
  • orm框架有哪些_Java架构—Spring 核心框架体系结构

    很多人都在用spring开发java项目 但是配置maven依赖的时候并不能明确要配置哪些spring的jar 经常是胡乱添加一堆 编译或运行报错就继续配置jar依赖 导致spring依赖混乱 甚至下一次创建相同类型的工程时也不知道要配置哪
  • nodeJS ejs模板引擎 片段视图+视图助手

    Express 的视图系统还支持片段视图 partials 它就是一个页面的片段 通常是重复的 内容 用于迭代显示 通过它你可以将相对独立的页面块分割出去 而且可以避免显式地使 用 for 循环 让我们看一个例子 在 app js 中新增以
  • WPF Window窗体属性

    XAML的三个顶级元素 Window UserControl 用户控件 Page把窗体以网页形式展现 而一个XAML页面里只能有一个顶级元素 顶级元素只能有一个子元素 在窗体里面设置窗体属性
  • 数值计算基础(二)线性方程解法篇

    概要 介绍了1 直接法 高斯消去法 列主元消去法 LU分解 平方分解 平方分解改进 追赶法 2 迭代法 雅各比迭代 高斯赛德尔迭代 SOR迭代 求解方程3 迭代法收敛性 1 高斯消去法 用途 解方程 核心 将矩阵直接化为上三角矩阵 注意系数
  • 30秒学会 —— 《获取验证码基本操作》

    前期回顾 懒人必备 时间神器 moment 0 活在风浪里的博客 CSDN博客亲测好用 及其好使的插件 开发懒人必整 就算是自己可以写 一大堆代码 真的要写吗 https blog csdn net m0 57904695 article
  • 黑豆泡醋

    实践 黑豆泡醋真的很有作用 感谢JRs热情捧场 再写具体些 由 后入金正恩 发表在 虎扑篮球 步行街 http bbs hupu com bxj 这瓶黑豆泡醋都有半年了 是半年前奶奶泡的 一直懒得吃 直到最近才吃 谁知道功效真的不错 LZ现
  • qt connect连接失效的情况:selectionModel

    connect ui treeView gt selectionModel QItemSelectionModel currentRowChanged this DataSetQueryWidget SlotTreeViewClicked
  • 数字电路时序分析基础

    目录 CMOS时序模型基础 线性延时模型 时序约束 输入电容 NLDM与CCS NLDM CCS STA基础 CMOS时序模型基础 大多数简化的时序模型基于以下公式 D e l a