You are on page 1of 9

HSIM 仿真工具研究使用报告

1).HSIM 简介:

HSIM(基于 Nassda 公司的专利层次化数据存储和同构匹配算法)是全球第一个满足深

亚微米设计需求的全电路、层次化的晶体管级仿真器。

HSIM 可以准确的仿真电路的各种行为,包括:电路的功能、电压和电流波形、时序和

功耗信息、电源网络的电压降、串扰噪声等。由于采用了创新的层次化数据存储和同构匹配

算法,HSIM 对仿真的电路规模几乎没有限制,真正能够对 HSIM 仿真产生影响的决定性因素

是仿真的硬件平台。因为随着仿真的进行,迭代次数越来越多,观测点的数据也越来越大。

而想观察这些观测点必须使用第三方软件,比如 debussy,但是第三方软件支持的观测数据

容量是有限的,因此在使用改软件进行仿真时应该适当的控制仿真的精度与观测信号的数

量。目前已知的极限情况是 512M 内存,P4 3.0 配置的机器在对 DLL 仿真时,如果精度较高

可能需要 20 个小时才能完成 25us 的仿真,需要注意的是 DLL 中有很多的寄存器单元,而寄

存器单元正是在所有仿真软件中最耗时的电路。所以建议最好是使用配置较高的双核 CPU

比较大的内存来运行 HSIM 及其仿真波形观测软件 debussy。层次化数据存储免除了仿真器

处理电路冗余单元和子电路对内存的需求,因此 HSIM 可以容易地做到高容量的全电路仿真;

同构匹配可以减少对冗余单元和子电路的计算量。目前,该算法已经获得美国专利。

HSIM 可以象 SPICE 一样用于任何电路的瞬态扫描、交流扫描、直流扫描和蒙特卡罗分

析扫描仿真,而且它比 SPICE 快很多倍。HSIM 的强项在于它维持一定精度和快速的情况下,

对数以千万计晶体管的仿真能力。HSIM 的用户可以用它来对大的电路模块、一组电路模块

或者整个电路做晶体管级仿真,尤其是对于包含大量寄存器与存储器单元的大型电路系统。

虽然 hsim 的精度相对 hspice 和其他仿真器要差一些,但是如果只关注系统在模拟仿真的环

境下的功能是否正确的话还是可以尝试一下大的,尤其是在包含较大数字模块较小模拟模块

的混合信号系统中使用 hsim 是具有很大优势的。因为 HSIM 是根据 I/V LUT 的原理来进行工

作的,而 I/V LUT 的有效数字位数决定了仿真的精度和速度,这就决定了他在高速的情况下

不精确而在精确的情况下不高速的特性。因此对于 hsim 而言比较合理的使用方案是先使用

nclaunch、Hspice 或者 Spectre 进行底层模块单元的数字与模拟仿真,得到对应的延迟与

功耗仿真结果,然后再使用 HSIM 进行全芯片的模数混合仿真,验证功能是否正确。

HSIM 不同于其它同类仿真器之处在于它的全电路仿真器能力免去了用户烦琐的划分子
电路的工作。同时,HSIM 也免去了用户编写模拟电路高层次模型的工作,这类模型只是在

用户描述电路功能时有用,而在实现整个设计时却毫无用处。HSIM 可以高速处理超大容量

电路,它保留了接近于 SPICE 的精度。HSIM 在轻微增加 CPU 时间的前提下,也可以处理电

路的耦合与感应现象。它的完美的 RC 约减能力可以有效地减少布局寄生参数的数量。另外,

HSIM 的自动层次化抽取能力可以自动的从"打平"的网表中生成层次化网表以用于 HSIM 独到

的层次化仿真。

基于 Nassda 专有的技术,HSIM 结合了全芯片晶体管级验证所需的特殊技术,包括:层

次化存储技术:以减少工作站内存和磁盘空间占用,能为当今高端的数百万晶体管级电路提

供一个高效率的层次化数据处理机制;层次化的 RC 精简算法:用以在层次化电路数据结构

中压缩寄生电阻电容的个数同时保持很高的精度;高效的层次化的矩阵方程求解器:使得电

路仿真能在实现层次化的同时保持 SPICE 精度。

Hsim 支持的仿真格式有 verilog、vhdl、spice 的网表格式(比如 cdl 和 spi 格式,前

者只能看到展平后顶层端口的信号而不能看到模块内部的信号,后者则可以根据需要观测任

何一级的信号),同时也支持数模混合仿真,还可以通过文件调用实现对 c、verilog 等其他

语言的调用。因此 hsim 是一种非常灵活仿真工具。一般在使用 hsim 作全芯片的模拟仿真时,

使用 spice 格式的网表和语法更为方便。

