【HSPICE仿真】输入网表文件(2)电路拓扑描述

电路拓扑描述

  • 1.元器件描述语句(Elements)
    • 电阻(Resistor)
    • 电容(Capacitors)
    • 电感(Inductors)
    • 二极管(Diode)
    • MOSFET
  • 2. 模型(.MODEL)
    • 2.1 基本概念
    • 2.2 模型的使用
      • .model 描述语句
      • MOSFET的 .model 语句
  • 3. 电源和激励描述语句
    • 3.1 独立源
      • 直流源
    • 瞬态源
      • 梯形脉冲源
      • PWL Source
      • Pattern Source
  • 4. 库文件的调用
    • 4.1 .LIB语法
    • 4.2 示例
      • 定义参数的库文件

输入网表文件中很重要的一部分内容就是电路拓扑结构的描述(Element statements),该部分的主要内容就是电路单元及其连接关系和电路的输入激励

1.元器件描述语句(Elements)

元件描述语句一般由元件名称类型、元件所连接的电路节点号和元件电学参数值组成。

每个元件在输入文件中在一行内进行描述,一行放不下,就使用+进行拼接。

一般形式为:

elname <node1 node2 … nodeN> <pname1 = val1> <pname2 = val2><M = val> 
elname <node1 node2 … nodeN> <mname>  <val1 val2 … valN>
  1. elname:元件的实例名,实例名的首字母必须元件关键字( element key letter),该关键字确定了元件的类型。实例名最长不能超过1024个字符。输出的实例名称默认长度是16个字符,可以使用 .option lennan进行指定。

  2. nodeN:节点名,用来说明元件所连接的节点,节点名称可以是数字、字母以及两者的组合,但必须以字母开始,整个字符串不超过 16 个字符(包括第一个字母在内)。= ( ) , . [ ] 等符号不能出现在节点名中。节点0,GND,GND!,GROUND默认表示“地”。

  3. mname:模型参考名,无源器件除外的所有元件都是必需的。

  4. pnameN:元件参数名,用来标明一些元件的参数值。

  5. valN:赋于的参数值或模型节点,这些数值可以是数值,也可以是代数表达式。

  6. M=val:元件的倍增因子

器件类型及其关键字的具体内容如下:

在这里插入图片描述
在这里插入图片描述

电阻(Resistor)

电容(Capacitors)

电感(Inductors)

二极管(Diode)

MOSFET

描述形式:

Mxxx nd ng ns [nb] mname [[L=]length] [[W=]width] 
+ [AD=val] AS=val] [PD=val] [PS=val] 
+ [NRD=val] [NRS=val] [RDC=val] [RSC=val] [OFF] 
+ [IC=vds,vgs,vbs] [M=val] [DTEMP=val] 
+ [GEO=val] [DELVTO=val]

在这里插入图片描述

示例:

M1 1 2 3 model_1
Mopamp1 d1 g3 s2 b Mod1stage L=2u W=10u
Mdrive driver in output bsim3v3 W=3u L=0.25u DTEMP=4.0

2. 模型(.MODEL)

元件描述语句中的模型到底是什么呢?

2.1 基本概念

官方手册中的定义:

Every device model is a template defining various versions of each supported element type used in a netlist formatted for use by the HSPICE tool.

模型其实就像是电路设计时候的“标准单元库”,它描述了电路网表文件使用的各种元器件的各项参数,基于这些参数,工具才能进行仿真计算。(预先定义好的各种器件参数)

有了模型,我们在描述元件的时候,只需要指定所使用的模型,工具就可以读取该模型对应的各项参数,我们就不需要在网表中指定元器件的各项参数,这样以来,不仅可以更快的去创建一个网表文件,还可以避免一些错误。

就是说,输入网表中是需要指定元件用于仿真计算的各项参数的。第一,我们可以在网表种描述元件的时候,自己进行详细定义;第二,就是使用参考模型。

所以,模型就是elements各项参数的定义,我们可以自己生成,也可以使用别人定义好的模型,比如来自Foundary厂的模型参数可以能够更加贴近实际制造时的数据。当然,HSPCIE工具也会给定一些模型(Synopsys device models),我们可以基于这些模型给定的参数进行仿真。

2.2 模型的使用

为了在网表中指定一个器件,需要使用元件描述语句和模型描述语句。

一个简单的示例如下:

Q3 3 2 5 MOD1 <parameters>
.MODEL MOD1 NPN <parameters>

① 在元件描述语句中,只能使用模型的参考名称(这里是MOD1)来指定所使用的模型,而参考名称则是在.model中进行指定。

② 元件描述语句和模型描述语句中都可以定义参数,对于同名的参数,元件描述语句中的定义会覆盖模型描述语句中定定义。未指定的参数,就使用模型的默认参数。

③ 除了选择工具内置的模型外,还可以从模型库中选择模型,如下示例:

.LIB '../models/mosfet.lib' tt
M3 3 2 1 0 PCH L=1u W=1u

该示例使用了 mosfet.lib模型库文件中的参考名称为 PCH 的模型

.model 描述语句

该语句的作用就是在输入网表文件中包含一个预定义的HSPICE模型的实例。

基本语法如下:

在这里插入图片描述
(根据执行仿真的类型,会有一些拓展描述,这里就先不展开了。)

参数说明:

在这里插入图片描述
在这里插入图片描述

