序:

本篇内容,基于阅读J. Bhasker • Rakesh Chadha著作《Static Timing Analysis for Nanometer Designs》后进行的总结以及自己的观点和感想,如有不正确的地方,还请指点。读者有微电子基础将更好理解内容。(图片内容绝大部分直接引用书中)

在先进工艺节点下,对于STA的check,通常会引入SI(signal integrity)分析,而在报告中也会查看noise相关的报告,本章节就针对noise/SI进行一个回顾。noise是指周围信号对该信号产生的影响,可能会导致改正常传输的信号出现错误传输,从而影响到芯片的稳定性。

6.1 overview

噪声/noise到底是什么东西,其实可以理解为干扰,在真实的版图或者真实的工艺制造过程中,每一个cell周围都会有非常多的其他cell,cell之间并非毫无影响,可能会产生干扰。同理,path之间也是,每一条走线周围可能有十条甚至上百条的走线,都会对该条走线产生干扰。产生干扰的结果有两种:glitch/毛刺和delay延迟。 如下图所示,正常波形和收到noise影响的波形,产生的glitch可能会导致信号传输错误,而造成的delay延迟增大可能导致timing不满足。噪声是信号之间的相互影响,受影响的信号一般称为victim,而影响者一般称为aggressor


那什么是造成噪声影响的主要因素呢?
1)金属层增加,工艺节点越高,用到的金属层越多,相应的互连线也就越多
2)高宽长比的金属连线占主导,垂直走线越来越多,导致侧壁耦合电容增加
3)高density,随着对性能和继承读要求的增加,密度增加,导致互连线也增加
4)高频,由于高频要求,导致信号转换速度要求更高,更容易产生耦合效应
5)低压,低压导致noise 窗口变小

6.2 Crosstalk Glitch Analysis

6.2.1 basic

接下来详细看一下glitch相关的内容。上一节提到施害者和受害者。施害者和受害者之间存在耦合电容,那么在施害者信号高低变化时,就会通过耦合电容在受害者上面产生毛刺,比如把原本的受害者net上的信号0变成了1,或者1变成了0,而信号被时序逻辑捕获或者影响了时序逻辑,都可能产生很严重的后果。影响毛刺的大小的因此由很多:
1)耦合电容越大,毛刺幅度越大
2)施害者信号的slew越快,毛刺幅度越大
3)受害者接地电容越小,毛刺幅度越大
4)受害者前级驱动越弱,毛刺幅度越大

6.2.2 glitch type

施害者电平切换和受害者电容高低都存在两种情况,那么产生的glitch就一共有四种情况,分别为overshoot glitch,undershoot glitch,rise glitch,fall glitch如下图所示:

6.2.3 Glitch Thresholds and Propagation

是否所有的毛刺都不可以被接受?是否所有的毛刺都可以一直朝后传播?并不是这样的。
● DC Thresholds
如果单纯只考虑noise 的幅度,如下图所示,当rise glitch,高于了Vil_max,fall glitch低于了Vih_min,定义这样的毛刺为危险毛刺,可能会超后级传播,而在这个范围以外的毛刺,被认为是安全毛刺。这个是dc噪声裕度。这样的设定并不是非常合理。并不能保证,安全毛刺一定安全,而危险毛刺一定有问题。因为此处只考虑了毛刺的高度,而并没有考虑毛刺的宽度和输出负载


● AC Thresholds
单纯靠DC 阈值来卡毛刺,那对于设计来说挑战是很大的,因为很多毛刺虽然幅度很高,但是可能非常非常的窄。对于一个cell本身就有延迟,而当本身的延迟要远大于输入的毛刺时候,那么毛刺是不会通过cell传播到后级的,因为在后级还没反应完,毛刺可能已经结束了。另外,增加cell 的负载,同样增加cell delay,一样能够消除毛刺。如下图所示的AC 给出的噪声容限相对来说就更加合理,对于glitch很窄,或者glitch宽度很低(极限对应DC阈值)的情况,noise是可以忽略的,即图中的safe glitch所示。如何消除毛刺,可以通过增加cell的负载,从而增加noise margin,但这种属于杀敌一千,自损八百的做法。通常STA阶段都是通过增强受害者前级驱动的方法消除noise。

