Chip123 科技應用創新平台

標題: 原创:Ultrasim用法(待续) [打印本頁]

作者: lsh0211    時間: 2008-4-21 06:53 PM
標題: 原创:Ultrasim用法(待续)
简单写一下一般用法,有时间再整理一下,参考:cadence Ultrasim用户手册。
5 T* v- M  s7 {8 i7 h3 d9 I
" {9 z8 @1 Z0 E9 \" y, v介绍
6 v( w  n, `& x9 a5 s# H  y( _# Y    ultrasim是cadence的fast spice晶体管级仿真器。采用模型简化、模型表格化、矩阵分割、事件驱动技术、多速率仿真等技术的ultrasim是传统spice的速度的10X- 10000X,而精度仅仅相差1%-5%,容量提高到数十亿器件(传统spice仅为50k)。
7 K& ?' A0 x' \
% V* D  ^8 J2 b* u5 J6 D2 f用法1, k9 D8 S4 R3 Q; m4 N; S1 ?9 ?6 f
ultrasim已经完全集成在cadence ADE(旧称artist)环境中,同spectre一样可以方便的调用,并提供图形界面的各个选项,具体可参考相关手册,本文重点讲述其命令行的方式使用。2 i) |4 j" e$ c3 M( s: x

4 S  P& R! N$ H, g, k用法2
2 ?: F4 e, F) m1 d& e" j+ p1。在终端输入:0 I: A( [( {; c
            ultrasim xx.sp
) x. J* r# o8 I) S7 P            ultrasim -spectre xx.scs9 n* r7 y# F/ N1 _9 R8 E1 @
             ultrasim  -vlog xx.v+ ~6 k5 @  G- w7 h" B3 y4 ]/ v; H
    以上分别表示仿真xx.sp文件(netlist是hspice格式),xx.scs(netlist是spectre格式),xx.v(netlist是verilog格式)
# m& J, J! C- I) J. H    其中的ultrasim命令可以换成64bit的ultrasim64(要有64bit机器硬件与64bit OS以及64bit ultrasim的支持),64bit ultrasim可以访问超过4G的内存。2 B9 Y$ M( f- R& ^6 j
    还有一些其他选项,读者自己看吧; r. |, ~1 b3 A9 c
$ d+ E7 M& ?& G  d# ~  Q
2。 ultrasim的仿真模式。 根据对精度和速度要求的不同,ultrasim分为6种不同的仿真模式,分别是digital fast/digital accurate/mixed singal/analog Multi rate/analog mode/spice mode,在option选项种分别称为df da ms amr a  s .
2 H, P; d7 q. N/ b1 x% J) T8 r2 o    6种模式:数字加速、数字精度、混合信号、模拟多比率、模拟、spice 在精度上不断提高,而在速度上逐渐降低。其中df/da模式适用于数字电路(数字逻辑电路、门电路、触发器、ROM、RAM等)仿真,不要把这两种模式用于模拟电路仿真。6 ~/ z8 M# J' o' Z1 J1 ^
    df采用线型化的模型,与da模式相比,速度得到提升,但以我的经验,效果并不明显。
8 P" ]3 w5 o; |" Z4 M' {    如果在option没有设置,默认是MS模式,兼顾精度与速度。
5 f! u* i# o0 B# {    AMR模式不能“本地化”(local)使用,就是说AMR模式只能用于整个电路而不能针对某一个模块使用,这点后面会有讲解。2 N. ~; v) k5 _# |' F# G7 a
    据我的经验,a模式通常是hspice的1.5∼3.5倍速率,s模式通常可能低于hspice的速度,但精度低于hspice,因此,s模式很少用到。1 J7 T0 G* H; I0 [& W

" y* D2 }/ U2 U% O" _6 a9 k, x0 k  J7 z3。option中,仿真模式的设置。如下,在xx.sp文件内容如下:+ a( n! v# }. l. v9 V) U' R

+ p: t4 m5 y5 R# C; Z* test7 _% f9 ]8 b. S) Z& n0 i# {
***************************
- P2 {, s, _( ]& v.usim_opt sim_mode=da xi1 xi2 #dff
9 b. b* M; c( Y8 d6 p.usim_opt sim_mode=a xi5 #driver @pmos2
4 O! d% |; b5 j) c$ R8 R' F.usim_opt wf_format=wdf
" n8 f# l7 D  u! Y: q1 T9 H  ~*******************
' p; A( r0 y6 x. c& I  |* [.option post=10 K2 E+ A5 {# l  P+ y) b
.inc 'netlist'- C9 `2 m2 ^6 ]9 p4 w
.lib 'xx.lib' tt
2 L' \' A5 _! Z* ?
' d7 j% E/ O$ ^3 K2 A$ Rvxx xx gnd 55 C$ Q; `( r" u. z- K) [: K
····
) O9 L0 O( M# X* m# M% X····
6 {4 [& G' L' E- M" ?5 Y, a+ }" Y# e3 a! v( l
.tran 1u 1m5 j5 z* W, H7 b' K  A
.probe v(net*) depth=23 ~+ h1 k. q! {7 h/ Y1 ^( O, k4 m2 Y
.probe v(xi1.mp5)
/ j$ D: h: P) A) y! P6 z# X8 K  J.end: V7 e$ m( \0 G; v* i

/ E) k. K* B( H7 k    解释下,大家就清楚了:与hspice相比,ultrasim增加 .usim_opt作为options,前面的3个option分别表示:把子电路xi1 xi2 和cell(名称为dff的所有子电路) dff 设置为da仿真模式; 把xi5、cell driver、model pmos2(用到模型名称为pmos2的的mos管)设置为a模式; 生成的波形文件格式wdf。* j. d$ @- K& ]! t) A
    倒数第二第三的probe分别表示:输出顶层和第二层以net开头的线网波形; 输出子电路xi1 下面的编号为mp5的mos管电流波形。4 f% d6 ?* e3 F* g: m0 Q
    上面提到AMR模式不能本地化,也就是不能以 .usim_opt sim_mode=amr xi55 #dffr 等用于子电路和cell。
作者: lsh0211    時間: 2008-4-21 06:53 PM
3。关于波形文件格式的设置。
( D9 ^. r/ K% l# {, o6 e: _& @# }5 W    ultrasim支持以多种波形文件格式存储波形,主要有:psf sst2 fsdb wdf,默认的波形文件格式是psf(cadence的awd和新的wavescan都可以打开)。sst2是cadnce新的压缩波形文件格式,据称生成的波形文件最小,可以使用cadence的wavescan和simvision打开;fsdb是debussy开发的可以使用其nwave打开,生成的波形文件也比较小;wdf是sandwork开发的文件格式,感觉和fsdb的文件大小差不多,一般是hspice生产的.tr# 格式文件大小的1/3或更小 。 好像记得debussy和sandwork现在都被cadence的竞争对手synopsys收购了。其中sandwork的spice explorer(或称waveview analyzer)支持psf .tr#  fsdb wdf .dat(pspice) wdb 几乎所有主流的格式,功能十分强大,遗憾的是不支持sst2!现在被synopsys收购了,可能更不容易实现sst2的支持了。
8 X$ g# `/ m8 F  q    好了,根据自己使用的波形工具选择生成的波形文件类型吧。+ T2 v9 ^+ N2 {+ o. ^
    .usim_opt wf_format=wdf
' a+ c7 ~" e. B$ p7 D* X    把输出波形生产wdf格式,如果有多条语句,那么讲同时生产不同的波形文件。
* y9 U2 a) ~3 P3 [$ l/ G9 u& b( C. H5 G. R( c
. R" c% R, C8 P7 Z7 p7 H1 H( z7 I0 D
    其他波形选项:8 p* Q3 e! u5 k, [5 j
    .usim_opt dump_step=100n 每100ns,把仿真的波形数据从内存写入磁盘
9 f! T. S8 D+ n( l    .usim_opt wf_filter=0 不要虑掉任何波形数据(主要用于精度很高的电路)
5 N7 R: W; z, \4 S6 n. e    其他选项就不详述了
作者: lsh0211    時間: 2008-4-21 06:53 PM
4。公差容忍度设置  T+ {! T2 [8 Q1 c+ S
    speed可以设置总的公差容忍度tol(tol也可以单独设置),tol包括电压、电流等所有的公差容忍度之和。6 i, n) K, Y8 v# x  X, p' p4 e9 b
    .usim_opt speed=2 设置tol=0.001,比较高的精度!, o6 ?3 `! v3 L/ u1 q  D3 P! y) z
    .usim_opt speed=1 #vco 对vco cell使用0.0001的tol
  E* ]! |; v9 R1 W- Z4 E    speed=1,2,3,4,5,6,7,8对应的tol分别是0.0001 ,0.001,0.0025,0.005,0.02,0.02,0.04,0.07,精度以此降低。
2 b7 D- Q& Q/ m) u    通常,如果精度要求不是很高,可以采用默认设置,而无需设置这一项。: b) \0 T0 d7 s" l( b. ~
    tol还与解矩阵方程的收敛性有关,然而,我还从来没有碰到ultrasim不收敛的时候!!  l2 `  ^$ h+ J/ c# r0 W- ]
    再强调一点:精度设置的越高,相应的速度越低!
3 R. t! s& {; i; }9 ?
/ _9 I9 N* Z% n) h5.矩阵分割设置5 S" h. d" |5 `- w4 R! k$ m9 V
    ultrasim把大的电路矩阵分割成小的矩阵,以加快仿真速度,但同时会损失一些精度。analog选项用来控制矩阵分割的大小。# }- h% G! _6 V2 N
    .usim_opt analog=2 xi9 设置xi9中电路analog=2! Q. k/ M. d8 o% C% k$ [, I
    对这一选项,没有多大研究,通常我也采用默认的。
7 v3 ^+ ^8 O4 Y8 s( ~4 j5 H    以下是推荐的用法7 s! @; L2 B- K" z! p. A  a; ~
: B0 ~. z: s) o  B0 e4 d
analog = 0 Digital and memory circuits
( ~' b: |2 e/ p% Yanalog = 1 Digital, memory, and mixed signal circuits (default)
8 M6 ^' g+ G# V, Y6 w+ W. E& Tanalog = 2 Mixed signal, analog, and RF circuits) g0 L# C2 @1 @6 T5 B
analog = 3 Analog and RF circuits& x$ q  Z" s+ |7 ~' X  q
analog = 4 Mixed signal circuits (high sensitivity)




歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/) Powered by Discuz! X3.2