热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数字后端——可制造性设计

随着集成电路制造工艺技术的迅速发展,集成电路集成度迅速攀升,制造流程及工艺步骤日趋复杂,工艺尺寸也在不断缩小。集成电路可制造性设计

        随着集成电路制造工艺技术的迅速发展,集成电路集成度迅速攀升,制造流程及工艺步骤日趋复杂,工艺尺寸也在不断缩小。集成电路可制造性设计(Design For Manufacturability,DFM) 以直接提升集成电路芯片的良品率及降低芯片的生产成本为主要目的,越来越引起业界的关注。

        随着集成电路工艺尺寸的进步,DFM 对芯片良率的影响日益凸显,随着工艺尺寸的演进,到了超深亚微米90nm 及以下,工艺和设计因素对芯片良品率的影响急剧增加。因此在超深亚微米考虑可制造性是十分有必要。


一、深亚微米时代的可制造性设计问题

        在传统的数字后端设计中,版图的物理设计一般通过了DRC、LVS 的物理验证,即可保证芯片质量及良品率。然而随着工艺尺寸进入深亚微米,一些制造技术如光刻胶曝光、显影、刻蚀和化学机械抛光都会对金属互连结构造成不利影响,并随着布局的局部特征而变化,这将使得传统的数字后端设计方法面临严峻的挑战。

        可制造性设计是为了提升芯片生产良率的而定制的设计规则。它将设计与生产之间的联系变得更加紧密。换句话说,完整的可制造性设计方案能够让IC 设计者更早的使用可制造性设计流程与规范,来提升芯片的设计、生产效率。因此,从版图设计者的角度来说,需要有一套适应深亚微米的可制造性设计流程来指导版图的设计与验证工作。在过去的芯片设计中,IC 设计者可以直接将满足物理验证的电路设计交给代工厂,进行生产制造。但是在进入先进制程(180nm
以下)工艺后便遇到了困难,主要体现在以下几个方面。


1、CMOS闩锁效应

        MOSFET 为四端器件,包括源(S)、栅(G)、漏(D)、衬底(Sub),在现代CMOS 双阱工艺中,P 阱连接VSS,N 阱连接VDD,这种双阱CMOS 结构将产生寄生双极晶体管:P 阱存在NPN 晶体管,N 阱存在PNP 晶体管,构成SCR(Silicon Controlled Rectifier)寄生结构。

        当P 管源极输入一个正向触发信号,在电源VDD 和地线VSS 之间由于寄生的PNP 和NPN 双极性晶体管。当无外界干扰未引起触发时,两个晶体管均处于截止状态,集电极电流增益非常小,因此闩锁效应不会产生。但当其中一个晶体管的集电极电流由于受外部干扰而突然增加到一定值时,会反馈至另一个晶体管,从而使两个晶体管因触发而导通(通常情况下是PNP 比较容易触发起来),VDD 至VSS 之间形成低抗通路。之后就算外界干扰消失,由于两三极管之间形成正反馈,还是会有电源VDD和地VSS 之间的漏电(锁定状态),闩锁效应由此而产生。随着集成电路制造工艺的发展, 晶体管的集成度越来越高,产生闩锁效应的可能性会越来越大。


2、金属互连问题

        随着集成电路制造工艺的不断复杂化,互连金属层的不断增加,以及工艺节点的不断降低,互连制造问题已成为制约纳米CMOS 工艺芯片生产制造成品率(Yield)的最大因素。一方面,工艺节点降低带来的工艺偏差,会产生越来越多的刻蚀错位,大大增加通孔失效的概率。另一方面,版图的密度效应问题会使金属在化学机械抛光过程中出现版图表面的高低起伏。倘若金属互连的通孔在制造过程出现这种现象,就很有可能造成层间金属互连失效,特别是进入深亚微
米时代后,铜互连技术的大量应用使互连线通孔失效的现象发生的越来越频繁。


3、天线效应

        在芯片生产过程中,暴露的金属线或多晶硅(polysilicon)等导体,就像是一根根天线,会收集电荷导致电位升高。天线越长,收集的电荷也就越多,电压就越高。若这片导体碰巧只接了MOS 栅,那么高电压就可能把薄栅氧化层击穿,使电路失效,这种现象就是“天线效应(PAE)”。

         随着半导体制造工艺的不断进步,等离子体Plasma 干法刻蚀技术因其各向异性、高的选择比等优点被广泛用来刻蚀金属与半导体材料。该方法通过使用放电产生的等离子体与刻蚀材料接触发生化学反应实现刻蚀过程。干法刻蚀方法的缺点是增加了半导体内部游离的等离子体电荷数目,这无疑会增加天线效应发生的概率


4、随机颗粒缺陷

        半导体制造工艺过程中许多工艺节点都会引入沾污而产生随机颗粒缺陷(Random Particle Defects)。如果在一条或两条较窄的互连线之间存在着随机颗粒缺陷,则可能造成互连线短路或断路,如图:

        传统上,芯片制造厂商通过制定最小线宽、最小间距等设计规则避免随机性误差对良品率的影响。版图设计者只要遵守最小设计规则就可以减少由颗粒引起的电路短路或者开路现象。但随着集成电路进入超深亚微米时代,电路的特征尺寸在不断减小,而引起随机性误差的颗粒几何尺寸并没有随之变小,颗粒尺寸逐渐可以与特征尺寸相比拟,使得纳米级电路的成品率对随机误差更加敏感。

        随机颗粒缺陷的位置可以通过关键区域(Critical Area)来进行描述,其良率Y可以由泊松等式来描述。