层次化反标:使用高效的参数精简技术,全芯片的 SPICE 精度晶体管级分析方法能够识

别出今 天设 计中的 纳米 效应 。今天 先进 的 post-layout 工具 能够把 寄生 参数 反标到

pre-layout 层次化网表中,这种方法在保持 SPICE 精度的同时显著得增加了验证的能力和

减少了验证的时间。

同构匹配技术:Nassda 专利的同构匹配技术,能极大得提高仿真性能。使用这种技术,

仿真器对于重复的电路元件不再进行重复计算,这极大得提高了运行速度和计算容量。这种

高性能、大容量的仿真能力帮助设计队伍能进行高效的纳米设计验证。

HSIM 使用推荐和限制:HSIM 推荐在分析电源网络的电压降对电路性能的影响,进行芯

片的串扰分析,以及在带寄生参数的全芯片后仿真时使用。HSIM 并不适用于少于 100 个晶

体管的电路仿真,也不适用于仿真有很多测试向量的电路,如果必须要带很多激励,那就用

更强大的计算机来缩减仿真时间。
2).阶段使用心得:

本次使用软件为 Nassda 公司的 HSIMPLUS v5.0,没有自带看波形的工具,于是使用

Debussy 作为波形显示工具。需在网表中定义 HSIM 输出文件格式为 fsdb,当然工具允许的

情况下其他形式的输出格式也是可以的。

语法为: .param hsimoutput=fsdb

针对仿真时所需要的库调用可以使用参数 HSIMFMODLIB 或者使用 spice 的函数.inc

与.LIB 来调用库文件。
语法:.param HSIMFMODLIB=”./log22. l” tt(corner)
或 .LIB 'D:\MPW_csmc\MPW05\h05mixddst02v231.lib' capacitor
或 .inc 'log022.l' tt
对于仿真温度的设定可以使用参数.TEMP
语法:.TEMP 25.0000
全局信号的使用需要调用参数.global
语法:.global pbvdd! vdd! gnd!
需要定义的全局信号名 pbvdd、vdd、gnd
对全局信号进行电平定义可以在仿真文件后面的激励列表中给出。
语法: vvdd vdd! 0 2.5
vpbvdd pbvdd! 0 2.0
注意 gnd!不需要给出,因为默认是参考电位。
确定扫描模式与仿真的精度和时间长短可以用参数 “.TRAN 精度 时间 ”来实现。
语法:.TRAN 50n 1600n
HSIM 兼容 SPICE 和 SPECTRE 格式的网表,依靠设置一些仿真控制参数达到精度与速度

之间的折衷。

语法: .param HSIMparameter_name=value1


HSIMTIMEFORMAT 决定了 CPU 输出时间的格式。默认为 1,此时是以 s 为单位的。为 2
时以 m 为单位,为 3 时为 m/s,为 4 时为 h,为 7 时为 h/m/s,为 8 时为 days
hsimspeed:数值可选 0 到 8 之间的整数,可在顶层或子模块中设置。

Hsimspeed=0,仿真结果与 SPICE 结果非常匹配,推荐在仿真小于 1000 个元件的小型模

拟电路时使用。

Hsimspeed=1,速度比 0 有很大提高,但精度损失非常小,特别是在大型电路仿真中。

需要指出的是,在两种情况下,设置速度 1 会损失很多精度:一是对漏电流的仿真,二是对

很低电源电压的电路模拟。

Hsimspeed=2,速度进一步提高,精度损失很小。

Hsimspeed=3,缺省值,由于对于不同模块设置了不同的步长,总的步长数减少,速度
自然提高,精度的区别在于仿真高敏感度的模拟电路。一般情况下,并不需要把速度值设置

小于 3,可利用 hsimanalog 控制模拟电路精度。

Hsimspeed=4,建议仿真数字电路,存储器电路,低敏感度模拟电路。

Hsimspeed=5,建议使用在存储器和混合信号电路功能验证,仿真速度的提升会带来

5-10%的时延误差。

Hsimspeed=6,建议使用在数字电路或低敏感度模拟电路的功能验证。

Hsimspeed=7,与 6 类似,也可用于 ROM 和 CAM 的验证。

Hsimspeed=8,建议使用在混合信号或 Flash 存储器电路功能验证。包含两种子模式,

hsimspeed=8.4 和 hsimspeed=8.8 可以使速度更快,特别适用于包含电压调整和电荷泵的电

路。

hsimstep2taumax : 如 果 hsimstep2taumax=1 , 则 .tran 命 令 中 的 步 长 值 将 作 为

hsimtaumax 的值(hsimtaumax 是 hsim 中定义的最大步长值),也就是说,当此参数为 0

时,.tran 中定义的步长值并不影响 hsim 的仿真速度。

