首页/文章/ 详情

干货:手把手教你用Cadence软件设计一个标准的CMOS反相器

1年前浏览4835
        

Cadence可以实现电路图输入(Schematic Input)、电路仿真(Analog Simulation)、版图设计(Layout Design)、版图验证(Layout Verification)、寄生参数提取(Layout Parasitic Extraction)以及后仿真(Post Simulation)。

(图源:西安交通大学国家IC人才培养基地培养资料)

现在,开始用Cadence画一个标准的CMOS反相器。一个反相器包括PMOS,NMOS,VDD,GND。

01

软件常用操作及命令

1)Cadence/virtuoso软件常用操作

1.启动软件

virtuoso或者virtuoso&:&表示后台运行(shell自带语法)

2.常用快捷键

i:添加器件或者电路的symbol

e:进入symbol的下一层

ctrl+e:和e相反

q:打开属性编辑窗口

F3:打开命令菜单,一般和命令配合使用,相当于对命令的操作进行设置

w:连线

p:端口引脚

u:撤销

X:检查和保存

l:电路节点命名


作为初学者,在设计电路过程中应该要仔细阅读提示区中的信息。

注意:

①Composer中的多数命令会一直保持,直到你调用其它命令替代它或者按Esc取消,尤其是在执行delete命令时,忽视这一点很可能会误删除,一定要多加小心!Composer的Undo操作默认只能进行一次(可以在CIW窗口的Option->User Preferences中修改,最多可以是10)。所以每完成一个命令,记着按ESC取消当前命令。

②点击工具栏的zoomin和zoomout按钮可以放大缩小电路图。键入快捷键f可以使电路图自动缩放到合适大小。

③编辑电路图过程中注意要及时保存,保存方法是菜单栏->Design->Save,也可以键入快捷键大写的S(Shift+s)来保存。


2)shell常用命令

Cadence开发了自己的编程语言skill以及相应的编译器,整个Cadence可以理解为一个搭建在skill语言平台上的可执行文件集。初学者对此可以不用理会,当用户深入后,可以用skill语言对Cadence进行扩展

pwd :显示当前目录

cd:改变当前工作目录

mkdir:建立目录

mkdir/path/to/dir_name:特定路径下的目录,必须保证path/to/已经存在

ls:文件显示

whoami:查看用户自己当前使用的账号名

who:查看当前有哪些用户登录到系统中

w:查看哪些用户登录在线,同时显示用户当前的工作

clear:清屏命令

touch file_name:修改file_name文件时间戳;如果文件不存在生成空文件

cat file_name:将文件file_name显示到屏幕上

cat file_name1file_name2:显示两个文件

cat file_name1file_name2>file_name3:将前两个文件依次组合,并添加到file_name3的末尾



(图源:E课网培训视频截图)
02

创建CMOS反相器原理图步骤

1)键入快捷键i

点击Browse,弹出库浏览器。选中Show Categories可以分类显示器件,方便我们快速找到所要的器件。依次点击analogLib->Actives->pmos4->symbol,再单击close。刚才的添加器件窗口发生变化。点击Hide隐藏当前窗口,此时鼠标对应有一个PMOS的symbol,此时按r键,可以旋转PMOS。移动PMOS到合适的位置点击鼠标左键将其放下。如果要放置更多的PMOS,继续点击鼠标左键,否则按ESC取消当前的放置器件命令。

继续放置NMOS晶体管、电源与地。对应的器件名称为nmos4,vdd,gnd。

注意:vdd与gnd仅仅是全局电源与地标识,并不是独立电源器件,vdd并不能提供电源。仿真时必须有gnd,否则仿真不收敛。


2)键入快捷键w连线

注意区别wire(narrow)与wire(wide),wire(narrow)表示普通连接导线而wire(wide)表示总线连接。总线连接的快捷键是大写的W

还可以对画好的线进行命名,键入快捷键l,在弹出的对话框中输入线名,比如a,点击Hide,然后将字母a移动到要命名的线附近点击左键放下,如果名字离线较远,则要求再单击所要命名的线。

3)设置元件参数

先选中器件,再键入快捷键q

参数可以是以下三种形式的各种数学组合表达式,①变量,②常量,③skill语言函数。变量作参数会在仿真时用到。

单击PMOS选中它,这样PMOS会被一个白色方框包围。然后键入快捷键q,会弹出属性编辑对话框。这里我们需要填上model name,以及PMOS的栅长和栅宽。栅长我们设为常量0.18u(注意u是小写!),而栅宽我们设为函数pPar(“wp”),注意大小写不能错。当然也可以设一个固定的尺寸,但这样就不能利用参数修改晶体管的栅宽了。

