Hspice介绍

Hspice介绍


Hspice主要应用于电路级仿真、分析。可以辅助调整电路参数,得到功耗、延时等性能估计。

简单电路正向设计的流程:

  1. 功能定义
  2. 行为设计
  3. 逻辑级电路设计(得到由基本逻辑单元组成的电路)
  4. 逻辑级仿真
  5. 选择合适的工艺库,把各基本功能单元映射于其上;或者设计各单元晶体管级电路(得到电路级网表)
  6. 电路级仿真
  7. 版图设计、DRC、LVS
  8. 提取版图网表,进行后仿真:验证功能,估计性能。

Hspice的功能

电路级和行为级仿真

直流特性交流特性分析、灵敏度分析

瞬态分析

电路优化(优化元件参数)

温度特性、噪声分析

傅里叶分析

Monte Carlo,最坏情况,参数扫描,数据表扫描

功耗、各种电路参数(H、T、S参数)等可扩展的性能分析

Hspice的样子

Hspice在cmd shell窗口运行,无图形化界面。输入网单文件是一个纯文本文件,输出也是一系列纯文本文件,根据不同分析要求,输出不同扩展名的文件(.lis、.mea、.dat、.smt等)。

Hspice的输入——网单文件

文件结构:

.title输入文件标题
options设置模拟的条件
Analysis statement设置扫描变量、设置分析模式
.print/.plot/.graph/.probe设置输出结果的显示方式
Sources(I or V)设置输入激励
netlist电路网表
.lib元件库
.model libraries元件模型描述
.end结束语句

例如(RC network circuit)::

.title A SIMPLE AC RUN
.OPTIONS LIST NODE POST
.OP
.AC DEC 10 1K 1MEG
.PRINT AC V(1) V(2) I(R2) I(C1)
V1 1 0 10 AC 1
R1 1 2 1K
R2 2 0 1K
C1 2 0 .001U
.END
  • .title语句

    .title <string of up to 72 characters>

    <string of up to 72 characters>(文件的首行被认为是标题)

  • .end语句

    .end (end之后的文本被当作注释)

  • 注释:*(必须在每行第一个字母)或者$(一般跟在一个语句后)

  • 常量

    M-毫,p-皮,n-纳,u-微,MEG-兆

    单位可以省略

电路网表

  • 元件名:R、C等,不超过16个字符

  • 节点:不超过16个字符,可以包括句号和扩展名,开始的0将被忽略

    通过.GLOBAL定义成全局节点

    节点0,GND,GND!,GROUND都指全局的地

  • 无源器件

    电阻:Rxxx n1 n2 <R=>resistance <AC=val>

    ​ Rxxx 9 8 1 AC=1e10(直流电阻1欧姆,交流电阻1e+10欧姆)

    电容:Cxxx n1 n2 <C=>capacitance

    电感:Lxxx n1 n2 <L=>inductance

  • 有源器件

    二极管:Dxxx nplus nminus mname /params
    双极型晶体管BJT:Qxxx nc nb ne mname
    JFET:Jxxx nd ng ns mname
    MOSFET:Mxxx nd ng ns mname
    ​ Mxxx nd ng ns mname
    ​ 例:Mn out in 0 0 NMOS W=1.2u L=1.2u
    ​ Mp out in vdd vdd PMOS W=3u L=1.2u

  • 子电路

    .SUBCKT SUBNAM <node1 node2...> $node1...为子电路内部节点号,不能为0,可与外部相同
    .ENDS <SUBNAM> $带子电路名表示子电路定义结束
    

    例如:

    .global vdd
    .SUBCKT INV IN OUT wn=1.2u wp=1.2u
    Mn out in 0 0 NMOS W=wn L=1.2u
    Mp out in vdd vdd PMOS W=wp L=1.2u
    .ENDS
    X1 IN 1 INV WN=1.2u WP=3u
    X2 1 2 INV WN=1.2u WP=3u
    X1 2 out INV WN=1.2u WP=3u
    CL out 0 1pF
    VCC VDD 0 5V
    
  • 激励源

    直流:V1 1 0 DC=5V或者V1 1 0 5V

    交流:V1 1 0 AC=10V,90(幅度10V,相位90度)

    交直流:V1 1 0 0.5V AC=10V,90(直流分量为0.5V)

    脉冲:VPU 3 0 PU (1 2 5N 5N 5N 20N 50N)

    ​ (括号内分别为值1,值2,上升延迟时间,上升时间,下降时间,脉冲宽度,周期)

    正弦:VIN 3 0 SIN (0 1 100MEG 1NS 1e10)

    ​ (括号内分别为失调值,幅度,频率,延迟时间,衰减因子,相位(这里是0))

    指数:V 1 0 EXP (-4 -1 5N 30N 80N 40N)

    ​ (括号内分别为初始值,峰值,上升延迟时间,上升时间常数,下降延迟时间,下 降时间常数)

模型卡

模型卡中列出一系列元件的类型,并给出了各类型元器件的有关参数。一个模型对应一类元件,不同的元件可以对应同一模型,其中各元件间的参数可能不同,但参数集是一样的,一般值相同的参数的值在模型说明中给出。

模型卡的语句是一条条.MODEL引导的模型说明语句,每个模型有一个名字。

