Chip123 科技應用創新平台

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

作者: lsh0211    時間: 2008-4-21 06:53 PM
標題: 原创:Ultrasim用法(待续)
简单写一下一般用法,有时间再整理一下,参考:cadence Ultrasim用户手册。7 E" O0 S9 G: c5 g' d4 N

" V7 o1 Z9 B5 H7 p% Q- _, |4 H介绍0 w$ W* \2 u' Z
    ultrasim是cadence的fast spice晶体管级仿真器。采用模型简化、模型表格化、矩阵分割、事件驱动技术、多速率仿真等技术的ultrasim是传统spice的速度的10X- 10000X,而精度仅仅相差1%-5%,容量提高到数十亿器件(传统spice仅为50k)。6 z( \3 {: W$ A. x; i" e
! M" l$ k4 _, K: w5 c" r1 y' P: m
用法16 i/ g! d3 W: s; Z7 h% d
ultrasim已经完全集成在cadence ADE(旧称artist)环境中,同spectre一样可以方便的调用,并提供图形界面的各个选项,具体可参考相关手册,本文重点讲述其命令行的方式使用。5 u+ _; |- x5 o& V* h) Q

6 z) @# d1 g5 H* S: {. N用法2
% T" b: i) V: s4 a% m. p7 L1。在终端输入:
  W* l# r) i* v  E8 m+ N, e            ultrasim xx.sp8 ^  X8 m  o+ u. J% s& u
            ultrasim -spectre xx.scs3 a% K/ a2 Q9 L; ]
             ultrasim  -vlog xx.v+ S5 D; V0 g' h6 v# @
    以上分别表示仿真xx.sp文件(netlist是hspice格式),xx.scs(netlist是spectre格式),xx.v(netlist是verilog格式)4 d( _. l9 m( ?; _3 |' S9 J/ a- l0 l
    其中的ultrasim命令可以换成64bit的ultrasim64(要有64bit机器硬件与64bit OS以及64bit ultrasim的支持),64bit ultrasim可以访问超过4G的内存。
& }1 n) _1 {5 Y4 Z+ R( P    还有一些其他选项,读者自己看吧0 A3 \7 y8 {' m# D

+ w7 I! u6 D( X7 ^* i; n' @2。 ultrasim的仿真模式。 根据对精度和速度要求的不同,ultrasim分为6种不同的仿真模式,分别是digital fast/digital accurate/mixed singal/analog Multi rate/analog mode/spice mode,在option选项种分别称为df da ms amr a  s .9 v1 J0 ~: m9 N- @' H3 }" M3 n! b
    6种模式:数字加速、数字精度、混合信号、模拟多比率、模拟、spice 在精度上不断提高,而在速度上逐渐降低。其中df/da模式适用于数字电路(数字逻辑电路、门电路、触发器、ROM、RAM等)仿真,不要把这两种模式用于模拟电路仿真。
& R9 T3 U9 G7 d; s1 _# Y% g. l    df采用线型化的模型,与da模式相比,速度得到提升,但以我的经验,效果并不明显。1 m' A6 a% E+ P) J8 P2 d; v# C6 M, ?
    如果在option没有设置,默认是MS模式,兼顾精度与速度。
; N. Q+ A; p  ^8 m    AMR模式不能“本地化”(local)使用,就是说AMR模式只能用于整个电路而不能针对某一个模块使用,这点后面会有讲解。! x5 ^$ E6 i2 G; P4 L3 |. [" V
    据我的经验,a模式通常是hspice的1.5∼3.5倍速率,s模式通常可能低于hspice的速度,但精度低于hspice,因此,s模式很少用到。& I. C4 N4 b, r3 s7 H5 E

8 d& e3 }  ~' U) X9 K" r/ {* f3。option中,仿真模式的设置。如下,在xx.sp文件内容如下:
' R7 k! U) y7 [3 r% X- h
0 O* @( @; O) C: d; D* test& C7 @  x+ u/ ?. g
***************************
. D6 ]( B1 w" g6 u$ O1 z* ^& R, E6 K.usim_opt sim_mode=da xi1 xi2 #dff& n; [4 o0 _* j  Z# J# U
.usim_opt sim_mode=a xi5 #driver @pmos2
: d/ J; C& t; Z. S2 l.usim_opt wf_format=wdf+ U9 G; x1 \8 `  v/ ~, l
*******************  o5 I  v( P" Q+ N: D0 e- k3 f
.option post=1
! |1 I6 Q7 A/ s# C2 {- w& n.inc 'netlist'
) c. k) T; }7 \* [& N) ?.lib 'xx.lib' tt2 u3 ?2 n* c. v
- m0 h& {5 D5 f7 n# o6 x1 a, G
vxx xx gnd 5
! U) E2 M+ c: I1 D( n, }; v$ U····% E9 c6 V4 b9 h' L
····3 [' S4 a: y, m7 E) l6 U- l
- c9 g' a4 _* A+ P& [6 y
.tran 1u 1m" N; W3 }# Z  L$ I
.probe v(net*) depth=2
) H, E2 x6 I( |6 b+ a+ `1 ?$ Z.probe v(xi1.mp5)
* D9 D5 `0 ]% G3 s5 c* P, T.end
0 O0 b! L7 @8 B1 F
7 l+ o) u+ p( Y    解释下,大家就清楚了:与hspice相比,ultrasim增加 .usim_opt作为options,前面的3个option分别表示:把子电路xi1 xi2 和cell(名称为dff的所有子电路) dff 设置为da仿真模式; 把xi5、cell driver、model pmos2(用到模型名称为pmos2的的mos管)设置为a模式; 生成的波形文件格式wdf。  j- a1 N3 ?: A5 G5 f( y- Y
    倒数第二第三的probe分别表示:输出顶层和第二层以net开头的线网波形; 输出子电路xi1 下面的编号为mp5的mos管电流波形。
+ B" |" d! E( g2 \5 i    上面提到AMR模式不能本地化,也就是不能以 .usim_opt sim_mode=amr xi55 #dffr 等用于子电路和cell。
作者: lsh0211    時間: 2008-4-21 06:53 PM
3。关于波形文件格式的设置。; X, v' N# A& F+ y
    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的支持了。+ r! h3 E4 z  T
    好了,根据自己使用的波形工具选择生成的波形文件类型吧。
, \2 U7 z( Y& T4 H4 f; l    .usim_opt wf_format=wdf( Q# K/ Y- C, F# h1 @0 m. C+ z8 ^0 S
    把输出波形生产wdf格式,如果有多条语句,那么讲同时生产不同的波形文件。
, \: Y! R+ J# D9 Q
0 f4 D7 T  o) e# r
# }! k8 f  Q: |& x# {1 Y  }. K    其他波形选项:
: B" q6 U) [  S- a0 E+ V1 V1 ^    .usim_opt dump_step=100n 每100ns,把仿真的波形数据从内存写入磁盘
1 h4 z& b7 i6 d    .usim_opt wf_filter=0 不要虑掉任何波形数据(主要用于精度很高的电路)6 |5 Q, ^6 I' y
    其他选项就不详述了
作者: lsh0211    時間: 2008-4-21 06:53 PM
4。公差容忍度设置3 \) m/ o& R; G
    speed可以设置总的公差容忍度tol(tol也可以单独设置),tol包括电压、电流等所有的公差容忍度之和。
; ^9 T4 ^# i2 ^# ^% c3 H# G3 f8 \    .usim_opt speed=2 设置tol=0.001,比较高的精度!
3 o7 x$ s/ C* t  y2 {    .usim_opt speed=1 #vco 对vco cell使用0.0001的tol6 i6 k' c$ U5 }/ C9 ^7 g% Z$ r
    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,精度以此降低。
) H( L- Y- s4 a# L    通常,如果精度要求不是很高,可以采用默认设置,而无需设置这一项。
" Q8 G# z6 C# w% G0 q. t    tol还与解矩阵方程的收敛性有关,然而,我还从来没有碰到ultrasim不收敛的时候!!; i' G$ I7 L: ~
    再强调一点:精度设置的越高,相应的速度越低!% x. U9 C9 ^4 L9 x9 r8 Y3 O' h& k
' e$ W' g2 y$ l) k
5.矩阵分割设置
" K1 ]) v/ U2 D* C. N. k    ultrasim把大的电路矩阵分割成小的矩阵,以加快仿真速度,但同时会损失一些精度。analog选项用来控制矩阵分割的大小。3 u+ [+ c& [8 R1 L6 g, ]
    .usim_opt analog=2 xi9 设置xi9中电路analog=2
" j3 R* F, s$ {" u- `& Q    对这一选项,没有多大研究,通常我也采用默认的。
) i! ^- S9 Z2 B+ u    以下是推荐的用法0 F2 s) y4 v9 s$ }2 J8 C
5 k$ D) T6 J% g7 Q6 o5 w% p9 V+ U# s
analog = 0 Digital and memory circuits
0 L$ Y0 L( h& u, K5 Aanalog = 1 Digital, memory, and mixed signal circuits (default)3 u% s* t; d3 B' C# ?; s
analog = 2 Mixed signal, analog, and RF circuits! Q  i" F" N! w& k9 d( o) Q! Y! g) L3 P
analog = 3 Analog and RF circuits
( X  W. S8 j+ r5 Nanalog = 4 Mixed signal circuits (high sensitivity)




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