IC设计经验总结

更新时间:2023-11-14 16:28:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

IC设计经验总结

一、芯片设计之前准备工作:

1) 根据具体项目的时间要求预订MPW班次,这个可以多种途径完成。

(1):一方面可以跟中科院EDA中心秦毅等老师联系,了解各个工艺以及各个班次的时间。半导体所是EDA中心的会员单位,他们会很热心的帮助完成。

(2):另一方面可以和具体项目合作的单位如清华等,根据他们的流片时间来制定自己的流片计划。

2) 仔细核对设计库的版本更新情况,包括PDK、Spectre Model以及RuleDecks。这些信

息可以直接可以从中科院EDA中心获得,或者从相应的合作单位进行沟通统一。这一点对后续的设计很重要,请务必要引起重视。

3) 得到新的工艺库必须整体的熟悉一下,好好的查看里面的Document以及Userguide

之类的,里面的很多信息对实际设计很有帮助。安装工艺库的过程会根据具体设计要求做出一些选着。如TSMC65nm工艺库在安装过程中会提示是否选着RF工艺、电感是否使用厚层金属、MIM电容的单位面积电容值等之类的。

4) 制定TapeOut的具体Schedule. 这个Schedule的制订必须请相关有经验的人来核实,

第一次TapeOut的人往往缺乏实际经验,对时间的安排可能会不合理。一旦Schedule制订好后,必须严格按照这个时间表执行。当然必须赶早不赶晚!

二、芯片设计基本系统框图一

芯片系统设计Matlab/C++/ADS/VerilogA等Cadence/Synopsis/Modesim/NC-Verilog等NO模拟电路芯片NO模拟电路验证Yes数字电路芯片数字电路验证SpetreVerilog/Ultrusim-VerilogNOVirtuoso/SoC encounterNO版图验证数模混合仿真NO符合要求Yes版图设计(模拟/数字)NOYes寄生提取仿真验证NO符合要求Calibre(DRC/LVS)Calibre(LPE)Yes设计完成TapeOut封装测试NO符合性能Yes设计彻底完成

图一

三、模拟IC设计基本流程

3.1) 设计框图如下图二

电路样式选择电路结构确定参数的选定以及仿真优化以及可靠性仿真

图二

3.2电路的式样确定

这个主要是根据系统设计结果,分析和确定模拟电路的详细的式样。 3.3电路的结构确定

根据单元模块电路的功耗、代价等各个指标的折中分析,确定各个单元模块的具体实现电路形式,如滤波器是无源滤波器还是有源滤波器,有正交VCO产生I/Q信号还是通过/2分频器来实现I/Q信号,用差分形式还是用单路形式等等。在具体电路的选取过程中,我们需要查阅了大量的IEEE文献,从中选取了比较成熟的,应用较广的电路结构来进行我们的设计工作。有时候可能会发现所确定的结构很难或者根本不可能满足技术指标的要求,这就需要改进结构或者查阅文献,设法满足要求。 3.4参数的选取和仿真

电路参数的选定与电路的仿真是分不开的。在比较重要的设计任务中,手算可以在20%的时间内完成80%的设计工作量,剩下的20%却需要花80%的时间来做。通过手算确定的参数是近似的,有时候会引错方向。但是它可以了解到参数的变化对设计会有多大的影响,是很有必要的。而采用计算机的反复迭代会使设计者对设计体会不深,不是明智的办法。

俗话说“公欲善其事,必先利其器”。目前,在公司内部可以使用多种EDA工具进行电路

仿真。对于EDA工具的使用不在于多,能够精通常用的一类或者几类就行。最主要的时候能够灵活的进行仿真规划,知道什么样的电路适合用什么样的仿真工具。

-HSPICE;对于低频电路设计来说,HSPICE是一种最灵活方便的工具,而且其仿真精度也比较高,后来被SYNOPSYS收购,好像也正是因为这个原因使得如今的Hspice仿真速度以及精度都可以跟Cadence产出的仿真器相媲美了。业界使用Hspice作为仿真软件的也挺多,原先是avanti公司的,

-Spectre;是Cadence的仿真器,由于其是图形界面,所以很直观。 -SpectreRF:对于射频电路设计,SpectreRF是一种不错的选择。

-UltraSim:相比于Spertre而言,在仿真精度损失3%的情况下,可以加速10~100倍的仿真速度。而且进行整体芯片后仿真时候,我们可以根据其不用的精度要求来设置各个模块的仿真精度。UltraSim Full-Chip Simulatorfor faster convergence on goals andsignoff of post-layout designs at thechip level.

