【公开课】gm-id电路设计方法[基于Cadence IC 617,网易见...

在cadence获得gmid设计方法所需曲线
---------- 概述 ----------
- 传统手算方法在小尺寸不再精确:例如尺寸↓,Sah方程的精度↓,不再很好地遵守平方律(短沟道效应等问题)
- gm/Id方法:利用图表来进行手工计算
/感兴趣的参数:gm,Id,gm/Id,fT(管子特征频率),fT*(gm/Id),gm/gds,Id/W(电流密度),vov(vth-vgs)
---------- y vs. vgs plot ----------
/y指的是所有关心的量,如gm、fT、gm/Id等
/要获得gmid设计方法需要的曲线(比如gm/Id vs. fT),需要先获得所有这些量和vgs之间的关系(gm/Id vs. vgs和fT vs. vgs),再以vgs作为中间量,获得gm/Id vs. fT曲线
- 需绘制的特性曲线:
gm vs. vgs
Id vs. vgs
gm/Id vs. vgs
fT vs. vgs
fT*(gm/Id) vs. vgs
vov vs. vgs
Id/W vs. vgs
1. 单个尺寸下的特性曲线(NMOS)
****图例都是自己跑的结果(smic18mmrf,n18,width=5u,length=300n),和视频结果有差别
- Id vs. Vgs
/1.8V NMOS 设置变量L=length,W=width

/仿真设置:对vgs进行dc扫描
tip:在ADE中,Design variable窗口内右键,有部分快捷的操作

/Output选择管子漏端,run

- 从Results Browser获取部分参数(需添加一个.scs文件)

/cadence或者spectra只会存储DC operating point中很小一部分的数据(如下图),要写一个scs文件,让cadence能存储所有扫描的点的DC message

/在打开icbf的目录下,创建一个空的.scs文件(save_op.scs)
/编辑.scs文件,M0是原理图对应的管子

/将.scs文件添加到ADE的model library或Simulation FIle(都在Setup目录下),这里以Simulation FIle为例,点击Apply→OK

/再次运行仿真,ADE→Tools→Result Browser,在dc栏目中可以看到所有的参数都被保存,双击参数则会自动绘制曲线

/gm,Id,gm/Id等众多参数都可以直接绘制,经验证,这里绘制出的图像和在ADE的Output处绘图,结果是完全一致的

- fT vs. vgs(需要calculator, expression相关操作)
/特征频率fT是晶体管电流放大能力(β=id/ig)下降到1时的频率,这种性能的劣化主要由栅电容Cgg决定,fT=gm/(2*pi*Cgg),cgg=-(cgs+cgd+cgb)
tip:可参考https://www.doc88.com/p-8788931950034.html?r=1
/Result Browser中没有提供fT,但提供了gm和Cgg,通过Calculator在ADE的Output中完成绘图
tip:16个电容参数可参考http://ee.mweda.com/ask/411926.html
/在Result Browser中右键Cgg→Calculator

/面板中是Cgg vs. vgs对应的expression,阔选→右键→Copy

/回到Result Browser中右键gm→Calculator,粘贴Cgg的表达式,获得gm/(2*pi*Cgg)
tip:觉得这样复制麻烦,可以把表达式添加到calculator的Stack

/回到ADE,Output→Setup→Get Expression将calculator的表达式导入,设置Name为fT,点击Add→OK
tip:如果要改表达式,在ADE的Output框中双击变量,Get Expression→Change

/添加了Output变量fT,不用重新Run,直接plot

/结果如下

- fT*(gm/Id) vs. vgs
/同上,从Result Browser中可以获取fT和gm/Id的表达式,设置Output变量fT*(gm/Id)

/结果如下

- vgs-vth vs. vgs
/同上,Result Browser中有vgs和vth,vov=vgs-vth

- gm/gds vs. vgs
/同上,Result Browser中有gm和gds(即ro)

- Id/W vs. vgs(获得width vs. vgs expression的技巧)
/width是Design Variable,需额外设法plot width vs. vgs,获得expression用于和前面相同的绘图方法
tip:比如getData("M0:id?"?result"dc")就是Id vs. vgs的expression,这里要设法获得v("/W"?result"dc")
/电路设置:增加一个不用的vdc器件,将电压设为width,输出端接wire,wire的另一头连接到basic的noConn器件,表示不连接到任何端口
/快捷键L(Add Name),为这段wire设置名称W(只为了方便看)
/这样做的目的是让名为W的wire上拥有一个等于width的电压值,把width变为可以作为Output来绘图并获得expression的量,唯一的差别是单位从m(米)变成了V(伏特)

/ADE中Results→Direct Plot→DC

/原理图中选中导线W→ESC退出点选,得到W vs. vgs,右键曲线名称→Send To→Calculator,获得expression

/Result Browser中有Id,和前面相同的方法,获得Id/W vs. vgs

2.对L进行扫描,获得多个尺寸下的MOSFET特性曲线
对于gm/Id分析方法,几乎所有变量对W都是不敏感的,因此只对L扫描,固定W=5u
/在ADE的Outputs整理好所有要plot的曲线

/Tools→Parametric Analysis

/设置length从180n扫描到500n,线性间隔80n

/结果如下

/保存ADE的state,注意Parametric Analysis的state也可以保存

3.测试PMOS的特性曲线
/在前面的.scs文件中,保存的是M0管的参数,要保持待测管名称和.scs文件中的命令一致

/ADE中load state,有些参数是负的,在Id、gm/Id、vov、Id/W表达式加负号,把值都改成正的方便分析,

/Parametric Analysis获得曲线如下

---------- y vs. y plot(Cadence) ----------
/Lecture2中获得的曲线x轴为vgs,y轴为Id、gm、vov等,gmid方法需要这些y值之间的关系曲线,比如vov vs. gm/Id,即y vs. y plot
仅介绍在cadence中的实现方法
- 从ADE生成ocean script
/ocean全称Open Command Environment for Analysis,是一种SKILL语言,可以配置cadence中的仿真环境
tip:关于ocean script的介绍,参考https://zhuanlan.zhihu.com/p/27786161
/重新写一个ocean script比较费事,在ADE的Session→Save Ocean Script可生成当前的ocean script,是一个.ocn文件,我命名为n18_gmid.ocn

/打开.ocn文件,可以对应查看ADE中的仿真设置

/可以直接在icfb中运行.ocn文件,实现无GUI的仿真运行。将除icfb以外所有界面关闭(仅为说明无需GUI),在icfb中输入命令:
load("n18_gmid.ocn")
加载.ocn文件,在icfb日志中可以看到仿真过程,结束后与ADE中一样地完成plot

- 修改ocean script,实现y vs. y plot
/ocnYvsYplot是用于实现y vs. y plot的函数,vgs只是中间量

/结果如下(这4个曲线不一定有用,只是y vs. y plot的例子)
tip:去掉addSubwindow()函数,各曲线绘制在一张图内
tip:也可以直接在icbf命令框输入函数

- 对length进行扫描
/扫描功能是在ADE的Tools→Parametric Analysis中完成的,实际上Parametric Analysis也就是在ocean script中的一些函数,出于方便,直接从Parametric Analysis中生成ocean script

/把绘图的语句添加到Parametric Analysis生成的ocean script中:

/绘出4种很有用的曲线:gm/Id vs. vov;gm/gds vs. gm/Id;fT vs. gm/Id;Id/W vs. gm/Id;结果如下

/对pmos重复操作一次