如果毛刺超过AC阈值,那么毛刺就会通过单元超后级传播。输出毛刺的高度和宽度是输入毛刺的宽度、高度以及输出负载的函数。即输入毛刺形状和输出负载,决定了输出毛刺的形状。而这些函数表征,在标准单元库中的propagated_noise模型是由描述的。

6.2.4 Noise Accumulation with Multiple Aggressors

前面提到的glitch,只是讨论了一个施害者对一个受害者的影响,那么在实际的电路中,一个受害者可能对应数个施害者,对于如此情况,如果对多个可能产生的glitch进行评估?
如下图所示,考虑时序相关,假设在如下时刻,同一个受害者受到4个不同施害者的“迫害”,产生了4个glitch,那么noise的计算应该如何考量呢?当然最坏的情况,是四个加起来那么就是0.53,当然这样是最悲观的情况,因为4个glitch并非同时产生。我们看同时产生的时候,可以看到A3+A4=0.32是最坏的情况。因此在去除悲观度的情况下,noise加起来是0.32的毛刺幅度。

另外在考虑noise累加时候,还需要考虑功能逻辑从而减少悲观度。如扫描控制逻辑和功能逻辑,他们之间不可能同时开始工作,因此他们之间相互的noise影响是可以忽略不计的。再比如某一条net,可能从reset之后就一直保持一个定值,那么它不可能称为一个施害者等等这些,在STA的noise检查中都会有考虑进去。

6.3 Crosstalk Delay Analysis

6.3.1 basic and delay type

上面一节讲解的是noise造成的glitch问题,出现在施害者电平变化对受害者电平值的影响,从而对功能逻辑产生影响。还有一种情况是施害者的高低电平变化对受害者的高低电平变化产生的应,这种会带来单元传输数据快慢的影响,对STA产生影响。如下图所示为施害者和受害者电平同时刻发生变化的情况。

分为两种情况,positive-crosstalk和negative-crosstalk。从图上可以看出,postive 指的是delay增加的影响,也就是上升沿影响下降沿,下降沿影响上升沿,negative则恰恰相反。对于postive-crosstalk,可以会造成skew退后,导致skew变大,由于cell delay的计算受到input tran和output cap知道,skew越大,那么对应的cell delay值也就越大,因此,postive-crosstalk的情况,是利于hold的,但是不利于setup。而negative-crosstalk则相反,导致delay变小,利于setup check,不利于hold check。

6.3.2 Accumulation with Multiple Aggressors

关于对delay影响的累加衡量方式和glitch是类似的,此处就不再赘述。

6.4 Timing Verification Using Crosstalk Delay

上面造成延迟的两类crosstalk,细分为4类即为:

● 正上升延迟(Positive rise delay):上升沿提前到达
● 负上升延迟(Negative rise delay):上升沿滞后到达
● 正下降延迟(Positive fall delay):下降沿提前到达
● 负下降延迟(Negative fall delay):下降沿滞后到达

delay的快慢直接影响到了setup 和hold check,对于data path ,setup当然期望越快越好,hold则相反,对于capture clk path,setup期望不要太短,hold则相反。因此cell收到noise影响导致的delay变化,对于timing check会有直接影响。详细的参考
对于setup check:
按照严格的检查方式,期望的是launch clock path和data path为postive-crosstalk,从而使得launch和data path变长;capture clock path为negative-crosstalk,从而使capture path变短,这样可以使得setup timing 变差
对于hold check:
按照严格的检查方式,期望的是launch clock path和data path为negative-crosstalk,从而使得launch和data path变短;capture clock path为postive-crosstalk,从而使capture path变长,这样可以使得hold timing 变差
具体的关于setup/hold timing 情况,可以参考Timing Check – hold/setup check原理介绍

6.5 Computational Complexity