Y=exp(-CA*DD)

        所谓版图图形密度,是指在化学机械抛光过程中,版图中图形小间距、高密度区域的抛光速度比大图形间距、小密度的区域快。由于小而孤立、凸出的图形在平坦化过程中要承受较
大压力,所以抛光速度较快;低处图形承受的压力相对较小,所以抛光速度较慢。

        由于图形密度的差异,最终会造成版图图形的凹陷和侵蚀,如上图所示。如果在通孔平坦化时出现这种现象,将很可能出现金属互连线断路的现象。


二、可制造性设计流程

        加入可制造性设计的后端实现流程如下图:

        整个流程其实是针对CMOS 深亚微米出现的闩锁效应,天线效应效应、金属互连问题、版图随机缺陷及版图图形密度等可制造性问题,提了解决方案,并加入到传统流程中。


提及的物理实现单元可见数字后端——物理单元介绍



1、Tap 单元插入(Tap Cell Insertion)

        在CMOS 工艺中通过插入Tap 单元来解决并预防闩锁效应,Tap 单元版图如图(a)所示。作为一类特殊的物理单元,阱连接单元(Well-Tap-Cell)是近年来在130nm 及以下更先进的物理设计中新增加的,它不存在任何逻辑功能与时序约束,主要用来限制电源(地)与衬底之间的电阻,减小闩锁效应发生的几率:通过Tap 单元将N well 连接至VDD,P 衬底连接至VSS,以电阻并连的方式降低N 阱寄生电阻RS、P 阱寄生电阻RW,从而降低寄生三极管的电流放大倍数,从而有效提高寄生SCR 网络抗闩锁的能力,如图(b)所示。


2、天线二极管插入(Antenna Cell Insertion)

        在实践中,消除天线效应方法一般有三种,包括跳线法,添加天线二极管,插入缓冲器三种。

        跳线法可以分为向上跳线法与向下跳线法两种,即通过不同金属间向上或向下的跳线来断开存在天线效应的金属层,经通孔连接到其他金属层,然后再重新连接到当前层。跳线法虽然操作简单,但会引入额外的通孔与金属线,进而加剧线间串扰,产生额外的设计规则问题,因此在使用时要严格控制通孔数量与金属布线层。

        所谓添加天线二极管,是指在存在天线效应的金属层上插入天线二极管单元,通过二极管的反向漏电流来释放电荷,实现天线效应的消除,如下图:

        插入缓冲器,是通过在金属导体长线上插入多级缓冲器的方法来消除天线效应。 


3、叠层通孔最小区域填充(Double Via Insertion)

        金属互连问题最有效的解决方法是叠层通孔最小区域填充,即在通孔旁路通过并连冗余通孔的方式来减小通孔失效的概率,如图所示。

         这种方法不仅解决了通孔空洞(Voids in Vias)、金属互连失效等问题,保证了金属线之间的连通性,另外,因为通孔的电阻要大于金属线,所以增加并连的通孔数目后还可以减小通孔电阻,减小线上延时,进而改善电路关键路径的时序及功耗损失。因此在设计布线之后进行叠层通孔最小区域填充是非常必要的。


4、互连线全局扩展与加宽(Wire Spreading and Widing)

        在芯片制造过程中,灰尘、微粒沾污都会引入随机颗粒缺陷,增大版图关键区域的面积,造成互连线短路或断路的现象发生。(1)通过扩展互连线间距(Wire Spreading)的方法可以减小随机缺陷对金属线的影响,进而来降低版图热点分布的个数,减小关键区域面积。互连线间距一般会被扩大1/2 pitch 的距离,以降低关键区域发生短路的可能性。(2)减小断路关键区域出现断路的概率可以通过增大金属线宽度(Widen),从而使金属线能够承受随机缺陷带来的影响,如图所示。

        在版图关键区域分析阶段,若线扩展与加宽操作未能使版图热点分布与数量有所减小,则需要重新进行布线,并将绕线模式设置为Density-Driven,这样可以实现更均匀的走线分配与更小的走线间距。


5、Filler 单元的插入(Filler Cell Insertion)

        即在版图中密度低的区域插入一些填充单元(包括标准单元填充物与金属填充物)来使版图密度保持均匀,使在化学机械抛光过程获得较好的平坦效果。为避免图形平坦过程中出现侵蚀、凹陷现象,需要保持芯片整体密度的均匀性、一致性。任何影响导线横截面的工艺都必须小心控制:第一点:宽金属的侵蚀会减少其电流承载能力,使金属线IR-Drop 更加严重,所以控制这一点对电源网络分布至关重要。第二点:金属线的侵蚀会使信号线的电阻变大,进而增加信号线上的延时。通常的做法是在版图布线完成后在标准单元间隙插入填充单元(Filler Cell),填充单元是在标准单元库中定义的与电路逻辑无关的填充物。


推荐阅读
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 颜色迁移(reinhard VS welsh)
    不要谈什么天分,运气,你需要的是一个截稿日,以及一个不交稿就能打爆你狗头的人,然后你就会被自己的才华吓到。------ ... [详细]
author-avatar
无终的流浪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有