一直想给大家讲讲ESD的理论,很经典。但是由于理论性太强,任何理论都是一环套一环的,如果你不会画鸡蛋,注定了你就不会画大卫。

先来谈静电放电(ESD: Electrostatic Discharge)是什么?这应该是造成所有电子元器件或集成电路系统造成过度电应力破坏的主要元凶。因为静电通常瞬间电压非常高(>几千伏),所以这种损伤是毁灭性和永久性的,会造成电路直接烧毁。所以预防静电损伤是所有IC设计和制造的头号难题。

静电,通常都是人为产生的,如生产、组装、测试、存放、搬运等过程中都有可能使得静电累积在人体、仪器或设备中,甚至元器件本身也会累积静电,当人们在不知情的情况下使这些带电的物体接触就会形成放电路径,瞬间使得电子元件或系统遭到静电放电的损坏(这就是为什么以前修电脑都必须要配戴静电环托在工作桌上,防止人体的静电损伤芯片),如同云层中储存的电荷瞬间击穿云层产生剧烈的闪电,会把大地劈开一样,而且通常都是在雨天来临之际,因为空气湿度大易形成导电通到。

那么,如何防止静电放电损伤呢?首先当然改变坏境从源头减少静电(比如减少摩擦、少穿羊毛类毛衣、控制空气温湿度等),当然这不是我们今天讨论的重点。

我们今天要讨论的时候如何在电路里面涉及保护电路,当外界有静电的时候我们的电子元器件或系统能够自我保护避免被静电损坏(其实就是安装一个避雷针)。这也是很多IC设计和制造业者的头号难题,很多公司有专门设计ESD的团队,今天我就和大家从最基本的理论讲起逐步讲解ESD保护的原理及注意点,你会发现前面讲的PN结/二极管、三极管、MOS管、snap-back全都用上了......

以前的专题讲解PN结二极管理论的时候,就讲过二极管有一个特性:正向导通反向截止,而且反偏电压继续增加会发生雪崩击穿而导通,我们称之为钳位二极管(Clamp)。这正是我们设计静电保护所需要的理论基础,我们就是利用这个反向截止特性让这个旁路在正常工作时处于断开状态,而外界有静电的时候这个旁路二极管发生雪崩击穿而形成旁路通路保护了内部电路或者栅极(是不是类似家里水槽有个溢水口,防止水龙头忘关了导致整个卫生间水灾)。

那么问题来了,这个击穿了这个保护电路是不是就彻底死了?难道是一次性的?答案当然不是。PN结的击穿分两种,分别是电击穿和热击穿,电击穿指的是雪崩击穿(低浓度)和齐纳击穿(高浓度),而这个电击穿主要是载流子碰撞电离产生新的电子-空穴对(electron-hole),所以它是可恢复的。但是热击穿是不可恢复的,因为热量聚集导致硅(Si)被熔融烧毁了。所以我们需要控制在导通的瞬间控制电流,一般会在保护二极管再串联一个高电阻。