对于寄生参数的提取以及对于噪声影响的计算,并不是一个简单的事情,需要耗费大量的物理资源,因此当先进工艺下,引入了noise的影响时候,STA的难度也相应增加很大,对于大的design,如果有效处理?

分层设计与分析
4.5节已介绍了可用于验证大型设计的分层方法(Hierarchical Methodology),类似的方法也可用于降低提取寄生参数和进行分析的复杂性。对于大型设计,运行(run)一次通常无法实现寄生参数的提取。每个层级模块的寄生参数可以分别提取,这又需要在设计实现的时候使用了分层设计方法。这意味着在分层模块内部的信号与模块外部的信号之间不存在耦合,这可以通过不在模块边界上布线或通过在模块上添加屏蔽层来实现。另外,信号网络不应该布在靠近模块边界的地方,并且任何布线网络都应在靠近模块边界的地方进行屏蔽保护,这样可以避免与其他模块的网络耦合。

耦合电容的过滤
在噪声计算过程中,对于一些非常小的噪声,是直接过滤掉的,而不是参与计算,可以有效优化计算时间。
过滤的原则:
● 较小的值:在串扰或噪声分析中,可以忽略非常小的耦合电容,例如低于1fF。在提取过程中,数值较小的耦合电容可以视为接地电容。
● 耦合比:耦合对受害者网络的影响是基于耦合电容相对于受害者网络总电容的相对值。具有较小耦合比(例如低于0.001)的施害者网络可以从串扰延迟分析或串扰毛刺分析中排除。
● 合并小型攻击者:可以将影响很小的多个攻击者映射为一个较大的虚拟攻击者。这可能有点悲观,但可以简化分析。可以通过切换攻击者的子集来缓解一些悲观度,攻击者的确切子集可以通过统计方法来确定。

6.6 Noise Avoidance Techniques

能不能从根本上面去避免这种噪声,也就不需要在check时候进行计算了。一些屏蔽噪声的物理手段:
● 屏蔽(Shielding):此方法要求将屏蔽线放在关键信号的两侧,屏蔽线已连接到了电源或地。关键信号的屏蔽确保了关键信号没有有效的攻击者,因为在同一金属层中最相邻的走线是处于固定电位的屏蔽走线。尽管在不同的金属层中可能存在来自布线的某些耦合,但是大多数耦合电容还是由于同一层中的电容耦合引起的。由于不同金属层(上方和下方)通常会正交走线,这样跨层的电容耦合会最小化。因此,将屏蔽线放置在同一金属层中可确保关键信号的耦合最小。如果由于布线拥塞而无法使用接地或电源线进行屏蔽,则可以把在功能模式下保持不变、电平切换不频繁的信号(如扫描控制信号)布线为关键信号的直接相邻信号。这些屏蔽方法可确保不会由于相邻网络的电容耦合而产生串扰。
● 线距(Wire spacing):这减少了与相邻网络的耦合。
● 快速压摆(Fast slew rate):网络上的压摆较快表示该网络不易受到串扰的影响。
● 保持良好的稳定电源(Maintain good stable supply):这对于串扰而言并不重要,但对于最大程度地减少由于电源变化而引起的抖动至关重要。由于电源上的噪声,可能会在时钟信号上引入大量噪声。应该添加足够的去耦电容,以最大程度地减少电源上的噪声。
● 保护环(Guard ring):衬底(substrate)上的保护环(或双重保护环)有助于将关键的模拟电路与数字噪声隔离开来。
● 深n阱(Deep n-well):与上面类似,因为在模拟部分具有深n阱,有助于防止噪声耦合到数字部分。
● 隔离块(Isolating a block):在分层设计流程中,可以将布线晕圈(halos)添加到块的边界;此外,还可以将隔离缓冲器(isolation buffers)添加到块的每个IO中。

6.5-6.6都是一些陈述性内容,直接参考的翻译内容