具体UltraSim的使用可以参考《Virtuoso? UltraSim Simulator User Guide》、《ADE/UltraSim Integration Tutorial》等。在网上相关资料很多,可以根据要求自己下载学习。 -APS:Accelerated Parallel Simulatordelivers high-precision SPICE andscalable multi-core simulationperformance for complex and large preandpost-layout of analog and RF ICdesigns.

这种仿真器是现在业界最快的仿真器,如今实验室已经成功启动APS进行大规模的是芯片整体验证仿真。在整体芯片规模越大,越能体现出优势。 (对应的Cadence版本5.10.41.5,安装相应的MMSim72) -SpectreVerilog:能够进行数模混合仿真的工具。

-UltraSim-Verilog:进行数模混合仿真的工具,仿真速度比SpectreVerilog快。实验室在使用中较多的用在数字模块的后仿验证。

-StarSim:高于HSPICE10倍的速度,对于大规模的晶体管级的仿真是不错的选择,可以进行tran分析。

-ADS:对于系统级的仿真,ADS是最好的选择。对于电路级的仿真,功能也很强大,而且如今已经有一个RFDE环境,可以将ADS嵌入在Cadence中,很方便的进行使用。

在电路参数的选定及电路仿真的工作开始之前,最好能够阅读一遍厂家提供的Model库及其文件,从中可能会得到意想不到的东西。

电路参数的选定及电路的仿真需要有良好的IC设计的基本知识。而这些知识的获得则需要个人的不断努力,不断的积累。 3.5优化和可靠性仿真

由于实际工艺的都存在不确定性,会偏离设计的初衷,如器件尺寸的偏离,参杂浓度的改变等,都会影响到电路的性能,所以设计的时候应具有一定的鲁棒性,因此需要可靠性仿真,确保芯片在工艺偏离的情况下,性能仍然符合要求。

对各种参数要求较严格的电路,需要做蒙特卡罗分析,以前章琦做过简单的蒙特卡罗分析仿真方法的仿真,,希望大家能够相互学习这种方法,做芯片电路设计的全面仿真。还有工艺Corner分析至关重要,另外敏感性分析和温度分析也应该引起重视,特别是对某些特定电路的设计。

我们对工艺角Corner分析应至少包括:全部模型的SS,TT,FF角。如有时间的话,可以进一步细化,如N型晶体管和P型晶体管趋向于两种不同的工艺角SS和FF等,晶体管和其他的电阻和电容等的工艺角不同等。总而言之,应使用组合的方法,尽可能的涵盖一切可能出现的工艺角情况。

就应用的温度而言对其进行温度范围的仿真,一般而言,应该覆盖-20~100的温度,取特征值如-20,27,100度等三个温度点进行仿真即可。温度应配合工艺角联合进行仿真,比如仿真在100度,SS工艺角的情况下芯片的性能。

分析可能的失配情况,尤其是匹配的对管,人为的进行失配调整,如对管的尺寸失

配5%等,仿真在这种情况下芯片的性能。还有就是考虑电源电压的波动,一般电压电压波动范围设置在+-10%的范围。仿真过程中应该应该考虑到足够的电压欲度,使得在波动范围内任然正常工作。

总而言之,优化和可靠性仿真是必须的,它确保芯片在工艺偏离的情况下,性能仍然符合要求。

四、模拟IC设计一些经验总结

4.1、设计库的管理,各个电路图以及电路端口命名需要规范,养成一个好习惯。这样既方便于自己对电路模块的调用,也方便于以后的师弟、师妹的学习理解。

4.2、模拟IC最基础的一个模块就是OPA,可以说它在模拟IC中到处使用,如ADC/DAC/PLL/DC-DC/LDO/Bandgap/PGA/VGA等等。所以大家在抽空时间里面需要对OPA基本设计理论,各个性能指标的意义做好充分的了解。可以阅读参考书籍,也可向有OPA设计经验的师兄弟请教、学习。有时间的话可以根据特定的应用,设计一个相应的OPA,这样一方面掌握OPA以及模拟电路的基本设计方法,另一方面可以很好的学习Cadence等的软件的仿真流程(准对初学模拟IC设计者)。

4.3、仿真软件的使用技巧。首先不可太依赖于仿真工具,仿真只是一种验证手段,只是用来验证你的设计想法是否正确。设计过程中必须多思考、多交流。