另外,大家是不是可以举一反三理解为什么ESD的区域是不能form Silicide的?还有给大家一个理论,ESD通常都是在芯片输入端的Pad旁边,不能在芯片里面,因为我们总是希望外界的静电需要第一时间泄放掉吧,放在里面会有延迟的(关注我前面解剖的那个芯片PAD旁边都有二极管。甚至有放两级ESD的,达到双重保护的目的。

在讲ESD的原理和Process之前,我们先讲下ESD的标准以及测试方法,根据静电的产生方式以及对电路的损伤模式不同通常分为四种测试方式:人体放电模式(HBM: Human-Body Model)、机器放电模式(Machine Model)、元件充电模式(CDM: Charge-Device Model)、电场感应模式(FIM: Field-Induced Model),但是业界通常使用前两种模式来测试(HBM, MM)。

1、人体放电模式(HBM):当然就是人体摩擦产生了电荷突然碰到芯片释放的电荷导致芯片烧毁击穿,秋天和别人触碰经常触电就是这个原因。业界对HBM的ESD标准也有迹可循(MIL-STD-883C method 3015.7,等效人体电容为100pF,等效人体电阻为1.5Kohm),或者国际电子工业标准(EIA/JESD22-A114-A)也有规定,看你要follow哪一份了。如果是MIL-STD-883C method 3015.7,它规定小于<2kV的则为Class-1,在2kV~4kV的为class-2,4kV~16kV的为class-3。

2、机器放电模式(MM):当然就是机器(如robot)移动产生的静电触碰芯片时由pin脚释放,次标准为EIAJ-IC-121 method 20(或者标准EIA/JESD22-A115-A),等效机器电阻为0 (因为金属),电容依旧为100pF。由于机器是金属且电阻为0,所以放电时间很短,几乎是ms或者us之间。但是更重要的问题是,由于等效电阻为0,所以电流很大,所以即使是200V的MM放电也比2kV的HBM放电的危害大。而且机器本身由于有很多导线互相会产生耦合作用,所以电流会随时间变化而干扰变化。

ESD的测试方法类似FAB里面的GOI测试,指定pin之后先给他一个ESD电压,持续一段时间后,然后再回来测试电性看看是否损坏,没问题再去加一个step的ESD电压再持续一段时间,再测电性,如此反复直至击穿,此时的击穿电压为ESD击穿的临界电压(ESD failure threshold Voltage)。通常我们都是给电路打三次电压(3 zaps),为了降低测试周期,通常起始电压用标准电压的70% ESD threshold,每个step可以根据需要自己调整50V或者100V。

(1). Stress number = 3 Zaps. (5 Zaps, the worst case)
(2). Stress step    ΔVESD = 50V(100V) for VZAP <=1000V
ΔVESD = 100V(250V, 500V) for VZAP > 1000V
(3). Starting VZAP = 70% of averaged ESD failure threshold (VESD)

另外,因为每个chip的pin脚很多,你是一个个pin测试还是组合pin测试,所以会分为几种组合:I/O-pin测试(Input and Output pins)、pin-to-pin测试、Vdd-Vss测试(输入端到输出端)、Analog-pin。

1. I/O pins:就是分别对input-pin和output-pin做ESD测试,而且电荷有正负之分,所以有四种组合:input+正电荷、input+负电荷、output+正电荷、output+负电荷。测试input时候,则output和其他pin全部浮接(floating),反之亦然。

2. pin-to-pin测试: 静电放电发生在pin-to-pin之间形成回路,但是如果要每每两个脚测试组合太多,因为任何的I/O给电压之后如果要对整个电路产生影响一定是先经过VDD/Vss才能对整个电路供电,所以改良版则用某一I/O-pin加正或负的ESD电压,其他所有I/O一起接地,但是输入和输出同时浮接(Floating)。

3、Vdd-Vss之间静电放电:只需要把Vdd和Vss接起来,所有的I/O全部浮接(floating),这样给静电让他穿过Vdd与Vss之间。

4、Analog-pin放电测试:因为模拟电路很多差分比对(Differential Pair)或者运算放大器(OP AMP)都是有两个输入端的,防止一个损坏导致差分比对或运算失效,所以需要单独做ESD测试,当然就是只针对这两个pin,其他pin全部浮接(floating)。

好了,ESD的原理和测试部分就讲到这里了,下面接着讲Process和设计上的factor

随着摩尔定律的进一步缩小,器件尺寸越来越小,结深越来越浅,GOX越来越薄,所以静电击穿越来越容易,而且在Advance制程里面,Silicide引入也会让静电击穿变得更加尖锐,所以几乎所有的芯片设计都要克服静电击穿问题。

静电放电保护可以从FAB端的Process解决,也可以从IC设计端的Layout来设计,所以你会看到Prcess有一个ESD的option layer,或者Design rule里面有ESD的设计规则可供客户选择等等。当然有些客户也会自己根据SPICE model的电性通过layout来设计ESD。

1、制程上的ESD:要么改变PN结,要么改变PN结的负载电阻,而改变PN结只能靠ESD_IMP了,而改变与PN结的负载电阻,就是用non-silicide或者串联电阻的方法了。

1) Source/Drain的ESD implant:因为我们的LDD结构在gate poly两边很容易形成两个浅结,而这个浅结的尖角电场比较集中,而且因为是浅结,所以它与Gate比较近,所以受Gate的末端电场影响比较大,所以这样的LDD尖角在耐ESD放电的能力是比较差的(<1kV),所以如果这样的Device用在I/O端口,很容造成ESD损伤。所以根据这个理论,我们需要一个单独的器件没有LDD,但是需要另外一道ESD implant,打一个比较深的N+_S/D,这样就可以让那个尖角变圆而且离表面很远,所以可以明显提高ESD击穿能力(>4kV)。但是这样的话这个额外的MOS的Gate就必须很长防止穿通(punchthrough),而且因为器件不一样了,所以需要单独提取器件的SPICE Model。

