一、教学大纲
二、芯片设计及量产总体流程
- 芯片需求分析:即产品定义,功能要求,性能要求
- 工艺选择及评估:不同工艺特性相差较大,不同工艺的成本也是不同的。主要用于评估工艺的性价比,工艺提供的元器件能不能满足最初芯片需求分析要求的各种功能性能的要求
- 系统级设计:对芯片的各种功能,性能指标进行设计,也有分解到各种子模块的设计。
- 电路级设计:电路原理图设计,包括各个子模块的设计,来实现各种功能以及性能。特别强调设计的可靠性和鲁棒性,包括像工作电压1.6v、1.8v、2.2v或更高的电压工作范围;还有就是各种工艺的偏差设计,包括TT corner, FF corner, SS corner。还有就是温度设计,不同应用领域,不同工业级的标准,温度范围是不一样的。通常消费级在-40度到60度,工业级从-45度到85度,军用可能到125度,车轨级别可能会到150度甚至更高。
- 电路设计检查:所有电路功能和性能的仿真设计,因此需要做电路设计的检查,验证设计的仿真结果,是否满足最考试的指标要求。不满足则需要重新修改整个电路级的设计,这个修改可能只是某些电路参数的优化,也有可能是对整个电路结构的重新修改设计。
- 电路协调:设计完电路后是对各个子电路模块之间相互联调仿真,主要用于验证不同电路模块相互连接时候功能是否正常,相互之间是否有干扰存在,相互之间是否有影响。使最终整个电路拼接在一起能够正常工作。
- 版图设计:通常会有专门的版图设计工程师来做设计,在此过程中需要电路工程师和版图设计工程师之间沟通和交流,比如电路工程师需要指导版图工程师在电路设计里面的关键走线,关键器件的走线设置,或者一些匹配性要求,版图布局的一些特殊考虑。
- 版图设计检查:主要对设计规则进行检查,LVS检查,还有天线效应检查。
- EM电磁仿真:电路后仿真,主要采用Caliber的XRC来提取它的寄生电阻电容,或者互感,相互耦合电容等集成参数,后重新跳入到电路仿真中去验证电路性能是否满足实际设计需求。比如对一些频率较高的设计,像微波频段的电路设计,或者尺寸较大的电路设计,可能会需要用到电磁仿真。需要对整个版图提取电磁仿真模型,电磁仿真建模,然后代入电路进行仿真验证。
- 全芯片版图设计:所有子模块相互连接关系,包括封装焊盘,pad的布局与连线,还有静电防护ESD设计,这里需要考虑封装的因素,特别是芯片的焊盘布局里面必须考虑芯片最终封装形式,然后去定义各个pad的位置,然后进行全芯片的设计。
- 芯片流片检查:芯片版图的验证,包括DRC设计规则验证,天线效应检查和验证,包括LVES,及原理图与网表和版图的对比验证,
- 版图、封装EM电磁仿真:对版图进行寄生参数的提取,包括可能采用电磁仿真软件进行全面版图电磁仿真来提取模型,来进行全芯片的功能和性能方面的验证。
- 流片:验证通过后会生成最终流片需要的GDS文件,提交给芯片的代工厂,来进行芯片生产,可能还需要提供DRC设计验证的report,或者天线效应检查的report,最终代工厂会反馈一个takeout验证结构通过后再进行生产
- 切割封装:整个流程是MPW流程,及多项目晶圆流程,在此阶段代工厂那边可能会提供大概几十片的芯片验片,拿回来后需要进行一个切割和封装
- 测试:进行详细的芯片功能和性能及可靠性的测试验证,此时需要设计测试用的PCB板子,还有一些测试的软件,需要测试芯片各种高低温,或者其他工作环境下的功能和性能及可靠性测试,包括静电防护ESD测试,还有高温、温度循环等环境下的可靠性和老化测试。
- 然后就可以提交给代工厂进行工程批的生产,这就是芯片量产的过程了
三、Linux系统环境及基本操作
- 首先打开Linux操作系统,账号和密码都是chris
- 进入后首先需要了解的是屏幕分辨率,是系统默认的,可以不用去修改
1. 熟悉仿真软件及各种文件位置
- 然后,了解整个文件夹及仿真软件的一些安装位置,首先打开文件夹。这里是用户的home自己的目录
- 这里有每次启动SFB需要提前source的配置文件,里面包含有一些IC设计软件及相关配置
- 再往上一层是整个工作目录
- 首先查看EDA文件夹下面,这里有设计工具及工艺库
- IC5141就是Cadence仿真软件,这里已经是完全配置好了,不需要再去做任何的改动就可以直接使用。
- MMSIM72就是跟IC5141配合使用的仿真器,同样也是完全配置好的。
- “ixl_cal_2011.2_34.26”文件夹是Caliber的2011版本,这个版本主要是用来进行版图的DRC验证和LVES验证,同时提取版图上的一些寄生参数的工具
- “kit”文件夹是cmos的射频工艺库,是.13mm的工艺库,一层多金,六层互连线的金属层,顶层金属是30KI的厚金属,主要是为了提高电感的品质因数。
- 打开“kit”文件夹,-“kit”是cmos的射频工艺库,是.13mm的工艺库,一层多金,六层互连线的金属层,顶层金属是30KI的厚金属,主要是为了提高电感的品质因数,
- 继续点开,工艺库有具体工艺库提供的元器件,像mos管,有源器件无源器件的文件夹。
- 还有“model”模型,其中包括hspice模型和spectre模型,
- 还有一部分是“Calibre”,其中是Calibre的仿真用的规则文件,包括DRC文件,用于原理图和版图验证的LVES验证文件,用于提取寄生参数的计算参数的规则文件。
- “docs”文件夹是工艺库的说明文档,包括DRC的设计规则,混合信号的射频器件的参数模型,还有普通mos管的spice模型。这里的文件是我们在后期做实际设计当中需要提前去熟悉所有这些相关说明文档,特别是设计规则和spice模型是一定要去熟悉的,因为我们在设计中需要用到各种各样的元器件,所有元器件的参数和性能在设计之前需要做到一个心中有数,才能方便我们后期去选择合适的元器件,然后设定合适的元器件参数值。
- 然后,我们擦看“simulation”仿真文件夹,这是我们在kenneth仿真过程中产生的一些中间临时文件,包括最终仿真完成的结果文件,也会在这个文件夹中进行保存,
- 然后是“project”文件夹,这是我们设计工作的设计库,包括RFIC设计库,以及RFIC_SIM设计库(仿真用的),
- 这个文件夹下面还有工作区workarea,也就是我们每次source的RFIC文件后会自动进入到这个工作文件夹中,我们是在这个文件夹下面启动这个Candence软件。这里主要包括cds.lib,还有一些caliber的一些run set,以及运行的目录
2. Linux操作系统常用操作指令
- 首先右键打开terminal,即操作终端。
- ls:列出当前目录下面的文件和文件夹的命令
- ll -a: 列出所有当前目录下的隐藏文件夹及文件,并会列出全部的文件属性,包括所有者记忆用户组等等内容,
- vi:主要是文本编辑的工具。下面先尝试编辑最考试配置的文件,然后点击回车,会进行整个配置文件的显示.
- 我们在实际使用过程中主要是两个部分,一个是删除
- 如果我们要编辑这个文档,我们需要按住键盘上的插入键“ins”键,就可以对文档进行修改添加删除了。如果我们要对文档进行保存,首先按住键盘上的ESC退出编辑模式,然后按住shift+:(冒号),然后w和q,加一个感叹号,点击回车,就会把我们之前做的一些修改全部保存下来了,
- chmod:权限管理命令,因为可能有些文件是不希望所有人都能够去修改的,chmod去点击他的属性。比如我们尝试去修改配置文件,修改为755属性,即所有者和所有者的权限是7,也就是可读可写可执行(rwxr),然后群的用户组的权限是可读可置信(xr),然后其他用户是只有可读(x)权限。
- 复制粘贴:在Linux系统下复制粘贴可通过鼠标的中键,比如我们要进入桌面的文件夹,首先是敲cd,鼠标双击文件夹,然后再按鼠标的中键,就会自动复制到下面命令行中,然后敲回车就会进入到桌面目录下面。
- cd:访问选中文件所在目录,
- cd …:返回上一层目录,
- mkdir:建立文件夹,比如准备创建名为“test”的文件夹,回车以后就能看到这个文件夹了
- rm -R:删除文件夹
- source:运行RFIC配置文件
- pwd:显示当前目录的路径
四、Cadence设计软件基本介绍
1. 运行软件
- 首先运行配置文件,即source RFIC配置文件,回车后会进入到工作目录下面,
- 输入icfb,然后回车,就能直接启动Cadence设计软件了
- 这个软件最开始启动较慢,因为要加载较多的东西。
- 启动完成后,出现的启动界面是ICW最顶层的操作界面
2. 软件界面介绍
(1)Cadence初始界面菜单介绍
file
- 这里包括一个file文件夹菜单,其中有新建library库,以及celiview。
- 还有打开文件open
- 最需要我们关注的是import操作,导入一些verilog文件或GDS文件等等导入数据的操作,经常使用的是stream,也就是导入GDS文件,需要我们去选择该文件的位置(import file),还有填写导入文件的顶层cell的名字(top cell name),以及导入进来的数据格式(output)通常选用DB格式。此外还需要设置导入GDS库的名字(Library name),比如需要导入到哪个设计库里面。其他部分可以采用默认设置。
- 另一个需要关注的操作是export导出,最常用的也是stream ,这里需要填写的是导出GDS设计库目录的名字(Library name),顶层设计单元名字(top cell )
Tools
- 最需要关注的是Library Manager,就是打开设计库,这里面已经定义好了RFIC和RFIC_SIM等等库,analogLib里面是仿真时候要用到的电流源电压源等仿真用的元器件,或者是一些射频port。
- 还有关键的就是CMOS的工艺库(smic13mmrf),在这里有一个选项,就是打开分类(show categories)能看到这里多出一列详细分类的列,比如可以选择电容(capacitors)的min类型的cell,都能看到视图(view)的layout和spectrem的仿真模型。还有像射频mos管(RF_mos),有1.2v(n12_ckt_rf)的,3.3v(n33_ckt_rf)的,还有放在deepnewell里面的一些1.2v和3.3v(dnv33_ckt_rf)的一些元器件。这里面还有一些无源器件比如像电阻(rf_resistors)。射频里面最常用到的是电感(inductors),分为很多类型,有差分电感(diff_ind_3t_alps_rf),单端电感(ind_rf),或者有中心抽头的差分电感
- 此外还有重要的设置是Technology File Manager,也就是工艺技术文档的绑定。点进去能看到菜单,这里需要对我们之前设计库里面比如像RFIC绑定一个具体的库。
- 具体的操作是进入绑定菜单里面,选中attach,进入另一个页面后,选择库的名字(Design Library)这里选择的是RFIC,要绑定的库是Technology Library里面coms的F工艺库。选择完成后点击OK,就可以完成绑定的操作了。
- 工艺库绑定完成后,才能在具体版图设计的时候,才能显示出正确的版图设置,比如说打开这个版图,最开始显示的是一个框,如果要全部显示的话,需要按住shift+F,把器件完整的所有层都显示出来;如果我们需要隐藏所有的层,按住crtl+F,就会把所有的层的显示都隐藏起来。
- 左边LSW窗口就是刚刚打开版图的时候所有相关设计的层,如金属层,有源层,多晶层等等,还有drw设计层,或者pin的一些层,包括所有层次选择的窗口,
- Tools里面还需要关注的是混合信号的仿真(Mixed Signal Environment)设置,
Option
- 这部分不太会去接触到,主要是一些快捷键的设置,或者相关license的一些配置信息
Help - 帮助菜单就是能够显示帮助文档的,加载可能较慢
- 如果需要详细了解整个仿真器的相关设置,我们可以打开“MMS72”文件夹下的用户手册中详细看下,这个文档是在EDA库,“MMSIM72”文件夹,“docs”文件夹下,这里有所有功能说明的文档,其中我们最需要关注的是spectreref的参考文档,这里有他的PDF文件。这个参考文档是spectre仿真器的用户参考文档。还有一个需要关注的是spectreRF的用户手册,这里会对所有仿真器一些设置和原理方面内容进行详细介绍。如果需要深入了解某一些仿真器的配置,具体的使用,可以来参考这里面的文档。
- 删除库文件:
- 选中要删除的库,鼠标右键一直按住并拖动到(delet),然后松开鼠标右键,然后点击ok,
3. 创建电路图
- 打开Tools下的Library manager。首先选择创建电路图的库(RFIC_SIM),然后点击菜单中的File里的New的Cell View。在这里我们需要填写新建Cell view的电路图的名字,比如我们要设计一个反向器INV,工具Tool是composer原理图的设计工具,然后点击OK,就可以打开原理图的设计窗口了
- 如果要调用一个元器件,快捷键是按住键盘上的i键,也就是insert的首字母,就会出现添加元器件的对话框,然后选择打开browse
- 打开后会把library显示出来,然后我们选中需要调入的library库所在的,比如需要调入一个电感,在原理图中只能调入symbol,然后最小化窗口(右上角)
- 然后电感就选中了,放在这里鼠标左键键点击一下,电感就放下来了。退出按住键盘ESC键
- 如果我们需要查看元器件的参数,选中元器件,按住键盘上的Q键,就会显示出元器件的参数值,有平面螺旋电感的尺寸,即内部半径直径的大小(inner radius),电感的圈数(coll turns)是2.5圈,金属宽度(width),金属的间距(spacing),还有模型文件里面在2.4GHZ计算出来的电感值(inductance at 2.4GHz),还有电感再这个频率下的Q值(Q-factor at 2.4GHz),可以看到这个Q值是非常小的
- 如果需要查看元器件的完整视图,选中元器件,按住键盘上的F键。
- 如果是要缩小元器件的视图,按住键盘上的**【**(左中括号键),一直按会不断缩小
- 按住**】**(右中括号键)是不断放大。
- 这些快捷键也可以在对应原理图中找到
4. 仿真环境ADE
- 要打开仿真环境(ADE),在菜单栏Tools下面的Analog Environment,就可以进入仿真设计环境了,
- 载入变量:选择右侧菜单栏,编辑变量,会弹出窗口,选择FIND,就会把之前所有在原理图上设置的变量全部显示在右边,这样就可以对每一个变量进行参数设置,设置完点ok就会在ADE窗口下显示出来。
- 选择仿真类型,调入直流仿真,便会出现直流仿真信息在里面
菜单 - Session是状态,当点击Save State,保存当前状态。
- 有两种存储方式,第一种是存储在当前工作目录下(Directory),然后点击Apply,就可以保存下来了。
- 另一种形式是保存为(cellview),在设计库中就可以看到,在进行拷贝或调用库的时候可以这样保存设置
- load state就是加载调用状态,比如调入之前保存的状态dc,就会把之前保存的状态全部调入显示出来。
- 另一个是option,通常会用来配置波形查看工具(Waveform Tool)
- 有两种,一种是WaveScan
- 另一种是AWD
- Setup是设置菜单,Design是对电路进行仿真,用于设置对某个电路进行仿真
- 仿真器切换设置(Simulator/Directory/Host),进入界面后显示当前默认仿真器为Spectre,常用的还有并行计算仿真器(aps),可以极快加大仿真器的速度。而采用spectre进行仿真器的速度相对较慢,因为它不是并行计算的方式。如果需要用到Verilog或是原理图与verilog的混合仿真,需要用到(spectre verilog)来进行数模混合仿真。
- (Porjcet directory)定义当前仿真工作环境,可能会存储一些临时或结果文件的目录位置,
- 然后是仿真的模式(Host mode),是本地仿真(local),远程仿真(remote),分布式仿真(distributed)
- 接下来是trubo选项这是为了加快仿真速度的选项,通常在复杂电路的后仿真会开启这个选项,来加快仿真速度。
- 第二个选项(parasitic reduction)是寄生参数的压缩和缩减,会把一些影响非常小的寄生参数在网表中滤除掉,不去计算这部分对电路的影响。这部分选中也会有提速的效果。
- 第四个选项是之前工艺提供的模型库(model library),在启动SFB的时候,打开library manager,这个模型文件是会自动加载的,因为在工艺库里面提供了skill的配置文件,会自动把模型文件加载进来。
- 点进去会发现所有仿真元器件的模型,都可以在这里配置,在后期仿真的时候会对模型库进行修改,比如要仿真各种工艺偏差,或者仿FF或SS corner的时候会在这个模型库中进行设置。
- 这里默认的状态是tt,也就是标准模型,如果我们需要去修改的话,要换成FF快速模型,会在右下角输入框进行修改。
- 温度(Temperature)是在仿真的时候经常去设置的,通常默认的室温是27度。有时候我们需要去仿真到-40度低温,或高温85度。
- Environment在后仿真的时候会经常用到,这里用的比较多的是仿真的优先顺序。比如在后仿真的时候,可以在这里面添加提取出寄生参数的caliber view,放在原理图的前面。那么在仿真的时候就会优先去调用带有寄生参数的cell view来进行一个后仿真。
- 右侧菜单栏中第一项(Choose design)选择设计,
- 第二项(Choose Analyse)选择仿真的类型,如瞬态仿真tran、直流仿真dc。
- 在这里选择瞬态仿真(tran),还需填写仿真停止的时间,设置为1us,精度设置(Accuracy defaults)设置为中等(moderate),后点击ok,在仿真类型中就可以看到第二个仿真器的基本信息
-
第三项是编辑变量(edit variables),用于编辑原理图中所有设置变量的参数值。
-
第四项是设置输出(setup output),就是编辑一些计算公式,然后放入到最终输出的列表中。
-
比如加入(name)S11,表达式(expression)是通过计算器(calculator)输入计算公式。输入完成后点击(Get expression)就能将计算器中的公式载入到(expression)中
-
点击ok后,就会显示在输出的列表中。
-
第五项是删除键(delet),对“Analyses”中的仿真类型或者“output”中进行删除
-
第六项是仿真运行按钮(netlist and run),先建立网表后运行。
-
第七项是直接运行(run),也就是调用之前的网表,不重新生成新的网表
-
最后一项是画输出波形(plot output),仿真完对output的波形在窗口中显示出来。
-
output中的(to be saved)在仿真过程中,由于电路太复杂,而如果把所有的节点或网络的仿真结果保存下来的数据量会非常大,导致仿真的速度比较慢。这时可以选择只保存某一部分的输出结果。
-
点击后在原理图中选中想要保存的节点和网络,完成后退出按住ESC键,然后回到原界面就可以发现在output就会添加上刚才选中的网络仿真结果。
-
(Save all)所有节点输出都保存,默认所有输出都全部保存。如果只保存刚才选中的网络或节点,需点击(selected)
五、仿真设计实例(反相器)
1. 熟悉工艺库说明文档
- 首先打开工程文件夹,在“EDA”,“Kit”,有“13mmrf”的cmos工艺库。文档是在“docs”下。
- 最开始需要熟悉工艺库提供的spice模型的说明文档,打开“TD-MM13-SP-2001V7P”
- 这个文档是1.2v和3.3v的spice模型说明文档,最主要的内容从第7章开始,有关于晶圆的基本信息(wafer information);mos晶体管模型(mosfet model),模型中包含模型的特性(capability of model)和各种工艺偏差的模型表(corner model table),以及验证方法:1/f 噪声模型(1/f noise model)
- 此外,还有BJT 的Gummel-poon 模型(Biploar Gummel-poon model)。
2. 绘制电路原理图
- 首先打开icfb设计软件,然后点击库管理(Library manager),打开库管理窗口
- 选中(RFIC_SIM)库
- 新建单元cell
- 修改cell name名字为INV,点击ok,便会自动弹出原理图的编辑窗口
- 添加元器件,可以按住键盘上的i键,即insert
- 选择browser去浏览库
- 这里是从13um的工艺库中去选择(smic13mmrf——1233),我们先在分类中选入mos晶体管(mosfet),放入nmos1.2v晶体管(n12),选择(symbol)。
- 然后最小化
- 然后就能自动显示出来信息了,
- 选择(hide)
- 鼠标左键点击原理图的窗口,元器件就可以自动放入其中,然后按住esc键盘,退出操作
- 这时候我们还需要添加PMOS晶体管,同样操作过程
- 接下来查看和修改晶体管参数,鼠标选中晶体管,按住键盘上的q键,就会弹出它的属性窗口,上面有晶体管的参数信息。
- (Instance Name)表示该晶体管位唯一的标识符PM0。
- (multipler)表示晶体管的并联个数,在一个元器件中可以设置多个晶体管并联
- (length)是晶体管沟道的长度,这里最小选择的是130nm/0.13um,是工艺线宽的最小尺寸
- (total width)是晶体管整体宽度的计算结果,总宽度是由单个finger宽度(finger width)*finger的个数(fingers)
- (gate connection)是栅极是否要在版图中连线出来,这里选择None,到时候我们画版图的时候自己来画他们的连接关系
- (bodytie type)衬底的连接,
- 将Pmos晶体管的(finger width)修改为2u,(fingers)修改为4.
- 同样的操作对Nmos晶体管
- 这里我们把(finger width)修改为1u,(fingers)修改为2.
- Pmos晶体管和Nmos晶体管的宽敞比设置为2:1的尺寸比例关系,这是因为N和P的mos的载流子迁移率是不一样的,在相同偏置电压的开启电压的前提下,他的导通电阻是不一样的,通常认为pmos管的导通电阻较大,Nmos管的导通电阻较小。一般是两倍的开启电阻的阻抗值关系,这样能使他们的导通电阻基本是相等的。这样仿真器的翻转电压基本是在电源电压的一半的位置,在中间的电平上做信号的翻转,
- 我们可以通过瞬态仿真来查看翻转电压在什么情况下翻转。
- 设置完成后,点击检查和保存
- 还会报一些warning,是说原理图上有很多pin脚没有连接,是悬空网络。
- 保存还有快捷键是按键盘上的s键
- 设置完成后需要进行晶体管的连接,连线的快捷键是按键盘w,
- 将pmos管与nmos管的栅极相互连接。且漏极相互连接。
- 将n和pmos的源极引出,
- 但是两个晶体管的衬底端没有连接,Pmos管要求连接到电源电压,也就是它的源极;Nmos管通常要求单独连接叫sab的衬底连接端,通常连接的是晶圆或整个芯片的衬底。在模拟电路设计中通常会引出来。在数字电路中通常跟nmos的源极,也就是跟GND连接
- 连接线完成后,需要添加端口,在左侧菜单栏中,然后就会弹出添加pin的对话框。
- 我们首先添加反相器的输入端,命名为IN,然后点击(hide)
- 设置pin的名字的时候最好都采用大写字母命名,因为有的工艺可能在做LVS或者DRC检查的时候,默认是不区分大小的。而有一些工艺库会把所有小写字母全部认成大写字母。所以后面在做LVS的时候可能会出现一些问题。
- 我们把输入端口放置在栅极
- 我们再放置一个输出端口
- 放置在漏极输出端
- 放置后可以把端口往外拉出一些
- 电源端口的类型设置为可输入可输入模式inputoutput
- 此外我们还可以批量输入相同类型的端口,输入完一个名字后,敲空格再输入另外一个名称。
- 如果我们需要移动端口,选中pin,按住键盘Shift+M键,然后按鼠标的右键将端口进行旋转,然后放置
- 这时候再保存就不会有报错了。
3. 创建symbol
- 如果需要进行电路仿真,还需要对电路原理图创建一个symbol。
- 点击(Tools),选择(Create cellview),选择from cellview,就会弹出创建cellview的对话框。采用默认设置就可以了,然后就可以生成symbol,然后点击ok
- 然后回弹出端口设置的对话框,输入端口是在左边的pinIN,输出端口是在右边的pinOut,最底下的pin是VCC,GND,SUB。就按照默认布局来设置。
- 然后就可以生成一个symbol的原理图
- 然后点击保存
- 保存完之后,回到library manager,就可以看到cellview有INV,里面包括symbol和原理图。
- 双击schmatic可以看到INV的原理图。
4. 创建testbench
- 然后我们需要建立一个仿真用的testbench。建立的过程也是跟创建cellview的INV的原理图一样的过程。只是我们需要添加一些其他元器件进去。
- 选择file的new的cell view
- cell name改成INV_testbench。点击ok,就能自动打开testbench
- 我们需要导入之前创建好的反相器的symbol。
- 我们按住键盘上的i键,点击Browke
- 选择刚刚创建好的INV的symbol
- 最小化窗口后,就可以看到原理图上有INV的symbol
- 然后我们还添加其他仿真的元器件,包括电压源,理想的地。
- 我们首先添加仿真的电压源,按住键盘上的i键,
- 是在analogLib的工艺库里面,在cell中搜索vdc,就会自动定位vdc的位置,
- 然后放置电压源在原理图上
- 我们还需要调入GND
- 另一种快捷方式是,直接在Cell中输入gnd,地的标志就能出现在原理图上
- 我们将地放在电压源下面。
- 这时候我们的电源就设置好了。
- 我们还需要设置GND和SUB
- 我们需要进行复制操作来复制电源。按住鼠标左键框选电压源,然后按键盘上的C键,然后点击鼠标左键进行放置。就能把整个元器件和网络复制下来。
- 还有一个在模拟电路里面需要建模的东西是,如果是芯片外部引入进来的电源和地,就会存在封装上的引线的电感,对于电感的模型我们是需要去模拟的。在电路仿真过程中,我们需要把电感的模型代入到仿真的testbench。
- 这里我们需要先添加理想的电感。操作与前面相同
- 电感需要接到电压源上面
- 引线电感设置的值为,如果是常规的QFNR或者QFP封装的话。我们通常认为引线电感是1um的长度等效电感值,电感值是在1nH左右。通常这种封装引脚上的电源影像的话通常会在2um左右,所以通常认为引线的电感为2nH。
- 我们选中电感,按住键盘上的Q键,打开其属性窗口。
- 设置电感值为2nH,然后我们还需要建模,金属的绑定线的等效阻抗,通常设置为100m欧
- 但是对于地线通常不是直接绑定在封装的管脚上,而是绑定到整个芯片封装背面大片的金属地上面,这时候我们叫单ban,引线电感会小一些。通常引线绑定的长度在1um左右,在1mm以内设置等效电感为1nH,阻抗设置为50m。
- 然后,我们需要添加连线。
- 另一种连线的方式,是对连线进行网络设置对网络进行命名,通过网络名称来对应连接方式。
- 选择左侧菜单栏中(wire name),快捷键是键盘上的L键
- 添加name为VDD,
- 选中需要添加网络的线,完成网络的命名
- 同样对另外两根线同样操作。
- 然后我们将同样的网络拷贝到下面电源部分
- 连接完成后设置电源的电压。选中电压源,按住键盘上的q键。
- 弹出的对话框我们只需要设置DC电压值即可。我们设置电压值为1.2v
- 对地电源的电压设置为0
- 接着设置输入输出端口。
- 在输入端需要添加输入脉冲。按住键盘上的i键,点击browse。
- 在模拟库中选择vpulse
- 添加进来后,放置在输入端中。
- 对脉冲电压源需要设置输入参数
- 选中脉冲电压,按住键盘上的q键。(dc voltage)设为0,(voltage1)设置为0v,(voltage2)设置为1.2v。
- (delay time)为初始电压的延时时间,也就是从voltage0跳转到voltage2的延时时间,设置为延时100ns
- (rise time)为上升时间,为了更加详细准确看出反相器电压翻转的时间。我们可以把上升时间设置稍微长一些。设置为0.5us,即500ns
- (fall time)下降时间也设置为500ns
- (period)脉冲周期,以变量的形式设置。我们填入1/F,(F即频率),这里就设置了变量是F。
- (pulse width)脉冲宽度不设置的话,默认就是50%的占空比,也就是一半的周期的时间作为脉冲宽度。这里就不去设置了。
- 输出端同样需要去查看输出波形。也需要增加元器件。
- 这里添加电容作为输出负载。
- 电容缩写是cap
- 然后设置电容的值。设置为0.1pF
- 这时候原理图就绘制好了,保存原理图。
- testbench就搭建好了,可以来进行仿真的操作。
5. 仿真
(1)导入变量
- 打开ADE仿真环境
- 选择Tool-Analog design environment
- 由于刚刚设置了变量F,所以先调入变量
- 鼠标点击右侧菜单栏
- 点击(copy from) ,将电路原理图上的变量全部调入进来。
- 然后回在右侧的table中显示
- 在table中选中变量F,就会有设置参数值的窗口。由于前面上升时间设置的比较长,因此在这里我们设置为100k,相当于是10us的周期。
- 然后会在设计变量(design variable)中显示出来。
- 此外我们还需要添加仿真器
(2)直流仿真
- 选择仿真类型,先选择直流仿真(dc),然后点击保存所有直流工作点(save dc operating point)
- 这时候所有仿真器的设置都弄好了。我们点击右侧菜单栏的运行
- 然后会弹出信息窗口。会有所有仿真信息在里面,包括仿真电路的基本参数
- 电路各种参数都会显示出来
- 7个节点,2个3v3的晶体管模型,1个电容,3个电感,3个电压源
- 再下面是整个直流仿真分析的输出过程,包括仿真精度,温度,仿真收敛的信息。
- 仿真完成后会把所有信息都保存下来。
- 查看仿真结果是在菜单栏中的(results)里面
- 直流是让其全部在原理图中显示出来。
- 比如我们要显示所有直流节点的电压(dc node voltage)
- 这时候原理图上,每个网络上所有电压都现实出来了,比如输入端的网络的网络是0v电压,而输出端电压经过反相器后会变成高电压,为1.2v
- 而下面电源电压VDD显示的是1.2v,gnd和SUB显示的是8.pv和12pv的电压,相当于0v的电压结果。
- 还有选中输出窗口,查看直流工作点,会把所有的电流都现实显示出来。
- 我们查看原理图,
- 如果我们需要查看建立的symbol里面电路的晶体管或其他元器件的工作状态。
- 首先选中建立元器件的symbol,按住键盘上的e键,进入到它的下一层
- 然后就能进入到子模块的内部电路图中。这时候再去查看各个地方各个节点的电压工作状态。
- 可以发现pmos管流过的静态电流Id是-424.9pA,电压vgs是1.2v,因为输出端也是1.2v,所以vds基本为0。此外还显示出gm值,通常情况下,如果电路是放大器的话,会显示出正常工作的工作电流,跨导的值,还有vdsat(晶体管过载电压)为-600mV。
- vdsat等于vgs减去阈值电压vth
- 如果我们需要查看晶体管非常详细和具体的模型里面各个元器件,或者全部晶体管的工作状态的一些参数。这里我们需要用到print直流工作点的操作方法
- -首先打开ADE,选择result-print-dc operating point
- 这时候鼠标就可以去选中需要去查看的直流工作状态元器件。
- 这里我们选中nmos管,这时候就会弹出一个结果
- 就会有结果的显示窗口,就会把这个mos晶体管里面所用到的所有模型所有参数在这个直流工作状态下对应的值是多少,会全部显示出来。(nmos管)
- 这里有包括电流,寄生电容,跨导等等参数都会在里面详细显示。
- 这里我们比较关心的参数是region就是晶体管的工作状态,查看是工作在截止区还是在饱和区。
- 还有就是导通电阻(ron),是当前沟道的,这个是他当前沟道电阻的阻抗。可以看到这个值非常大。
- 还有vdsat的电压
- 然后我们查看下(pmos管)的工作状态,是有差别的。region显示的是1,跟刚刚处于截止状态的mos管是完全不一样的。
- 当我们查看完子模块的symbol原理图,点击design-hierarchy(层级关系)-return。这样就会自动返回上一层。
- 或者使用快捷键ctrl+e
(3)瞬态仿真(网格)
- 选择仿真器
- 选择瞬时仿真(tran)
- 由于之前设置的频率为100k,那么其周期就是10us,我们仿真的周期可以设置长一点,设置5个周期为50us。
- 还需要设置仿真精度(accuracy default),在这里我们选择中等精度(moderate)
-然后我们点击右侧菜单栏的运行(run)
- 查看仿真报告,首先进行瞬态仿真,从0到50us的过程
- 然后我们可以查看波形查看器。有两种的波形查看器,在session-option中
wave scan波形查看器
- 第一种是wav scan
- 查看波形在result-direct plot-main fog
- 这时候弹出对话框。
- 这里可以画的波形包括电压,电流或功率等等
- 先不要退出窗口,直接选中原理图中的网表
- 这时候输入方波的波形就会显示在波形查看器上面。
- 如果我们再点击输出网络,那么输出结果会叠加在原波形中显示出来
- 可以清楚看到反相波形状态的过程
AWD波形查看器(游标标识)
- 另一种波形查看器是
- 同样的的操作
- 可以发现他们显示的情况是不一样的,主要是少了网格,此外标识也是不一样的。
- 如果我们想添加游标,按住键盘上的a键,就能添加一个十字游标
- 如果我们要添加另外一个游标,按住键盘上的b键
- 然后在波形查看窗口的左下角,就会显示两个坐标的基本信息。
- delta是两个坐标的差值
- slope就是两个坐标连线的斜率
- 如果要移动游标,就再次按键盘b键,
- 如果波形仿真时间非常长,波形非常的密集,想要放大电压波形。
- 一直按住鼠标右键,框选想要放大的部分,松开鼠标右键,这个区域就被放大了
- 可以发现A点翻转电压的纵坐标在600mV左右,基本在1.2v一半的位置。