反相器电路.docx
《反相器电路.docx》由会员分享,可在线阅读,更多相关《反相器电路.docx(33页珍藏版)》请在冰豆网上搜索。
![反相器电路.docx](https://file1.bdocx.com/fileroot1/2023-2/6/11fbc4c7-28e1-475f-b1ae-865003982fda/11fbc4c7-28e1-475f-b1ae-865003982fda1.gif)
反相器电路
实验二:
反相器电路设计
实验目的:
1、熟悉静态互补反相器电路;
2、掌握反相器静态及瞬态测试方法;
3、了解晶体管尺寸大小对反相器性能的影响。
实验内容:
1、绘制反相器电路图;
2、反相器瞬时分析;
3、反相器直流分析;
4、观察晶体管宽长比对VTC曲线的影响;
5、观察电源电压比对VTC曲线的影响。
实验步骤:
1、绘制反相器电路图:
(1)打开s-Edit程序:
执行..\Tanner\S-Edit目录下的sedit.exe文件,或选择“开始”---“程序”---TannerEDA---S-Edit---S-Edit命令,即可打开S-Edit程序,S-Edit会自动将工作文件命名为“FileO.sdb”并显示在窗口的标题栏上,如图2.1所示。
图2.1S-Edit标题栏
(2)另存新文件:
选择File---SaveAs命令,打开“另存为”对话框,在“保存在”下拉列表中选择保存的路径,在“文件名”文本框中输入新文件的名称,如Ex2,如图2.2所示。
图2.2另存新文件
(3)环境设置:
S-Edit默认的工作环境是黑底白线,但可按照用户的爱好来自定义颜色,例如,可将背景颜色换成白色,而将电路线条颜色换成黑色。
选择Setup---Colors命令,打开Color对话框,可分别设置背景色(BackgroundColor)、前景色(ForegroundColor)、选取的颜色(SelectionColor).栅格颜色(GridColor)与原点的颜色(OriginColor)。
用鼠标来选择颜色的部分,即可更换颜色,将各颜色设置为图2.3所示的状态,则画面背景变成白色。
图2.3颜色设置
(4)编辑模块:
S-Edit编辑方式是以模块(Module)为单位而不是以文件(File)为单位,每一个文件可以有多个模块,而每一个模块则表示一种基本组件或一种电路,故一个文件内可能包含多种组件或多个电路。
每次打开新文件时便自动打开一个模块并将之命名为“Module0”,如图2.4所示。
图2.4编辑模块Module0
(5)浏览组件库:
S-Edit本身附有4个组件库,它们分别是在..\Tanner\S-Edit\library目录的scmos.sdb,spice.sdb,pages.sdb与element.sdb。
若要引入这些组件库中的模块,可以选择Module---SymbolBrowser命令,打开SymbolBrowser对话框,单击AddLibrary按钮,可加入要使用的组件库,本范例中加入了scmos,spice,pages与element组件库在Library列表中,如图2.5所示。
图2.5浏览组件库
(6)从组件库引用模块:
编辑反相器电路会利用到NMOS,PMOS,Vdd与Gnd这4个模块,所以要从组件库中复制NMOS,PMOS,Vdd与Gnd这4个模块到Exl文件,并在Module0中编辑画面引用。
其方法为:
选择Module---SymbolBrowser命令,打开SymbolBrowser对话框,在Library列表框中选取spice组件库,其内含模块出现在Modules列表框中,在Modules列表框中选取MOSFET_N选项(NMOS),单击Place按钮及Close按钮,则在Module0编辑窗口内将出现MOSFET_N的符号。
以同样操作选出MOSFET_P选项(PMOS)后单击Place按钮,先不要单击Close按钮,再选出Vdd与Gnd符号并在每次选择后分别单击Place按钮,最后单击Close按钮则出现如图2.6所示的界面。
图2.6引用模块
(7)编辑反相器:
按住Alt键拖动鼠标,可移动各对象。
注意,MOSFET_N与MOSFET_P选项分别有4个节点,Vdd与Gnd选项分别有一个节点。
将4个对象摆放成如图2.7所示的位置,注意,在两对象相连接处,各节点上小圆圈消失即代表连接成功。
图2.7编辑反相器
(8)加入联机:
将4个对象排列好后再利用左边的联机按钮,完成各端点的信号连接,注意控制鼠标键可将联机转向,按鼠标右键可终止联机。
当联机与组件节点正确相接时,节点上小圆圈同样会消失,但若有3个以上的联机或组件节点接在一起时,则会出现实心圆圈,如图2.8所示。
图2.8加入联机
(9)加入输入端口与输出端口:
利用S-Edit提供的输入端口按钮与输出端口按钮,标明此反相器的输入输出信号的位置与名称,方法如下:
选择输入端口按钮,再到工作区用鼠标左键选择要连接的端点,打开EditSelectedPort对话框,如图2.9所示,在Name文本框输入“IN”,单击OK按钮。
再选择输出端口按钮,到工作区用鼠标左键选择要连的端点,在打开的对话框的Name文本框中输入“OUT”,单击OK按钮。
若输入端口或输出端口未与所要连接的端点相接,则可利用移动功能将IN输入端口移至反相器输入端,将OUT输出端口接至反相器输出端,或利用联机功能将节点连接在一起,如图3.10所示。
图2.9编辑输入输出端口
图2.10编辑输入端口与输出端口的结果
(10)建立反相器符号:
在此步骤之前是电路设计模式,S-Edit中的模块,除了可以建立设计电路的窗口外,还可以建立该电路符号的窗口,选择View---SymbolMode命令,如图2.11所示,即切换至符号模式。
选择了三角形工具后,按鼠标左键可画三角形的端点,按鼠标右键可画出三角形的终点,接着利用圆形工具画出圆形:
,最后利用直线工具画出直线,如图2.12所示。
图2.11切换至符号模式图2.12建立反相器符号
(11)加入输入端口与输出端口:
利用S-Edit提供的输入端口按钮与输出端口按钮,标明此反相器符号的输入输出信号的位置与名称,具体操作同步骤(10),结果如图2.13所示。
注意,符号的输入输出端口的名称要与电路输入输出端口的名称相同,大小写亦需一致。
(12)更改模块名称:
要将原来的模块名称Module0换成符合实际电路特性的名称,要选择Module---Rename命令,打开ModuleRename对话框,如图2.14所示,在其中的Newmodule’name文本框中输入“inv”,之后单击OK按钮,即可完成反相器模块的S-Edit设计。
图2.13加输入端口与输出端口
图2.14更改模块名称
(13)反相器设计成果:
观看最后反相器设计成果,可分别选择View---SchematicMode与View-SymbolMode命令切换电路设计模式和符号模式两个窗口,或者选择View-ChangeMode命令来轮流在电路设计模式和符号模式这两个窗口之间进行切换,如图2.15与图2.16所示。
图2.15反相器电路图
图2.16反相器符号
(14)模块输出格式:
S-Edit可将模块的内容输出成几种文字形式,具体操作是选择File---Export命令,打开ExportNetlist对话框,在其中的SelectExportDataType下拉列表中可以看到有6种输出格式,如图2.17所示。
图2.17模块输出格式设置
(15)输出成SPICE文件:
将设计好的S-Edit电路图输出成SPICE格式,可借助于T-Spice分析与模拟此设计电路的性质,可选择File---Export命令输出,或单击S-Edit右上方按钮,会自动输出成SPICE文件并打开T-Spice与转出文件,如图2.18所示。
图2.18输出成SPICE文件
但此反相器的SPICE文件必须加入电源与其他设置,才能以T-Spice进行分析。
2、反相器瞬时分析:
(l)打开S-Edit程序:
依照第2章或第3章的方式打开S-Edit程序,S-Edit会自动将工作文件命名为“File0.sdb”并显示在窗口的标题栏上,如图2.19所示。
图2.19S-Edit标题栏
(2)环境设定:
S-Edit默认的工作环境是黑底白线,但可按照第2章的步骤依自己的喜好来定义颜色。
(3)另存新文件:
选择File---SaveAs命令,打开“另存为”对话框,在“保存在”下拉列表中选择保存目录,在“.文件名”文本框中输入新文件的名称,如Ex3,如图2.20所示。
由于在本实例中所使用的电路需要一个反相器及其电源,读者可自行绘制第2章的反相器电路,或按照如下的步骤从文件Ex2中复制反相器的模块到Ex3文件,再打开加入电源进行适当的修改即可。
图2.20另存新文件
(4)复制inv模块:
要复制Ex2的inv模块到Ex3文件中,必须先打开第3章编辑的文件“Ex2.sdb”。
进行复制之前必须回到Ex3文件环境,方法为选择Module---Open命令,打开OpenModule对话框,在Files下拉列表中选择Ex3选项,单击OK按钮,回到Ex3环境,才能进行复制模块的操作。
选择Module---Copy命令,打开CopyModule对话框,如图2.21所示,在Files下拉列表中选择Ex2选项,在SelectModuleToCopy列表框中选择inv选项,单击OK按钮,即完成将inv模块从Ex2文件中复制到Ex3文件的操作。
(5)打开inv模块:
由于上一步骤复制模块的操作只是在Ex3文件中增加了inv模块
图2.21复制inv模块图2.22打开inv模块
(还有inv引用到的模块Vdd,Gnd,MOSFET_N与MOSFET_P),而Ex3依旧在Module0模块的编辑环境下,所以要编辑inv模块必须先选择Module---open命令,打开OpenModule对话框,如图2.22所示,在Files下拉列表中选择Ex3选项,在SelectModuleToOpen列表框中选择inv选项,单击OK按钮。
(6)加入工作电源:
确定inv模块在电路设计模式,选择Module---SymbolBrowser命令,打开SymbolBrowser对话框,在Library列表框中选择spice组件库,其内含模块出现在Modules列表框中,其中有很多种电压源符号,选取直流电压源Source_v_dc作为此电路的工作电压源,如图2.23所示。
图2.23选取Source_v_dc符号
直流电压源Source_v_dc符号有正(+)端与负
(一)端。
在inv模块编辑窗口中将直流电压源Source_v_dc符号的正(+)端接Vdd,将直流电压源Source_v_dc符号的负(--)端接Gnd,可以连接成如图2.24或图2.25所示的画面,但我们将以图2.24的方式继续编辑。
在图2.24中,虽将两个全域符号Vdd及两个Gnd符号分开放置,但两个分离的Vdd符号实际上是接到同一个节点,而两个Gnd符号也是共同接地。
所以为了使外加电源与设计电路能清楚地分开,建议读者采用图2.24所示的电路图表示方法。
图2.24工作电源加入结果一
图2.25工作电源加入结果二
(7)加入输入信号:
选择Module---SymbolBrowser命令,打开SymbolBrowser对话框,在Library列表框中选取spice组件库,其内含模块出现在Modules列表框中,选取脉冲电压源.Source_v_pulse作为反相器输入信号,将脉冲电压源Source_v_pulse符号的(+)端接输入端口IN,将脉冲电压源Source_v_pulse符号的负
(一)端接Gnd,则编辑完成画面如图2.26所示。
图2.26加入输入信号的结果
(8)更改模块名称:
因在本实例中是利用反相器电路来学习使用T-Spice的瞬时分析功能,日后尚需将该电路应用在其他的分析之中,为避免文件混杂且便于日后分辨,故将原本的模块名称inv改成inv_tran。
选择Module---Rename命令,打开ModuleRename对话框,在Newmodule'sname文本框中输入“inv_tran”,如图2.27所示,单击OK按钮。
图2.27更改模块名称
(9)输出成SPICE文件:
要将设计好的S-Edit电路图借助T-Spice软件分析与模拟此电路的性质,需先将电路图转换成SPICE格式。
要进行此操作,第一种方法是单击S-Edit右上方的按钮,则会自动输出成SPICE文件并打开T-Spice软件,第二种则可由选取窗口选单File---Export输出文件,再打开T-Spice程序其方法是可以执行在..\Tanner\T-Spice70目录下的“wintsp32.exe”文件,或选择“开始”---“程序”---TannerEDA---T-SpiceProv7.0---T-Spice命令即可打开T-Spice程序,再打开从Ex3的inv_tran模块输出的inv_tran.sp文件,结果如图2.28所示。
(10)加载包含文件:
由于不同的流程有不同特性,在模拟之前,必须要引入MOS组件的模拟文件,此模拟文件内有包括电容电阻系数等数据,以供T-Spice模拟之用。
本范例是引用1.25um的CMOS流程组件模型文件“m12_125.md”。
将鼠标移至主要电路之前,选择Edit---InsertCommand命令,打开T-SpiceCommandTool对话框,在左边的列表中选择Files选项。
此时在右边窗口将出现4个按钮,可直接单击Include按钮,也可展开左侧列表中的Files选项,如图2.29所示,并选择Includefile选项。
图2.28输出成SPICE文件
选择Includefile选项之后,对话框将如图2.30所示,此时单击Browse按钮在目录窗口中先找到..\Tnnner\TSpice70\models\目录,接着选取模型文件m12_125.md,在Includefile文本框中将出现..\Tanner\TSpice70\models\ml2_l25.md文件。
再单击InsertCommand按钮,则会出现默认的以红色字开头的“.include`C:
\Tanner\TSpice70\models\m12_125.md’”,如图2.31所示。
图2.29文件设定
图2.30包含文件设定
图2.31包含文件设定结果
(11)分析设定:
此范例为反相器的瞬时分析,必须下瞬时分析指令,将鼠标移至文件尾,选择Edit---InsertCommand命令。
打开T-SpiceCommandTool对话框,在左边的列表框中选择Analysis选项,右边出现8个选项,可直接选取瞬时分析按钮Transient,也可展开左边列表框中的Analysis选项,如图2.32所示,并选择其中的Transient选项。
图2.32分析设定
单击Transient按钮之后,对话框将如图2.33所示。
在此将设定模式,并设定其时间间隔与分析时间范围,此处将模拟时间间隔设定为1ns,总模拟时间则为400ns。
首先在Modes选项组中选中Standard(fromDCop.point)单选按钮,在右边出现的MaximumTime文本框中输入“In”,在Simulation文本框中输入“400n”,在Methods选项组中选中StandardBDF单选按钮。
单击InsertCommand按钮后,则会出现默认的以红色字开头的“.tran/op1n400nmethod=bdf”,如图2.34所示。
图2.33瞬时分析设定
图2.34瞬时分析设定结果
(12)输出设定:
观察瞬时分析结果,要设定观察瞬时分析结果为哪些节点的电压或电源,在此要观察的是输入节点IN与输出节点OUT的电压模拟结果。
将鼠标移至文件尾,选择Edit---InsertCommand,.在出现对话框的列表框中,选择Output,右边出现7个选项,可直接单击Transientresults按钮,亦可展开左侧列表框的Output,如图2.35所示,选择Transientresults选项。
图2.35输出设定
单击Transientresults按钮之后,如图2.36所示,在右边出现的Plottype下拉列表中选择Voltage:
选项,在Nodename文本框输入输入节点名称“IN”,注意大小写需与组件所接的节点名称完全一致,单击Add按钮。
再回到Nodename文本框输入输出节点名称"OUT",单击Add按钮。
最后单击InsertCommand按钮,则会出现内定以红色字开头的“.printtranv(IN)v(OUT)”,如图2.37所示。
图2.36瞬时结果输出设定
图2.37设定结果
(13)进行模拟:
选择Simulate---StartSimulation命令,或单击命令,打开RunSimulation对话框,如图2.38所示,单击StartSimulation按钮,则会出现模拟结果的报告“SimulationStatus”,如图2.39所示,并会自动打开W-Editor窗口来观看模拟波形图。
图2.38RunSimulation对话框
(14)观看结果:
可在T-Spice环境下打开模拟结果“inv_tran.out”报告文件,如图2.40所示。
瞬时分析结果的输出格式为第一行列出时间,第二行与第三行分别列出各时间对应的节点电压值v(IN)与v(OUT)。
图2.39模拟状态窗口
也可以在W-Edit中观看模拟结果“inv_tran.out”的图形显示,选择工具图样来分离v(IN)曲线与v(OUT)图样,如图2.41所示。
上面的曲线为输出电压对时间的图,下面的曲线为输入电压对时间的图。
注意,横坐标都是时间(ns),纵坐标都是电压(V)。
图2.40模拟结果报告文件
图2.41在W-Edit中观看模拟结果
(15)分析结果:
将模拟结果作分析,验证反相器模拟结果是否正确。
时间10一110ns的输入数据为1,如图2.41所示,反相结果应为0,即代表v(OUT)=0。
从模拟结果来看,时间10-110ns的输出电压结果是正确的。
时间120-200ns的输入数据为0,反相结果应为1,即代表v(OUT)=1。
从模拟结果来看,如图2.41所示,时间120-200ns的输出电压结果是正确的。
(16)时间分析:
反相器的瞬时分析除了可以由波形看出其输入随时间变化造成的输出变化以外,还可以运用measure指令计算出信号的延迟或上升与下降时间。
在此先分析一下输出电压v(OUT)的下降时间,输出电压的计算方式为从最大稳定电压的90%降到最大稳定电压的10%所花的时间,本范例中最大稳定电压为5V,故最大稳定电压的90%为4.5V,而最大电压的10%为0.5V,本范例选取第二个下降波形来进行计算。
在inv_tran.sp中加入measure指令,方法为:
选择Edit---InsertCommand命令,打开T-SpiceCommandTool对话框,选择左边列表框中的Output选项,右边出现7个选项,可直接单击Measure按钮,出现的对话框如图2.42所示。
图2.42时间分析
在右边出现的Analysistype下拉列表中选择Transient选项,在Measurementresultname文本框中输入分析的项目名称“falltime”,在Measurementtype下拉列表中选择的计算方式为Difference。
在Trigger选项组中选择Whensignal单选按钮,设定当信号v(OUT)的第二个下降波形从4.5V时开始计算,即在Whensignal单选按钮后的文本框中输入“v(OUT)”,在on下拉列表中选择fall选项,在crossesvalue文本框中输入“4.5”,在number下拉列表中选择2选项。
在Target选项组设定信号v(OUT)的第二个下降波形的0.5V为下降时间计算的截止处,即在Whensignal单选按钮后面的文本框中输入“v(OUT)”,在on下拉列表中选择fall选项,在crossesvalue文本框中输入“0.5”,在number下拉列表中选择2选项。
最后单击InsertCommand按钮,则会出现默认的以红色字开头的“.measuretrapfalltimetrigv(OUT)va1=4.5fall=2targv(OUT)val=0.5fall=2”,如图2.43所示。
图2.43时间分析设定结果
(17)进行模拟:
选择Simulate---StartSimulation命令,或单击按钮,打开RunSimulation对话框,单击StartSimulation按钮,则会出现模拟结果的报告“SimulationStatus”,并会自动打开W-Editor窗口来观看模拟波形图。
(18)观看时间分析结果:
在T-Spice环境下打开模拟结果inv_tran.out报告文件观看下降时间的计算结果,如图2.44所示。
图2.44时间分析结果报告文件
从报告文件中可以看到Trigger的时间在2.0338e-7s,而Target时间为2.0509e-7s,其间的差即下降时间Falltime为1.7102e-9s。
(19)根据步骤(16)中的方法加入测试上升时间(tr)、从输入到输出的延迟(tpHL,tpLH),并手工计算反相器的门延迟tp。
(20)在S-Edit中打开ex3.sdb文件,选中反相器当中的nmos或者pmos晶体管,选择Edit---EditObject命令,按(21)中的要求修改Properties中晶体管的宽度W,保存后重新进行反相器的瞬态分析,并测量输出的下降延迟(tf)、上升时间(tr)、从输入到输出的延迟(tpHL,tpLH),并计算反相器的门延迟tp。
观察晶体管大小改变后对延迟的影响。
另:
晶体管的宽度W也可以在inv_tran.sp文件中直接改变M1或者M2描述语句中W后的数值。
(21)晶体管宽度W修改要求:
示例中nmos晶体管M1和pmos晶体管M2大小相同,长L=2,宽W=22。
修改时要求(I)修改pmos晶体管M2的宽度,nmos晶体管M1大小保持不变,使得M1M2。
3、反相器直流分析:
(1)打开S-Edit程序:
依照第2章或第3章的方式打开S-Edit程序,S-Edit会自动将工文件命名为File0.sdb,并显示在窗口的标题栏上,如图2.45所示。
图2.45S-Edit标题栏
(2)环境设定:
S-Edit默认的工作环境是黑底白线,但可以像第2章的步骤来设定自己喜欢的颜色。
(3)另存新文件:
选择File---SaveAs命令,打开“另存为”对话框,在“保存在”列表框中选取保存的目录,在“文件名”文本框中输入新文件的名称,如Ex4。
由于在本章中所使用的电路需要一个反相器及其电源,读者可自行绘制如第3章所示的反相器电路,或从文件Ex2复制反相器的模块到Ex4文件,再对加入的工作电源做适当的修改即可,如下面的步骤所示。
(4)复制inv模块:
将inv模块从Ex2文件中复制至Ex4文件的方法可参考第4章的相关内容。
(5)打开inv模块:
由于步骤(4)的复制模块的动作,只是在Ex4文件中