2) 接触孔(contact)的ESD implant:在LDD器件的N+漏极的孔下面打一个P+的硼,而且深度要超过N+漏极(drain)的深度,这样就可以让原来Drain的击穿电压降低(8V-->6V),所以可以在LDD尖角发生击穿之前先从Drain击穿导走从而保护Drain和Gate的击穿。所以这样的设计能够保持器件尺寸不变,且MOS结构没有改变,故不需要重新提取SPICE model。当然这种智能用于non-silicide制程,否则contact你也打不进去implant。

3) SAB (SAlicide Block):一般我们为了降低MOS的互连电容,我们会使用silicide/SAlicide制程,但是这样器件如果工作在输出端,我们的器件负载电阻变低,外界ESD电压将会全部加载在LDD和Gate结构之间很容易击穿损伤,所以在输出级的MOS的Silicide/Salicide我们通常会用SAB(SAlicide Block)光罩挡住RPO,不要形成silicide,增加一个photo layer成本增加,但是ESD电压可以从1kV提高到4kV。

4)串联电阻法:这种方法不用增加光罩,应该是最省钱的了,原理有点类似第三种(SAB)增加电阻法,我就故意给他串联一个电阻(比如Rs_NW,或者HiR,等),这样也达到了SAB的方法。

2、设计上的ESD:这就完全靠设计者的功夫了,有些公司在设计规则就已经提供给客户solution了,客户只要照着画就行了,有些没有的则只能靠客户自己的designer了,很多设计规则都是写着这个只是guideline/reference,不是guarantee的。一般都是把Gate/Source/Bulk短接在一起,把Drain结在I/O端承受ESD的浪涌(surge)电压,NMOS称之为GGNMOS (Gate-Grounded NMOS),PMOS称之为GDPMOS (Gate-to-Drain PMOS)。

以NMOS为例,原理都是Gate关闭状态,Source/Bulk的PN结本来是短接0偏的,当I/O端有大电压时,则Drain/Bulk PN结雪崩击穿,瞬间bulk有大电流与衬底电阻形成压差导致Bulk/Source的PN正偏,所以这个MOS的寄生横向NPN管进入放大区(发射结正偏,集电结反偏),所以呈现Snap-Back特性,起到保护作用。PMOS同理推导。

这个原理看起来简单,但是设计的精髓(know-how)是什么?怎么触发BJT?怎么维持Snap-back?怎么撑到HBM>2KV or 4KV?

如何触发?必须有足够大的衬底电流,所以后来发展到了现在普遍采用的多指交叉并联结构(multi-finger)。但是这种结构主要技术问题是基区宽度增加,放大系数减小,所以Snap-back不容易开启。而且随着finger数量增多,会导致每个finger之间的均匀开启变得很困难,这也是ESD设计的瓶颈所在。

如果要改变这种问题,大概有两种做法(因为triger的是电压,改善电压要么是电阻要么是电流):

1、利用SAB(SAlicide-Block)在I/O的Drain上形成一个高阻的non-Silicide区域,使得漏极方块电阻增大,而使得ESD电流分布更均匀,从而提高泄放能力;

