基于版图基础知识的整理,做一个本次积分器版图绘制的简单步骤记录。
一、生成
绘制好原理图后,左上角launch菜单建立layoutXL或GXL。
之后进入空的版图界面,按E设置网格参数,最重要的是snap spacing,要根据DRC里的resolution和precise计算得到(前者比后者),不然后续绘制和跑DRC会bug。右下角勾上enable dimming,这样修改某个器件的时候它会高亮而别的暗。
然后生成版图。每个器件的版图即PCELL是pdk已经给的,不需要自己画。
connectivity里选择生成,一般PR边界不用选,上面两个勾上在,然后在IO引脚里设置引脚的层次,这里初始设置为M1即可,记得apply。然后下面pin label点开options,照图选择即可。
此时生成一堆散装零件。
如果想操作Pcell的内部金属或层次,可以通过打散操作完成:EDIT->HIERARCHY->FLATTEN->FLATTENPCELLS
如果想查看连线关系,按照下面操作。
如果修改了版图中或原理图中器件尺寸,可以通过上图中下面的update来更新。
二、布局
布局方式在版图基础知识中有介绍,简单来讲就是对称放。要注意根据DRC设计好间距。此时按shift+f可以展示版图细节。左边layer栏,点used显示用到的layer,可以分别观察在版图里的层次和作用。根据DRC,nwell间距要大于0.36,p+(在smic工艺里叫SP)即p注入区间距大于0.18。在上方菜单栏空白处右键调出align,分别设定间距值,对齐即可。一般在布局前要先规划好dummy的添加和器件尺寸的统一。
(这儿是个反相器)
调整了下,改用f。
然后打通孔和guard ring。
打通孔的时候要注意S和D已经覆盖了M1,要接M1通孔。guard ring通过shift+g调出,nmos用PGR,pmos用NGR。
连接栅极的时候尽量不要直接用poly,因为阻抗较大。
三、布线
在window里选择assistants,调出annotation browser,查看布线情况,按原理图连好线后会一个个消除。连线前要事先规定走线规则,例如横偶竖奇,防止同层金属线短路。对于不同层次的连接需要打通孔,为了导电性一般通孔数量要多点,起码两个。最后将pin脚连接即可。
保护环可以直接当衬底使用,连接vdd和gnd。calibre连线的时候有吸附的感觉,所以注意下对齐连线很easy。如果没有就shift+E调出界面勾上上方的gravity。virtuoso有自动布局布线功能,不过效果嘛,差强人意。画的时候发现个问题,在话NGR的时候需要沿着最外围nwell填充nwell矩形做覆盖,不然识别不出来是衬底。
四、DRC
菜单栏Calibre,run nmDRC,设置runset文件(找到pdk里的DRC文件,并单独设置一个文件夹存结果),保存这个文件,以后调用它即可。然后run。
一堆密度相关的bug,暂时不用管。对于大模块会自己填充。
栅极要被注入区包围。
五、LVS
步骤和DRC类似,run看下结果
gg,说M1的w不对应,版图里是0.24u,原理图为0.12u。但看了下原理图是一样的,只是用了两个finger。回头请教一下这个问题
把finger改为1再看下。过了。
六、Guardring
guardring分为NGR和PGR,calibre自带有设计好的guardring,也可以自己设计。
先解释下为何要打guardring,主要是为了防止闩锁效应。闩锁效应是工艺中很典型的问题,由以下原因引起:
单阱工艺是将pmos做在nwell上,因此从右往左看可以发现形成了pnpn的一个结构,即:
会形成两个bjt,它们互相构成正反馈,使得衬底的噪声被放大,最终可能击穿衬底。
添加guardring后如上所示剖面图,实际PGR和NGR是个环。这样存在由保护环构成的p→p+和n→n+的路径,这类似欧姆接触,PGR,NGR分别接vss和vdd后闩锁结构如下:
即nwell被接到vdd而psub被接到vss,这其实不就是衬底的作用吗?这样子bjt就很难打开了。
尽可能让ngr离nwell更近,这样两者的欧姆接触效果更好。