本文由知乎赵俊军授权转载,知乎主页为https://www.zhihu.com/people/zhao-jun-jun-19

本章节介绍CMOS技术的基础知识以及执行静态时序分析所涉及的术语。

2.1 CMOS逻辑设计

2.1.1 基本MOS结构

MOS晶体管(NMOS和PMOS)的物理实现如图2-1所示。源极(source)和漏极(drain)区域之间的距离(channel length)是MOS晶体管的长度,用于构建MOS晶体管的最小长度即为CMOS技术工艺的最小特征尺寸(feature size)。例如,0.25um技术允许制造具有0.25um或更大沟道长度的MOS晶体管。 通过缩小沟道的几何形状,晶体管的尺寸会变小,这样就可以在同样的面积上封装更多的晶体管。 正如我们将在后面章节看到的那样,更小的晶体管尺寸同样还可以使设计以更高的速度运行。

图2-1

2.1.2 CMOS逻辑门

CMOS逻辑门使用NMOS和PMOS晶体管搭建而成。图2-2给出了CMOS反相器(inverter)的示例。CMOS反相器有两种稳定状态,具体取决于输入的电平状态。 当输入A为低电平(Vss或逻辑0)时,NMOS晶体管截止,而PMOS晶体管导通,导致输出Z的电平被上拉至逻辑为1的Vdd。当输入A为高电平(Vdd或逻辑1)时,NMOS晶体管导通,而PMOS晶体管截止,导致输出Z的电平被下拉至逻辑为0的Vss。在上述两种状态中的任何一种状态下,CMOS反相器都是稳定的,不会从输入端A或电源Vdd汲取任何电流。

图2-2

CMOS反相器的特性可以扩展到任何CMOS逻辑门。在CMOS逻辑门中,输出节点通过上拉结构(由PMOS晶体管构成)连接至Vdd,并通过下拉结构(由NMOS晶体管构成)连接至Vss。例如,图2-3展示了一个两输入CMOS与非门(nand)。在该例中,上拉结构由两个并联的PMOS晶体管组成,下拉结构由两个串联的NMOS晶体管组成。

图2-3

对于任何CMOS逻辑门,上拉和下拉结构是互补的。对于逻辑0或逻辑1的输入,如果上拉结构开启,则下拉结构将关闭;类似地,如果上拉结构关闭,则下拉结构将开启。下拉和上拉结构由CMOS门实现的逻辑功能控制。例如,在CMOS与非门中,控制下拉结构的功能是“”,即当A和B都为逻辑1时下拉被接通。类似地,控制上拉结构的功能是“”,即当A或B处于逻辑0时上拉被打开。这些特性确保了控制上拉结构的功能将输出节点的逻辑上拉至Vdd。由于下拉结构由互补函数控制,因此当上拉结构函数的值为0时,输出节点处于逻辑0。

对于逻辑0或逻辑1的输入,由于上拉和下拉结构不能同时开启,因此处于稳态的CMOS逻辑门不会对输入或电源汲取任何电流。CMOS逻辑的另一个重要方面是,输入仅对前一级构成容性负载。

若CMOS逻辑门是一个反相门,这意味着单个输入的变化(上升或下降)只能使输出往相反的方向改变,也就是说,输出无法与输入同相变化。但是,可以将CMOS逻辑门级联起来以实现更复杂的逻辑功能。

2.1.3 标准单元

芯片中的大多数复杂功能通常是使用基本构建块(basic building block)来设计的,这些基本构建块实现了简单的逻辑功能,例如与、或、与非、或非、或与非,与或非以及触发器(flip-flop)。这些基本构建块是预先设计的,称为标准单元(standard cell)。标准单元的功能和时序已预先确定,可供设计人员使用。然后,设计人员可以使用标准单元作为基本构建块来实现所需的功能。

前面小节中描述的CMOS逻辑门的关键特性适用于所有CMOS数字设计。当输入处于稳定的逻辑状态时,所有数字CMOS单元的设计都能够保证不从电源汲取电流(漏电流除外)。因此,大多数功耗与设计的功能有关,并且是由设计中CMOS单元输入端的充放电引起的。