2、增加一道P-ESD (Inner-Pickup imp,类似上面的接触孔P+ ESD imp),在N+Drain下面打一个P+,降低Drain的雪崩击穿电压,更早有比较多的雪崩击穿电流(详见文献论文: Inner Pickup on ESD of multi-finger NMOS.pdf)。

对于Snap-back的ESD有两个小小的常识要跟大家分享一下:

1)NMOS我们通常都能看到比较好的Snap-back特性,但是实际上PMOS很难有snap-back特性,而且PMOS耐ESD的特性普遍比NMOS好,这个道理同HCI效应,主要是因为NMOS击穿时候产生的是电子,迁移率很大,所以Isub很大容易使得Bulk/Source正向导通,但是PMOS就难咯。

2) Trigger电压/Hold电压: Trigger电压当然就是之前将的snap-back的第一个拐点(Knee-point),寄生BJT的击穿电压,而且要介于BVCEO与BVCBO之间。而Hold电压就是要维持Snap-back持续ON,但是又不能进入栅锁(Latch-up)状态,否则就进入二次击穿(热击穿)而损坏了。还有个概念就是二次击穿电流,就是进入Latch-up之后I^2*R热量骤增导致硅融化了,而这个就是要限流,可以通过控制W/L,或者增加一个限流高阻,最简单最常用的方法是拉大Drain的距离/拉大SAB的距离(ESD rule的普遍做法)。

3、栅极耦合(Gate-Couple) ESD技术:我们刚刚讲过,Multi-finger的ESD设计的瓶颈是开启的均匀性,假设有10只finger,而在ESD 放电发生时,这10 支finger 并不一定会同时导通(一般是因Breakdown 而导通),常见到只有2-3 支finger会先导通,这是因布局上无法使每finger的相对位置及拉线方向完全相同所致,这2~3 支finger 一导通,ESD电流便集中流向这2~3支的finger,而其它的finger 仍是保持关闭的,所以其ESD 防护能力等效于只有2~3 支finger的防护能力,而非10 支finger 的防护能力。

这也就是为何组件尺寸已经做得很大,但ESD 防护能力并未如预期般地上升的主要原因,增打面积未能预期带来ESD增强,怎么办?其实很简单,就是要降低Vt1(Trigger电压),我们通过栅极增加电压的方式,让衬底先开启代替击穿而提前导通产生衬底电流,这时候就能够让其他finger也一起开启进入导通状态,让每个finger都来承受ESD电流,真正发挥大面积的ESD作用。

但是这种GCNMOS的ESD设计有个缺点是沟道开启了产生了电流容易造成栅氧击穿,所以他不见的是一种很好的ESD设计方案,而且有源区越小则栅压的影响越大,而有源区越大则snap-back越难开启,所以很难把握。

4、还有一种复杂的ESD保护电路: 可控硅晶闸管(SCR: Silicon Controlled Rectifier),它就是我们之前讲过的CMOS寄生的PNPN结构触发产生Snap-Back并且Latch-up,通过ON/OFF实现对电路的保护,大家可以回顾一下,只要把上一篇里面那些抑制LATCH-up的factor想法让其发生就可以了,不过只能适用于Layout,不能适用于Process,否则Latch-up又要fail了。

最后,ESD的设计学问太深了,我这里只是抛砖引玉给FAB的人科普一下了,基本上ESD的方案有如下几种:电阻分压、二极管、MOS、寄生BJT、SCR(PNPN structure)等几种方法。而且ESD不仅和Design相关,更和FAB的process相关,而且学问太深了,我也不是很懂。