hsimpostl:后仿真中寄生 RC 网络是降低仿真速度的主要原因,因此在 hsim 中可以设

置 hsimpostl 来控制是否以等效的精简 RC 网络来替代繁杂的寄生 RC 网络。缺省值是 0,并

没有精简 RC,值为 1、2、3 时,后仿真的速度递增,可视情况设置。此参数可对顶层也可

对子模快进行设置。

hsimanalog:为了优化 hsim 在模拟和混合信号仿真中的性能,可以设置此参数控制模

拟电路仿真算法的复杂度,值越高,模拟仿真的算法越精确也越耗时。如果只是仿真数字电

路,可设置 hsimanalog=-1;如果仿真全定制或存储器电路,可设置 hsimanalog=0 或 1;如

果仿真带隙基准电压发生电路、高增益放大器、VCO、开关电容滤波器、锁相环、A/D 和 D/A

转换电路,建议设置 hsimanalog=2;设置为 3 是最精确最耗时的。此参数可对顶层也可对

子模快进行设置。

hsimspice:此参数确定在 hsim 仿真中 MOSFET 模型的复杂度,因此可以调低此参数值

提高仿真速度。Hsimspice=0 是缺省值,对某些敏感于小电压变化的电路有小的精度损失。

最大值为 3,也是最高精度,hsim 会计算栅/漏/源/衬底之间的耦合效应,相应速度会减慢。

仿真测试网表(HSPICE 格式):320*240ROIC 数字部分寄生参数后仿真网表;

bq24020 前仿真网表(纯模拟)。

在对 ROIC 的后仿真中,由于是全定制的数字电路,以及重复单元比较多,因此采用缺

省设置的 hsim 仿真速度比 hspice 快几倍,如果设置 hsimpeed=8.8,则又会提高几倍速度,


另一个提高速度的方法是设置 hsimpostl=3,可以将 RC 网络精简 70%。

在对 bq24020 前仿真中,由于是全定制的模拟电路,几乎没有重复单元,因此采用缺省

设置的 hsim 仿真速度并没有比 hspice 快,而且 hspice 可以依靠设置大的步长值来提高速

度,但是 hsim 中用 hsimstep2taumax 引入步长对模拟电路速度没有太大提高,而设置

hsimspeed 可以提高速度,但感觉在这个模拟电路的前仿真中,hsim 的速度并没有比 hspice

有太大优势。

3).遇到的问题:

应该测试不同规模、不同类型(模拟,数字,混合信号)的电路,并与相应的 hspice

及 spectre 仿真进行比较,包含精度和速度的比较,所以试验应该增加多的样本。

由于我现在使用的版本是网上下载的版本,有些功能没有 license 支持,所以需要寻找

更全面的 hsim 版本。

在 bq24020 仿真中发现 hsim 结果与 hspice 结果不一致,说明 hsim 中的设置与 hspice

仿真的设置或语法仍有不同的地方,有待查证。

hsim 提供层次化的反标和同构匹配的提速方法,这就需要我们的电路设计具有较好的

层次性,也需要有后端工具来提供可层次化反标的版图寄生网络,才可以使 hsim 发挥最大

性能。层次化反标功能有待研究。

4).小结:

由于是首次接触 hsim 仿真工具,因此本阶段研究主要集中在调研 hsim 资料和初步使用

上。Hsim 可以提高仿真速度,但仍需在速度和精度之间折衷,视具体情况不同而采取不同

的参数设置,可以先用最快速度粗略的仿真一次,尽快查找错误和调试电路,然后再使用精

确的仿真验证。Hsim 的优势应该在于 VLSI 全芯片级后仿真,可针对一些由于规模太大而无

法全面仿真带寄生参数的芯片级验证的电路。总之,hsim 对后端验证很有帮助,可以进一

步研究。

5).Hsim 语法小结

a.激励的表示:

分段线性源:
一般形式: PWL <(> t1 v1 <t2 v2 t3 v3...> <R<=repeat>> <TD=delay>

<)>

其中:

v1... 电流或电压值。

t1... 分段点时间。

R 定义分段重复功能

repeat 定义分段重复的波形起始点

TD 定义实际分段线性开始前的延迟时间的关键字

delay 规定了分段线性的延迟时间

**例如:vEN_PA EN_PA 0 pwl( 0 2.5 33n 2.5 33.01n 0)

信号名 正节点 参考点 激励信号类型 起始时间 电压值 33ns 电压值 33.01ns 电压值

b.脉冲源

一般形式:PULSE <(> V1 V2 <td<tr<tf<pw<per>>>> <)>

或: PU <(> <V1 V2 <td<tr<tf<pw<per>>>> <)>

其中:

V1: 脉冲源开始前的初始值