什么是逻辑1或逻辑0?在CMOS单元中,VIHmin和 VILmax这两个值定义了范围:高于VIHmin的电压值被认为是逻辑1,低于VILmax的电压值被认为是逻辑0。如图2-4所示,0.13um工艺下一个具有1.2V Vdd电源的CMOS反相器单元的典型VILmax值为0.465V、VIHmin值为0.625V。 VIHmin和VILmax的值是从标准单元的直流传输特性中得出的。直流传输特性会在接下去的6.2.3节中有更详细的描述。

图2-4

2.2 CMOS单元建模

如果一个单元的输出引脚驱动多个扇出单元,则该单元的输出引脚上的总电容等于该单元正在驱动的单元的所有输入电容的总和加上构成该网络所有走线电容之和再加上驱动单元的输出电容。注意,在CMOS单元中,输入引脚仅呈现电容性负载。

图2-5

图2-5是一个单元G1驱动其他三个单元G2、G3和G4的示例。 Cs1,Cs2,Cs3和Cs4是组成该网络的走线电容值,因此G1输出引脚的总电容=G2单元的输入电容+G3单元的输入电容+G4单元的输入电容+G1单元的输出电容+ Cs1+Cs2+Cs3+Cs4 。这个值就是G1单元进行电平切换时需要充放电的电容值,因此该总电容值会影响G1单元的时序特性。

从时序角度来看,我们需要对CMOS单元建模,以帮助我们分析通过该单元的时序。每个输入引脚必须指定一个输入引脚电容,而大多数CMOS逻辑单元可以不包括输出引脚的引脚电容,但也可能存在输出引脚电容。

当输出为逻辑1时,输出级的上拉结构导通,并提供了一条从输出到Vdd的路径。同样,当输出为逻辑0时,输出级的下拉结构提供了一条从输出到Vss的路径。当CMOS单元切换电平状态时,切换的速度取决于输出引脚上的电容被充放电的速度。输出引脚上的电容(图2-5)分别通过上拉和下拉结构充电和放电。注意,上拉和下拉结构中的通道会对输出的充放电路径构成电阻,充放电路径的电阻是决定CMOS单元速度的主要因素。上拉电阻的倒数称为单元的输出高电平驱动(output high drive)。输出上拉结构越大,上拉电阻就越小,即单元的输出高电平驱动就越大,较大的输出结构也意味着该单元的面积较大。而输出上拉结构越小,单元的面积就越小,其输出高电平驱动也就越小。上拉结构的相同概念可用于下拉结构,下拉结构决定了下拉路径的电阻值以及输出低电平驱动(output low drive)。通常,单元的上拉和下拉结构具有相似的驱动强度。

输出驱动决定了可以驱动的最大电容负载,最大电容负载又决定了扇出的最大数量,即可以驱动多少个其他单元。较高的输出驱动对应较低的输出上拉/下拉电阻,这使单元可以在输出引脚上对较大的负载进行充电和放电。

下图2-6是CMOS单元的等效抽象模型。该模型的目的是抽象单元的时序行为,因此仅对输入级和输出级进行建模,此模型无法捕获单元的固有延迟或电学行为。

图2-6

CpinA是单元在输入A上的输入引脚电容;Rdh和Rdl是单元的输出驱动电阻,可根据单元所驱动的负载确定输出引脚Z电平转换时的上升/下降时间,输出驱动电阻还确定了单元的最大扇出限制。

图2-7与图2-5具有相同的网络,但使用等效模型表示了CMOS单元:

图2-7
  • 输出充放电延迟 =

在上述表达式中,是或之一,其中是上拉的输出驱动电阻,是下拉的输出驱动电阻。

2.3 电平切换波形

如图2-8(a)所示,通过按下SW0开关将电压施加到RC网络时,输出将变为逻辑1。假设还未按下SW0时输出为0V,则输出电压的变化由以下公式表示:

图2-8

该上升的电压波形如图2-8(b)所示。乘积(Rdh * Cload)称为RC时间常数(RC time constant),该值与输出的过渡时间有关。

断开SW0开关同时按下SW1开关,输出就会从逻辑1变为逻辑0,输出电压的变化如图2-8(c)所示。输出电容通过按下的SW1开关放电,这种情况下的电压变化由以下公式表示:

在CMOS单元中,由于PMOS上拉晶体管和NMOS下拉晶体管在短时间内会同时导通,因此输出的充放电波形不会像图2-8的RC充放电波形那样。 图2-9显示了在CMOS反相器单元内,从逻辑1到逻辑0输出切换时各个阶段的电流路径。图2-9(a)显示了当上拉和下拉结构同时开启时的电流流动。随后,上拉结构关闭,电流流向随即如图2-9(b)中所示。输出达到最终状态后,由于电容Cload已完全放电,因此不再有电流流动。

图2-9

图2-10(a)是CMOS单元输出级的典型波形,请注意观察过渡波形如何逐渐朝向Vss和Vdd弯曲,且波形的线性部分位于中间位置。

图2-10

在本文中,我们将使用如图2-10(b)所示的简化版来描绘一些波形,简化版的近似波形也是具有一定过渡时间(transition time)的波形,过渡时间是指从一种逻辑状态过渡到另一种逻辑状态所需的时间。图2-10(c)是过渡时间为0的波形,即理想波形。我们将在本文中交替使用(b)(c)这两种形式的波形来解释一些概念,但我们一定要清楚,实际上每个波形都有(a)那样的真实的边缘特性。

2.4 传播延时

考虑一个CMOS反相器单元及其输入和输出波形,单元的传播延时(propagation delay)是由电平切换波形上的某些测量点定义的。使用以下四个变量定义这些测量点:

#输入端口下降沿的阈值点

input_threshold_pct_fall:50.0;

#输入端口上升沿的阈值点

input_threshold_pct_rise:50.0;

#输出端口下降沿的阈值点

output_threshold_pct_fall:50.0;

#输出端口上升沿的阈值点

output_threshold_pct_rise:50.0;

以上这些变量是用于描述单元库(cell library)的命令集里的一部分。 这些阈值的单位是Vdd或电源的百分比,对于大多数标准单元库,通常将50%阈值用于计算延时。

上升沿是指从逻辑0到逻辑1的跳变,下降沿是从逻辑1到逻辑0的跳变。

假设有一个CMOS反相器单元,其输入输出管脚的波形如图2-11所示,传播延时是指如下两个值:

1.输出下降沿延时(output fall delay):Tf

2.输出上升沿延时(output rise delay):Tr

图2-11

通常,这两个值是不相等的,上图2-11也展示了这两个传播延时值是如何测量的。

若使用理想波形来看,则传播延时将仅仅是两个边沿之间的延迟,如图2-12所示:

图2-12

打个广告

路科验证V2课程大升级啦,升级后的V2pro,不仅保留了原本V2的所有内容,还添加了关于vim、linux、DVT的操作教程,以及寄存器模型自动化,更有定制的个性项目,为你的简历添砖加瓦。如果想要学习SV和UVM,想要入门或者转行验证,路科验证V2pro不容错过!如果对课程有兴趣可以后台联系我,可以获得优惠!详情戳->芯片验证V2 Pro秋季班报名通道已开启!更有早鸟报名优惠等着你!!

后台回复路科验证还可以享受200元优惠!!!欢迎报名~

精彩专辑

备战秋招专辑

验证工程师面试攻略专辑

《数字集成电路静态时序分析基础》笔记专辑

深入AXI4总线专辑

UVM实战专辑

秋招记录专辑

静态时序分析圣经翻译计划

欢迎转发、在看、喜欢三连,关注公众号及时接收推送

个人博客地址:https://www.cnblogs.com/icparadigm/

点击在看,分享给你的朋友吧?

