原理图设计流程
扫描二维码
随时随地手机看文章
原理图绘制
紧接上一次的内容,一起完成反相器原理图绘制,并设置器件尺寸和仿真模型,已经完成的同学可以直接跳过,反相器的工作原理不做详细讲解,相信大家已经在集成电路相关课程里学习过。
打开之前建立的反相器原理图文件,在原理图绘制界面,添加NMOS管和PMOS管。按下快捷键i, 在弹出的对话框内Library选择analogLib, Cell选择nmos4, View选择symbol, 填写器件尺寸和模型与下图一致,然后鼠标左键单击Hide, 把NMOS管放置在空白处。按照同样的方法放置PMOS, 器件尺寸可以随意,后续会做调整。
摆放好MOS管位置之后完成连线,过程很简单。使用快捷键w, 然后用线按照反相器中两个MOS管的连接关系连线。在连线完成之后使用快捷键p, 为输入、输出、电源和地打上端口,最后check&save, 如果原理图中有遗漏的地方软件会报错或者警告,按下快捷键g, 可以查看报错详情。
确认原理图没有出错,可以在电路旁边加上适当的注释,在原理图输入界面的菜单栏,选择:Create->Note, 可以选择添加文本注释或者注释框,写上原理图功能、状态,如果完成仿真之后还可以添加电路的工作条件、性能等信息,以供日后方便阅读。
原理图的绘制是为了方便后面的电路仿真,接下来会开始电路仿真的内容,电路仿真需要首先确定设计采用的工艺,正确使用仿真模型进行仿真,才能获得正确的仿真结果。如果仿真模型不正确,那么仿真结果对实际设计来说不会有任何意义。
使用PDK设计
仿真使用的模型文件一般包含在代工厂提供的PDK文件(process design kit)中。PDK是沟通IC设计、代工厂与 EDA工具之间的桥梁,PDK中包含很多实用功能,可以提高工作效率,特别是对版图的支持让版图设计变得方便很多。
本文中使用的PDK是smic提供的0.18μm RF工艺库,建议大家可以先采用相同的工艺库学习,熟悉之后再更换工艺库。具体工艺的获得,可以在网上自行查找,如果找不到可以私信小目同学。
工艺库下载之后放到Linux系统,小目同学建议大家可以在工作目录新建一个文件夹专门用来存放工艺库,小目同学在工作目录workspace下新建文件夹:pdks用来存放所有工艺库。
PDK需要安装工艺库才可以使用,但是PDK的安装分为不同的情况,与软件版本、PDK版本以及获得的PDK具体内容有关,以上信息可能每个人的都不尽相同,所以建议大家在网上搜索工艺库安装的教程根据自己的情况进行安装。
安装完工艺库之后,启动Cadence软件,这时候在Library Manager界面内多了一个与PDK名称一样的库。没错,PDK其实就是一个设计库,只是包含了更多功能而已。比如小目同学完成PDK安装之后,PDK文件夹的内容和Library Manager界面内的内容如下图所示。
现在有了PDK,可以开始以PDK为基础的电路设计。重新绘制反相器的原理图,这次MOS管使用smic18mmrf库里提供的器件,这个库提供了1.8V和3.3V两种电压的MOS管,可以随意选用。以下是小目同学使用名为n33和p33的MOS管绘制的原理图。
在原理图设计中使用PDK设计的好处是:修改器件参数更加方便,使用PDK设计不需要修改器件模型,同时对于器件尺寸也有一定的限制,当用户设计的尺寸不合理时,PDK会有相应的警告。
PDK中提供了器件的版图,用户可以直接调用器件版图,不需要为器件设计版图,只需要注意器件之间的互连设计。
电路仿真
电路设计的重要一步是原理图完成之后的电路仿真,通过仿真结果分析电路的设计指标是否满足设计要求,该如何修改等。当然,作为一个合格的设计者在电路设计之时应该对电路功能有一定的预期,理论分析与仿真结果相结合,才能高效地设计电路。
所有电路的设计都是有设计指标的,最简单的反相器也不例外,今天设计的反相器只设一个指标,反相器的开关阈值电压:
反相器的开关阈值电压被定义成反相器输入等于输出的点,这个电压反映着反相器中PMOS和NMOS的尺寸比值,在设计反相器时希望这个点尽量靠近电源电压的中间值,表示PMOS和NMOS能力一致。
在函数图像上表示成反相器输出电压曲线与函数:
的交点,所以设计反相器时希望看到这个交点在的位置。也就是说,如果可以获得反相器输出特性曲线和曲线,在图像上找到两条曲线的交点,就可以通过交点位置判断反相器的开关阈值是否满足设计要求。Cadence软件为设计者提供了一种叫dc仿真的仿真方法,通过这种仿真可以画出反相器的输出特性曲线。在原理图界面:Launch->ADE L, 打开Cadence Analog Design Environment, 这个就是仿真设置界面。
在仿真前,需要选择仿真模型和工艺角,具体文件在PDK文件夹下的models文件夹,一般PDK会提供两种仿真器的model, 一个是spice model, 另一个是spectre model, 今天采用的仿真器是spectre, 所以选择spectre文件夹内的仿真模型,至于spice的仿真以后会专门来讲。
之后还需要选择分析方法、输出信号等,每一个设置在ADE L的界面内都有提示,各位同学自己尝试点选每个菜单,观察界面变化,熟悉ADE L设置。
到这里有些同学应该已经开始有疑问了,要模拟电路的实际工作情况,难道电路仿真不需要像实际电路工作那样接电压源、输入信号之类的吗?答案是肯定的,电路仿真中把信号输入叫做激励,仿真电路是需要按照电路工作时的状态添加激励,在原理图中添加直流信号源,包括输入信号、电源电压和地信号,器件均在analogLib库中。
按照下图中所示,添加电路激励,并修改属性,注意其中为AVDD和输入信号A提供激励的直流电压源的DC Voltage一项分别设为avdd和vin, 这样方便随时修改数值,同时设计变量在仿真时也有妙用。
ADE L的仿真设置要注意:在dc仿真一项,选择Sweep Variable一项,变量的值填入前面输入信号的直流电压值vin, 这样设置的意思是扫描输入电压的值,而且扫描范围从0到电源电压,仿真器在仿真时会自动改变输入电压值然后记录相应的输出电压,最后画出反相器输入信号在0到电源电压之间变化时输出电压的变化曲线。
设置完成仿真选项之后,鼠标左键单击ADE L界面右下角绿色按钮或者在菜单栏:Simulation->Netlist and Run, 运行仿真。仿真结束会输出如下曲线,如果仿真没有正确运行或者没有输出波形,可以查看CIW输出窗口,仔细阅读输出信息并找到原因。
仿真输出曲线如上图所示,我们的目标是看到反相器的输出曲线与函数:的交点,从仿真结果可以看出输入信号与反相器输出信号的交点正是反相器的开关阈值。
从上图中可以看到小目同学设计的反相器开关阈值满足设计要求(1.45 V),不知道各位的仿真结果如何。前文提到过反相器的开关阈值与PMOS和NMOS的尺寸比值有关,有兴趣的可以调整两个管子的尺寸比例,观察一下仿真结果有何不同。
分析更深的原因,PMOS和NMOS管子中载流子的迁移速率不一样,电子迁移率大概是空穴迁移率的2.5倍,所以一般反相器中PMOS管子尺寸大概是NMOS管子尺寸的2.5倍才能实现开关阈值在电源电压的中间值附近。
由于Cadence仿真功能很多,无法一一介绍,即使是本文中所演示的反相器仿真也没有很详细地介绍所有设置和仿真。
软件的使用需要用户适当摸索,同学们可以利用Cadence Help工具学习ADE L其余仿真方法,也可以参考Cadence手册:Virtuoso Spectre Circuit Simulator and Accelerated Parallel Simulator User Guide.