时序分析基本概念介绍——SI/crosstalk/delta delay/noise/timing Window

news2024/11/24 21:02:36

文章目录

  • 前言
  • 一、Crosstalk
    • 1. Crosstalk Delay Effects
    • 2. Crosstalk Noise Effects
  • 二、Crosstalk Analysis
    • 1. Crosstalk Delay Analysis
    • 2. Crosstalk Noise Analysis
  • 三、如何 fix delta delay 和 noise violations
    • 1. 检查delta delay 和 noise
      • delta delay check
      • noise check
    • 2. 修复delta delay 和 noise violations
  • 总结


前言

信号完整性(Signal Integrity)指的是在周围高频电磁干扰环境中依然能够保持信号稳定的能力;串扰(Crosstalk)指的是相邻的两条或多条net之间的耦合电容带来的相互影响。随着工艺越来越先进,布线密度越来越高,串扰带来的影响越来越重要。

一、Crosstalk

一般可以把crosstalk 带来的影响分为两类:Crosstalk Delay Effects 和 Crosstalk Noise Effects。

1. Crosstalk Delay Effects

串扰会引入Crosstalk Delay(Delta Delay),通过改变信号的 transitions 来影响信号延迟,如下图所示A和C对B的干扰(slowdown & speedup)。
在这里插入图片描述

2. Crosstalk Noise Effects

串扰还会引入噪声(Noise),有时也称为毛刺(Glitch)。Static noise通过改变 steady-state nets(稳态0/1的net) 的逻辑跳变来影响功能。
在这里插入图片描述

二、Crosstalk Analysis

正常波形和收到crosstalk影响的波形如下图所示,delay的增大可能导致timing不满足, 产生的glitch可能会导致信号传输错误。
在这里插入图片描述

串扰是信号之间的相互影响,两根紧挨着的绕线(net)之间存在耦合电容,当一条线进行电平转换的过程中,另一条线也会受到相应的影响。其中第一条线称为攻击端(aggressor),第二根线称为受害端(victim)。
在这里插入图片描述

1. Crosstalk Delay Analysis

如下图所示Net N1通过电容Cc耦合到相邻的网络(标记为Aggressor Net),并通过电容Cg接地。此示例假定网络N1在输出端具有上升电平过渡,并根据Aggressor Net是否同时进行电平切换来考虑不同的情况。
在这里插入图片描述
同时切换Aggressor和Victim的电平会影响Victim网络的过渡时间。根据攻击者网络电平切换方向的不同,串扰延迟影响可能为正(减慢受害者网络过渡时间)或为负(加快受害者网络过渡时间)。
正串扰延迟影响的示例如下图所示。受害者网络在下降的同时,攻击者网络却在上升。攻击者网络向相反方向的电平切换会增加受害者网络的延迟。正串扰(positive crosstalk)会影响驱动单元以及互连线,这两者的延迟都会增加。
在这里插入图片描述
串扰延迟为负的情况如下图所示。攻击者网络与受害者网络同时上升,攻击者网络与受害者网络朝相同方向的电平切换可减少受害者网络的延迟。如前所述,负串扰(negative crosstalk)会影响驱动单元和互连线的时序,两者的延迟都会减小。
在这里插入图片描述
当Victim Net和Aggressor Net同向翻转时,会加快Victim Net的跳变;当Victim Net和Aggressor Net异向翻转时,会减缓Victim Net的跳变。
在这里插入图片描述
在当前STA方法学中,对于由crosstalk引起的delta delay的计算为:先分别计算Victim Net和Aggressor Net的timing window,如果攻击者和受害者的时间窗口有重叠,就需要计算串扰对延迟的影响。对于多攻击者的情况,多条攻击者的时间窗口也要做类似的分析。时间窗口(Timing Window)表示在1个时钟周期内1条线可以在其中翻转的最早和最晚翻转时间。
如下所示,3个不同的攻击线可以影响受害线的时序。攻击线(A1,A2,A3)和受害线(V)电容性耦合,并且它们的时间窗口也和受害线重叠。下图显示了时间窗口和由各个攻击者造成的可能的串扰延迟影响。基于时间窗口,串扰延迟分析确定了造成大串扰延迟影响的最差可能攻击者翻转组合。在这个例子中,时间窗口的重叠区域可以分为3个区域,每个区域说明了可能的攻击者翻转。区域1有A1和A2电平翻转,可以导致串扰延迟影响为(0.12+0.14)=0.26。区域2有A1电平翻转,可以导致串扰延迟影响为0.14。区域3有A3电平翻转,可以导致串扰延迟影响为0.23。因此,最差串扰延迟影响为区域1的0.26。
在这里插入图片描述
Delta delay对setup/hold都是worst的影响。
在这里插入图片描述