delay 芯片时序output_【第二章 STA概念 上】静态时序分析圣经翻译计划相关推荐

  1. 翻译不是一个有效的路径_【第一章:绪论】静态时序分析圣经翻译计划

    本文由知乎赵俊军授权转载,知乎主页为https://www.zhihu.com/people/zhao-jun-jun-19 众所周知,静态时序分析是IC工程师必备知识点,也是秋招中笔试面试的高频考点 ...

  2. 以下不属于时序逻辑电路的有_静态时序分析圣经翻译计划——附录B:SDF

    本附录将介绍标准延迟标注格式,并说明了如何在仿真中执行反标. 延迟格式描述了设计网表的单元延迟和互连走线延迟,无论设计是用两种主要硬件描述语言(VHDL或Verilog HDL)中的哪一种所描述的. ...

  3. 【第三章:标准单元库 下】静态时序分析圣经翻译计划

    本文由知乎赵俊军授权转载,知乎主页为https://www.zhihu.com/people/zhao-jun-jun-19 3.6 黑盒的接口时序模型 本节将介绍黑盒(任意模块或块)的IO接口时序弧 ...

  4. 时序图如何表现分支_静态时序分析圣经翻译计划——第五章:延迟计算 (上)...

    本章节介绍了用于布局前后时序验证的基于单元(cell-based)的设计的延迟计算(delay calculation). ● 前几章重点介绍了对互连线和单元库的建模,单元和互连线建模技术可用于获得设 ...

  5. 静态时序分析 第二章 STA概念

    第二章 STA概念 2.1 CMOS逻辑设计(CMOS Logic Design) 2.1.1 基本MOS结构(Basic MOS Structure) 2.1.2 CMOS逻辑门( CMOS Log ...

  6. delay 芯片时序output_时序分析中的一些基本概念

    描述 时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路.慢慢来,先介绍时序分析中的一些基本概念. 1. 时钟相关 时钟的时序特性主要分为抖动(Jitter).偏移(Skew) ...

  7. delay 芯片时序output_综合和静态时序分析

    1. 时钟为什么建模? 背景: 默认情况下,即使一个时钟要驱动很多寄存器,DC也不会在时钟连线上加clock buffer.Clock buffer 或时钟树,一般由后端工具完成. 为了准确的描述时钟 ...

  8. Etcd教程 — 第二章 Etcd集群静态发现

    Etcd教程 - 第二章 Etcd集群静态发现 一.Etcd集群安装方式 二.Etcd集群静态发现 2.1 静态启动的方式 ※2.2 单机搭建Etcd集群 2.2.1 安装 goreman工具 2.2 ...

  9. java时序图工具_每日学习:静态时序分析入门面面观

    关注并标星大同学吧 每天1次,打卡学习 积累1个新知识,增1分职场底气 作者称谓:Jack xu 个人介绍:不断学习的数字后端工程师 微信公众号:志芯 半导体知识分享第41期 技能升级,从这里开始 本 ...

最新文章

  1. Blender中的大师级3D环境场景制作学习教程
  2. OpenSSF 获1000万美元投资,提升开源软件和软件供应链安全
  3. 电气装置安装工程接地装置施工及验收规范_(册说明)电气设备安装工程
  4. Linux下Wordpress建站Guide
  5. 53. Element setAttribute() 方法
  6. (1)封装JSON数据的三种方式
  7. 数据清洗工具 OpenRefine简介
  8. 计算机英特尔显卡在哪找,英特尔®显卡和 Windows 7 * 常见问题解答
  9. 《大学“电路分析基础”课程实验合集.实验四》丨线性电路特性的研究
  10. mybatis-plus在Mapper类中使用@select标签进行多表联合动态条件查询
  11. linux 路由 pppoe ipv6,ubuntu PPPoE v6 Server配置
  12. 软件测试学习资料大全
  13. 【OpenCV】 ⚠️高手勿入! 半小时学会基本操作 24⚠️ SIFT 算法
  14. 基于EFR32的Zigbee开发-介绍
  15. android+蓝牙遥控器,一种通过蓝牙遥控安卓设备的方法与流程
  16. 深入理解立即数与直接寻址
  17. Linux中正则表达式详细命令及代码(附实验笔记)
  18. 智能芯片之三维内存 概念
  19. NandFlash和iNand
  20. 云原生分布式监控系统?看鹅厂 T11 架构师如何整活儿

热门文章

  1. python 波动率_旧文:历史波动率的计算 (Python)
  2. java test circle_TestCircle.java
  3. 为什么仿宋字体打印出楷体_win7缺少仿宋_GB2312和楷体_GB2312字体,造成word字体显示不正常...
  4. python dict保存到文件_将dict写入txt文件并将其读回?
  5. 电脑功耗软件_台式电脑配置详解!
  6. 如何实现多路海康大华等RTSP数据转RTMP推送
  7. 浅谈Normalize.css
  8. springboot整合mybatisplus中@Mapper与@MapperScan的使用
  9. 怎么在mysql查询自己建的表格_oracle数据库中怎么查询自己建的表
  10. 金士顿u盘真假软件_简洁轻巧 金士顿DT80 Type-C高速闪存盘评测