pPar函数就是把wp作为传递参数,在其它电路图中调用这个电路时对wp赋值,就相当于给这个PMOS的栅宽赋值,这样做的目的是为了方便层次化设计。在后面仿真时大家会更加明白这一点。Composer会根据数值大小自动变换单位。

模型名我们填p18,这是因为我们这里采用的Spice模型是由SMIC提供的,对应PMOS的模型有p18和p33两种,18代表电源电压为1.8V。在后边仿真的时候我们还要再设SpiceModel文件的具体路径。同样的方法继续设置NMOS参数,只是模型名为n18,栅长为固定值0.18u,栅宽设为pPar(“wn”)。

注意:

①设置参数时不要自己输入单位,系统会自动加上。比如0.18uM是错误的写法。如果非要自己写单位,也要和数值之间留一个空格,否则系统会把M识别为变量。

②器件的参数也可以在放置时就设置好。


4)键入快捷键p放置端口

单击菜单栏->Check and Save或者键入快捷键大写的X,可以对电路进行检查并存储。

03
创建Symbol

Composer窗口菜栏->Create->Create CellView->From Cellview,弹出Cellview from Cellview窗口

默认的Symbol是一个比较大的矩形。对于反相器,我们习惯用一个三角形再加小圆圈来表示。

选中绿色矩形框,delete之,然后Add->-Shape>Polygon,在刚才矩形框的位置画一个三角形。鼠标在三个端点点3次即可。注意在三角形右边留出画圆圈的位置。

再Add->Shape->Circle,先于圆心位置单击左键,再移动鼠标,得到合适的圆的半径后左键确认。

再把图中的输入输出端口以及partname和instanceName移动到合适位置。其中,@instance Name代表以后调用此反相器时的编号,@partName代表对应的schematic的名字,一般不用改。最后再把红色框大小修改合适(框住三角形和端口)。

画好的Symbol需要检查保存。Design->check and save,检查结果显示在CIW窗口中。

04
仿真

现在我们用画好的反相器的symbol组成一个缓冲器(buffer)进行仿真,通过对buffer做瞬态分析、DC分析、AC分析,分别得到该buffer的延迟时间、输入输出特性以及小信号频率响应。

对电路进行仿真需要加激励信号,而加激励信号有两种方法,一种是在原理图中直接加入信号源元件,另一种是在仿真环境窗口(ADE)中对输入端口加激励。

缓冲器是由两个反相器组成,利用前边的方法,新建一个cellview,画出缓冲器原理图。

其中反相器我们直接调用了画好的Symbol(注意是在自己的库中)。选中inverter,键入e,再点OK,可以显示和Symbol对应具体的schematic,但是这时只能看,而不能修改。Crtl+e退出该Symbol

设置inverter参数。选中inverter,键入q,就会弹出反相器的属性。这里我们需要分别设wn和wp的值。

①独立电源vdc也是在analoglib库中,将其属性中的DC voltage设为1.8。

②另一个激励信号是方波源,对应器件名称为vpulse,也位于analoglib库中。方波上升下降时间为0.1n,周期为10n,脉冲宽度为4.9n,voltage1设为0,voltage2设为1.8。因为我们还要做AC分析,交流电压幅值为1(这样测得的输出直接就是小信号增益)。为了得到inverter的输入输出特性,我们把直流电压设为变量vin。

这里设置的方波电压、直流电压、交流电压是相互独立的,分别用于瞬态分析、dc分析、ac分析

Composer菜单栏->Tools->Analog Environment,打开仿真窗口(简称为ADE窗口)。于ADE窗口,Setup->Model Libraries,打开Model库设置窗口,后再于Model库设置窗口的Section栏填写工艺角,这里我们填tt(即NMOS和PMOS速度均为典型值),然后再点Add按钮,将当前的仿真库文件添加进列表,点击OK退出。

仿真环境菜单栏->Variables->Edit,或者直接点击右侧的工具栏中的Edit Variables按钮,弹出如图5.10所示窗口。击点按钮“Copy From”,就会列出我们前面在测试电路中添加的变量vin。选中该变量,我们设置一个初始值0.9

之所以是0.9,是因为当反相器的输入为0.9时两个MOS管都会导通,此时反相器实际起的是放大器的作用,而我们做AC分析就是要得到MOS管处于饱和区时它的频率响应。需要强调的是,AC分析是建立在一定的工作点上的,而电路的工作点正是由电路图中所设置的电源DC值以及这里的变量初始值决定的。

由于我们要做瞬态分析,dc分析,ac分析,所以我们一次弄好所有设置。

①Analyses->choose,或者点击右侧工具栏的choose analyses按钮。于Analysis栏选择不同的仿真。对于瞬态分析,我们选tran,然后于stop time栏输入仿真时间10n。

