李侠
摘 要:文章介绍了在数模混合版图设计中,如何把版图不同模块的涨缩需求,用一种完善的自动化程序技术方案来实现,并且可以批处理所有需要涨缩的版图数据。
关键词:数字;模拟;集成电路;版图设计;人工处理;程序化处理
随着集成电路技术的进步,晶体管尺寸越来越小。对于很多经过晶圆片验证的产品,需要通过版图等比例缩小,直接用于更小的工艺平台,不用重新设计版图,就可以流片,从而获得高集成度的效果,极大地提高了效率,节省了成本。而一个数模混合产品中包含数字部分和模拟部分,对于数字 IP,尤其是标准单元, 用于更小工艺平台的时候,可以直接采用版图等比例缩小的方式;而对于一些模拟IP来说,应用于更小工艺平台的时候,为了保持性能的最优化,需要保持原验证的同等条件;而对于工艺的临界尺寸(Critical Dimension, CD)来说,希望整个产品的接触孔的宽度是一致的。对于这样一个产品多种涨缩,部分还需要层次之间布尔操作的需求,本文提供一种完善的自动化流程方案来解决这种版图特殊涨缩的方法,可以程序化地批处理所有需要涨缩的版图数据。
1 客户项目涨缩需求概述
华润上华0.18 μm工艺线有3个差异不大的平台—0.18 μm, 0.162 μm ,0.153 μm。客户的产品很多已经在0.18 μm工艺平台验证过,为了增加单片晶圆片上的管芯的数量,提高利润空间,客户会直接把0.18 μm工艺平台验证过的产品等比例缩小到0.162 μm或者0.153 μm的两个工艺平台进行重新流片。而数字IP可以直接等比例缩小,但是模拟IP希望能直接用0.18 μm工艺平台设计方案,这两种IP类型共存于一个数模混合产品中,需要分别对这两种IP进行不同的操作,而且由于工艺要求需要,某些版图层次需要进行其他特殊的处理。
图1是数模混合的简化示意图,包含了数字IP和模拟IP。客户需求有两个要求:(1)模拟IP尺寸保持不变,数字IP尺寸缩小到原始的0.9倍;(2)整个产品的接触孔的宽度保持原始的0.22 μm。
2 人工涨缩技术操作方式
传统的操作技术中,大部分需要靠人工干涉和人工画图来实现,效率很低,下面简述一下传统人工操作技术方案:
(1)在图1的版图EDA工具窗口菜单中,调用图2版图属性对话框,通过修改其参数选项Magnification等于0.9,把数字IP缩小到原始的0.9倍。
(2)这种修改的方式会导致版图层次之间出现0.001 μm的gap(空隙),如图3所示,金属层出现的gap图形;这种0.001 μm的gap会出现在很多不同分层结构的连接层次之间。
(3)人工修补版图,首先要把所有出现gap的图形一一填充好,然后把模拟IP和数字IP之间的连接金属线的位置分别调整好。
(4)因为原始接触孔宽度等于0.22 μm,如图4所示,而缩小到0.9倍以后数字 IP部分的接触孔宽度等于0.198 μm;为了保持全芯片的接触孔宽度一致,必须人工的把数字 IP内部的接触孔宽度修改为0.22 μm。
每一个数模产品都是非常巨大的,包含的contact的数量是数以万计的,模拟IP和数字IP连线也都是非常复杂的,而且要从底层单元开始修改,单靠这种传统的人工修改,工作量是超负荷的,从而使客户产品直接shrink的效率就大大降低,影响到客户产品的上市时间。
3 程序化处理涨缩技术
3.1 程序化涨缩技术原理
针对传统方案的缺点,结合我们客户需求,同时更多的是依赖个人技术经验,发明了一种自动化批处理,人工干预少的技术方案,从而大大提高了客户产品涨缩的效率。核心技术方案是采用EDA工具calibre drc语言,编写涨缩程序,再运行程序,从而达到客户需求。图5是客户数模产品的涨缩批处理流程。
基本原理:整个程序分为涨大(enlarge)和整体缩小(shrink )两个过程。IP涨大以后,会把相关的接触孔的宽度恢复到0.22 μm,然后把涨大后的IP重新整合在原始的版图中,最后把整合好的数据进行整体shrink,从而达到版图等比例缩小的目的。
3.2 批处理程序的结构
根据图5的客户需求原理,我们用calibre语言需要编写了两个程序,一个是enlarge程序,一个是shrink程序,两者程序架构大体相同。程序架构包含以下几个方面。
(1)Specification Statement(规范说明):定义版图数据基本信息和需要的功能选项。
(2)Input Layers Statement(输入层次说明):把版图数据的所有输入层次信息定义出来。
(3)Layer Operations(版图层次运算):根据项目要求,进行所有层次之间的布尔运算。
(4)Output New Layer(输出新的版图层次):把最终完成各种处理的版图数据输出。
通过上面3个语句,就可以把版图Metal1层次的gap修补,以此类推,所有需要修改gap的版图层次都可以按照此语法命令结构来完成。
整体shrink的程序和enlarge的程序结构相同,在shrink程序中可以把客户所有层次之间的布尔运算需求,通过命令语句执行,从而完成客户数据光罩层次的输出。其中的shrink选项,只需要在程序的规范说明里面来定义即可,命令行如下:DRC MAGNIFY RESULTS 0.9,即可完成shrink 90%的功能任务,如果定义DRC MAGNIFY RESULTS 0.85,即可完成shrink 85%的功能需求。
3.4 漲缩程序的执行
编写完程序以后,把版图数据等比例缩小的任务就可以按照步骤执行,首先运行enlarge(涨大)程序,然后运行shrink(缩小)程序。步骤如下:
(1)在enlarge程序里面定义要涨大的版图数据的gds;运行enlarge程序:caliber–drc –hier enlarge程序。
(2)把前两步运行出来的版图数据,放入原始的版图gds中,修补接口连线;在shrink程序里面把第(3)输出的版图数据定义进入;运行shrink程序:calibre –drc –hier shrink程序。
(3)通过这几个步骤,我们就可以把版图等比例缩小,同时还维持了模拟IP的原始状态。
(4)程序运行出来的版图,我们就可以直接拿到工艺厂流片。
4 结语
本文详细讲述了如何利用常用的EDA calibre工具语言,批处理集成电路版图等比例缩小的方法。现在集成电路行业发展迅速,工艺水平不断提高,而器件特征尺寸也随着摩尔定律不断缩小,如果一些数模混合产品经过缩小,可以在新的工艺平台流片,有些经过验证的IP希望在原始的工艺尺寸下复用,这些客户需求,都可以通过本文所阐述的技术原理,高效率地实现,极大地节省了设计成本。涨缩程序可以推广于任何后端版图设计中,简单编写一个小的程序,就可以代替人工繁重的全定制版图设计,从而大大提高设计效率。