视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
模拟集成电路设计实习
2025-09-29 16:33:46 责编:小OO
文档


生产实习

 

课程名称   模拟集成电路设计实习  

学生学院___材料与能源学院_       

专业班级____10微电子2班________

学    号    3110007483           

学生姓名____   何俊鑫 _____      

指导教师_____  贺小勇____________

2014   年   1  月  17  日

模拟集成电路设计实习培训内容介绍

培训目的

1.学会使用数模混合集成电路设计EDA工具进行简单的模拟集成电路设计的流程,包括Cadence的Virtuoso原理图输入、版图设计,Cadence的Spectre电路仿真,及Mentor Graphics的Calibre版图规则检查(DRC)、电路图版图一致性检查(LVS)。

2.学会使用三大常用的仿真方式(DC,AC,以及Transient)来对电路进行性能的验证与设计参数的调整

培训内容

本培训首先设计一个运算放大器,在该放大器中采用了一个理想的电流源做偏置。接着设计一个带隙基准源(Bandgap reference)来提供这个运算放大器中用到的电流源,然后对整个电路进行仿真验证。整个电路Lab_top电原理图以及仿真激励如下图所示。 最后,参加培训的学员要求对所设计的Bandgap reference进行版图设计以及DRC、LVS检查,时间充裕的学员进一步设计运算放大器的版图及对其进行DRC/LVS的检查。

图 1-0 Lab_top 原理图

上图中的运算放大器(opam)电路如下图所示,值得注意的是,该运算放大器需要一个current sink做偏置,该current sink由上图中的NM1来提供。

其中的bandgap电路如下图。

Schematic 到layout的Quick start

一、Schematic (opam)

1. 运行虚拟机vmware;

2. 在虚拟机界面中打开并运行CentOS.vmx;

3. 用户登陆,登录名:eda,登录密码:123456;

4. 界面按鼠标右键->选Open Terminal进入eda根目录下的命令行界面;

5. 输入csh并回车;

6. 输入icfb&命令后台运行Cadence的工具进入icfb界面。

         图1-1  icfb的主界面

 在icfb中,任何一个电路,不论是已经存在的可以引用的库,还是用户新建立的一个电路,都是一个library. 一个library一般有若干个Cell(单元电路),每个cell由多个CellView组成,CellView可以是schematic(电路原理)和layout(版图)或symbol(符号),或者其他Cadence工具所调用的hspiceS等。

7. 导入工艺库文件

二、Spectre仿真 (opam)

(1)直流分析(DC Analyses)

 我们在共模输入管脚接一个可以调节的电压源VCM,使得这个电压源的电压从0升到高到3.3v然后我们测量output端的电压。

             

 从图1-14中的Tools菜单->Analog Environment调出spectre,我们看到一个窗口:

图2-1  spectre仿真界面

这个就是cadence提供的仿真工具,其实,不仅仅包含了spectre。但本文只讨论spectre. 调出spectre后的第一步,是设置模型库。图2-1 setup菜单->model librarys调出模型库设置窗口。

点击Browse找到使用的仿真文件“sm083006-1k.scs”,

Section那栏填入:typical, 然后点击 ADD 。依次在Section栏中加入bjt, capacitor, diode,resistor并点击加入,结果如图:

图2-2 setup result

点击ok,回到spectre的主窗口。

我们在创建库lab_practice的时候已经指定了工艺库为chrt35rf,因此这里的模型库是自动设置好的。

现在我们要进行dc分析的设置了,从analyses菜单->choose调出分析设置窗口。选择DC分析,变化类型选择Component Parameter,Component name 填入 VCM参数为dc ,变化范围是0到3.3(见图2-3).

图2-3 dc分析设置

一切准备就绪,从Simulation菜单选择Netlist and run或点击Netlist and run快捷按钮(像红绿灯).Output波形:

图 2-6 Output波形(结果显示共模输入电平在2.0V以下输出直流工作点基本不变)

(2)AC分析

先进行AC分析激励设置,将输入交流信号V1(正端)和V0(负端)的交流幅值设置为500mV,相位都为0。由于两端反向连接,故反向,差分交流输入的幅值为1V。

图2-7 交流分析激励设置

现在进行分析设置,重新调出图2-3的窗口,这次,我们选择AC分析。

图2-8 ac分析设置

设置频率从1变到1G,点击ok,然后netlist & run:

从spectre的result菜单中选择Direct plot->AC magnitude & phase.

然后会自动切换到schematic窗口,从这里点击output那条连线,致其变色,按“ESC”键。我们看到有两条曲线,一条是以db形式出现的幅频特性图,另外一条是相频特性图。点击一下左边工具条中的倒数第四个,可以把两条曲线分开。

