什么是输入表_网表文件中有关网络的定义

什么是输入表_网表文件中有关网络的定义电路拓扑结构的描述方法_hspice

输入网表文件中很重要的一部分内容就是电路拓扑结构的描述(Element statements)。

简单来说就是,你要对什么样的一个电路进行仿真。

在HSPCIE中,是通过定义构成电路的单元(element)和单元之间的连接关系来描述一个电路,这些单元可以是电阻、电容、晶体管等等。

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指定该长度。(举个例子,这里就是说,如果要定义一个电阻,电阻的名称就必须以R开头。)

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

  3. mname:模型参考名,无源器件除外的所有元件都是必需的,后面会介绍模型的具体内容。

  4. pnameN:元件参数名,用来指定元件的参数值。

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

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

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

在这里插入图片描述
在这里插入图片描述
可以看出,电流源、电压源等也是以元件的形式进行描述的。

电阻(Resistor)

电容(Capacitors)

MOSFET

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]

对于[]中的参数,在这里可以指定也可以不指定。如果不指定使用模型(mname)中给定的默认值。

部分参数的含义如下,
在这里插入图片描述

示例:

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.

模型其实就像是电路设计时候的“标准单元库”,它描述了电路网表文件使用的各种元器件的各项参数,比如MOS管的阈值电压等,基于这些参数,工具才能进行仿真计算。

或者说,模型是对真实物理器件的一种描述,有了这些模型,才能将真实的物理器件放到计算机中,然后使用HSPICE才可以进行仿真。模型中的具体内容就是一个个的参数,比如说,为了描述MOS管,我们需要知道它的阈值电压、宽长比、载流子迁移率等等。

在仿真的时候,给这些参数指定一个具体的值,SPICE仿真工具就可以计算MOS管的一些特性。

( 不同的模型参数代表的就是不同性能的器件,比如说,对于MOS管,模型是描述方式,就是说,只要是相同结构的MOS管,都可以使用模型中给定的参数对其进行描述。但是对于同一个结构的MOS管,它的宽长比、阈值电压等等可能是不同的,模型参数的具体值就是反应的这些不同。)

真实的物理器件是十分复杂的,可能没有一个完美的模型来模型其在各种场景下的各种特定,所以就会有各种各样的模型来对其进行描述,某种模型可以反应真实的物理器件在某个场景下的特定,众多的模型就构成了对真实物理器件各种特性的详细描述。

在仿真层面,只需要通过指定模型和模型所需要的所需要的参数值,就可以得到一个”真实的物理器件”,然后就可以进行仿真。

对于器件的模型参数,当然可以在描述元件实例的时候对其进行逐一定义。但是这样的问题是, 每个模型中可能包含很多参数,每个元件可能有多个实例,如此一来,在描述电路结构的时候,就会显得很繁琐。所以我们就把模型相关的参数提前定义好,并给定也给默认值,然后给他起一个名字(model name),这样在定义元件实例的时候,直接使用模型名字即可,对于具体的参数,可以根据需求指定,如果不指定,就使用模型中指定的默认值。

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

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

2.2 模型的使用

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

一个简单的示例如下:

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

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

② 在模型描述语句(.model)中,NPN是模型,即真实物理器件的某种描述方式,MOD1是带有特定参数值的模型,是一个具体的器件。

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

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

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

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

.model 描述语句

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

基本语法如下:

在这里插入图片描述
type 和 level 共同确定了都某种器件的描述方式。

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

参数说明:

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

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

HSPICE为独立电压源或者电流源提供了 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)定义文件中的部分内容,该文件中给出了模型参数文件中变量的值(不工艺角下的参数漂移量是不一样的),同时也使用include语句包含了模型参数文件。

在这里插入图片描述

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

在这里插入图片描述

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

今天的文章什么是输入表_网表文件中有关网络的定义分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/79449.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注