一文讲透静电放电(ESD)保护(转发)的更多相关文章

  1. 从零入门 Serverless | 一文讲透 Serverless Kubernetes 容器服务

    作者 | 张维(贤维) 阿里云函数计算开发工程师 导读:Serverless Kubernetes 是以容器和 kubernetes 为基础的 Serverless 服务,它提供了一种简单易用.极致弹 ...

  2. 一文讲透Dubbo负载均衡之最小活跃数算法

    本文是对于Dubbo负载均衡策略之一的最小活跃数算法的详细分析.文中所示源码,没有特别标注的地方均为2.6.0版本. 为什么没有用截止目前的最新的版本号2.7.4.1呢?因为2.6.0这个版本里面有两 ...

  3. 一文讲透Cluster API的前世、今生与未来

    作者:Luke Addison 原文链接:https://blog.jetstack.io/blog/cluster-api-past-present-and-future/ Cluster API是 ...

  4. 一文讲透Java序列化

    本文目录 一.序列化是什么 二.为什么需要序列化 三.序列化怎么用 四.序列化深度探秘 4.1 为什么必须实现Serializable接口 4.2 被序列化对象的字段是引用时该怎么办 4.3 同一个对 ...

  5. 一文讲透为Power Automate for Desktop (PAD) 实现自定义模块 - 附完整代码

    概述 Power Automate for Desktop (以下简称PAD)是微软推出的一款针对Windows桌面端的免费RPA(机器人流程自动化)工具,它目前默认会随着Windows 11安装,但 ...

  6. 一文讲透Modbus协议

    前言 Modbus是一种串行通讯协议,是Modicon公司(现在的施耐德电气 Schneider Electric) 于1979年为使用可编程逻辑控制器(PLC)通信而发表.Modbus已经成为工业领 ...

  7. 一文讲透APaaS平台是什么

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 互联网行业就喜欢搞一些单词的缩写,在云计算行业,前者有SaaS.PaaS.IaaS,最近两三年 ...

  8. 终于有人把Elasticsearch原理讲透了!

    终于有人把Elasticsearch原理讲透了! http://developer.51cto.com/art/201904/594615.htm 小史是一个非科班的程序员,虽然学的是电子专业,但是通 ...

  9. (转)终于有人把Elasticsearch原理讲透了!

    终于有人把Elasticsearch原理讲透了! 小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了. 来源:互联网侦察 | 2019-04-08 ...

随机推荐

  1. 爬虫请求库之selenium模块

    一 安装 #安装:selenium+chromedriver pip3 install selenium 下载chromdriver.exe放到python安装路径的scripts目录中即可,注意最新 ...

  2. delete web server(nginx+apache)

    #!/bin/bash conf_dir1="/usr/local/nginx/conf/vhost.d" conf_dir2="/usr/local/apache2/c ...

  3. Conversation function

    通过conversation function可以把类转成任意类型的值 #include <iostream> using namespace std; class Age { priva ...

  4. SQL反模式学习笔记16 使用随机数排序

    目标:随机排序,使用高效的SQL语句查询获取随机数据样本. 反模式:使用RAND()随机函数 SELECT * FROM Employees AS e ORDER BY RAND() Limit 1 ...

  5. P1169 [ZJOI2007]棋盘制作 DP悬线法

    题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8 \times 88×8大小的黑白相间的方阵,对应八八六十四卦,黑白 ...

  6. Scala集合常用方法解析

    Java 集合 : 数据的容器,可以在内部容纳数据  List : 有序,可重复的  Set : 无序,不可重复  Map : 无序,存储K-V键值对,key不可重复 scala 集合 : 可变集合( ...

  7. MariaDB报错Plugin 'InnoDB' init function returned error.解决方案

    重新安装MariaDB后,服务一直启动不起来,查看日志有以下错误: InnoDB: No valid checkpoint found. InnoDB: If you are attempting d ...

  8. Jenkins环境搭建(4)-配置定时构建

    每次手动触发job构建,是很麻烦的一件事情,job中可以配置定时构建,今天就来分享下定时构建:构建分为两种:定时构建和轮询SCM. 一.定时构建 Jenkins采用了著名的UNIX任务调度工具CRON ...

  9. PC_官网设计

    1. 头部 header 固定 的两种方式 固定定位 内容区 包裹,使用 overflow: hidden; 2. 动画第二次起效 缺少动画初始参数 3. 隐藏元素 display: none; vi ...

  10. window iis重启

    WINDOWS server 任务计划实现定时自动重启IIS编写批处理文件IIS.bat@echo offnet stop iisadmin /yesnet start iisadminnet sta ...