ADS中使用Spice模型设计电路
SPICE(Simulation program with integrated circuit emphasis)是最为普遍的电路级模拟程序,各软件厂家提供了Vspice、Hspice、Pspice等不同版本spice软件,其仿真核心大同小异,都是采用了由美国加州Berkeley大学开发的spice模拟算法。
仿真程序
电路系统的设计人员有时需要对系统中的部分电路作电压与电流关系的详细分析,此时需要做晶体管级仿真(电路级),这种仿真算法中所使用的电路模型都是最基本的元件和单管。仿真时按时间关系对每一个节点的I/V关系进行计算。这种仿真方法在所有仿真手段中是最精确的,但也是最耗费时间的。
被分析的电路中的元件可包括电阻、电容、电感、互感、独立电压源、独立电流源、各种线性受控源、传输线以及有源半导体器件。SPICE内建半导体器件模型,用户只需选定模型级别并给出合适的参数。
Spice是一种功能强大的通用模拟电路仿真器,已经具有几十年的历史了,该程序主要用于集成电路的电路分析程序中,Spice的网表格式变成了通常模拟电路和晶体管级电路描述的标准,其第一版本于1972年完成,是用Fortran语言写成的,1975年推出正式实用化版本,1988年被定为美国国家工业标准,主要用于IC,模拟电路,数模混合电路,电源电路等电子系统的设计和仿真。由于Spice仿真程序采用完全开放的政策,用户可以按自己的需要进行修改,加之实用性好,迅速得到推广,已经被移植到多个操作系统平台上。
自从Spice问世以来,其版本的更新持续不断,有Spice2、Spice3等多个版本,比较常见的Spice仿真软件有Hspice、Pspice、Spectre、Tspice、SmartSpice、IsSpice等,虽然它们的核心算法雷同,但仿真速度、精度和收敛性却不一样,其中以Synopsys公司的Hspice和Cadence公司的Pspice最为著名。
Hspice是事实上的Spice工业标准仿真软件,在业内应用最为广泛,它具有精度高、仿真功能强大等特点,但它没有前端输入环境,需要事前准备好网表文件,不适合初级用户,主要应用于集成电路设计;Pspice是个人用户的最佳选择,具有图形化的前端输入环境,用户界面友好,性价比高,主要应用于PCB板和系统级的设计。
SPICE仿真软件模型与仿真器是紧密地集成在一起的,所以用户要添加新的模型类型是很困难的,但是很容易添加新的模型,仅仅需要对现有的模型类型设置新的参数即可。
SPICE模型由两部分组成:模型方程式(Model Equations)和模型参数(Model Parameters)。由于提供了模型方程式,因而可以把SPICE模型与仿真器的算法非常紧密地联接起来,可以获得更好的分析效率和分析结果。
现在SPICE模型已经广泛应用于电子设计中,可对电路进行非线性直流分析、非线性瞬态分析和线性交流分析。被分析的电路中的元件可包括电阻、电容、电感、互感、独立电压源、独立电流源、各种线性受控源、传输线以及有源半导体器件。SPICE内建半导体器件模型,用户只需选定模型级别并给出合适的参数。
采用SPICE模型在PCB板级进行SI分析时,需要集成电路设计者和制造商提供详细准确描述集成电路I/O 单元子电路的SPICE模型和半导体特性的制造参数。由于这些资料通常都属于设计者和制造商的知识产权和机密,所以只有较少的半导体制造商会在提供芯片产品的同时提供相应的SPICE模型。
SPICE模型的分析精度主要取决于模型参数的来源即数据的精确性,以及模型方程式的适用范围。而模型方程式与各种不同的数字仿真器相结合时也可能会影响分析的精度。除此之外,PCB板级的SPICE模型仿真计算量较大,分析比较费时。
模型
SPICE模型是由SPICE仿真器使用的基于文本描述的电路器件,它能够用数学预测不同情况下,元件的电气行为。SPICE模型从最简单的对电阻等无源元件只用一行的描述到使用数百行描述的极其复杂子电路。
为了进行电路模拟,必须先建立元器件的模型,也就是对于电路模拟程序所支持的各种元器件,在模拟程序中必须有相应的数学模型来描述他们,即能用计算机进行运算的计算公式来表达他们。一个理想的元器件模型,应该既能正确反映元器件的电学特性又适于在计算机上进行数值求解。一般来讲,器件模型的精度越高,模型本身也就越复杂,所要求的模型参数个数也越多。这样计算时所占内存量增大,计算时间增加。而集成电路往往包含数量巨大的元器件,器件模型复杂度的少许增加就会使计算时间成倍延长。反之,如果模型过于粗糙,会导致分析结果不可靠。因此所用元器件模型的复杂程度要根据实际需要而定。
如果需要进行元器件的物理模型研究或进行单管设计,一般采用精度和复杂程度较高的模型,甚至采用以求解半导体器件基本方程为手段的器件模拟方法。二维准静态数值模拟是这种方法的代表,通过求解泊松方程,电流连续性方程等基本方程结合精确的边界条件和几何、工艺参数,相当准确的给出器件电学特性。而对于一般的电路分析,应尽可能采用能满足一定精度要求的简单模型(Compact model)。
电路模拟的精度除了取决于器件模型外,还直接依赖于所给定的模型参数数值的精度。因此希望器件模型中的各种参数有明确的物理意义,与器件的工艺设计参数有直接的联系,或能以某种测试手段测量出来。
构成方法
目前构成器件模型的方法有两种:一种是从元器件的电学工作特性出发,把元器件看成‘黑盒子’,测量其端口的电气特性,提取器件模型,而不涉及器件的工作原理,称为行为级模型。这种模型的代表是IBIS模型和S-参数。其优点是建模和使用简单方便,节约资源,适用范围广泛,特别是在高频、非线性、大功率的情况下行为级模型几乎是唯一的选择。缺点是精度较差,一致性不能保证,受测试技术和精度的影响。另一种是以元器件的工作原理为基础,从元器件的数学方程式出发,得到的器件模型及模型参数与器件的物理工作原理有密切的关系。SPICE 模型是这种模型中应用最广泛的一种。其优点是精度较高,特别是随着建模手段的发展和半导体工艺的进步和规范,人们已可以在多种级别上提供这种模型,满足不同的精度需要。缺点是模型复杂,计算时间长。
可以利用 ADS 的网表导入功能,将Spice 模型文件导入到ADS 软件中,然后利用ADS的图形界面进行电路设计及仿真。避免繁杂的Spice 电路网标输入,而且经对比验证,ADS和HSpice 仿真结果相同。
1. 将 Spice 库文件(如这里举例的UMC 的.18um 数字CMOS 工艺库文件:l18u18v.122)放到ADS 工程(如这里举例的SpiceLibTest_prj)下的data 文件夹中。
2. 创建一个新的原理图文件,暂不命名;菜单 File?Import…,弹出Import 窗口。
在 File Type 选中Netlist File,More Options…中进行如下图所示设置:
这里注意,Translated Output Format 中建议选择为ADS Netlist;否则选择ADS Schematic(with named connectiosn)将会生成很多零散的Schematic 文件,每个文件中包括一个Spice 库文件中描述的器件模型,使用起来不是很方便。
Option 设置完成之后点击OK,回到Import 窗口,通过Browse…选择放在data 文件夹下的Spice 库文件l18u18v.122,点击OK。ADS 开始导入库文件的网表,导入完成后将弹出HSPICE netlist import complete 提醒对话框:
同时将自动打开 nettrans.log 文件,其中记录了网表导入过程、状态及警告、错误信息。HSpice 网表l18u18v.122 导入后被存为了ADS 网表格式文件l18u18v.net,也在data 文件夹中。导入时创建的原理图文件中被ADS 自动放入了一个NetlistInclude 控件,其参数IncludeFiles[1]已经自动指向了生成.net 文件;同时原理图文件也被自动命名为l18u18v.dsn。至此,库文件网表的导入完成。
3. ADS 网表的使用
在电路设计原理图中(如这里举例的 n_18_g2_tst.dsn),放入一个NetlistInclude 控件,其参数IncludePath 指向data 文件夹;IncludeFiles[1]指向l18u18v.net,并且在Section(optional)中填入所需的工艺角定义,如这里的L18U18V_TT。完成NetlishtInclude 控件设置如下图所示:
电路中所需的器件,可以用 ADS 中控件库Devices-MOS 中的控件MOSFET_NMOS 和MOSFET_PMOS 控件,其中参数Model 指向所需的器件模型名,Length、Width 以及_M 等
可以根据具体需要自己输入,如下图所示:
上图示例就相当于器件 MOSFET1 就是Spice 库文件中定义的n_18_g2 器件,栅长为0.2um,栅宽为200um。下图所示为电路原理图n_18_g2_tst.dsn:
上面电路对 n_18_g2 器件进行瞬态仿真,其仿真结果如下图所示:
以上示例说明了如何将 Spice 网表文件导入为ADS netlist 文件,从而可以利用ADS 进行电路设计和仿真(DC、AC、SP、Trans、HB 等等)。经验证,可以保证仿真精确度,并且大大提高了设计效率。
谢谢小编,受益匪浅
相关文章:
- CST模型中怎么样添加电阻(05-08)
- 谁有CST下的人体模型文件?(05-08)
- 请问:如何在同一张图里看不同模型在同一频率的方向图(05-08)
- 关于CST模型打包(05-08)
- HFSS模型怎么打包上传?(05-08)
- 为什么好多导线模型是二维的?(05-08)