图2-9 输出波形查看设置

图2-10 输出运算放大器的波特图

现在测量一下图2-10中的运算放大器的低频增益(Av0)、3dB带宽(f0)、相位裕度(PM)等参数。有两种测量方法:Trace工具条测量法及calculator精确计算测量法

a)如果想粗略地看一下结果,可以用Trace方法,简单快速。按一下“V”按键,左上角出现一个红色的三角形标记,用鼠标左键按住这个红色三角形,然后向右边拖动到曲线平坦的地方。在白色小窗口内会显示测量的坐标值,可以读出此运放的低频增益。

图2-11 用Trace工具条进行仿真参数的测量,此图读出低频增益为51.27dB

-3dB带宽和相位裕度也可测出。

图2-12 用Trace工具条测量-3dB带宽(51.27dB-3dB=48.27dB),测出为491.11 kHz

图2-13 用Trace工具条测量相位裕度,定义为增益为1(0dB)时对应的相位与-180 oC的距离。先从幅频特性中找出增益为0dB(此处为50.53mdB,近似0dB)对应的频率(123.72MHz),再在相频特性中找出此频率对应的相位,与-180 oC相减即为相位裕度(-122.42 oC -(-180 oC)=57.58 oC)

如果想看一下增益带宽积(GBW),可以另开一个子窗口看低频增益的实际幅值

图2-14 以实际幅值而非dB值显示的幅频特性(因为输入为1.0 V,所以实测低频输出电压值即为放大器的低频增益值,365.98)

b)如果想精确计算仿真结果的参数,则需用Calculator工具。

先Edit/Delete 删除第二个子窗口,只留下原来的幅频特性和相频特性在一起的图。

Tools/Calculator弹出Calculator窗口

图2-15 Calculator窗口

 选择ac分析,再点击vf选项,去到电路原理图中点击输出点(out),然后在右下白色窗口中选择测量bandwidth,再点击一下Append字样右边的plot按钮就可以计算出仿真波形的-3dB带宽(491500 Hz,约480 kHz)。相位裕度也可用同样的方法计算(选phase margin,测出PM=54.15 oC)

图2-16 用Calculator计算运放的-3dB带宽

三、建立opam的symbol:

整个系统包括上面设计好的运算放大器 (opam) 模块和后面的带隙基准源 (bandgap) 模块。系统的设计采用层次化设计方法:顶层为系统电路,调用opam模块和bandgap模块。而要模块调用的话必须先为设计好的模块建立symbol。

将文件另存opam_simu作为仿真用,对准lab_practice库中的Cell: opam 按鼠标右键,然后选copy,出现图3-1所示的复制单元窗口。

图3-1 将opam另存为opam_simu

重新进入opam文件修改

将电压源、电流源等删除,加pin(快捷键按p),加pin时可以单击鼠标右键对pin旋转。依次加上vdd,GND,Iin,vin+,vin-共五个输入pin,加上之前加的out输出pin,共六个pin。修改后的电路图如图3-2所示。

图3-2 去电压源、电流源,以及gnd,再加相应地pin

从原理图生成symbol,在Virtuoso Schematic Editing窗口中,选择菜单Design->Create Cellview ->From Cellview.

图3-3 从菜单创建symbol

图3-4 在Tool/Data Type一栏中选Composer-Symbol

图3-5 安排pin的位置

图3-5只是pin摆放的一个例子。

图3-6 创建好的opam模块的Symbol

到Library Manager窗口中看看,在lab_practice库中的opam单元中多了一个Symbol。

图3-7 创建的Symbol在Library Manager中体现

四、bandgap模块

由于时间关系,Bandgap模块我们就不画原理图了,直接将lab_practice_demo库中的bandgap_simu单元copy到lab_practice库。

图4-1 将bandgap_simu单元从lab_practice_demo库中copy到lab_practice库中,可以看到,电路中已经加上了电源电压V0 (vsource/dc/3.3 V)和交流仿真激励V1 (vsin/1V/1kHz)。现在进行仿真。

(1)温度系数仿真结果

图4-2 温度从-40到125 oC变化时bandgap电压输出的变化系数仿真设置

图4-3 bandgap温度系数仿真结果

(2) PSRR仿真

在直流VDD的上面加一交流信号(图4-4),设置交流仿真的频率范围(图4-5),看out1信号(图4-6)。

图4-4 PSRR 激励仿真设置图

在直流电源VDD的基础上加一交流信号vdd,模拟电源电压波动对电路输出的影响(电源抑制比,PSRR(dB) = 20log(Vout/VDD))