2. Crosstalk Noise Analysis

如下图所示,由aggressor nets transitions 导致处于 steady-state 的victim net 产生四种不同类型的noise bump:above low、below high、above high、below low。
在这里插入图片描述
这四种noise bump可以分成两组:Between-the-rails 和 Beyond-rails。
一般情况下,PTSI 只会考虑Between-the-rails noise bump (即above low、below high),如果超过了规定的阈值,就可能导致一些错误的跳变(这种错误不一定引起真实的功能错误,因为产生的noise bump可能随着电路的传递会逐渐减弱、消失,但也有可能被加强。如果这种错误跳变被一级一级往后传,并且noise bump依然超过阈值,并且被时钟捕获到,则会引起功能错误)。
Beyond-rails noise bump(即above high、below low)也对电路结构有一定的影响,如果这种noise bump直接进到input 没有缓冲单元的flop/latch中,可能会正向偏置击穿gate,进而导致功能错误,但目前的lib 库中的flop/latch都会包含一些缓冲单元,所以这种情况发生的概率比较小。

为了进行Noise或者Glitch分析,需要对一个串扰造成的Bump建模,它有宽度和高度,还有面积等属性概念(如下图所示)。
在这里插入图片描述
PT-SI在进行update_noise计算时,首先会采用较为悲观的方式快速计算一个类似于下图中DC noise margin的阈值,如果计算出的Bump Height远低于该值,那么就可以断定没有noise不会传播,没有危害。如果计算出的Bump Height接近这个阈值,那么工具就会启动更精细的类似SPICE的门级仿真,取得更精确的结果。通过这种方式,即节省了时间,又保证了精度。
下图中的曲线可以看做是Noise Immunity Curve(NIC),在曲线左下角的Glitch都是无害的,而右上角的Glitch都是必须修复掉的,PT-SI在进行Noise门级仿真时会实时地计算出各个点的NIC。
在这里插入图片描述
一个cell input 的noise bump 在超过阈值之后可能传输到output 产生一个新的noise bump,这种现象叫做Noise的传播,如下图所示。输出毛刺高度和宽度是输入毛刺的宽度、高度以及输出负载的函数。即输入毛刺形状和输出负载,决定了输出毛刺的形状。而这些函数表征是由标准单元库中的propagated_noise模型描述的。
在这里插入图片描述

三、如何 fix delta delay 和 noise violations

在了解了delta delay 和 noise的影响之后,需要将delta delay 和 noise violations报出来,然后修复这些violations。

1. 检查delta delay 和 noise

delta delay check

一般情况下,clock和data的delta delay的阈值设置是不同的,比如data path上面的net的delta delay不超过100ps, clock tree上面的net的delta delay不超过20ps。
在这里插入图片描述
因此如果report所有的delta delay violations,首先得到data net和clock net的delta delay,因此需要先通过-filter is_clock_used_as_clock==true判断是data net还是clock net,然后通过 get_attribute $net annotated_delay_delta_max和 get_attribute $net annotated_delay_delta_min来得到delta delay的数值,最后判断delta delay的数值和设置的clock和data的delta delay的阈值的大小,超过阈值的则为delta delay violations。

noise check

当report noise 的时候有两种mode 供选择,report at source 和report at endpoint。上面说过一个noise bump 超过了阈值不一定会导致最终的功能failure,这跟传输的路径有关系。如下图所示,U1的input nets 受到干扰产生noise bump并超过了要求的阈值,但经过U1的传输,noise bump衰减,低于阈值,那么这种noise bump就不会导致最终的功能failure。report at source会把路径上所有出现violations 的点(noise bump超出阈值)都报出来,报告更加详细;report at endpoint只会报出noise 终止的endpoint,报出来的报告会更加简洁,只显示会引起功能出错的点(一般是flop/latch等)如下图所示。
在这里插入图片描述
在这里插入图片描述
指令如下:

pt_shell> set_noise_parameters -analysis_mode report_at_endpoint -enable_propagation

report所有的noise violations的指令如下:

pt_shell> report_noise -verbose -all_violators -nosplit

2. 修复delta delay 和 noise violations

修复delta delay 和 noise violations需要结合受害(victim)和攻击(aggressor) Net相关路径的时序,周围Net和Cell的密集程度等情况来具体分析,大致上有以下方法:
(1)增加victim net的驱动单元驱动能力。victim net驱动能力越弱的话,Glitch的量级也会越大。使用髙驱动单元可提髙潜在victim net的门限,从而降低victim net的受害程度。
(2)减少victim net的负载单元驱动能力。
(3)增加victim net和攻击Net的间距。将victim net和aggressor net之间的间距加大,或者采用屏蔽线shielding都是保护victim net的一些好方法。
(4)降低aggressor net的驱动单元驱动能力。aggressor net的驱动能力越强,Glitch的量级就越大。
(5)通过加Buffer将受害Net打断 (工具一般是通过这种方式来修复)。插buffer是后端修复violation的万能手段。它也是是处理noise时一项非常有效的修复技术。通过插入buffer将长线打断能有效降低victim net上的耦合电容,从而降低noise的影响。


总结

在先进工艺节点下,对于STA的check,通常会引入SI(signal integrity)分析。在芯片的电学特性中,时序、串扰和功耗是三项相互相关的重要分析内容。因此,需要了解芯片在物理设施过程中的串扰产生和现象、产生的因素、对芯片引起的危害及实际解决方案等。

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

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

相关文章

EtherCAT转Profinet网关配置说明第三讲:博图配置

EtherCAT协议转Profinet协议网关模块(XD-ECPNS20)是实现EtherCAT协议和Profinet协议之间无缝通讯的重要设备。使EtherCAT协议和Profinet协议能够相互转换,进行工控自动化里的互连和传送数据。 EtherCAT作为一种高性能实时以太网通信协议&…

yum install epel-release 遇到的问题

问题: 安装epel的时候,执行 yum install -y epel-release 报错“Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86_64&repoos&infrastock error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.…

在VMware虚拟机的创建以及安装linux操作系统

一、创建虚拟机 1.双击打开下载好的VMware Workstation软件 2.点击“创建新的虚拟机” 3.根据个人选择需要创建的虚拟机,点击下一步 4.直接点击下一步 5.选择稍后安装操作系统,点击下一步 、 6.选择需要的操作系统,点击下一步 7.根据…

分享一些提升效率的办公、学习神器!

分享一些提升效率的办公、学习神器! 文章目录 分享一些提升效率的办公、学习神器! 一、 ✅ 文件搜索工具 Everything:1.1 Everything 主要功能:1.2 Everything 下载地址: 二、 ✅ 文件压缩解压工具 7 - Zip&#xff1a…

【TB作品】51单片机 Proteus仿真 00013红外proteus仿真循迹避障小车

实验报告:智能小车系统设计与实现 一、背景介绍 本实验旨在设计并实现一个基于STC89C52单片机控制的智能小车系统。该系统通过超声波传感器进行避障,通过红外接收器实现远程控制,同时具备循迹功能。整个系统的核心是单片机,它通…

MySQL之表的约束(1)

目录 空属性(NULL) 实例建表 插入操作 默认值(default) 建表 插入操作 NULL与default的结合 列描述 建表 zerofill 建表 插入操作 主键 建表 插入 主键的增加与去掉 去掉 增加 复合主键 插入的影响 真正约束字段的是数据类型,但是数据类型约束很单一&a…

阿里云 OSS - 开通到使用、服务端签名直传(前后端代码 + 效果演示)