V2: 脉动值

td: 第一个脉冲开始前的延迟时间,缺省值为 0.0

tr: 脉冲上升时间,缺省值为 TSTEP

tf: 脉冲下降时间,缺省值为 TSTEP

pw: 脉冲宽度,缺省值为 TSTEP

per: 脉冲周期,缺省值为 TSTEP

**例如:vCK_PA CK_PA 0 pulse( 2.5 0 32n 10p 10p 4.6n 5n)

周期名 正节点 参考节点 信号类型 第一 第二 延迟时间 上升时间 下降时间 脉冲 脉冲

电压 电压 宽度 周期
c.独立电压源 V 和独立电流源 I

一般形式:VXXX n+ n- <<DC=>dcval> <tranfun >

+ <AC=acmag,<acphase>>

或 IYYY n+ n- <<DC=>dcval> <tranfun >

+ <AC= acmag,<acphase>>

其中:

VXXX: 独立电压源名。必须以“V”开始,后面字符串不得超过 15

个字符。

IYYY: 独立电流源名。必须以“I”开始,后面字符串不得超过 15
个字符。

n+/n-: 电源的正负节点,电流源的电流正方向是使电流从 n+节点流

出,经过电流源流入 n-节点。正的电压源是使电流从 n+节

点流出,通过电压源流入 n-节点。注意电源不必接地。若将

零值的电压源接到电路某支路中,这样可得到流经该支路的

电流值。零值电压源就是短路线,所以不影响电路的工作。

DC: 电源直流值

tranfun: 电源的瞬态功能

AC: 表示电源用来作交流小信号分析

acmag: 交流幅度

acphase: 交流初相位(缺省值为 0.0)

M: 电流源并联数(缺省值为 1.0)

**例如:vOE_W OE_W 0 2.5

信号名 正节点 参考结点 信号电压值

vVDD VDD 0 2.5

信号名 正节点 参考节点 信号电压值

观察信号

若要观察每个端口的电压值,或要观察某个点的电流值,使用下面的函数:

.print tran v/i( ) v/i( ) v/i( ) v/i( )...

若要观察到某一层的所有信号:.print tran v(*) level=n ( n=1,2,3,4.... 表示自顶向下的层


数)。

若观察某一个模块某个管脚的信号: .print tran v/i(模块名.模块名.管脚名)

d.反相器中各 MOS 管的描述:

.SUBCKT B_INV_55_28_G35 A ZN

子电路开语句 电路名称 输入 输出

M0 ZN A GND! GND! NCH L=240E-9 W=2.8E-6

元件名 漏极节点电位 栅极结点电位 源极 衬底 模型参考名 沟道长度 沟道宽度

M1 ZN A VDD! VDD! PCH L=240E-9 W=5.5E-6

.ENDS B_INV_55_28_G35

子电路终止语句 子电路名

e.必须加的文件

BN.sp spice file


仿真文件名

.inc 'log022.l' tt

.inc 库文件 拐点

注释语句: * <comment on a line by itself>s 使用*表示本行为注释,行结束注释结束


例如:* END OF SUBCIRCUIT DEFINITION.

f.元件的描述:

elname <node1 node2...nodeN> <pnamel=val1> <pname2=val2> <M=val>

或 elname <node1 node2...nodeN> <mname> <val1 val2...valn>

elname: 元件名,是一个带有一个关键字母的不超过 15 个字符的

字符串。

HSPICE 中表示元件的关键字母的含义:

C-电容 K-耦合互感

L-电感 R-电阻

T-无损耗传输线 U-有损耗传输线

node1... 节点名,用来说明元件所连接的节点,节点名的第一个
字符必须是字母,整个字符串不超过 16 个字符(连第一个

字母在内)。=()′. ′[ ]等符号不能出现在节点名中。

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

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

val1... 赋于的参数值或模型节点,这些数值可以是数值,也可以

是代数表达式。

M=val 元件的倍增因子。

为了利用 hsim 实现 v100 的全芯片仿真,建议以下参数如此设置:

因为全芯片电路是包含 ram 的混合电路,所以 Hsimspeed 为 5、8、8.4 或者 8.8;tran 步长最好设置

为最小的单位延迟,这样可以减少 I/V 查找表的迭代次数;hsimstep2taumax 设置为 0,避免 tran 设置的

精度对系统仿真素服造成影响;hsimpostl 控制后仿真中是否精简 RC 等效模型,建议设置为 2 或者 3 来提

高仿真速度;将 hsimanalog 设置为 0 或 1,来减少对模拟电路仿真精度的要求以提高仿真速度。

.param hsimspeed=8

.param hsimanalog=1

.param hsimpostl=2

.param hsimstep2taumax=0

You might also like