电子说
很多在校的同学在使用仿真软件时对器件模型并没有什么认识,觉得器件直接从器件库中拉出来,画出电路图,就可以仿真了。
当然如果我们只是单纯为了“EDA设计”课程写份实验报告而进行电路仿真,那么的确不需要过多了解模型,因为我们并不关心实际电路的技术指标,而只关注仿真的结果。但仿真真正的目的一定是为了指导硬件,为了能在生产前发现设计缺陷、调试其技术指标,以及获得电压和功耗数据,提高设计的安全边界等,这些都要求电路仿真有着足够的精度和准确度。而决定仿真精度和准确度的决定因素是各元器件模型的准确性和正确性,可以说元器件模型是原理图仿真的根基。
因此,对于仿真软件中自带的器件库,我们不仅要会调用,还应该了解它的模型,必要时进行修改和调整。
另外,在设计实际电路中,还常常会遇到软件自带的器件库中没有找到需要型号的器件,那就需要到其官网上寻找它的SPICE模型,或是考虑自己构建SPICE模型,当然元器件建模是件最为艰难复杂而又艰难的过程。不过我们可以慢慢来,不是马上就想要自己构建一个复杂芯片的模型,而是从简单的器件入手。比如我们先聊聊电阻吧~~~
定值电阻
PSpice中的定值电阻模型主要包括3种,分别是Analog库中的R、BreakOut库中的Rbreak和PSPICE_ELEM库中的Resisitor。外观上并没有什么区别,一般我们都是选择Analog库中的R,用于简单直流、交流和瞬态仿真等;Rbreak是这三个中唯一可以通过右键菜单“Edit PSpice Model”进行模型文本编辑的,一般进行蒙特卡洛分析时会使用这种;Resisitor主要用于高级仿真分析(如灵敏度分析、电应力分析等)。
接下来,我们分别看一下这三种电阻的差别。
认识电阻模型
jiexialai
双击 analog 库中的 R,得到下图所示的属性项,以及各属性项的含义
如果某一电阻的规格如下图所示,该电阻的阻值我们假设是10k欧姆
那么可以对于上图 标注的参数在属性项中进行如下设置:
如果这时去看电路网表,可以看到电阻模型的语句为:
这就是电阻模型的SPICE格式:R
在电阻R属性项中设置了“Tolerance”,这个就是定义了器件容差DEV,如果需要设置器件的批容差LOT,那就需要调用BREKOUT库中的Rbreak.
点击Rbreak元件,右键可以看到这个器件是可以编辑模型的,其他电阻右键中的“EditPSpiceModel”项是灰色的(不信你可以试试(✿◠‿◠))
点击编辑模型后会调用cadence软件中编辑模型的工具model Editor
上述语句表明电阻模型名称为RBREAK,元件容差DEV为5%,按照高斯分布进行变化;批容差LOT为5%,按照平均分布进行变化,线性温度系数为100u,二次温度系数TC2没有设置,为默认的0。
这里的DEV和LOT在蒙特卡洛分析时起作用,TC在温度分析时起作用。
从这你可以看出,不能直接编辑的Analog库中的R是通过软件内置的属性编辑表格设置参数,而Rbreak是通过直接输出SPICE语句的方式设置参数。对于软件底层来说是一样的,最后都是转换成了SPICE语句。
如果需要进行电应力分析、灵敏度分析等PSpice AA(Advance Analysis)模块的分析时,一般会选择advanls文件下的PSPICE_ELEM库中的Resisitor:
双击该电阻,你会发现它的属性设置项更丰富,包含了高级分析中涉及到的各种参数,比如容差参数还可以设置正负容差不相同的情况。
从上面三种定值电阻的选择和设置可以看出,仿真原理图中的每个元件背后其实是一个个SPICE模型文件
仿真软件已经提供了丰富的仿真器件,可以根据需求选择最合适的元器件。电阻是这样,其他元件也是同样。如果需要将器件模型更趋于实际,可以通过设置模型参数或编辑模型,直接修改模型文件。
PSpice自带库中约含有五万个带仿真模型的元件,在17.4版本中,还增加访问TI模型库入口,可以轻松调用五千多个TI模拟集成电路(IC)模型。但在这电子技术飞速发展的时代,新器件、国产器件…还是大概率找不到模型,还有一些特殊功能的元件,甚至没有什么型号,如果想要仿真都是需要自己建模的。
自己建模的方法:
一般我们有两种选择:
1、通过直接使用SPICE语言编写lib文件建立模型
2、通过分立元件搭建电路生成器件模型文件
前者对于大多数工程师有极大难度,因为都没有系统学习过SPICE语言,后者相对比较容易掌握。
通过分立元件搭建电路生成模型,也有两种方式:
1、 采用绘制完整的内部子电路的方式建模
2、采用模拟行为模型(Analog Behavioral Modeling即ABM)的方式进行建模
如果对于IC芯片内部电路比较了解可以采用第一种方式,但是很多时候芯片内部电路是非常复杂的,如果不是IC厂商根本无法知道芯片内部电路,而且即使是芯片厂商,也不愿意采用公开内部详细电路的方式建模。所有绝大多数还是选择采用模拟行为模型ABM、布尔逻辑、IF语言和无源元件电阻、电容、电感等搭建电路的方式建模。
下面我们使用模拟行为模型的方式构建
一个压控电阻的SPICE模型
压控电阻的建模
压控电阻就是电阻阻值随着控制电压的变化规律改变。
以构建一个基准值为50欧姆的压控电阻的模型为例,说明如何创建一个可以用于PSpice仿真的模型。
步骤一
绘制子电路
在Capture的绘图区中绘制图1所示的电路图,其中GVALUE为ABM(analog Behavioral Modeling模拟行为模型)器件,G器件是输入是电压信号,输出是电流信号。GVALUE器件的表达式就是传递函数,图1中GVALUE的传递函数是:V(1,2)/(Rref*V(Ctrl)),也就是输出电流Io=V(1,2)/(Rref*V(Ctrl)),这就实现了电路1、2节点之间的电阻值为Rref*V(Ctrl),阻值随着控制端电压线性变化。图中R1和R2主要是仿真中为防止悬空而放置的。
图1 压控电阻的子电路
步骤二
通过子电路创建lib文件
电路图在软件底层就是网表,在Capture界面下,选择工程管理窗口,如图2所示,点击需要生成网表的那页电路图,如图中的Rval,然后选择菜单:Tool→Create Netlist。
图2 创建电路网表
打开图3的对话框,在PSpice标签页上点击确定,创建Rval.lib。
图3 创建lib文件
通过给定的路径,我们可以在文件夹下找到刚刚生成的.lib的文件。
步骤三
用Model Editor生成olb文件
使用PSpice中的模型编辑器Model Editor打开刚刚生成的.lib文件,或者直接在文件夹内双击刚刚生成的.lib文件,执行File→Export to capture part library,如图4所示,设置完毕后点击OK。
图4 输出olb文件
步骤四
为新器件选择合适的外观
继续执行File→Model Import Wizard,为该模型选择合适的外形。如图5所示,系统会提供默认的外观,也可以通过“Replace Symbol”从元件库中找到可以兼容的外观直接应用。这里选择使用默认外观。
图5 编辑新建模型符号
按完成按钮之后,在工程文件夹下就可以看到下面两个文件:
如果对于默认的外观不满意,可以通过Capture打开olb文件进行修改
步骤五
模型应用在工程
经过步骤三和步骤四,就生成了仿真模型必备的.lib和.olb文件。接着在需要调用新模型的工程下,执行PSpice→Edit Simulation Profile→Configuration File→Library,按照图6的步骤,将新建的库文件添加到工程中。
图6 在工程中添加库文件
之后就可以像调用自带库的元件一样,将构建好的压控电阻应用于图7所示测试电路中。
图7 测试电路
运行结果可以看出电阻的确随着控制电压的规律而变化。
说明建模成功,
这一期以最常见的电阻作为引子,让大家看到了藏在直观电路图背后的模型文件,其实揭开这层面纱之后,大家反而更敢于去面对了。
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !