CMOS反相器设计与仿真报告.docx
《CMOS反相器设计与仿真报告.docx》由会员分享,可在线阅读,更多相关《CMOS反相器设计与仿真报告.docx(23页珍藏版)》请在冰点文库上搜索。
CMOS反相器设计与仿真报告
CMOS反相器设计与仿真报告
CMOS反相器相当于非门,是数字集成电路中最基本的单元电路。
搞清楚CMOS反相器的特性,可为复杂数字电路的设计打下基础。
如图0所示电路为反相器,P管衬底接Udd,N管衬底接地,栅极与各自的源极相接,消除了背栅效应,而且P管和N管轮流导通和截止,输出非0即Udd,故CMOS反相器又称为“无比电路”。
反相器的输入输出端口的关系如表一所示:
表格1反相器输入输出端口
输入
输出
1
0
0
1
反相器关系式:
OUT=~IN。
一、使用S-Edit编辑CMOS反相器原理图
在此次实例设计中采用TannerPro软件中的S-Edit组件设计CMOS反相器的原理图,进而掌握S-Edit的基本功能和使用方法。
操作流程如下:
进入S-Edit—>建立新文件—>环境设置—>引用模块—>建立反相器电路。
1)打开S-Edit程序,并将新文件另存以合适的文件名存储在一定的文件夹下:
在自己的计算机上一定的位置处打开S-Edit程序。
在本例中在S-Edit文件夹中新建立“反相器原理图”文件夹,并将新文件以文件名“Ex2”存与此文件夹中。
如图二所示。
图a另存新文件为Ex2
2)环境设置:
S-Edit默认的工作环境是黑底白线,但可以按照用户的喜好自行设定。
即选择Setup->Colors命令,打开Colors对话框,可分别设置背景色、前景色、选取颜色、栅格颜色、原点颜色和可更换颜色等。
如图二所示。
图二环境设置
3)编辑模块并浏览组件库:
S-Edit编辑方式是以模块为单位而不是以文件为单位,一个文件中可以包含多个模块,而每一个模块则表示一种基本组件或者一种电路。
每次打开一个新文件时便自动打开一个模块并命名为“Module0”;也可以重命名模块名。
方法是选择Module->Rename命令,在弹出的对话框中的NewName中输入符合实际电路的名称,如“inv_dc”即可,之后单击OK按钮就可以。
S-Edit本身附有4个组件库,它们分别是scmos.sdb,spice.sdb,pages.sdb和element.sdb。
可以引用其中的模块,默认时有spice.sdb和element.sdb两个组件库,也可以添加其他的两个组件库。
设置好环境并浏览组件库的状态如图三所示。
图三浏览组件库
4)从组件库引用模块:
编辑反相器电路会用到NMOS,PMOS,Vdd,Gnd这四个模块。
引用的方法是在SymoblBrower对话框中选取spice组件库,在其内含的模块列表中以次找到所需模块,并放在编辑界面中。
结果如图四所示。
图四引用模块
5)编辑反相器:
按住Alt键拖动鼠标,可移动选中对象。
移动各个对象到合适位置后,选择原理图工具条中的连线按钮连接各个对象节点以组建成反相器。
注意,各节点上小圆圈消失即代表连线成功;若3个以上的节点连在一起则会出现实心圆圈。
编辑后反相器结果图如图五所示。
图五编辑反相器并连线
6)加入输入输出端口:
利用输入输出按钮表明此反相器的输入输出信号的位置和名字,方法如下:
选择输入端口按钮,再到工作区用鼠标左键选择要连接的端点,在弹出的EditSelectedPort对话框中的Name文本框中输入名字,如“IN”,单击OK按钮即可。
如图六所示。
同样的方法也可加入输出端口“OUT”。
图六加入输入端口IN
7)反相器设计成果:
引入输入输出端口后完整的反相器电路图如图七所示。
图七反相器电路图
二、反相器瞬时分析
在此次实例设计中采用TannerPro软件中的S-Edit组件设计CMOS反相器顺瞬时仿真的原理图,进一步掌握S-Edit的基本功能和使用方法;并使用T-Spice组件仿真。
此次反相器瞬时分析仿真调用前面已经设计完成的文件“Ex2”中的模块“inv_dc”并加入激励源来完成。
操作流程如下:
进入S-Edit—>建立新文件—>环境设置—>引用模块—>建立反相器仿真电路->生成Spice文件->在T-Spice环境下插入仿真命令并仿真->查看与分析仿真结果。
1)打开S-Edit程序,设置环境,新建仿真用文件夹和文件:
此次设计与仿真在新建的文件夹“反相器瞬时分析”下,并新建文件为“Ex3”。
图示一新建文件Ex3,保存于“反相器瞬时分析”
2)复制并打开“inv_dc”模块:
要复制Ex2的inv_dc模块到Ex3文件中,必须在文件“Ex3”环境下打开文件“Ex2.sdb”,之后在文件“Ex2.sdb”环境中退回到Ex3文件环境,即选择Ex2文件菜单栏中的Module->Open命令,在弹出的对话框的Files下拉列表中选择Ex3项,单击OK即可。
如图示二所示。
图示二退回到Ex3操作界面
退回到Ex3环境后,选择Module->Copy命令,在弹出的对话框的Files下拉列表中选择Ex2项,在SelectModuleToCopy下拉列表中选择inv_dc项,单击OK即可。
如图示三所示。
图示三复制inv_dc模块到Ex3
但是此时Ex3依旧在Module0模块环境下,只是在Ex3文件中复制了inv_dc模块,要想对其编辑就必须将其打开。
即选择Module->Open命令,在打开的对话框的Files下拉列表中选择Ex3项,在SelectModuleToOpen下拉列表中选择inv_dc项,单击OK即可。
如图示四所示。
3)加入工作电源和输入信号:
选择符号浏览器(SymbolBrower)命令在弹出的对话框中选取直流电压源和脉冲电压源分别作为反相器的工作电源和输入信号源。
如图示五所示。
图示五加入工作电源和激励信号源
将工作电源和信号源与反相器连接后的完整的仿真电路图如图示六所示。
为了便于图形的显示和各个电源不同功能的显著区分,设计中特引入了全域符号Vdd和Gnd,并将它们分开放置,但是它们实际上是连在一起的,即接于同一节点。
这样可使电路图更加清晰直观。
另外,由于此次设计主要用于反相器的瞬时功能分析,所以为了方便查看,做到见文识义,可将原本的模块名inv_dc更名为inv_tran。
方法和设计原理图时模块的重命名方法相同。
图示六仿真电路图
4)输出成Spice文件:
要想将设计好的电路借助T-Spice软件仿真其特性,需先将电路图转换成Spice格式。
较简便的方法是单击命令工具条上的启动T-Spice按钮,则会自动输出成Spice格式文件并打开T-Spice软件。
结果如图示七所示。
图示七输出成Spice格式文件
5)加载包含文件:
由于不同的流程有不同的特性,所以在仿真之前,必须引入MOS组件的模型文件,以供T-Spice模拟用。
本设计中引用1.25um的CMOS组件模型文件“m12_125.md”,即在Spice文件的主程序之前插入文件“m12_125.md”。
简便的方法是单击T-Spice软件的命令菜单栏中的“插入命令”(InsertCommend)按钮,在弹出的对话框中选择Includefile项。
最后在弹出的对话框中浏览添加文件“m12_125.md”到Includefile文本框中,如图示八所示。
之后单击InsertCommend按钮即可。
此时在Spice文件中会出现命令行“.include"D:
\Tanner\tanner\TSpice70\models\ml2_125.md"”。
图示八包含文件命令窗口
6)插入分析设定和输出设定命令:
和5)方法类似,还需要在Spice文件中的结尾插入分析和输出设定的命令。
即在命令工具对话框中选择Analysis项中的瞬时分析选项Transient,并设定模拟时间间隔为1ns,总仿真时间为400ns,并选定StandardBDF单选按钮,如图示九所示。
此时在Spice文件中会出现命令行“.tran/op1n400nmethod=bdf”。
在命令工具对话框中选择Output项中的Transientresults选项,在ListOfPlot框中分别添加要观察的节点电压。
此次设计中主要观察输入节点IN和输出接点OUT的电压,则可以在Plottype下拉列表中选择Vlotage选项,在NodeName文本框中输入IN(区分大小写),单击Add按钮,就将节点IN加入到了观察节点列表中。
同理将节点OUT加入到了观察节点列表中,如图示十所示。
最后单击InsertCommend按钮即可。
此时在Spice文件中会出现命令行“.printtranv(IN)v(OUT)”。
进行过各种设定后,Spice文件如图示十一所示,可以看出在文件中新加入了如下命令行:
.include"D:
\Tanner\tanner\TSpice70\models\ml2_125.md";.tran/op1n400nmethod=bdf;.printtranv(IN)v(OUT)。
7)进行模拟:
单击命令工具栏中的“开始”按钮,打开RunSimulation对话框,如图示十二所示,选中Showingduring单选按钮,再单击StartSimulation按钮,则会出现模拟状态窗口,如图示十三所示,并自动打开W-Edit窗口,以便观察模拟波形。
图示九添加分析设定命令行设定栏目
图示十添加输出设定命令行的设定细则
图示十一设定后Spice文件
图示十二进行模拟设定
图示十三模拟状态窗口
8)观看结果:
可以在T-Spice环境下打开模拟结果“inv_tran”报告文件,如图示十四所示。
结果输出格式为第一行为时间,第二行和第三行分别列出各时间对应的节点电压值。
图示十四模拟结果报告文件
也可以在W-Edit中观察模拟结果的图形显示。
在弹出的W-Edit软件中选择ExpandChart按钮来分离v(IN)曲线和v(OUT)曲线,如图示十五所示。
上面的曲线为输出电压对时间的曲线,下面的为输入电压对时间的曲线。
图示十五节点电压的波形图
9)结果分析:
有图示十五可以知道,时间10ns~110ns的输入数据为1,输出数据为0。
同理,在时间120ns~200ns输入数据为0,输出数据为1。
总之,输入与输出反相,所以可知设计结果与理论分析一致,此次设计正确成功。
三、反相器直流分析
此次设计主要完成在T-Spice软件中的反相器的直流传输特性仿真与分析。
操作流程如下:
进入S-Edit,建立反相器直流传输仿真电路->生成Spice文件->在T-Spice环境下插入仿真命令并仿真->查看与分析仿真结果。
1)打开S-Edit程序,设定环境,复制并打开inv_dc模块:
以上各步骤和“反相器瞬时分析”中的1)、2)两步骤类似,在此从略。
结果如下图a、b所示。
图:
a新建文件Ex4,并保存于文件夹反相器直流分析文件夹中
图:
b在文件Ex4中打开模块inv_dc_1
2)加入工作电源和输入信号:
由于设计是用来进行反相器的直流分析,所以要加入两个直流电压源。
方法和“反相器瞬时分析”中的步骤3)类似,在此从略。
结果如下图c所示。
图:
c加入工作电压和输入信号
3)编辑直流电压源:
由于再该模块中有两个直流电源符号,所以为了区分它们,可以编辑它们,改变其属性。
即选择待编辑对象->单击工具命令栏中的EditObject按钮,在弹出的对话框中进行电压源属性的编辑。
分别将Vdd与Gnd之间的电压源和IN与Gnd之间的电压源更名为vvdd和vin,并将vin的电压设定为1.0V。
如下图d、e所示。
4)输出成Spice文件,包含文件“ml2_125.md”:
以上两步和“反相器瞬时分析”中的4)、5)两步骤类似,在此从略。
添加文件后的Spice文件如下图f所示。
图:
f添加模型文件后的Spice文件
5)分析设定:
由于进行反相器的直流分析,模拟其转换曲线,所以模拟输入电压vin从0V到5V变化(以0.02线性增加),输出电压相对于输入电压的变化。
即在文件结尾插入命令“.dclinparamvin05.00.02”。
其设置如下:
InsertCommend->Analysis->DCtransferSweep->Sweep1,在打开的对话框中的Sweeptype下拉列表中选择Liner项,在Paramemtertype下拉框中选择Source项,在name文本框中输入“v3”,在Start和Stop中分别输入0和5.0,在Increment中输入0.02,之后先单击Accept按钮,在单击InsertCommend按钮即可。
如下图h所示。
图:
h分析设定细则
6)输出设定:
在命令工具对话框中选择Output项中的DCresults选项,在ListOfPlot框中分别添加要观察的节点电压。
此次设计中主要观察输出接点OUT的电压,则可以在Plottype下拉列表中选择Vlotage选项,在NodeName文本框中输入OUT(区分大小写),单击Add按钮,就将节点OUT加入到了观察节点列表中。
如下图i所示。
此时将在Spice文件中插入命令行“.printdcv(OUT)”。
图:
I输出设定
7)进行模拟:
此步骤和“反相器瞬时分析”中的7)相同,在此从略。
仿真所得的模拟状态窗口、模拟结果报告文件和波形曲线分别如下图j、k、l所示。
图:
j模拟状态窗口
图:
k模拟结果报告文件
图:
l直流传输特性波形图
8)结果分析:
有上图可以看出随着输入信号的增大,反相器的工作状态可以分为5个阶段来描述。
即输入等于输出、输出缓慢减小(速率加快)、输出急剧下降、输出再减小(速率变慢)和输出几乎为零五个阶段,与理论分析一致,分别对应N管截止,P管饱和导通阶段,N管饱和导通,P管非饱和导通阶段,N管、P管都饱和导通阶段,N管非饱和导通,P管饱和导通阶段,N管N管非饱和导通,P管截止阶段。
所以此次设计是正确的。