STA series --- 6 .Crosstalk and Noise相关推荐

  1. STA series --- 1. Introduction

    序: 本篇内容,基于阅读J. Bhasker • Rakesh Chadha著作<Static Timing Analysis for Nanometer Designs>后进行的总结以及 ...

  2. STA series --- 3.Standard cell library(PART-II)

    序: 本篇内容,基于阅读J. Bhasker • Rakesh Chadha著作<Static Timing Analysis for Nanometer Designs>后进行的总结以及 ...

  3. STA series --- 7.Configuring the STA SDC(PATR-II)

    序: 本篇内容,基于阅读J. Bhasker • Rakesh Chadha著作<Static Timing Analysis for Nanometer Designs>后进行的总结以及 ...

  4. STA series --- 8.Timing Verification (PARTII)

    本篇内容,基于阅读J. Bhasker • Rakesh Chadha著作<Static Timing Analysis for Nanometer Designs>后进行的总结以及自己的 ...

  5. STA series --- 7.Configuring the STA SDC(PATR-I clock define)

    序: 本篇内容,基于阅读J. Bhasker • Rakesh Chadha著作<Static Timing Analysis for Nanometer Designs>后进行的总结以及 ...

  6. STA series --- 5 .Delay Calculation

    序: 本篇内容,基于阅读J. Bhasker • Rakesh Chadha著作<Static Timing Analysis for Nanometer Designs>后进行的总结以及 ...

  7. STA分析(六) cross talk and noise

    在深亚微米技术(deep submicron)中,关于crosstalk和noise对design的signal integrate的影响越来越大.主要表现在glitch和对delay的影响. 1)m ...

  8. IC Compiler II(ICC II)后端设计流程——超详细

    Preface 本文中英文结合(学习一些专有名词),主要介绍ICC II软件进行后端设计的主要流程,在阅读之前需要对数字IC设计流程有一定的了解. 逻辑综合相关知识请查看:Synopsys逻辑综合及D ...

  9. 《静态时序分析实用方法》翻译

    第1章 引言 解释了什么是静态时序分析以及它如何用于时序验证.还描述了功率和可靠性方面的考虑. 概述了纳米设计的静态时序分析程序.本章解决了诸如什么是静态时序分析.噪声和串扰的影响是什么.如何使用这些 ...

最新文章

  1. 牛客竞赛语法入门班数组栈、队列和stl习题【未完成】
  2. php用session制作网站仿恶意刷新计数器
  3. MySQL 基础 ———— 存储过程与函数
  4. 成员变量和局部变量的区别_Java 变量类型
  5. TCP/IP文档阅读笔记-TCP Receive Window
  6. 为什么 Netflix “永不宕机”?
  7. JavaScript中的匿名函数遇上!会怎么样
  8. 前端-requests-flask对应关系 HTTPTokenAuth
  9. 问答方式学 Node.js
  10. 亚马逊被爆内部员工卖数据改差评,中国区尤为严重!
  11. Appium遇到异常处理
  12. ABP框架使用打印日志
  13. 函数的参数对象$event的使用和利用他找到事件对象
  14. PJzhang:QQ输入法用户许可协议和隐私政策阅读
  15. html设置右键失灵,鼠标右键失灵是怎么回事
  16. 达梦数据库培训心得及DCA考试总结
  17. windowsPE制作工具
  18. NandFlash基础知识-K9F2G08
  19. 群论(Burnside引理和Polya定理)
  20. 软件测试——功能测试(缺陷)2

热门文章

  1. Pandas函数方法分类 参数说明+实例分析!!
  2. 机器人学导论(一)——空间描述和变换
  3. 如何使用Python实现回文的判断?
  4. java音乐播放器视频_java 实现音乐播放器的简单实例
  5. Mysql 中source命令详解
  6. 修正 Newton 公式
  7. 微信中怎样查看微信热点?分享技巧!微信中如何查看微信热点?
  8. JAXWS CXF HelloWorld + MyEclipse + Maven + Jetty Byron自學視頻01
  9. mount reason give by server:Permission denid
  10. 什么是域名劫持?遇到域名劫持要怎么处理