②再于该窗口中选取dc,窗口会有相应变化。于sweep variable栏选择Design Variable,然后输入变量名vin,并输入变量的扫描范围,从0到1.8。并选择扫描类型为线性,扫描为0.001。这样仿真时就会对vin从0到1.8V以0.001为间隔进行扫描,从而得到输入输出特性。

注意选中DC Analysis复选框,这样就可以将AC分析时所采用的的直流工作点保存下来,以便我们后面查看电路的直流工作点。

③再于该窗口中选取ac,窗口会有相应变化。默认是频率扫描。我们只需要输入频率扫描范围。这里输入10到1000M(注意是大写)。其它均为默认值。

接下来要选择我们需要观察的对象,即我们要看哪个节点的电压,或者要看哪一条支路的电流。

于ADE窗口,Output->To Be Plotted->Select On Schematic,这样会弹出我们画的电路图。然后分别单击输入和输出两条线IN和OUT,以及第一级反相器的输出v1。注意选择v1时要先选中反相器,再按e进入下一层子电路。并注意一定要单击导线,而不是元件的Pin角。

保存当前的仿真设置。Session->Save State,弹出保存对话框,填好名称,点击OK确定。这样下次再仿真时,可以直接调用该仿真设置,而不用每次都进行同样的设置。

我之后修改了器件为tsmc工艺库后的仿真结果

05
版图设计

现在开始根据我们前边的设计尺寸,来画缓冲器的版图。为了显示层次化设计,我们先分别画出两个不同尺寸的反相器版图,再将两个反相器组成缓冲器的版图。

通常的版图设计步骤大概如下:①NMOS:画出N有源区->栅->做接触孔->覆盖金属->N注入区;②PMOS:画出P有源区->栅->做接触孔->覆盖金属-> N注入区;③连接晶体管:放置PMOS和NMOS->连接输出->连接输入->金属连接->电源线;④PAD。

类似新建原理图,CIW窗口菜单栏->File->New->CellView,选择自己的库,然后输入版图名字inverter,注意于tool栏选择Virtuoso,ViewName栏会自动变为layout。点击OK后,会弹出Virtuso主界面,以及LSW窗口。

注意:

①类似Composer,Virtuso中的多数命令会一直保持,直到你调用其它命令替代它或者按Esc取消,尤其是在执行delete命令时,忽视这一点很可能会误删除!

②点击工具栏的zoomin和zoomout按钮可以放大缩小版图。键入快捷键f可以使版图自动缩放到合适大小。

③编辑版图过程中注意要及时保存,保存方法是菜单栏->Design->Save,也可以键入快捷键S(大写)来保存。

版图有非常多的物理规则约束,这是由Foundry的工艺决定的。在后面做设计规则验证(DRC)遇到错误时还要不断地回来查阅该设计手册。




06

关键掩模层

序号

层名字

含义

含义

本实验所需要的

1

AA

Active Area

有源区

2

AR

Reverse Active Area

无源区


3

KV

Alignment mark clear-out

对准标记


4

NW

N-Well

N阱

5

PW

P-Well

P阱


6

DG

Dual Gate(thick oxide)

双栅(厚氧)


7

GT

Poly gate

多晶硅

8

PLH

PMOS LDD implant for 3.3V

3.3V下PMOS轻掺杂注入


9

NLH

NMOS LDD implant for 3.3V

3.3V下NMOS轻掺杂注入


10

PLL

PMOS LDD implant for 1.8V

1.8V下PMOS轻掺杂注入


11

NLL

NMOS LDD implant for 1.8V

1.8V下NMOS轻掺杂注入


12

SP

P+implant

P注入

13

SN

N+ implant

N注入

14

ESD1

ESD implant for Boron(B)

静电放电注入


15

SAB

Salicide block area

硅化物阻挡区


16

CT

Contact

有效接触孔

17

M1

Metal-1

第一层金属

18

V1

VIA-1

通孔1

19

M2

Metal-2

第二层金属

20

V2

VIA-2

通孔2


21

M3

Metal-3

第三层金属


22

V3

VIA-3

通孔3


23

M4

Metal-4

第四层金属


24

V4

VIA-4

通孔4


25

M5

Metal-5

第五层金属


26

V5

VIA-5

通孔5


27

M6

Metal-6

第六层金属


28

PA

Passivation/Pad

焊盘


29

PI

Polyimide





   

END



作者 | 小刚
排版 | 黑小姐
图片 | 网络
参考资料 西安交通大学国家IC人才培养基地培养资料、E课网视频教程

 *著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


来源:集成电路小刚
寄生参数电源电路Cadence
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-27
最近编辑:1年前
集成电路小刚
硕士 立志成为集成电路领域专家
获赞 3粉丝 43文章 69课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