软件实验教程
2006年4月
实验一 自上而下(Top-Down)的电路设计
Lab 1.1 启动软件
实验目的:
掌握如何启动模拟电路设计环境.
实验步骤:
1.进入Linux界面后,点击鼠标右键,选中New Terminal,则会弹出一个交互终端.
2.进入教程所在目录后,输入命令 cd Artist446 (注意:cd后必须有空格;命令行大小写敏感)
3.在同一个交互终端内,输入命令icms &,在屏幕底部会出现一个命令交互窗(Command Interpreter Window,CIW).如果出现What’s New窗口,可使用File-Close命令关闭.
Lab 1.2 自上而下的系统级仿真
实验目的:
掌握如何对含AHDL模块的模块级设计进行仿真.
实验步骤:
1.在CIW中选择Tool-Library Manager,会弹出库管理器(Library Manager).
2.在库管理器中,用鼠标左键选中training,则cell中会显示出training库中所有的cell;在training的所有cell中用左键选中peakTestv;用鼠标中键(或右键)打开(open)view中的schematic.将会出现如下图所示的测试电路:
3.将鼠标置于图中peakDetectv模块上,当该模块四周出现一高亮黄色虚线框时,点击左键选中该模块,则模块四周线框变为白色实线框.
4.选择Design-Hierarchy-Descend Edit,弹出Descend对话框,将View Name设置为schematic,然后点击OK.则出现peakDetectv模块的电路图:
分析该电路图,图中有两个运算放大器,两个二极管,一个nmos晶体管和一个电阻.除了电阻和nmos器件,所有其余的器件都是用Verilog-A(一种模拟HDL语言)编写的.
使用Verilog-A语言支持自上而下的设计方法.
5.选中peakDetectv电路图中的Ampv模块,Design-Hierachy-Descend Edit,在Descend对话框中将View Name设置为veriloga,点击OK.将出现文本编辑窗,可对窗内的文本进行编辑.退出该编辑窗可敲击键盘左上角的Esc键,然后在文本编辑窗中输入:q!,回车即可.
6.在电路图窗口选择Tool-Analog Environment,弹出模拟设计环境仿真(Analog Design Environment Simulation)窗口,同时可再次弹出peakTestv电路图.
7.在该仿真窗口中选择Setup-Simulator/Directory/Host;在随后出现的Choosing Simulator对话框中,将仿真器(Simulator)设置为spectre,点击OK.
8.在该仿真窗口中选择Setup-Model Libraries,弹出模型库建立(Models Library Setup)对话框;如图,在该对话框的Model Library File中如图输入后,点击Add,然后OK.
9.在该仿真窗口中,点击Choose Analysest图标,弹出Choosing Analyses框;如图所示,选择tran和Enabled,截止时间写入390u;然后点击OK
10.如步骤4所示,打开peakDetectv的电路图,并在仿真窗口中选择Outputs-To Be Plotted-Select On Schematic.按照电路图窗口底部的命令行提示,左键选中图中与标有vinput,vcap和vcontrol的管脚相连的连线,这些被选中的连线会以特殊的颜色显现出来.
11.将鼠标置于电路图窗口中,点击Esc键.注意在仿真窗口输出部分的更新信息是否如下图所示:信号vcontrol的名字是I54/vcontrol.
12.在仿真窗口中选择Simulation-Netlist and Run开始仿真,或者可以点击右侧Netlist and Run图标,仿真成功后会自动输出如下曲线:
13.退出仿真窗口,选择Session-Quit.
14.退出电路图窗口,选择Windou-Close;在弹出的Save Change框中点击No.
15.在被仿真环境激活的窗口中,选择File-Close Window,退出仿真环境.
Lab 1.3 电路图输入
实验目的:
掌握如何创建一个库,如何创建一个双极CMOS(Bi-CMOS)运算放大器.
实验步骤:
1.在CIW窗口中,选择File-New-Library;在弹出的New Library框中,确认Directory下的路径被设置为~/Artist446(~可以被扩展为绝对路径),并选择Don’t need a techfile,如图所示:
2.点击OK.并在库管理器窗口中确认mylib库已经列入其中.
3.在CIW或库管理器中选择File-New-Cellview,如下图所示建立新文件:
4.点击OK.弹出一个空白的电路编辑窗口,用于下面步骤中放大器设计图的输入
5.在该电路编辑窗口中,点击左侧的Instance图标,弹出添加器件(Add Instance)对话框.确认框中的View Name设置为symbol.按照下面表格输入欲添加器件的器件参数,并点击左键将器件置于图中适宜位置.或可使用框中Browse键添加器件.
Library Name | Cell Name | PROPERTIES/COMMENTS |
analogLib | pnp | For Q2,Q3,Q4:Model Name=trpnp(no quotes) |
analogLib | npn | For Q0,Q1:Model Name=trnpn(no quotes) |
analogLib | pmos4 | For M1:Model Name=trpmos(no quotes) |
Length=8u,Width=iPar("l")*16 | ||
analogLib | pmos4 | For M3:Model Name=trpmos(no quotes) |
Length=iPar("w")/16,Width=128u | ||
analogLib | nmos4 | For M2,M5:Model Name=trnmos,Width=100u, |
Length=10u | ||
analogLib | res | Resistance=2.5K |
analogLib | cap | Capacitance=CAP(Design Variable) |
analogLib | vdd,vss |
6.器件放置完毕后,点击器件添加对话框中的Cancel键,或鼠标置于电路图窗口中时敲击Esc键.
7.点击电路图窗口的添加管脚图标,弹出添加管脚(Add Pin)对话框;严格按照顺序依次输入管脚名称(各名称间需留有空格),Direction设置为input,Usage设置为schematic,如下图所示:
用左键将管脚置于图中合适位置(可使用右键调整管脚方向).
8.点击细连线图标,并用左键完成器件间连线.点击命令选项图标或F3调整连线参数(建议将Draw Mode设置为route,将Route Method设置为full);连线完毕后,将鼠标箭头置于电路图中,敲击Esc键即可退出连线模式.
9.点击添加连线名称图标,在添加连线名称对话框中依次输入连线名称vdd!gnode(之间需留有空格),用左键在电路图中添加连线名称.vdd!添加到M1和M2基极连线上,gnode添加到M5和M2的栅极连线上(注:标有!代表为全局变量).将鼠标箭头置于电路图中,敲击Esc键即可退出添加连线名称模式.
10.最终可得电路图如下图所示:
11.点击左侧检查并存图图标.观察CIW的输出区域(如下图所示)表明无错误,并已正确存图.
Lab 1.4 模块的创建
实验目的:
掌握如何为一个双极CMOS(Bi-CMOS)运算放大器创建模块.
实验步骤:
1.在运放的电路图中选择Design-Create Cellview-From Cellview,弹出Cellview From Cellview对话框.激活对话框中的Edit Options选项后,可对模块的外观进行调整.
2.确认From View Name设置为schematic,To View Name设置为symbol,Tool/Data Type设置为Composer-Symbol.如下图所示:
3.点击OK.弹出模块生成(Symbol Generation)对话框,并在该框内进行管脚规格的调整.如下图所示:
4.点击OK.一个新的窗口内会自动生成一个放大器模块,如图:
(图a)
观察CIW输出框,可知一个模拟器件描述格式(analog Component Description,CDF)已经生成.
可进一步将上图中的模拟器件外观调整为如下图中所示:
(图b)
5.左键选中图a中绿色矩形框,点击删除图标;选择Add-Shape-Polygon,按照电路图底部的提示,在图中画上三角形外观.如果对所画线条不满意,可使用Backspace键删除刚画出的最后一条线.画完最后一笔时,双击鼠标左键即可完成画图.
6.点击电路图窗口中的移动(Move)图标,并将inp管脚移至图b中所示位置.再用类似方法移动inm和iref管脚.
7.用Edit-Rotate命令,按照电路图底部的提示旋转iref标签,并用Move移动到合适的位置.
8.左键选定标签cdsParam(3)并删除.
9.左键选中整个红色矩形框,并删除.
10.点击Selection Box图标,或选择Add-Selection Box.在Add Selection Box对话框中点击Automatic,则自动添加生成一个红色选择框.
11.选择伸展(Stretch)图标,调整iref管脚的长度以适合新的选择框.可能需要再次移动iref和cdsTerm(“iref”)标签.
12.利用shift键,同时选中cdsParam(1)和cdsParam(2)标签,并将它们移到图b中所示的位置.
13.将cdsName()标签移到图b所示位置.
14.可选择Add-Note-Note Text在电路图中添加必要的说明文档.
Lab 1.5 电源的创建
实验目的:
掌握如何创建一个电源来为电路供电
实验步骤:
1.在CIW或库管理器中选择File-New-Cellview,建立如下对话框:
2.点击OK.弹出一个空白电路图编辑窗用于输入电源设计电路.
3.在电路图编辑窗中,选择Design-Create Cellview-From Cellview,在弹出的Cellview From Cellview框中点击OK;弹出”模块生成选项”(Symbol Generation Options)框. 如下图所示,在Top Pins后填入VDD VSS后点击OK.
4.注意观察CIW输出信息表明一个模拟CDF已经生成.同时弹出的窗口中显示出生成的电源模块.如下图:
5.将上图调整为如下图所示,并在编辑完成后保存(Save)模块;选择Window-Close退出电路图编辑窗即可.
Lab 1.6 建立运放测试电路
实验目的:
用双极CMOS(Bi-COMS)运算放大器建立一个运放测试电路
实验步骤:
1.在CIW或库管理器中选择File-New-Cellview,弹出”创建新文件”(Creat New File)框,并在进行如下设置后点击OK:
2.在弹出的空白电路编辑窗中将建立一个增益为3的运放,具体器件参数见下表:
Library Name | Cell Name | PROPERTIES/COMMENTS |
mylib | amplifier | |
mylib | supply | VDD=5,VSS=-5 |
analogLib | vsin | For V2:AC Magnitude=1,Amplitude=50m, |
Frequency=1M,Offset voltage=0 | ||
analogLib | idc | For 14:DC current=500u |
analogLib | res | For R1:Resistance=20K |
analogLib | res | For R0:Resistance=10K |
analogLib | vdd,vss |
实验二 用Spectre Direct进行模拟仿真
Lab 2.1 运行仿真
实验目的:
对运放测试电路进行仿真
实验步骤:
1.在运放测试电路的电路编辑窗中选择Tools-Analog Environment,弹出模拟电路设计环境仿真窗(Analog Circuit Design Environment Simulation)
2.在仿真窗中选择Setup-Simulator/Directory/Host,确认弹出框中Simulator后设置为spectre后,点击OK.
3.选择Setup-Simulation Files, 确认弹出框中的Include Path后设置为./Model,如下图所示:
可以加入更多的路径,只要在各路径之间插入空格即可.
4.在仿真窗口中,选择Setup-Model Libraries,弹出模型库建立(Model Library Setup)菜单;在该菜单中如下图所示,在Model Library File中输入myModels.scs
5.点击Add,则刚刚输入的路径转移到上面的框中.若想查看这个模型文件的文件内容,则选中该文件,并点击Edit File.如下图所示:
弹出文件内容如下:
使用”Esc : q! 回车”或File-Close均可退出该文件编辑窗.
在Simulation Files Setup框中点击OK,完成模型库的建立.
6.在仿真窗中,点击选择分析图标,弹出”选择分析”(Choosing Analyses)框.
7.为进行瞬态分析(Transient Analysis)进行如下设置,如下图:
1.在Analysis后选择tran;
2.在Stop Time后设置为3u;
3.选中Enabled;
4.点击Apply.
8.为进行交流分析(AC Analysis)进行如下设置,如下图:
a.在Analysis后选择ac;
b.在Sweep Variable下选择Frequency;
c.在Sweep Range下选中Start-Stop,并将扫频范围设置为100-200M;
d.将Sweep Type设置为Logarithmic,选中Points Per Decade后,设置参数为20;
e.选中Enabled;
f.点击Apply.
9.为进行直流分析(DC Analysis)进行如下设置,如下图:
a.在Analysis部分选择dc;
b.在DC Analysis部分,激活Save DC Operating Point;
c.激活Enabled;
10.在Choosing Analyses框中点击OK,完成设置.
11.在仿真窗中点击编辑变量(Edit Variables)图标,弹出编辑设计变量(Editing Design Variables)框.
12.点击该框底部的Copy From键,软件会自动对整个电路设计进行扫描,把找到的所有变量都列在Table of Design Variables下;(如下图所示)
13.在运放设计电路图中找到CAP变量
a.左键选中Teble of Design Variables中的CAP变量后,点击Find(如上图所示)发现图中的运放已被高亮矩形框选中;
b.选择Design-Hierarchy-Descend Edit
c.在弹出框中将View Name设置为schematic,然后点击OK;则弹出运放的电路图结构;
d.再次点击上图中的Find,会看到图中的电容器件已被矩形高亮框选中,即已经在图中找到CAP变量;
e.Design-Hierarchy-Return命令,返回到上层运放测试电路图
14.设置CAP变量的值:如上图所示,选中CAP变量,在Value后输入0.8p;然后点击Change(注意Teble of Design Variables中的参量更新)
15.点击框底部的Copy to,将刚刚设置的值写回电路图中;保存,将该值存在电路图中;
16.点击上图框中的OK或Cancel;在运放测试电路中点击Check and Save,保存设置;
17.在仿真窗中选择Outputs-Save All,弹出保存选项(Save Option)框;确认”选择保存输出信号”(Select signals to output(save))为allpub后,点击OK.如下图所示:
18.在仿真窗口中通过Outputs-To Be Saved-Select On Schematic,选择保存特定终端的电流值.注意运放测试电路图窗口底端的提示.
19.在电路图中点击20K反馈电阻两端,电阻两端被椭圆圈出,表明通过该处的电流值将被保存下来
20.鼠标位于电路图窗中时,敲击Esc,退出选择状态.
21.选择Outputs-To Be Plotted-Select On Schematic,按照电路图窗口底部的提示选中标有vin和out的结点.
22.鼠标位于电路图窗中时,敲击Esc,退出选择状态.注意仿真窗口中的输出部分的信息更新,如下图所示:
23.在仿真窗中,选择Simulation-Netlist-Create.弹出一个显示分层网表的窗口.注意你输入的所有变量和仿真设置在网表中是如何描述的.如果在生成网表的过程中遇到错误,可查看CIW中的输出信息,检查输入的所有数据是否正确.
24.若对电路图加以改动,则要重新生成新的网表Simulation-Netlist-Recreate.
25.选择File-Close Window关闭网表窗口.
26.在仿真窗中选择Simulation-Run,或点击窗口右侧的运行(Run)图标开始仿真.(可以选择Simulation-Netlist and Run或点击Netlist and Run图标,生成网表并仿真)
当仿真开始时,在CIW窗口中有信息出现,同时,弹出一个的Spectre输出窗口,如下图:
可通过File-Close Window关闭这个窗口.
27.当仿真结束后,瞬态响应图和交流分析图自动弹出:
28.在仿真窗中选择Session-Save State,弹出保存状态(Saving State)框;
将Save As设置为state1,并且确认在What to Save后的所有选项均已被选中.
29.点击OK,仿真器的状态被保存下来.
30.如下图所示,用control键同时选中ac和dc,选择Analyses-Disable.可发现ac和dc后面变为”no”,而tran后仍为”yes”
31.双击上图中tran所在行,弹出选择分析(Choosing Analyses)框;点击框底部的Options,弹出瞬态选项(Transient Options)框.将TIME STEP PARAMETERS下的maxstep设置为100p
32.点击Apply.
33.选择Simulation-Run或点击Run图标,开始仿真.
在Spectre的输出窗口中,当看到第一个仿真时间点时点击波形输出图标或选择Result-Plot Outputs-Transient,输出当时的图像;再次点击波形输出图标,观察更新后的输出图像.仿真结束后,波形窗中显示出3u的仿真数据,如下图:
注意:当仿真结束后,要将设置的最大步长100p删除,点击Apply或OK.点击Cancel关闭Choosing Analyses框.
34.在仿真窗中选择Session-Load State;在弹出的Loading State窗中State Name后选择state1;使What to Load下的Waveform Setup失效;点击OK.
35.在运放测试电路图编辑窗中,选择Design-Probe-Remove All,删除所有可能残留的标记仿真结果的彩色探针.
36.File-Close Window关闭仿真输出窗口.
37.保留仿真窗口,波形窗口和所有其他的设计窗口不变.
Lab 2.2 使用激励模板
实验目的:
使用图形激励模板为运放测试电路提供激励
实验步骤:
1.将运放测试电路的左侧部分调整为如图所示,并检查并保存
会看到一条警告信息出现在电路图检查框(Schematic Check box)中.注意电路编辑窗中的闪烁标志,这些标志提示未连接的终端.暂时忽略警告信息,点击Close关闭该窗口.
2.设置输入激励.
在仿真窗中,选择Setup-Stimuli,弹出建立模拟激励(Setup Analog Stimuli)框.确认框中的Stimulus Type设置为Inputs,并按照下图进行参量设置:
3.设置全局激励.
设置Stimulus Type为Global Sources; 分别设置vdd和vss为直流5v,-5v;设置完毕后点击OK.如下图:
4.在仿真窗中选择Simulation-Netlist-Recreate.生成网表.选择File-Close Window关闭网表.
5.选择Simulation-Run或开始仿真,仿真结束后自动弹出波形窗口:
6.将电路图复原到原状态时,若不关闭刚刚创建的激励,则它将和原电路图中的电源并列而出错.所以,选择Setup-Stimuli,在弹出的窗口中将所有的激励输入改为OFF,点击Apply和OK.
7.将电路图恢复为如图所示,并点击检查并保存:
8.在运放测试电路编辑窗中选择Design-Probe-Remove All, 删除所有可能残留的标记仿真结果的彩色探针.
9.在运放测试电路编辑窗中选择Simulation-Netlist-Recreat,弹出网表.选择网表窗中的File-Close Window关闭该网表.
10.选择Simulation-Run或点击,仿真结束后出现波形如下:
如果出现错误信息,检查是否由于某些图形激励仍然处于激活状态(ON).
11.关闭仿真输出窗,保留仿真窗,波形窗和所有其他设计窗口.
Lab 2.3 波形窗的使用
实验目的:
研究波形窗的特点及使用
实验步骤:
1.左键点击子窗口1的数字1,使之高亮显示,再选择Axis-Strips;同样方法对子窗口2进行处理,得到图形如下:
2.选择Trace-Delta Cursor调出测量标尺,并注意观察波形图下方的数字显示:
3.左键双击子窗口右上角的数字,调出图形属性(Graph Attributes);在此框中可进行图形标题和子标题的设置,对坐标系外观进行调整等操作.
4.双击Y轴图标(V)或Axes-Eidt,调出Y轴属性框,可对Y轴属性进行编辑;同理,可双击X轴图标freq(HZ)或Axes-Eidt,调出X轴属性框,可X轴属性进行编辑.
5.直接输出增益和相位曲线:
a.在仿真窗口中,选择Result-Direct Plot-AC Magnitude & Phase
b.按照运放测试电路编辑窗底部的提示,选择图中标有out的结点,保持鼠标置于电路编辑窗中,敲击Esc,弹出增益和相位曲线波形.
6.保存仿真结果:
在仿真窗中,选择Result-Save;在弹出的保存结果(Save Result)框中仅做如下改动即可点击OK:
仿真结果保存在名为original.CAP的目录下.
7.更新设计变量并再次仿真:
a.双击仿真窗口中Design Variables中的CAP,在弹出的编辑设计变量(Editing Design Variables)框中将值改为0.4p
b.点击Apply & Run Simulation
CAP的值更新后,在不生成网表的情况下仿真,因此速度会有所提高.
c.点击编辑设计变量(Editing Design Variables)框中的Cancel.
d.在仿真窗中,选择Result-Save,进行如图更新设置后点击OK
8.载入以前仿真的结果并比较
a.在仿真窗口中选择Result-Select
b.在结果选择(Select Result)窗中,左键双击original.CAP CAP=0.8pF或选中该项后点击OK
仿真窗的底部信息表明original.CAP目录中的数据已经载入到仿真环境中了
Lab 2.4 保存仿真状态
实验目的:
掌握如何保存并恢复一个设计和仿真窗口的状态
实验步骤:
1.在CIW窗口中,选择Option-Save Defaults.
2.如图设置Save Defaults内容后,点击OK:
3.在Cadence软件运行过程中载入一个默认文件,可在CIW中输入envLoadFile(“~/.cdsenv”)
4.在CIW窗口中,选择Option-Save Session.在弹出的Save Session框中不做任何改动,点击OK即可将系统状态保存在特定文件中了.
5.恢复系统状态:
a.在CIW中,选择File-Exit退出设计状态.
b.在交互界面中输入cd ~/Artist446
c.再在同一个交互界面中输入 icms –restore cdsSession.save &
可发现CIW,设计窗,仿真窗和波形窗都复原到屏幕上原来的位置.
6.在恢复的环境中运行仿真:
选择Simulation-Run或Run开始仿真;CIW中的结果报告表明仿真成功,瞬态和交流响应的波形以自动弹出.
7.将所有的仿真窗和运放测试电路窗口保持不变.
Lab 2.5 将仿真结果注释在电路图窗口
实验目的:
掌握如何将仿真结果注释在电路图窗口
实验步骤:
1.从顶层运放测试电路进入运放内部电路,在仿真窗中选择Results-Annotate-DC Operating Points,则所有的静态工作点都注释在每一个器件的旁边,如下图:
2.将静态工作点输出到一个的窗口中:
a.在仿真窗中,选择Result-Print-DC Operating Point;
b.按照电路窗底部的提示选中npn输出晶体管,则结果显示窗中输出所选晶体管的静态工作点
c.选中图中电阻,观察结果输出窗口中的变化
d.注意该结果输出窗口中菜单条中的三个命令:Window,Expressions和Info;使用这些命令可以保存数据,打印数据,重定数据格式并打印,重命名.
e.选择Window-Close关闭结果输出窗口.
f.鼠标置于电路图窗口中,敲击Esc直到在工具提示行中不再有信息出现
3.返回电路顶层运放测试电路;在Save Change对话框中点击No.