图4-6 电源抑制比仿真结果

从仿真结果图4-6可知,在频率 < 1 kHz时,PSRR < -35 dB

五、总电路(调用bandgap和opam模块):

将lab_practice库中的bandgap_simu单元copy成bandgap单元,打开bandgap单元电路,删除直流电压源和交流电压源,创建bandgap单元的Symbol。

在lab_practice库中创建顶层系统电路lab_top单元,然后调用bandgap和opam子电路,加上几个PMOS和NMOS管做镜像电流源缓冲,再加上直流电源(V0)、运放的差分共模电压(VCM)及差分输入交流信号激励(VINP、VINN),如图5-1所示。

图5-1 使用bandgap模块和opam模块构成的电路总图

(1)先做瞬态仿真调静态偏置工作点

图5-2做瞬态仿真设置

图5-3 瞬态仿真输出波形选择NM1的漏端(可看NM1的漏极电流)及输出电压(out端)

图5-4 瞬态仿真波形

从图5-4可以看出,0.25us后NM1输出给opam的偏置电流基本保持在54.2 uA。输出电压V(out)则在不断变化,这是由于输入加了1 mV的差分正弦信号引起的。如果要看清楚V(out)的整个变化,只要将仿真截止时间拉长至10 mS以上就可以了,此时,输入激励以及输出响应如图5-5。

图5-5 仿真时间为10mS的瞬态响应波形

(2)再做AC分析

图5-6  AC分析时VINP和VINN设置

由于在lab_top的连接图中,两个输入激励的连接是相反的,这样VINP和VINN就是幅度都为0.5 V但相位相反的正弦信号,从而差分信号(VINP-VINN)为幅值为1.0 V的正弦信号。

图5-7  AC仿真结果

图5-7中左边子窗口可以看出低频增益为365.93。用calculator工具对子窗口 2中的特性进行测量,测得其带宽为493.166 kHz,相位裕度PM = 54.11o

六、画版图

1. 先画bandgap模块,打开library manager,新建版图文件

图6-1 新建bandgap的版图文件

图6-2 进入版图编辑器界面

在版图界面选择Tools/Layout XL打开相应模块的schematic

图6-3 使用Layout XL进行原理图和版图的交互编辑

图6-4将schematic中的元件对应加到layout编辑器中

在Virtuoso XL Layout 中,选择菜单Create/Pick From Schematic,然后鼠标点击schematic中的元件,在layout编辑器中放入。

图6-5刚放入是带框的

图6-6按Shift-F可显示具体信息,Ctrl-F可回框显示。

对应的元件可以这样全部放入layout编辑器中。

布图设计分为两步:元件布局与布线

将多个匹配的元件对齐:

首先将匹配的七个MOS版图水平对齐,方法是Edit/Others/Align然后弹出对齐设置窗口,按图6-7所示设置,然后点击Set New Reference,在Layout中先选中中间MOS版图作为对齐中心,然后依次点击其他六个MOS,这样这七个MOS管就水平对齐了(元件之间空隙为1.0 um)。

图6-7 元件对齐设置

接着垂直方向对齐电阻,在Layout中先选择中间那个电阻作为参考位置,然后依次点击上面和下面的电阻,将它们全部对齐。

最后对齐九个三极管,先将中间三极管位置放好,然后用上面的方法水平和垂直对齐其他三极管,这里Spacings设置为3.0 um

如图:

                   

最后对齐九个三极管,先将中间三极管位置放好,然后用上面的方法水平和垂直对齐其他三极管,这里Spacings设置为3.0 um

如图:

当所有的元件都放进来并对齐位置后,布局就完成了,接下来是布线。

 在对整个版图布线完成之后,要对版图加上pin标示,以便版图与原理图一一对应起来。

按原理图连接关系进行连线,用MET1 drw至MET4 drw四层金属进行连线,各层金属之间的连接通过过孔(Via),MET1和栅多晶(poly2)之间用接触孔(contact)进行连接。加接触孔和过孔的方法是:按“o”,选择不同的过孔或接触孔,如metal1-poly2或m1-m2等。

如图:

图6-10 给PM65、PM66、PM68、PM69四个PMOS加保护环(guardring)

图6-11  bandgap layout

Calibre的quickstart

一、DRC

1. 做bandgap的drc。

Virtuoso界面菜单最右边Calibre/Run DRC,出现如图1所示界面

图1  DRC运行界面

在wzh_lab/verify/drc目录中创建目录bandgap,然后将drc的工作目录设为bandgap目录,如图2所示。

然后按图2中的Run DRC按钮,稍等片刻,出现图3所示的DRC检查结果。