4.4、电路设计过程可以说是一个不断迭代收敛的过程,千万不要害怕迭代次数较多。整个设计过程原本就是各个参数之间的Tade-Off过程。如LC-VCO的设计中我们要考虑Phase-Nosie、中心频率、频率调谐范围、功耗、调谐曲线的Overlap、Kvco等。不断的进行参数设计调整,使得最后达到设计要求。

4.6、设计中电阻一般较常使用,在电阻采用绝对值的时,一般将电阻的W选取>2um,这样在芯片加工过程中相应的偏差就会减小。

五、仿真工具配合仿真方法几点简单说明: 【1】Ultrasim的简单使用说明:

准对不同的电路仿真,可以使用7种Simulation Mode:

(1) S: Spice (2) A: Analog

(3) AMR: Analog Multi Rate (4) DA: Digital Accurat (5) MS: Mixed Signal (6) DF: Digital Fast (7) DX:

一般其中DF/DA模式适用于数字电路(数字逻辑电路、门电路、触发器、ROM、RAM等)仿真,不要把

这两种模式用于模拟电路仿真。

如果在option没有设置,默认是MS模式,兼顾精度与速度。AMR模式不能“本地化”(local)使用,就是说AMR模式只能用于整个电路而不能针对某一个模块使用。

公差容忍度设置:

speed可以设置总的公差容忍度tol(tol也可以单独设置),tol包括电压、电流等所有的公差容忍度之和。

.usim_opt speed=2 设置tol=0.001,比较高的精度! .usim_opt speed=1 #vco 对vco cell使用0.0001的tol

speed=1,2,3,4,5,6,7,8对应的tol分别是0.0001 ,0.001,0.0025,0.005,0.02,0.02,0.04,0.07,精度以此降低。

通常,如果精度要求不是很高,可以采用默认设置,而无需设置这一项。tol还与解矩阵方程的收敛性有关,然而,我还从来没有碰到ultrasim不收敛的时候!!

再强调一点:精度设置的越高,相应的速度越低!

Simulation Modes

Virtuoso UltraSim Simulation Modes Overview

一般使用过程中我们比较多的关注仿真模式、仿真速度、仿真精度的设置。其余一些详细的设置可以参考《Virtuoso? UltraSim Simulator User Guide》 下面以使用Ultrasim仿真PLL的例子简单熟悉Ultrasim的设置

PLL模块中既有高频模块VCO,Divider,也有低频模拟模块Charge-Pump,LPF,还有数字模块Digital,所以这是比较复杂的系统,包含了数字、模拟、射频。往往这样的系统仿真速度和精度个大问题。VCO的仿真需要小的步长,较高的精度,但是数字模块可以采用较大的仿真步长,精度要求不高。如果整体系统都是按照VCO的仿真精度来设置的话,仿真速度会很慢,特别是有模块进行后仿真的时候,速度就会成为更大的问题。而UltraSim的仿真可以分模块很好处理这个问题,加快仿真速度,但也不损失仿真精度。 1) 启动Cadence icfb&,打开已经建立好的Config(这样的仿真务必建成Config形式)

2) 设置各个模块的仿真模式以及仿真精度。有两种方法可以使用:第一直接所提取网

标中加入命令形式:如usim_opt sim_mode=a speed=2 subckt=[vco2phase]

usim_opt sim_mode=a speed=2 inst=[I19.I19.I0]

以上说明第一个是以子电路形式表示,vco2phase的仿真模式为a,仿真速度为2,第二个是以instances形式表示的。 多列举两个理解一下:

.usim_opt sim_mode=da xi1 xi2 #dff .usim_opt sim_mode=a xi5 #driver @pmos2 .usim_opt wf_format=wdf

.usim_opt作为options,前面的3个option分别表示:把子电路xi1 xi2 和cell(名称为dff的所有子电路) dff设置为DA仿真模式; 把xi5、cell driver、model pmos2(用到模型名称为pmos2的的mos管)设置为a模式;而生成的波形文件格式wdf。 usim_opt sim_mode=a speed=2 maxstep_window=[0 10p 10n 1e20] subckt=[vco2phase] 设置vcophase的最大仿真步长。 另外一种通过界面化操作。 打开Hierarchy Editor window如下

可以在vco2phase一栏处右击来设置相应的仿真模式、以及仿真速度。 设置完成后点击File >>>Save按钮。

3) [Cadence hierarchy editor window] View >>>>>Tree

可以设置各个instance的view to use.(如veriloga/schematic/av_RC/extracted)。

选定相应的view后[Cadence hierarchy editor window] View >>>Update(必须)。 更新后点击Design>>>Hierarchy>>>>Return to Top.