MOSFET的 .model 语句

对于和MOSFET相关的模型,其描述语句如下:

在这里插入图片描述

参数说明:

在这里插入图片描述

这里,模型参数中的LEVEL其实对应的就是不同类型的器件模型。工具支持的一些MOSFET模型如下:

在这里插入图片描述

在这里插入图片描述

3. 电源和激励描述语句

HSPICE 中提供了一些供激励用的独立源和受控源。电源描述语句也由代表电源名称的关键字、连接情况和有关参数值组成。描述电源的关键字含义如下:

V: 独立电压源
I: 独立电流源
E: 电压控制电流源
F: 电流控制电流源
G: 电压控制电压源
H: 电流控制电压源

3.1 独立源

基本语法:

在这里插入图片描述

参数说明:

在这里插入图片描述

在这里插入图片描述

基于上述语句格式,HSPICE规定出以下几种独立电源:DC Source、AC Source、Transient Sources。

直流源

语法:

在这里插入图片描述

示例:

V1 1 0 DC=5V
V1 1 0 5V
I1 1 0 DC=5mA
I1 1 0 5mA

瞬态源

Transient Sources说的是,在执行瞬态分析的时候,可以使得 source 随时间变化,主要有以下几种类型:

在这里插入图片描述

梯形脉冲源

基本语法:

在这里插入图片描述

参数说明:

在这里插入图片描述

波形随时间变化情况:

在这里插入图片描述

示例一:

需求描述:

示例二:

在这里插入图片描述

PWL Source

PWL是Piecewise Linear(分段线性)的缩写。

基本语法格式如下:

在这里插入图片描述

每一对(t1, v1)指定了v1在t1时候的值。

在这里插入图片描述

示例:

在这里插入图片描述

在这里插入图片描述

① PL 是 ASPEC 格式的关键字,描述上的是时间点和值的位置做了互换。

② 重复次数 r 的值必须是前面定义的时间点中的一个。

波形如下:

在这里插入图片描述

Pattern Source

HSPCIE为独立电压源或者电流源提供了 pattern source function,pattern source function使用了四种状态:0, 1, m, z,分别表示高、低和中等电压或电流,以及高阻态。

这四种状态的构成的序列称之为 “b-string”。

基本语法:

在这里插入图片描述

参数说明:

在这里插入图片描述
tsample就是每个值的持续时间

在这里插入图片描述

波形随时间变化分析:

在这里插入图片描述
就是说,tsample中包含了一半的上升时间或下降时间。

示例一:

在这里插入图片描述
向量信息如下:
在这里插入图片描述

先是 1011,然后从0开始重复一次(也就是011),然后是 0m1z,第二个b-string没有设定R或RB的值,那么HSPICE会使用默认值(R=0,RB=1)。

示例二:

描述语句:
在这里插入图片描述

向量信息:

在这里插入图片描述

使用工具对示例2的输入波形进行测试,

测试用的输入网表文件如下:
在这里插入图片描述

得到结果如下:

在这里插入图片描述

放大第一部分:

在这里插入图片描述

经过对波形的放大计算得知,tsample就是每一个状态的持续时间,这个持续时间包含了一半的上升时间和下降时间。

例如,对于01110的情况,中间的1就会保持完整的tsample,第一个1会持续tsample-(tr/2),第三个1会持续tsample-(tf/2)

如果是010的情况,这里的1就只会持续tsample-(tr/2)-(tf/2),示例(1010110)里面就是350。

4. 库文件的调用

前面在描述模型的时候提到,可以使用.LIB命令调用库文件。

在使用 HSPICE 对电路的模拟时,经常要对元器件的模型及其参数以及子电路进行描述或定义。**HSPICE 软件允许将器件模型(.MODEL 语句)、子电路的定义(包含.ENDS 语句)、有关注释语句及库文件调用语句(.LIB 语句)等集中存放到库文件中,**而在调用所要使用的模型和子电路时,仅需要将所要的模型、子电路等(库文件内容)内容取出进入存储器即可,这样速度快、占内存少。

4.1 .LIB语法

.LIB命令的语法如下,主要包括库的调用和库的定义两部分。

在这里插入图片描述
entry_name:一个库文件可定义多个库,entry_name就是每个库自己名称。该名称的第一个字符不能是整数。在调用库的时候加上该名称,就只会读取名称对应内容。(.LIB entry_name为开始,.ENDL 为结束。)

4.2 示例

定义参数的库文件

模型参数文件(c18vmos001.mdl)中的部分内容:

在这里插入图片描述
① 这里可以看出,有些参数上面是有一些变量的,这些就是参数的漂移量,我们可以在一个新的文件中去定义,如下所示。

② 从文件开头的内容可以看出,该文件中的参数是基于 LEVEL = 49 模型定义的,模型的参考名称为 N_18_LL,也就是说,我们在元件描述语句中,要使用N_18_LL来获取库中定义的参数信息。

参数漂移量(c18vmos001.lib)定义文件中的部分内容:

在这里插入图片描述

这样以来,在仿真的时候,通过调用这两个文件,就可以使用对应工艺角的器件参数。

在这里插入图片描述

这里其实是根据文件的内容选择调用语句。c18vmos001.mdl中的内容是模型参数,并不是LIB格式的定义,所以我们就使用.INC命令,对于LIB格式的命令,那么就是使用.LIB命令来调用。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部