电阻模型:.MODEL 模型名 R keyword=value

电容模型:.MODEL 模型名 C parameter=value

二极管:.MODEL 模型名 D <LEVEL = val> <keyword = val> …

MOS模型:.MODEL NMOS <LEVEL = val>

​ .MODEL PMOS <LEVEL = val>

​ LEVEL=1 常用于数字电路,精度低、速度快

​ LEVEL=2 考虑了衬底电荷对电流的影响

​ LEVEL=13,39,49 常用于模拟电路,精度高、速度慢

BJT模型:.MODEL mname NPN <pnamel = val1> …

​ .MODEL mname PNP <pnamel = val1> …

模型说明中涉及的参数需与.OPTIONS的设置相配合。模型参数中一般包括LEVEL,不同LEVEL的模型有不同的模型参数集。

控制卡

控制卡是hspice输入文件的命令部分,告诉hspice要进行哪些操作和运算,并给出相关的参数(分析方式、输出的变量等)。控制卡包括选项语句(.OPTIONS)、分析命令语句、输出控制语句几类。这些语句的共同特点是都是由保留字引导,后面跟随响应的参数,在保留字前加“.”。

.LIB语句:根据文件路径和文件名来调用一个库文件(一般包括器件模型中的参数值),比如一个具体的bjt,里面包括这个bjt的.MODEL语句等。

​ .lib ‘filename’ entryname

.INCLUDE语句:引用一个文件,如:.include “model.sp”

直流分析

.OP:直流工作点分析,在输出文件中会列出一些直流参数和各结点的工作点电压与支路电流、静态功耗。

.dc:电压扫描,比如上面那个反相器的例子:(.DC后面表示VIN从0V到5V扫描,步长0.1V)

......
.global vdd
.SUBCKT INV IN OUT wn=1.2u wp=1.2u
......
.ENDS
X1 IN 1 INV WN=1.2u WP=3u
X2 1 2 INV WN=1.2u WP=3u
X3 2 3 INV WN=1.2u WP=3u
CL OUT 0 1pF
VCC VDD 0 5V
VIN IN 0
.DC VIN 0 5V 0.1V
.OP
.....
END

.SENS ov1 <ov2…>:(ov1、ov2是做灵敏度分析的支路电流或节点电压)计算输出变量对于每个电路参数的偏导并做归一化。

.TF ov srcnam:小信号转移函数,计算ov/srcnam(ov是输出变量,srcnam是输入源)。

瞬态分析

.tran 0.1NS 25NS 1NS 40NS START=10NS:0-25ns,步长0.1ns;25-40ns,步长1ns,从10ns开始输出结果。

.four freq ov1 <ov2 ov3 …>(傅里叶分析)

交流分析

.AC:一般频域扫描,如.AC DEC 10 1K 100MEG:表示1kHz-100MHz,每10倍频10个采样点

.NOISE ovv srcnam inter:(ovv输出变量,srcnam输入源,inter频率间隔)噪声分析,计算各个器件的噪声对输出节点的影响并给出其均方根并输出,可完成.AC语句规定的各频率的计算,在.AC分析之后。

参数扫描

.data cv_table
500p
300p
500p
1n
.enddata
.AC OCT 10 1 100MEG sweep data=cv_table

温度分析:与直流或瞬态分析等命令结合使用,如.TRAN 1N 200N sweep temp 0 125 20

.IC语句:进行双稳态电路的模拟时往往需要使用

.OPTIONS:允许用户重新设置程序的参数或控制程序的功能。常用的有node(列出节点的元件端点,便于查错)、post(使输出数据可以使用MetaWaves浏览)、list(列出元件列表)。

输出控制

几个输出语句:

  1. .PRINT:在输出的list文件中打印数字的分析结果,如果.OPTIONS中有POST则同时输出到post-processor中。

    .print antype ov1 <ov2 ...>
    

    antype表示类型(AC、DC、TRAN),ov表示输出变量,如V(1)(节点1电压)、V(1,2)(节点1、2之间的电压)、V(R1)(电阻R1上的电压);VM(1)、VR(1)、VI(1)、VP(1)、VDB(1)分别表示V1的幅值、实部、虚部、相位、分贝值。

  2. .PLOT:在输出的list文件中打印低分辨率的曲线,如果.OPTIONS中有POST则同时输出到post-processor中。

    .plot antype ov1 (plo1,phi1) ov2 (plo2,phi2) ...
    

    (plo1,phi1)表示绘图的上下限。

  3. .GRAPH:生成用于打印机或PostScript格式的高分辨率曲线。

  4. .PROBE:把数据输出到post-processor,而不输出到list文件。

  5. .MEASURE:输出用户定义的分析结果到mt0文件,如果.OPTIONS中有POST则同时输出到post-processor中。

    *测量反相器链电路的延迟时间
    ...
    vin in 0 pulse(0 5V 10ns 1n 1n 50n 100n)
    .tran 1n 200n
    .measure tran tdelay trig v(in) val=2.5 td=8ns rise=1 targ v(out) val=2.5 td=9n fall=1
    .end
    

    trig/targ,val指上升、下降或反转的临界点;td指开始测量时跳过的时间量,rise/fall/cross指开始触发的次数

  1. .OP,.TF,.NOISE,.SENS,.FOUR都提供直接输出功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值