这个设置就相对很灵活,对模块选着性的进行后仿真处理!!!!

4) 点击:[Analog Circuit Design Environment] Simulation>>>>Options >>>Analog

进行仿真设置:

Simulator选着UltraSim;

瞬态仿真,设置仿真时间长度(如400ns);

下面的设置是后仿真情况下给出的:(不同的仿真可以设置不同模式) Simulation Mode:Mixed Signal (MS); Speed=4;

DC method:Complete DC (1)

post-layout method : (Liberal RCR(3))

postl=3.

DC method 4中选着, e Skip DC (0), Complete DC (1), Fast DC (2), spectre DC (3). 默认情况 Complete DC (1).

5) 产生网标查看UltraSim设置

点击[Analog Circuit Design Environment] Simulation >>>Netlist >>>Recreate 这样的话可以看到各个模块设置情况,在后仿真时候也可看到提取的N多RC寄生。 6) 最后[Analog Circuit Design Environment] Simulation >>>Run就可以了。然后再根据

不同的要求对电路进行设置仿真。

其实UltraSim仿真设置还有很多,大家可以参考Virtuoso? UltraSim Simulator User Guide!!!

【2】APS仿真设置:

(1) 建立Config File---New----Cell View

选择Hierarchy-Editor,此时View Name 变成config, 然后点OK

弹出 New Configuration 对话框

点击 Browse,弹出Choose the Top Cell 对话框,然后选中schematic,点击OK。

New Configuration 变成如下图示。

然后点击Use Template…

Name 中选中 spectre(只进行模拟仿真验证),或者选中spectreVerilog(进行数模混合仿真验证),选中后点击OK,回到New Configuration再点击OK就完成了Config的建立。

(2) 进行仿真验证

在Library Manager的View中打开Config

在hierarchy editor中,View to Use 栏中点击右击相应模块的仿真模式(一般后仿真选中calibre,前仿真的话是选择schematic)。

设置完后,进入ADE仿真环境。(点击Tools----Analog Envirment)

在ADE仿真环境中点击 Setup---High-Performance Simulation….

弹出High-Performance Simulation Options对话框:

Simulation Performance Mode 一栏包括Spectre、Turbo以及APS

对于规模比较大,而精度要求不是很高的电路来说,第二栏 Override Accuracy(Errpreset) Defaults 可以设置为Liberal,而对于高精度的设计则需要设置为moderate 或者conservative

The default settings for Multithreading for Spectre, Turbo and APS simulators are as given below:

在仿真过程中根据电路规模(Device 的多少) 设置合理的仿真器

Cells marked with the symbol√ in the above table indicate the recommended tool to use

for designs of a particular size. The following general rules apply:

■If the design is very small, say with less than 100 devices, Spectre L or Spectre Turbo

single thread are the best choice. There is no additional performance gain using Spectre

Turbo multi-thread or APS.

■In designs with up to 5K devices, Spectre Turbo becomes the tool of choice and

additional performance gain can be obtained by enabling multi-threading with Spectre Turbo.

■As the device size continues to grow, APS provides additional value with its multithreading option.

■For designs with more than 50K devices, APS provides significant performance gain

using both single-thread and multi-thread.

■APS is recommended for any post-layout design (dominated by parasitic elements).

APS is targeted at transient, DC, AC and RF analysis including interactive features like alter,

altergroup, sweep, and Monte Carlo. In case of AC analysis, the simulation is fully

parallelized, resulting in significant performanance gain on large and post-layout designs.

Typically AC analyses are not long simulations. Other analyses are not supported.

The following recommendations allow you to achieve best performance with APS:

■APS with the +errpreset=liberal command line option provides sufficient accuracy

for the majority of designs. Only high precision designs may require the use of

the

moderateor conservative setting for the +errpreset option.

其余的设置与常规的Spectre仿真环境设置类似,在此不再累述。

【3】 Calibre对射频版图IC后仿真注意:

点击 Run PEX,启动Calibre xRC 的GUI,如图下图所示。Outputs 菜单中的Extraction Type 里,第一项通常选择Transistor Level 或Gate Level,分别代表晶体管级提取和门级提取。第二项可以选择R+C+CC,R+C,R,C+CC,其中R代表寄生电阻,C 代表本征寄生电容,CC 代表耦合电容。第三项可以选择NoInductance,L 或L+M,分别代表不提取电感,只提取自感和提取自感与互感。这些设置由电路图的规模和提取的精度而定。在Format 一栏中,可以选择SPECTRE,ELDO,HSPICE 等网表形式,也可以选择Calibre xRC 提供的CALIBREVIEW 形式。本文中选择CALIBREVIEW 形式。UseNames From 可以根据需要选择SCHEMATIC 或LAYOUT。

