文章目录

  • 前言
  • 一、SPICE是什么?
  • 二、orCAD中需要用到的几个软件
  • 三、PSPICE模型的建立与编辑
    • 3.1 什么是PSPICE模型?
      • 3.1.1 模型参数序列(a model parameter set)
      • 3.1.2 子电路网表(subcircuit netlists)
    • 3.2 模型编辑与建立实战
      • 3.2.1 所需模型为固有元件
      • 3.2.2 所需模型为非固有元件

前言

由于笔者的毕业设计与功率半导体器件建模相关,需要用到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

SPICE模型入门到精通相关推荐

  1. tensorflow从入门到精通100讲(七)-TensorFlow房价预估使用Keras快速构建模型

    前言 这篇文章承接上一篇tensorflow从入门到精通100讲(二)-IRIS数据集应用实战 https://wenyusuran.blog.csdn.net/article/details/107 ...

  2. PyTorch系列入门到精通——模型创建与nn.Module

    PyTorch系列入门到精通--模型创建与nn.Module  

  3. PyTorch系列入门到精通——模型保存与加载

    PyTorch系列入门到精通--模型保存与加载

  4. Simulink仿真入门到精通(五) Simulink模型的仿真

    本系列教程是根据孙忠潇编著的<<Simulink仿真及代码生成技术入门到精通>>学习笔记. 目录 Simulink仿真入门到精通(一) Simulink界面介绍 Simulin ...

  5. 渲染引擎入门到精通一_导入模型的实现和解决fbxsdk的使用坑

    前置条件, 学习这个文章前,需完全跑通项目 ​​​​​​​渲染引擎入门到精通-前篇零-HLSL编译的方法研究_avi9111的博客-CSDN博客 ​​​​​​​ 导入模型 因为渲染需要用到法线,切线, ...

  6. 火云开发课堂 - 《Shader从入门到精通》系列 第十六节:在Shader中对3D模型使用纹理

    <Shader从入门到精通>系列在线课程 优惠链接:http://edu.csdn.net/combo/detail/90 第十一节:在Shader中对3D模型使用纹理 视频地址: htt ...

  7. 火云开发课堂 - 《Shader从入门到精通》系列 第二十节:在Shader中对3D模型进行多纹理混合

    <Shader从入门到精通>系列在线课程 优惠链接:http://edu.csdn.net/combo/detail/90 第二十节:在Shader中对3D模型进行多纹理混合 视频地址:  ...

  8. 【组队学习】【28期】数据采集从入门到精通

    数据采集从入门到精通 论坛版块: http://datawhale.club/c/team-learning/38-category/38 开源内容: https://github.com/dataw ...

  9. 七夕福利 | 3D视觉从入门到精通系统学习教程

    写在前面 首先提前祝大家七夕快乐,感谢大家对工坊的陪伴与支持! 今天是七夕福利活动的最后一天,共100张券,已经送出去了60多张,还剩不到35张,大家可以抓住本次的活动机会,享受全年的最低价(优惠了7 ...

  10. 《Pro/ENGINEER野火版5.0从入门到精通》——1.3 体验Pro/E野火版5.0

    本节书摘来自异步社区<Pro/ENGINEER野火版5.0从入门到精通>一书中的第1章,第1.3节,作者 暴风创新科技,更多章节内容可以访问云栖社区"异步社区"公众号查 ...

最新文章

  1. 浅谈SAP Cloud for Sales 自动化
  2. java入门从哪下手_java新手0基础如何最快速的入门
  3. 神经网络简史:BP算法后的又一突破—信念网络
  4. 找出字符串数组中的等于某字符串的所有索引位置
  5. C语言相反次序重新排序
  6. 数据可视化系统在哪些行业中应用
  7. java常用类、最常用的包
  8. [asp.net]自定义控件(数据绑定)
  9. 计算机二级vf相关 书籍,计算机等级考试二级VF笔试教材.doc
  10. 中国气候分布矢量图_如何用30行代码构建气候图
  11. 【小强推歌】---奥斯卡金曲MP3[下载]
  12. Script with Login UPC Requests vs Urllib2
  13. skimage.filters.frangi函数
  14. pgadmin mac卸载_Mac软件卸载——安全彻底地在Mac上卸载Microsoft Outlook - Mac迪迪卫...
  15. 公开课分享《如何快速有效地编写一份商业计划书》
  16. Live Home 3D for Mac汉化破解版永久激活方法
  17. 【Vulnhub靶场】Earth
  18. 人工智能作业 八数码启发式搜索与bfs比较
  19. 唐太宗大喝一声:来人,给朕上云!
  20. 等价类划分和边界值法

热门文章

  1. 老鸟必备 | 如何画出优秀的架构图
  2. 做国外广告联盟:你要学会这些运作方法
  3. 张云雷的《探清水河》登上央视,为什么蔡国庆可以随心所欲地唱
  4. Variable used in lambda expression should be final or effectively final 问题的解决和追根溯源
  5. python图形模块_Python图像处理PIL各模块详细介绍(推荐)
  6. 缺陷跟踪系统BugTracker。 以下对使用
  7. 从零开始学习node.js
  8. oracle创建数据库的先决条件,Oracle数据库安装先决条件检查失败解决方案
  9. 浅谈工业互联网与产业互联网区别
  10. Go官方的使用Gin开发Web服务教程 | Gopher Daily (2021.08.19) ʕ◔ϖ◔ʔ