图2 设定工作目录和DRC文件

图3 DRC运行结果

多次修改错误及重新run DRC,至最后除了金属密度之外无其他错误。

图4  DRC成功界面

二、Layout VS Netlist (LVS)

由于要设置工艺对比文件,请做如下步骤:

1.退出刚刚做的DRC环境,同时退出icfb

2.在eda目录下,建立工艺库特性比较文件, 请键入

source  /home/eda/wzh_lab/Library/chartered0.35/sourceme

如果有错误提示,请在source 该文件前,先键入csh,回车后在键入上述命令。

3.重新进入icfb,export schematic电路的netlist(取名bandgap.cdl)至/home/eda/wzh_lab/verify/lvs/netlist目录中;

 方法:icfb主界面,File/Export/CDL,如图5所示,随即进入图6所示的界面,填入top cell name项、output file项及run directory项,ok之后如出现图7所示信息则表示电路网表导出成功。

图5 导出电路网表菜单操作

输出netlist文件的文件名

输出文件的路径

图6 导出电路网表界面

图7 网表导出成功提示界面

提示: 如果输出netlist(在本例子中为bandgap.cdl)不成功, 请再打开schematic,并点击 check&save   后重新输出netlist

成功输出原理图netlist后就可以运行LVS了。与DRC一样,我们采用Calibre软件来进行LVS检查。 LVS检查指的是检查所设计的版图跟所设计的原理图是否一致。Calibre LVS检查是将版图以及原理图输出的网表进行比对。因此, 做LVS有三个输入,分别如下:

a)LVS比较规则, 也就是rules file,该rules file 由foundry提供。

b)版图, Calibre自动对版图输出成网表

c)原理图网表, 该网表就是前面步骤 3 中所生成的netlist

下面进行LVS检查操作

 在Virtuoso layout界面菜单中,CalibreRun LVS进入界面设置

  Rules, Calibre-Lvs Rules File: /home/eda/wzh_lab/verify/lvs/lvsfile/chrt035rf.sg.lvs.cal

   /home/eda/wzh_lab/verify/lvs/

输入1-rules file

 Inputs, 选择Export from layout viewer

每次运行LVS都输出一次layout netlist

输入2-layout netlist

输入3-原理图输出的netlist

此按钮不能选中

其他基本不用设置,然后Run  LVS,结果如图8所示,

Schematic输出的netlist

Layout输出netlist

LVS规则文件

图8  LVS结果,出现82个不一样的地方

4.修改导出的netlist文件(bandgap.cdl) 该文件是原理图输出的netlist,在上述例子中,该文件位于 /home/eda/wzh_lab/verify/lvs/netlist

加文件等效语句(解决在chrt35rf工艺中schematic输出的netlist和layout提取的netlist中使用模型名字不同的问题),将下列语句加到网表文件bandgap.cdl中语句.PARAM 的下面,每行一句:

*.EQUIV nmos_3p3=NM

*.EQUIV pmos_3p3=PM

*.EQUIV npolyf_u_1k=YAK

*.EQUIV PIP=CP

*.EQUIV VPNP_5x5=BV

对电容的修改:

 把电容的调用语句添加上以下画线的部分,尺寸值用原理图上的尺寸。

CC10 net86 net72 875.00f  c_length=20u c_width=35u  $[CP] M=1

对电阻的修改:

 把电阻调用语句的第三端去掉,即以下画线部分去掉。

RR20 net net6 8.71831K $SUB=net42 $[YAK]

然后,加上电阻相应的宽和长,尺寸值用原理图上的尺寸,如下面画线部分:

RR20 net net6 8.71831K w=2.5u l=21.25u $[YAK]

 以上仅仅是修改了电阻RR20,其他的电阻请参照电阻RR20修改的方式进行修改,其中各个电阻的宽度w=和长度l=中的值需要用原理图中的数字来加。

电阻和电容做LVS时,有可能出现电阻或者电容值存在微量的偏差,如0.5%,只要偏差在可接受范围就行。

全部修改完后,再运行Run Lvs,出现笑脸则成功。

图9  通过LVS检查的提示界面

实习心得:

    这次为期两个星期的实习,使我受益匪浅。我不但学会了candence软件的使用方法,还认识到画版图需要非常有耐心和毅力;同时我也非常感谢同学们的帮助。在画完layout后,通过两天的仔细查找,一个个地解决DRC和LVS出现的错误,最终完成了版图设计。最后非常感谢学校为我们提供学习使用candence软件的条件,让我们掌握了一门日后对就业有帮助的技术。下载本文

显示全文
专题