分享

SPICE模型入门到精通...

 玄远书志 2022-05-23 发布于广东

前言

由于笔者的毕业设计与功率半导体器件建模相关,需要用到SPICE软件来建模,在这记录一下从零开始的SPICE学习历程~


一、SPICE是什么?

   电子产品的设计一般先从功能框图开始,然后细化到原理图,还要经过很调试验证过程,最终才能完成。调试和验证的过程复杂而繁琐,在设计集成电路时更是如此,在制造之前急需验证集成电路的功能。

   根据电路理论,人们可以建立起节点方程和回路方程,通过解这些方程组成的方程组就可以得到结果,也就是说可以通过计算来获得电路的工作情况。但包含电感、电容等器件的电路形成的是一组微分方程组,人工计算依然是累人的活,而计算机则可以大展身手,通过其强大的存储、计算和图形显示能力就能轻松完成,很快得到结果。基于这种思想,人们开发出电路仿真软件,通过快速的仿真,代替耗时且累人的反复调测,提高设计速度和效率,也节省了时间和成本。最早、最出色的仿真软件就是SPICE。

   SPICE(Simulation program with integrated circuit emphasis)是一个电路仿真软件,采用的是美国加州Berkeley大学开发的spice模拟算法。简单来说,就是用代码来描述一个电路,并对电路进行求解的一段代码。

   而PSPICE、HSPICE等等同名不同姓的软件又是啥?其实是SPICE商业化的不同产物。不同的厂商基于SPICE的算法,自己加上一些特色功能(比如HSPICE加入器件模型库卡、结果测量卡;PSPICE首先把SPICE移植到PC机上等等),使得SPICE更加实用,功能更强,或者提高使用效率。目前国内常见的SPICE软件主要是orCAD附带的PSPICE模块,它功能比较强,附带元器件仿真库也最丰富,还有自建元件仿真模型的界面,易学易用。笔者后面也主要是用这个软件。

二、orCAD中需要用到的几个软件

   首先我们明确这样一件事情,我们给器件建模,以及对建立好的器件模型进行电路仿真,需要用到以下几个软件:OrCAD Capture、PSpice系列、Model Editor.
   而OrCAD软件的开创者是个富豪,他为了使电路图绘制、电路仿真分析到印刷板设计或可编程逻辑设计全部都能在自己的软件中搞定,他就把在这些方面做得好的软件全给买了,其中包括上述的几个软件,让这些软件变成了自己的附属模块。所以说,我们用这软件来进行器件建模,只是用到了这个软件的一小部分功能,也可以说是大材小用了。
   那么下面,来详细解释一下我们需要用的软件的功能和联系:
OrCAD Capture:
   这是一个原理图的输入程序,用户可以在这个软件中进行原理图的绘制。当然它不仅仅是一个画图工具,它可以与OrCAD PCD Editor无缝对接,实现物理PCB的设计;也可以与PSpice A/D对接,实现电路的数模混合仿真。OrCAD Capture CIS貌似是OrCAD Capture的改良版,我们暂且认为他们是一样功能的软件。
PSpice系列:
   其中包括PSpice A/D和PSpice AA.PSpice A/D是数模仿真程序,而PSpice AA是高级仿真程序(包含灵敏度分析等高级分析方式)。
   PSpice的主要功能是将后缀为.cir的电路文件进行处理和仿真,该电路文件可以在OrCAD Capture输入电路图然后自动生成,或者用文本自行输入。也就是说,可以不用搭电路,就能通过编程来实现电路仿真,这样照应了前文说的SPICE是一种算法。
   这里特别说明一下,如果采用绘制原理图->转化成.cir文件进行仿真的方法,需要电路图中的器件同时拥有对应的.olb和.lib两个文件;而直接采用文本输入的方法生成.cir,则只需要所用器件的.lib文件即可。
Model Editor:
   功能如其名,它是个模型编辑器。

三、PSPICE模型的建立与编辑

3.1 什么是PSPICE模型?

   模型是用来描述元件特性的代码,储存于库文件.lib内。而元件的符号定义(元件的几何图形)储存于.olb内。一般在器件网站上下载的SPICE模型都是没有.olb文件的。
   根据描述的器件种类,模型分为以下两类:

  • 模型参数序列(a model parameter set)
  • 子电路网表(a subcircuit netlist)

这两类模型都是基于特定的语法,用一段文本来表述的。

3.1.1 模型参数序列(a model parameter set)

   PSpice具有描述许多设备类型行为的内置算法或模型。这些内置模型的行为由一组模型参数来描述。可以通过使用.MODEL语句来定义器件的行为模型,并修改模型中的参数。例如:

   其中MLOAD为该模型的名称,NMOS关键字相当于调用了软件内置的NMOS场效应晶体管模型的算法,并将此算法赋给待定义的MLOAD器件。“+”为续行号。括号中的内容即为该模型的参数序列。
下表为各器件对应的关键字:
在这里插入图片描述
   通过这样的两行代码,我们就创建了一个名为MLOAD的NMOS器件模型,是基于Shichman-Hadges模型(这是在mos器件中,LEVEL=1的含义)理论的,它的衬底零偏置时源阈值电压为0.7V,零偏压衬底结底部电容为0.02pF。
   关于各种模型的参数详细说明,可以在help文档中找到:
在这里插入图片描述

3.1.2 子电路网表(subcircuit netlists)

   对于一些器件来说,没有能够完整描述其行为的已有PSpice模型。对于这些器件的建模,可以用.SUBCKT/.ENDS语句或者子电路语法(subcircuit syntax)。子电路语法包括:

  • 用网表描述该部分的结构和功能
  • 用可变的输出参数来微调模型