目录 开始 OSS 相关术语须知 阿里云 OSS 开通 阿里云 OSS 使用 官方文档教程 实战开发 阿里云 OSS 自动配置 环境配置 实战开发 服务端签名直传 概述 代码实现 开始 OSS 相关术语须知 中文 英文 说明 存储空间 Bucket 存储空间是您用于存储对象(Ob…

Transformer-LSTM预测 | Matlab实现Transformer-LSTM多变量时间序列预测

Transformer-LSTM预测 | Matlab实现Transformer-LSTM多变量时间序列预测 目录 Transformer-LSTM预测 | Matlab实现Transformer-LSTM多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现Transformer-LSTM多变量时间序列预测,Transf…

IDEA发疯导致maven下载回来的jar不完整zip END header not found

IDEA发疯导致maven下载回来的jar不完整zip END header not found 具体报错 java: 读取D:\mavenRepository\com\alibaba\druid-spring-boot-starter\1.2.23\druid-spring-boot-starter-1.2.23.jar时出错; zip END header not foundjava: java.lang.RuntimeException: java.io.…

【Linux】进程间的通信----管道

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

暄桐教练日课·21天《线的初识》即将开始 一起感受线描的乐趣

林曦老师的直播课,是暄桐教室的必修课。而教练日课是丰富多彩的选修课,它会选出书法史/美术史上重要的、有营养的碑帖和画儿,与你一起,高效练习。而且暄桐教练日课远不止书法、国画,今后还会有更多有趣的课程陆续推出&…

【C++第十课 - stack_queue】stack、queue的使用、适配器模型stack、queue和priority_queue的底层实现、deque

目录 一、stack使用1、push2、pop3、empty4、top题目1、最小栈2、栈的压入、弹出序3、逆波兰表达式求值 二、queue的使用priority_queue习题 三、适配器stack的底层实现queue的底层实现priority_queue的底层实现仿函数/函数对象函数指针 四、deque 一、stack使用 stack是个容器…

深入探索Python库的奇妙世界:赋能编程的无限可能

在编程的浩瀚宇宙中,Python以其简洁的语法、强大的功能和广泛的应用领域,成为了众多开发者心中的璀璨明星。而Python之所以能够如此耀眼,很大程度上得益于其背后庞大的库生态系统。这些库,如同一块块精心雕琢的积木,让…

ffmpeg图片视频编辑器工具的安装与使用

title: ffmpeg图片视频编辑器工具的安装与使用 tags: [ffmpeg, 图片, 音频, 视频, 工具, 流媒体] categories: [工具, ffmpeg] FFmpeg是一个开源的命令行工具,广泛用于处理视频和音频文件,包括转换格式、剪辑、混流、解码、编码等。以下是一些基本的FFmp…

【全面讲解下iPhone新机官网验机流程】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

nginx配置反向代理-CSDN

客户需求 1、实现通过域名访问税金的发票服务(路径格式要求:https://www.xxx.com) nginx的部署 前提 1、客户在局域网内已实现通过https://ip:port/stms访问税金平台 2、客户已获取https的SSL证书 3、客户申请的外网ip和域名已绑定 部署…

为什么要设计DTO类

为什么要使用DTO类,下面以新增员工接口为例来介绍。 新增员工 1.1 需求分析和设计 1.1.1 产品原型 一般在做需求分析时,往往都是对照着产品原型进行分析,因为产品原型比较直观,便于我们理解业务。 后台系统中可以管理员工信息…

WEB自动化框架封装MySQL连接及sql断言教程

为了在Web自动化测试中连接MySQL数据库并进行SQL断言,您可以按照以下步骤: 安装MySQL Connector/Python驱动程序,并导入它。 使用Connector/Python创建一个连接对象,指定所需的主机名、用户名、密码和数据库名。 创建一个游标对…

linux-虚拟内存-虚拟cpu

1、进程: 计算机中的程序关于某数据集合上的一次运行活动。 狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。广义定义:进程是一个具有一定独立功能的程序关于某个…

【三维向量旋转】基于Matlab的三维坐标旋转

一、问题描述 若空间中存在三个点A,B,C,其中A点是不动点,B点是当前方向向量上的一个点,C是目标方向上的一个点。如果要让AB向量沿着BC方向进行旋转,使得AB最终旋转到AC。这个过程就是三维向量的旋转过程。我们关注的是这个过程&am…