设置完毕后,点击 Run PEX,开始寄生参量提取。通常,Calibre xRC 先执行LVS,之后提取寄生参量,最后将电路图中的原有的器件和提取出的寄生电容,电阻和电感反馈到一新生成的带寄生信息的电路图中。PEX 完成后,弹出如下对话框:

Output Library 为输出电路的library,自动生成。

Cellmap File 一般库中已经存在,可以找到其相应的路劲加入。

Calibre View Name 可以自己随便命名,只是在后仿真时候应该调用相应的名字。下面会讲到。

我们需要特比注意的是RF 器件与一般的MOS 器件不同,这类器件的模型是代工厂经过实际测量得到的参数,在spice model 中通过子电路表示。因此,它的模型中已经包含了器件的寄生信息。而且,由于这类器件的面积通常较大,其中的寄生电容和寄生电阻值是相当可观的。比如,在设计中,所示的每个RFMOSFET 的宽和长分别为50um 和0.24um,每个器件包含10个finger。如果工具对RF 器件的内部也进行提取,将会对导致器件的寄生电容和电阻重复提取。为了确保提取正确,Calibre xRC 提供一种称为“黑盒”提取的方法,可以将指定的器件(通常是RF 器件)看作理想器件。对其内部的节

点之间的寄生电容和寄生电阻不再提取。

具体步骤如下:首先,先定义xcell 文件,例如;

pmoscap_rf* pmoscap_rf moscap_rf18* moscap_rf18 moscap_rf18_nw* moscap_rf18_nw moscap_rf25* moscap_rf25 nmos_rf* nmos_rf nmos_rf_18* nmos_rf_18 nmos_rf_18_nodnw* nmos_rf_18_nodnw nmos_rf_25* nmos_rf_25 nmos_rf_hvt_nodnw* nmos_rf_hvt_nodnw nmos_rf_lvt* nmos_rf_lvt nmos_rf_lvt_nodnw* nmos_rf_lvt_nodnw nmos_rf_mlvt* nmos_rf_mlvt nnmos_rf_nodnw* nmos_rf_nodnw pmos_rf* pmos_rf

??????????

左边是版图单元的名称,右边是电路图单元的名称。其中所指定的器件版图和电路图必须是单独的单元。通过这种方式定义版图和原理图单元的对应关系,以及提取寄生时所需要屏蔽的版图单元。其次,在XRC rule 中添加PEX IDEALXCELL YES 语句。最后,采用gate level 的方式进行寄生参量提取,确保工具将RF 器件识别为一子电路。如果采用GUI 的方式,选择gate level 提取,而不是transistor level 级提取。同时在input 选项中的已经建立的xcell文件

在设置好以后点击RUN PEX,接下去和没有使用xcell时候一样。

【4】Monte Carlo仿真(简称MC)

参考<> 基本步骤:

“Specifying the Characteristics of a Statistical Analysis” on page 86 “Selecting Signals and Expressions to Analyze” on page 88 “Defining Correlations” on page 98

“Starting and Stopping the Analysis” on page 99

“Saving and Restoring a Statistical Analysis Session” on page 101

具体:打开ADE仿真环境,点击Tools----Monte Carto

出现Analog Statistical Analysis对话框

1. Specify the Number of Runs for this statistical analysis. 2. Specify the Starting Run #.

3.Choose the type of Analysis Variation. ?Process Only ?Mismatch Only

?Process Variation and Mismatch

4. Choose a parameter to sweep in an inner loop 5. Selecting Signals and Expressions to Analyze 在ADE中产生netlist:

然后根据要求加入统计分析的内容。上例中加入了工艺参数dtxo_n_18的

process和mismatch的统计分析。

点击Simulation---Run。

Run 完成后,在icfb对话框中会出现 Simulation completed successfully 和Monte Carlo Simulation completed successfully 的字样。 查看仿真结果:

点击Results---Plot---Curves:

点击Results---Print---Iteration vs. Value….:

点击Results—Plot—Histogram:查看变量的直方图分布。

以上Analysis Variation {Process Only},也可以设置为 {Mismatch Only} 如下:

定义器件之间相关性:Simulation---Define Correlations…..

还可以选择Analysis Variation 为{Process & Mismatch}进行仿真

本文来源:https://www.bwwdw.com/article/vu1v.html

Top