例如:(后文称为例2)
在这里插入图片描述

   第一行由*开头的字符串为文件的说明部分;接下来以.SUBCKT开始,以.ENDS结束的语句为子电路描述语句。子电路使用X(子电路实例化)设备实例化。(这句话暂时还不太理解)
   接下来具体解释语句中的内容。(参考PSpice Reference Guide)

.SUBCKT语句的一般格式为:
在这里插入图片描述

  • < name > 为该子电路的名称如例2中的LIN/STG,X可以用这个名称来引用这个子电路。
  • < node > 为节点(引脚)的列表。这是可选列表,因为可能对于某个特定子电路来说,没有接口节点。例2中定义了三个节点,分别是IN,OUT,AGND;
    在这里插入图片描述
  • PARAMS关键词:将特定的值在子电路中用字符串进行声明,以方便在电路描述中使用。类似于用π来代替3.14159。这种做法便于在电路参数发生变化时,对代码进行修改。如例2中就进行了C1VAL,C2VAL,R1VAL,R2VAL,GAIN五个参数的声明。
  • TEXT关键词:将文本值作为参数传递到子电路中,并将其用作子电路内部的表达式。该关键词一般用于数字信号仿真,例2中没有使用。

   例2中的5~8行为电路结构描述语句,每一条语句都由字母、字符串组成的元器件的名称段、连接节点号、参数等构成。我觉得百度文库的这份教程讲的很详细,就截图放在这了hhhhh(出处见水印,若侵权请与我联系)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
还有其他一些电源,如交流源、脉冲电压波形参数表等,
详情请点击此处
   由以上知识可以画出例2的电路原理图:
在这里插入图片描述

3.2 模型编辑与建立实战

本部分参考《PSpice 电子电路设计与分析》

当模型库中找不到我们所需的模型时,一般分为以下两种情况:

  • 所需模型为固有元件之一。
  • 所需模型不是固有元件。

固有元件包括:

接下来分别讨论这两种情况。

3.2.1 所需模型为固有元件

   这又分为两种情况。一种是已知待修改的参数值,另一种是未知待修改的参数值,需要通过特性曲线来进行参数提取。下面用两个例子来分别说明两种情况的操作方式。

已知具体参数值:
打开 orCAD Capture,File->New->Project,输入工程名字与存储位置,点击OK.
在这里插入图片描述
选择empty.opj作为工程模板,点击OK:
在这里插入图片描述
绘制原理图如下,并在齐纳二极管上放置电流探针:
在这里插入图片描述
建立仿真文件,PSpice->New Simulation Profile,输入仿真文件名称,点击Create:
在这里插入图片描述
建立直流特性扫描分析,扫描V1的电压值,范围是1~10V,步长为1V。
在这里插入图片描述
运行仿真,输出波形如图:
在这里插入图片描述
返回到原理图界面,选中D1器件并右击,选择Edit PSpice Model,找到参数列表中的Bv,将其修改成8.0.
在这里插入图片描述
返回原理图界面,重新运行仿真,输出波形为:
在这里插入图片描述
从两输出波形可以看出,二极管导通电压从4.7V变成了8V.

未知具体参数值:
打开"PSpice Model Editor"。执行File->New,创建新库文件,点击保存,给库文件命名。
执行Model->New,开始创建新模型,在对话框中设置参数如下,点击OK:
在这里插入图片描述
曲线图下方,有五个标签栏:
在这里插入图片描述
要定义一个新模型,需要在每个标签栏中输入新数据值,这些数据值是基于相应实验数据的采集点:
在这里插入图片描述
接下来,执行Tools->Extract Paramenters(或者工具栏上的在这里插入图片描述按钮),可以发现界面下方的参数值发生了变化。

   若觉得提取出的参数不合理,可以在参数表格中修改其值,然后勾选Fixed,防止参数变化导致提取处理重新操作。

   然后,点击File->Save as命令,存储这个新模型。

   接下来进行符号获取:

重新打开模型编辑器,执行File->Export to Capture Part Library,对话框中选择刚刚建立模型的路径,点击OK:
在这里插入图片描述
蹦出一个.err对话框,点击OK.然后关闭模型编辑器。

3.2.2 所需模型为非固有元件

   当所需模型为非固有元件时,我们可以通过以下方式来创建模型:

  • 从器件官网中下载SPICE模型(一般是文本格式)
  • 在Capture中绘制子电路图,利用创建层电路的方式来创建子电路模型
  • 自行编写.lib代码
       在完成上述建模工作后,要想让你的模型在Capture绘图中使用,还需要为仿真文件创建符号,即生成.olb文件,方法参考这个文档

step1: 启动 PSpice Model Editor 模型编辑器,点击File/Export to Capture Part Library
请添加图片描述

点击弹出第一行的browse,选择刚才已经创建的.lib文件目录。(第二行不用管,会自动匹配成第一行相同的路径)
请添加图片描述
step2: 打开Capture CIS后新建一个PSpice工程请添加图片描述
记得要勾选下面的选项。
点击左侧的PAGE1进入原理图界面
在这里插入图片描述
点击右侧的元器件符号,进入元器件库界面
在这里插入图片描述
点击文件夹符号,添加元器件库
在这里插入图片描述
即可看到并使用导入的模型
在这里插入图片描述
step3: 将模型导入仿真库
点击PSpice/Edit Simulation Profile/Configuration Files/Library
Browse自建的.lib文件,Add to design,OK
在这里插入图片描述

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多