CADENCE全定制IC设计流程.docx
《CADENCE全定制IC设计流程.docx》由会员分享,可在线阅读,更多相关《CADENCE全定制IC设计流程.docx(29页珍藏版)》请在冰豆网上搜索。
CADENCE全定制IC设计流程
1.CADENCE全定制IC设计流程
§1.1全定制IC设计
Cadence定制IC设计流程向用户提供数字,数模及数模混合电路设计和版图设计与版图设计与验证的全套工具,利用Composer可以进行个层次的电路输入;AnalogArtist仿真环境提供多种电路仿真工具与Cadence环境接口;利用Spectre电路仿真器可以进行电路仿真与分析,以确保电路的正确性;Virtuoso提供版图编辑功能;利用LayoutSynthesis可以进行模字mos电路的自动版图设计,利用DLE与ICcraftsman可以进行模拟或数模混合电路的版图设计,Diva,Dracula,Vampire三种版图验证工具可以对不同规模的电路进行版图验证,以确保版图与电路的一致性。
利用上述工具,你可以很方便地将设计转化为现实。
下面给出全定制IC设计的流程图。
2.CadencecdsSPICE的使用说明
CadencecdsSPICE也是众多使用SPICE内核的电路模拟软件之一。
因此他在使用上会有部分同我们平时所用到的PSPICE相同。
这里我将侧重讲一下它的一些特殊用法。
§2-1进入Cadence软件包
一.在工作站上使用
在命令行中(提示符后,如:
ZUEDA22>)键入以下命令
icfb&↙(回车键),其中&表示后台工作。
Icfb调出Cadence软件。
出现的主窗口如图2-1-1所示:
图2-1-1Candence主窗口
二.在PC机上使用
1)将PC机的颜色属性改为256色(这一步必须);
2)打开Exceed软件,一般选用xstart软件,以下是使用步骤:
startmethod选择REXEC(TCP-IP),Programm选择Xwindow。
Host选择10.13.71.32或10.13.71.33。
hosttype选择sun。
并点击后面的按钮,在弹出菜单中选择commandtool。
确认选择完毕后,点击run!
3)在提示符ZDASIC22>下键入:
setenvDISPLAY本机ip:
0.0(回车)
4)在命令行中(提示符后,如:
ZUEDA22>)键入以下命令
icfb&↙(回车键)
即进入cadence中。
出现的主窗口如图1-1-1所示。
以上是使用xstart登陆cadance的方法。
在使用其他软件登陆cadance时,可能在登录前要修改文件.cshrc,方法如下:
在提示符下输入如下命令:
vi.cshrc↙(进入全屏幕编辑程序vi)
将光标移至setevnDISPLAYZDASIC22:
0.0处,将“ZDASIC22”改为PC机的IP,其它不变(重新回到服务器上运行时,还需按原样改回)。
改完后存盘退出。
然后输入如下命令:
source.cshrc↙(重新载入该文件)
以下介绍一下全屏幕编辑程序vi的一些使用方法:
vi使用了两种状态,一是指令态(CommandMode),另一是插入态(InsertMode)。
当vi处于指令态时,打入的内容会视作指令来解释;而当vi处于插入态时,就可以打入正文(text)文件;大多数vi指令是单字符的。
由插入态改变为指令态,按〈Esc〉键;而由命令态转为插入态,则可以使用下面的插入令,直接打入,无需再按〈Return〉键。
在vi的指令态下,用h,j,k,l键移动光标,具体如下:
h——光标左移一个字符;
j——光标向下一行;
k——光标向上一行;
l——光标右移一个字符;
以下是一些基本插入命令(须用到的)的用法:
i——在光标处插入正文;
x——删除光标处的字符;
:
wq——存盘退出;
要记著一点,在插入态处,不能打入指令,必需先按〈Esc〉键,返回指令态。
假若户不知身处何态,也可以按〈Esc〉键,不管处于何态,都会返回指令态其它的一些命令请读者自己参阅有关的书籍。
§2-2建立可进行SPICE模拟的单元文件
主窗口分为信息窗口CIW、命令行以及主菜单。
信息窗口会给出一些系统信息(如出错信息,程序运行情况等)。
在命令行中可以输入某些命令。
如我们调用Cadence的命令icfb和一些其它命令,比较重要的有调出帮助文件的openbook&等。
一.File菜单
在File菜单下,主要的菜单项有New、Open、Exit等。
在具体解释之前我们不妨先理顺一下以下几个关系。
library(库)的地位相当于文件夹,它用来存放一整个设计的所有数据,像一些子单元(cell)以及子单元(cell)中的多种视图(view)。
Cell(单元)可以是一个简单的单元,像一个与非门,也可以是比较复杂的单元(由symbol搭建而成)。
View则包含多种类型,常用的有schamatic,symbol,layout,extracted,ivpcell等等,他们各自代表什么意思以后将会一一提到。
New菜单项的子菜单下有Library、Cellview两项。
Library项打开NewLibrary窗口,Cellview项打开CreateNewFile窗口,如图1-2-1和1-2-2所示。
图2-2-1NewLibrary窗口
图2-2-2CreateNewFile窗口
1)建立库(library):
窗口分Library和TechnologyFile两部分。
Library部分有Name和Directory两项,分别输入要建立的Library的名称和路径。
如果只建立进行SPICE模拟的线路图,Technology部分选择Don’tneedatechfile选项。
如果在库中要创立掩模版或其它的物理数据(即要建立除了schematic外的一些view),则须选择Compileanewtechfile(建立新的techfile)或Attachtoanexistingtechfile(使用原有的techfile)。
2)建立单元文件(cell):
在LibraryName中选择存放新文件的库,在CellName中输入名称,然后在Tool选项中选择Composer-Schematic工具(进行SPICE模拟),在ViewName中就会自动填上相应的ViewName——schematic。
当然在Tool工具中还有很多别的工具,常用的象Composer-symbol、virtuoso-layout等,分别建立的是symbol、layout的视图(view)。
在Librarypathfile中,是系统自建的librarypathfile文件的路径及名称(保存相关库的名称及路径)。
Open菜单项打开相应的OpenFile窗口,如图2-2-3所示。
在LibraryName中选择库名,在CellNames中选择需要打开的单元名。
Mode项可以选择打开方式——可编辑状态或者只读状态。
图2-2-3OpenFile窗口
Exit项退出Cadence软件包。
二.Tools菜单
在Tools菜单下,主要的菜单项有LibraryManager、LibraryPathEditor等。
LibraryManager项打开的是库管理器(LibraryManager)窗口,如图1-2-4所示。
图2-2-4LibraryManager窗口
在窗口的各部分中,分别显示的是Library、Category、Cell、View相应的内容。
双击需要打开的view名(或同时按住鼠标左右键从弹出菜单中选择Open项)即可以打开相应的文件。
同样在librarymanager中也可以建立library和cell。
具体方法是点击file,在下拉菜单中选择library或cell即可。
LibraryPathEditor项打开的是LibraryPathEditor窗口,如图2-2-5所示。
从File菜单中选择AddLibrary项,填入相应的库名和路径名,即可包括入相应的库。
图2-2-5LibraryPathEditor窗口
三.TechnologyFile菜单
这个菜单中的最后一项EditLayers可以使用在版图编辑中,用来修改原始图层的一些属性。
选择主窗口的File→Open→Openfile,打开相应的文件,即进入了Composer-SchematicEditing窗口,如图1-3-1所示。
窗口左边的按钮分别(从上到下)为CheckandSave(检查并存盘)、Save(存盘)、Zoomoutby2(放
图2-3-1Composer-SchematicEditing窗口
大两倍)、Zoominby2(缩小两倍)、Stretch(延伸)、Copy(拷贝)、Delete(删除)、Undo(取消)、Property(属性)、Component(加元件)、Wire(Narrow)(画细线)、Wire(Wide)(画粗线)、Pin(管脚)、Cmdoptions、Repeat(重复),这些分别可以在菜单中找到相应的菜单项。
选择Add/Component菜单,打开相应添加元件的窗口,如图1-3-2所示。
点击Browse,会弹出librarymanager窗口,一些常用的元器件都在Analoglib库中。
ViewName一般选择symbol,instanceNames不用自己填,系统会自己加上去。
添加完元件后需设定元件的模型名称(如果必须的话)以及一些参数的值,特别是mos管和三极管,一定要填modelname,
图1-3-2添加元件窗口
否则在模拟时会出错(我们一般使用华晶的元件model)。
填好后,就可以将元件添加到Editing的编辑窗口中去了。
其它的一些连线、移动、删除、复制的操作和一般的EDA工具差不多,这儿就不一一再说了。
还有一点要提到的是,对于交叉相连的两条线,系统会有警告,可对连线稍作修改去除这个警告。
注:
以下是一些常用的快捷键:
i——添加元件,即打开添加元件的窗口;
[——缩小两倍;
]——扩大两倍;
w——连线(细线);
f——全图显示;
p——查看元件属性。
从一种状态转为另一种状态,按escape,或直接点击图标或使用快捷键。
为了使电路图更加明了,一般在电路的输入输出部分加上pin脚。
这在后面的例子中将会提到。
§2-4模拟的设置(重点)
Composer-schamatic界面中的Tools→AnalogArtist项可以打开AnalogArtistSimulation
图2-4-1AnalogArtistSimulation窗口
窗口,如图2-4-1所示。
这是模拟时用到的主要工具,接下去主要介绍一下有关的内容。
一.Session菜单
包括SchematicWindow、SaveState、LoadState、Options、Reset、Quit等菜单项。
Schematicwindow项回到电路图;SaveState项打开相应的窗口,保存当前所设定的模拟所用到的各种
图2-4-2SaveState窗口
参数。
如图2-4-2所示。
窗口中的两项分别为状态名和选择需保存的内容。
LoadState打开相应的窗口,加载已经保存的状态。
Reset重置analogartist。
相当于重新打开一个模拟窗口。
二.Setup菜单
包括Design、Simulator/directory/host、Temperature、ModelPath等菜单项:
Design项选择所要模拟的线路图。
Simulator/directory/host项选择模拟使用的模型,系统提供的选项有cdsSpice、hspiceS、spectreS等等。
我们一般用到的是cdsSpice和spectreS。
其中采用spectreS进行的模拟更加精确。
下面我们只以这两种工具为例说明。
Temperature打开如图2-4-3的窗口,可以设置模拟时的温度。
图2-4-3温度设置窗口
ModelPath打开如图2-4-4的窗口,设置元件模型的路径。
系统会自动在所设定的路径下寻找器件modelname对应的model模型。
图2-4-4模型路径设置窗口
三.Analyses菜单
选择模拟类型。
在cdsSpice下有ac、dc、tran、noise四个选项,分别对应的是交流分析、直流分析、瞬态分析和噪声分析。
我们知道:
交流分析是分析电流(电压)和频率之间的关系,因此在参数范围选择时是选择频率。
直流分析是分析电流(电压)和电流(电压)间的关系。
Tran分析是分析参量值随时间变化的曲线。
他们分别的窗口如下图所示。
其设置很直观,这里就不在赘述。
图2-4-5瞬态分析设置
图2-4-6交流分析设置
图1-4-7直流分析设置
而在spectreS中,可供选择的分析类型有很多,常用的还是ac、dc、tran和noise,不过它们设置与cdsSpice不同。
Tran的设置只需填入模拟停止时间即可。
ac和dc分析的设置则更具特点:
spectreS提供了变量扫描功能(和参量扫描有些类似),其中可供选择的变量(parameter)有frequency(ac分析)、temperature、componentparameter和modelparameter。
以下一一说明:
在ac分析扫描频率(常规分析)时,只需填入起始频率和终止频率即可。
而在扫描其他参数时,必须将整个电路固定在一个工作频率(atfrequency)上,然后进行其它选择。
要进行componentparameter扫描时,先点击selectcomponent,然后在电路图上选择所需扫描的器件,这时会弹出一个列有可供扫描参量名称的菜单,在其上选择即可。
进行modelparameter扫描时只需填入modelname和parametername即可。
当然,以上扫描都免不了要填写扫描范围,就不多说了。
以下是一些图示:
四.Variables菜单
包括Edit等子菜单项。
Edit项打开如图2-4-5的窗口。
可以对变量进行添加、删除、查找、复制等操作。
变量(variables)既可以是电路中元器件的某一个参量,也可以是一个表达式。
变量将在参量扫描(parametricanalysis)时用到,以下会提到。
图2-4-5变量编辑窗口
五.其它有关的菜单项
1)Tools/ParametricAnalysis子菜单可以打开如图1-4-6的窗口。
它提供了一种很重要
的分析方法——参量分析的方法,也即参量扫描。
可以对温度,用户自定义的变量(variables)进行扫描,从而找出最合适的值。
以下详细说明:
图2-4-6参量分析窗口
参量扫描
在模拟中,如果对某一元件的参数大小不确定,不知值取多大可以得到最优的结果时,可以将该参数设为变量,进行变量扫描,比较输出结果,从而确定参数的值。
另外,对系统变量也可以进行扫描,如温度变量(temp)。
步骤:
a.在EditVariables窗口中添加新的变量,如是对系统变量(如温度)扫描,就略去这一步;
b.在ParametricAnalysis窗口(如图1-4-5所示)中,填入变量名称(温度变量是temp),设定扫描范围以及步长等。
也可以点击setup,在picknameforvariables的弹出菜单中选择所需扫描的参量(除系统参量外,菜单中所列举的都是variables中设置的变量)。
其实这个工作和我们前面提到的spectreS中的变量扫描很象,不过它更加完备(因为可以对一个表达式进行扫描),所以读者应当将两种方法都掌握。
然后运行Analysis菜单下的start子菜单,开始模拟,模拟结果会在Waveform窗口中显示。
2)Outputs/Tobeplotted/selectedonschematic子菜单用来在电路原理图上选取要显示的波形(点击连线选取节点电压,点击元件端点选取节点电流),这个菜单比较常用。
当然我们需要输出的有时不仅仅是电流、电压,还有一些更高级的。
比如说:
带宽、增益等需要计算的值,这时我们可以在Outputs/setup中设定其名称和表达式。
在运行模拟之后,这些输出将会很直观的显示出来。
举个例子:
标识3db的点,我们用到的表达式如下:
bandwidth(VF(“/Out),3,“low”)。
需要注意的是:
表达式一般都是通过计算器(caculator)输入的。
Cadance自带的计算器功能强大,除了输入一些普通表达式以外,还自带有一些特殊表达式,如bandwidth、average等等。
本文在最后会对计算器作介绍。
下面介绍一下analogartist窗口的情况,在AnalogArtist窗口中靠右的一列按钮分别是:
ChooseDesign:
选择模拟的电路;
ChooseAnalyses(选择模拟的类型):
瞬态模拟、直流模拟或交流模拟;
EditVariables(变量编辑):
打开变量编辑窗口;
SetupOutputs:
输出设置;
Delete:
删除变量等;
RunSimulation:
开始模拟;
StopSimulation:
停止模拟;
PlotOutputs:
波形输出。
§1-5模拟结果的显示以及处理
在模拟有了结果之后,如果设定的output有plot属性的话,系统会自动调出waveform窗口,并显示outputs的波形。
如图2-5-1所示。
图2-5-1波形显示窗口
其左边的一列按钮分别为:
Delete(删除):
删除图中的某个波形;
Move(移动):
移动某个波形的位置,可以把几个波形叠加在一个坐标轴下;点击该按钮,然后点击需要移动的波形,再在目的地点击左键,即可完成移动操作;
Undo(取消):
取消前一次操作;
CrosshairMarkerA、CrosshairMarkerB:
十字标志A和B;
Calculator(计算器):
计算器工具(可以对输出波形进行特定的处理);
SwitchAxisMode(坐标轴模式切换):
同一坐标显示所有波形或分别在各自的坐标下显示;
AddSubwindow:
添加子窗口。
§1-6一个例子——D触发器
1、电路图的输入
这是一个带R清零端(低电平有效)的D触发器,由20个MOS管组成,其中NMOS管和PMOS管各为10个,组成四个传输门、两个反门和两个与非门。
具体的电路如图2-6-1
图2-6-1D触发器电路图
D触发器真值表
时钟(clk)
D
Q
0
X
Q
1
0
0
1
1
1
其中的一些参数设置如下:
传输门的PMOS:
W——30μ,L——3μ;model:
hj3p(在models目录下)
NMOS:
W——15μ,L——3μ;model:
hj3n;
与非门的PMOS:
W——30μ,L——3μ;
NMOS:
W——30μ,L——3μ;
非门的PMOS:
W——30μ,L——3μ;
NMOS:
W——15μ,L——3μ;
电源直流电压:
5.7V;
R端的信号源(R):
cellname——vpwl;
Numberofpairsofpoints——3(信号源波形上有三个转折点);
Time1——0s;
Voltage1——0V;
Time2——100μs;
Voltage2——0V;
Time3——105μs;
Voltage3——5V;
Delaytime——500ns;
时钟信号(clk):
时钟信号的反(clkbar):
cellname——vpulse;cellname——vpulse;
Voltage1——0V;Voltage1——5V;
Voltage2——5V;Voltage2——0V;
Delaytime——5μs;Delaytime——5μs;
Risetime——5μs;Risetime——5μs;
Pulsetime——100μs;Pulsetime——100μs;
Periodtime——200μs;Periodtime——200μs;
D端输入(D):
cellname——vpulse;
Voltage1——0V;
Voltage2——5V;
Delaytime——5μs;
Risetime——5μs;
Pulsetime——100μs;
Periodtime——200μs;
瞬态分析设置如下:
From:
0to:
1msby:
1μs
得到的波形如图2-6-2所示:
图1-6-2cdsSPICE模拟结果1
可以看到模拟的结果符合D触发器的逻辑。
但是有一个问题出现了,注意到我们所设的时间是从0→1ms,但是输出的模拟结果到600μs左右就截止了,这是和模拟的工具有关。
为了得到较好的模拟结果,可以换一种工具——spectreS来完成模拟。
在AnalogArtistSimulation窗口中选Setup下的Simulator/directory/host子菜单,出现如图1-6-3的设置窗口。
在Simulator项中选择spectreS工具。
然后在ChoosingAnalyses弹出的设置窗口中设定stoptime为1ms,模拟的结果如图1-6-4所示,将得到一个很好的结果。
。
图1-6-3选择模拟工具窗口
图1-6-4spedtreS模拟结果
§2-7分模块模拟(建立子模块)
在电路越来越复杂的情况下,如果再花时间去建立一个象D触发器这样复杂的schamatic,明显会使工作更繁复。
因此我们在建立了一个子电路后,可以将其看作一个整体,建立一个模块,即建立一个symbol(viewname),放在用户自己库里的作为一个器件(component)来用。
下面通过子模块非门的建立,来说明这一内容。
在LibraryManager中分别建立非门not(cell)的schematic(view)和symbol(view),如图1-7-1(a)和1-7-1(b)所示。
两者的PIN的名称必须一致,这样才能建立起一一对应的关系。
图1-7-1(a)图1-7-1(b)
建立symbol(view)的步骤:
在LibraryManager中新建cell,在如图1-2-2的窗口的Tool项选择Composer-symbol,即建立的是symbol(view);
用子菜单Add/Shape/Line和Add/Shape/Circle的命令画出如右图的形状;
用子菜单Add/label的命令添加标签[@instanceName];
用子菜单Add/SelectionBox命令添加选择框。
另一种建立symbol(view)的方法是:
打开not(cell)的schematic(view),用子菜单Design/CreateCellview/FromCellview命令。
出现以下的窗口,如图1-7-2
图2-7-2从一个view建立另一个view
输入相应的名称后,单击OK,就出现如图1-7-3的选项窗口。
其建立的symbol如图1-7-4所示,如果不是建立有常用符号的子模块,如与门,非