《hspice-一些注解进阶.doc》由会员分享,可在线阅读,更多相关《hspice-一些注解进阶.doc(16页珍藏版)》请在课桌文档上搜索。
1、runlvl 用来设置仿真速度与精度 最高精度级别 runlvl=6 ,1=fast 6=most accurate .默认的值是runlvl=3.较低数值适合于纯数字电路或大部分数字电路.Hspice使用的是最好保存的runlvl设置.通常是结合.option runlvl=5If you set .option ACCURATE then HSPICE limits the RUNLVL value to 5 or 6.p1 input1 0 z0=50 port=1 pulsePsource dut_in 0 z0=zref port=1 pulse p 代表port 元件Psource
2、 dut_inp dut_inn 0 z0=zref port=1 pulse 这里定义的是差分的port元件对输出部分,没有源,所以无须加source部分.Pterm dut_out 0 z0=50 port=2这里要区别在.meas p ,p组合是表现功率.t无损传输线,结点,阻抗,延迟T1 dut_in 0 node1 0 Z0=50 td=1npar可复用par输出作为其他端口的输入电压Reusing the PAR Output as Input to Other Elements 可使用于.print .probe 的输出.print tran v par5*cos6.28*v*v
3、*k/360 式子要加单引号括起来IBIS模型使用Input buffer: B_INPUT nd_pc nd_gc nd_in nd_out_of_inOutput buffer: B_OUTPUT nd_pu nd_pd nd_out nd_in nd_pc nd_gcInput ECL Buffer:B_INPUT_ECL nd_pc nd_gc nd_in nd_out_of_inOutput ECL Buffer:B_OUTPUT_ECL nd_pu nd_ou t nd_in nd_pc nd_gcTri-state buffer:B_3STATE nd_pu nd_pd nd_o
4、ut nd_in nd_en nd_pc nd_gcInput/Output buffer: B_IO nd_pu nd_pd nd_out nd_in nd_en nd_out_of_in nd_pc nd_gcpu and pd are pull-up and pull-down; pc and gc are power clamp and ground clamp; nd simply stands fornode.例子如下:b_out1 nd_pu nd_pd out1 in1+ file = at16245.ibs+ model = AT16245_OUTSearch组合使用.opt
5、ion search hspice.ini file sets th e default search paths. 例子:.OPTION SEARCH=$installdir/parts/signet 定位到安装路径下去扫描寻找S参数 与外部电路连接 si_69S#x nd1 nd2 . ndN ndRef 所有的节点,其中最后一个点为地参考节点,除地结点共n,共有n个结点.当各结点参考结点不同时,可写成nd1+ nd1- nd2+ nd2- . ndN+ ndN- 形式+ MNAME=Smodel_name s参数标号+ TYPE=s|y Z0=value|vector_value s参数
6、/y参数 特征阻抗+ FBASE = base_frequency FMAX= maximum_frequency 时域运算,傅里叶运算的基带频率,默认为瞬态响应单位间隔的倒数FMAX 取2倍Knee frequency可以保证相对的准确+ INTERPOLATION=STEP|LINEAR|SPLINE|HYBRID 运算数据外推方式+ INTDATTYP=RI|MA|DBA 数据类型:RI 复数 MA 幅度角 DBA 分贝+ HIGHPASS=1|2|3|4 LOWPASS=0|1|2|3 低频为了抽取接近DC 的响应+ DELAYHANDLE=1|0|ON|OFF DELAYFREQ=
7、val 对于类似传输线延迟时,为准确,选on+ MIXEDMODE=0|1 DATATYPE= data_string 其中data_string d _diff c_comm s_sing n_n port+ NOISE=1|0 NoiPassiveChk=1|0 DTEMP= val 热噪声+ RATIONAL_FUNC=0|1 RATIONAL_FUNC_REUSE=0|1|2+ PASSIVE=0|1 PASSIVE_TOL=val COLSUM_LIMIT=val + ENFORCE_PASSIVE=0|1STAMP=S|Y|YSTS|SSTS|DEEMBED + M=int PRE
8、CFAC=val FQMODEL=sp_model_name 为了提高精度,保持准确1 外推DC响应,设置好lowpass2 max frequency 最好设置为 3倍最快瞬变频率.用model 来描述指定S 模型.MODEL Smodel_name S N=dimension 指定为S模型,为N端口.+ TSTONEFILE=filename | CITIFILE=filename | touchstone 文件是比较常用的模型,调用可见下边+ RFMFILE= file_name.rfm | BNPFILE= filename 还有一个可用的FQMODEL=SFQMODEL+ TYPE=
9、s|y Z0=value | vector_value+ FBASE=base_frequency FMAX= maximum_frequency组合示例s1 n1 n2 n3 n_ref mname=smodel z0=100.modelsmodels n=3 fqmodel=sfqmodel or z0=50 fbase=25e6 fmax=1e9 100欧比model里的50欧级别更高.sp文件使用举例.subckt sparam n1 n2 tsfile=strS1 n1 n2 0 mname=s_model.model s_model S TSTONEFILE=str.endsx1
10、A B sparam tsfile=strS-element data file mode一个完整的以p 端口来描绘的仿真网表*S-parameter example.OPTION post.probe vP1 n1 0 port=1 Z0=50 ac=1v PULSE 0v 5v 5n 0.5n 0.5n 25nP2 n2 0 port=2 Z0=50.ac lin 500 1Hz 30MegHz.tran 0.1ns 10ns* reference node is setS1 n1 n2 0 mname=s_model* S parameter.model s_model S TSTONE
11、FILE = ss_ts.s2pRt1 n2 0 50.endS参数的去嵌消除由不需要的外部测量接口如探针、连接器带来的影响. 104S1 1 2 3 4 5 6 7 8 mname= model_name + STAMP=DEEMBEDor.model model_name S + STAMP=DEEMBEDSPmodel小信号参数数据频率表格模型描述频率变化特性.MODEL name spN=val FSTART= val FSTOP=val NI=val矩阵维度一个维度包含了实/虚两部分读数/ 起始频率点/终止频率点/频率点每间隔,默认为10+ SPACING= val MATRIX=
12、val VALTYPE=val INFINITY= matrixval spacing,其中matrix 数据类型symmetric 对称,仅显示左下边,hermitian 共轭,nonsymmetric 非对称,完整形Valtype+ INTERPOLATION=val EXTRAPOLATION= val DC=val 内插:step,linear, spline 外推:none,step,linearPOInon-uniform spacing 非一致间隔DATA对如下类型的不同列组的数据,即层数据.File D File E File F d1 d2 d3 e4 e5 f6 d1 d2
13、 d3 e4 e5 f6使用如下样板.DATA dataname LAM FILE=file1 p1=1 p2=2 p3=3 FILE=file2 p4=1 p5=2 FILE=file3 p6=1 .ENDDATA传输线模型 si 125其中W代表精确建模的传输线,包括了导体与介质损耗,T代表相对简单的无损传输线.有关传输线损耗的两个公式:趋肤损耗:介质损耗:对W模型,考虑频率相关性模型:INCLUDEGDIMAG=yes 开启了使用复杂介质损耗的模型频率相关复介质旁路损耗其中wp是与极化时间常数相关的角频率Wtest win 0 wout 0 N=1 RLGCMODEL=WE1 L=0.3
14、+ INCLUDEGDIMAG=yes.MODEL WE1 WMODELTYPE=RLGC, N=1 1维矩阵,对于多维的情况,L0=val1 val2 val3.+ Lo = 3.8e-07+ Co = 1.3e-10+ Ro = 2.74e+00+ Go = 0.0+ Rs = 1.1e-03+ Gd = 8.2e-12+ wp= 0.07 不输入极化常数时,此项不要.PRINTZO 输出w 元件的复特征阻抗到.wzo 格式的文件W1 N=2 in1 in2 gnd out1 out2 gnd RLGCMODEL=2_line l=0.1+ PRINTZO=POI 3 1e6 1e9 1e
15、12其中2_line.wzo 保存输出* w-element model 2_line Characteristic Impedance Matrix:.MODEL ZO SP N=2 SPACING=POI MATRIX=SYMMETRIC+ DATA=3+ 1.0e6+ 175.362 -156.577 + 3.54758 -2.53246 175.362 -156.577+ 1.0e9+ 48.7663 -1.3087 + 1.69417 -0.0073233 48.7663 -1.3087 + 1e12+ 48.9545 0.238574 + 1.66444 0.0348332 48.
16、9545 0.238574混合阻抗矩阵对于一个简单的养分传输线对于一个弱耦合的对称双微带线,单线的特征阻抗Z11=Z22=50欧,Z21=Z12=0欧传输线连接的系统模型Delayopt 准确的建立延迟模型,以保证时域仿真的准确DELAYOPT=0|1|2 to deactivate, activate, and automatically determine,默认设置为0 不使用DCACC 保证低频部分的准确与收敛 DCACC=0 为关闭完整的W 语法 si 125 其中5个例子在128页W#x i1 i2 . iN iR o1 o2 . oN oR N= val L= val 输入输出/输
17、入输出参考节点+ RLGCMODEL= name | RLGCFILE=name | UMODEL= name+ FSMODEL= name | TABLEMODEL=name | SMODEL= name fsmodel 来自场求解器+ INCLUDERSIMAG=YES|NO FGD=val DELAYOPT=0|1|2|3 includersimag 默认考虑趋肤效应的虚部项 fdg 指定材料介质损耗的截止频率+ INCLUDEGDIMAG=YES|NO NODEMAP=XiYjDCACC=1|0 + NOISE=1|0 DTEMP= val + PRINTZO=frequency_sw
18、eep MIXEDMODEZO=0|1 printzo 输出复阻抗 可使用lin deco ct poi+ SCALE_RS=val 一个完整的包含W- 同时调用W的例子* W-Element example, four-conductor line W1 N=3 1 3 5 0 2 4 6 0 RLGCMODEL=example_rlc l=0.97 调用W 元素V1 1 0 AC=1v DC=0v pulse.AC lin 1000 0Hz 1GHz .DC v1 0v 5v 0.1v .tran 0.1ns 200ns * RLGC matrices for a four-conduct
19、or lossy .MODELexample_rlc W MODELTYPE=RLGC N=3 使用.model对W进行详细地定义+ Lo= + 2.311e-6 + 4.14e-7 2.988e-6 + 8.42e-8 5.27e-7 2.813e-6 + Co= + 2.392e-11 + -5.41e-12 2.123e-11 + -1.08e-12 -5.72e-12 2.447e-11 + Ro= + 42.5 + 0 41.0 + 0 0 33.5 + Go= + 0.000609 + -0.0001419 0.000599 + -0.00002323 -0.00009 0.000
20、502+ Rs= + 0.00135 + 0 0.001303+ 0 0 0.001064 + Gd= + 5.242e-13 + -1.221e-13 5.164e-13 + -1.999e-14 -7.747e-14 4.321e-13 .endUMOEDL 详情参考 135157 U 模型中的RLGC是以自/互阻抗感抗的形式表示的.W格式中R=R0+sqrt*RsU 格式中,R=Rc+Rs Rc就是上式中的直流电阻.而 计算趋肤效应的起始频率Fskin=1/例子* W Element example, four-conductor line, U modelW1 1 3 5 0 2 4
21、6 0 Umodel=example N=3 l=0.97.MODEL example U LEVEL=3 NL=3 Elev=2 Llev=0 Plev=1 Nlay=2+ L11=2.311uH + L12=0.414uH L22=2.988uH + L13=84.2nH L23=0.527uH L33=2.813uH + Cr1=17.43pF + C12=5.41pF Cr2=10.1pF + C13=1.08pF C23=5.72pF Cr3=17.67pF + R1c=42.5 R2c=41.0 R3c=33.5 + Gr1=0.44387mS + G12=0.1419mS Gr2
22、=0.3671mS+ G13=23.23uS G23=90uS Gr3=0.38877mS + R1s=0.00135 R2s=0.001303 R3s=0.001064 V1 1 0 AC=1v DC=0v pulse.AC lin 1000 0Hz 1GHz.DC v1 0v 5v 0.1v.TRAN 0.1ns 200ns.END频率相关表格模型Frequency-Dependent Tabular Model见si 161可用来模拟传输线的任意频率特性不支持RC传输线 modelNodemap 端口节点表 近端/输入端用 I, I N 远端/输出端使用O ,F 示例如下:NODEMAP
23、 = I1I2O1O2 * W Element Example: S Model *rout out 0 50vin in gnd LFSR 其中LFSR 是伪随机序列产生器or线性反馈移位寄存器?*+ pulseW1 in gnd out gnd SMODEL=smodel N=1 l=0.3+ NODEMAP=I1O1.MODEL smodelS TSTONEFILE=w.s2p+ XLINELENGTH=0.3 XLINELENGTH表明的是所用S参数来自的系统模型的线长.A must term for .sp file and W element.opt accurate post .
24、opiton accurate 自动设置RUNLVL value to 5 or 6.tran .01n 20n.endW-element passive noise model无源噪声模型热噪声 .NOISE and .LIN noisecalc=1 多端口时+ NOISE=1|0 DTEMP= val =1时,会产生2N*2N噪声-电流源相关矩阵T-element 阻抗和延迟无损简单的示例T1 in gnd t_out gnd model_name1 L=200mU1 in gnd u_out gnd model_name1 L=200m.model model_name1 U LEVEL
25、=3 PLEV=1 ELEV=1 wd=2m ht=2m th=0.25m 几何描述 ELEV=1,planar structure即平面结构 PLEV=1 ,wd导体宽度 ht,th 介质维度 + KD=5 KD为介质常数理想传输线示例T#x in refin out refout Z0=val TD=val L=val + IC=v1,i1,v2,i2IC= 为设定传输线的初始条件,各端口初始输入电压,电流T#x in refin out refout Z0=val F= val NL= val F与NL,在频率F时,归一化电气长度为NL+ IC=v1,i1,v2,i2利用场求解器来求解抽
26、取传输线参数 对应的是W element page si_188要求解趋肤阻抗,设置.FSOPTIONS COMPUTE_RS=yes场求解器对应声明.MATERIAL .LAYERSTACK 用来声明介质与金属层,但不包括导线部分,导线部分在最后的场求解指令里用conductor.SHAPE 声明形状 rectangle. circle strip polygon多边形Trapezoid 梯形示例 .shape rect rectangle width=400e-6 height=40e-6 这一系列的都是类似的布局:先 名称,类型.FSOPTIONS 求解选项.MODEL wmodelty
27、pe=fieldsolver 指定传输线类型为场求解器语法.MODEL mname W MODELTYPE= FieldSolver+ LAYERSTACK= name FSOPTIONS=name cood 为选定座标系+ RLGCFILE=name COORD=0|DESCART|1|POLAR RLGC文件名首字母必须为字母,不能为数字+ OUTPUTFORMAT=RLGC|RLGCFILE 设置.FSOPTIONSPRINTDATA t=YES 为输出RLGC文件+ CONDUCTOR=SHAPE= name MATERIAL=name + ORIGIN= TYPE=SIGNAL|RE
28、FERENCE|FLOATING . 导体类型:默认signal 设置为w-element中的信号节点 Floating 浮空的导体,w-element中没有参考 抽取RLGC表格模型.FSOPTIONS name ACCURACY=HIGH|MEDIUM|LOW+ GRIDFACTOR=val + COMPUTE_GO=YES|NO COMPUTE_GD=NO|YES+ COMPUTE_RO=YES|NO COMPUTE_RS=NO|YES|DIRECT|ITER+ COMPUTE_TABLE=frequency_sweep+ PRINTDATA=NO|YES|APPEND对于介质损耗项Gd
29、,必须定义材料的损耗值 才会在矩阵里出现 材料声明如下Gd=2*p*tan0*Co.MATERIAL die1 DIELECTRIC ER=4.1 LOSSTANGENT=.012详例见194 ?考虑到导体损耗的二阶效应 粗糙表面两种方法:比例因子 计算表面粗糙高度的均方值RMS 见 si 196比例因子 :W#x ni1 ni2 ref_in no1 no2 ref_out + SCALE_RS=value取均方值;.material copper metal conductivity=value roughness=value一个完整的场求解器指令例子:此例主要是生成RLGC* use c
30、opper_roughs w/ roughness=2um *P3 in2 0 port=3 ac=1P4 out2 0 port=4W2 in2 gnd out2 gnd FSmodel=line1_rough N=1 l=0.1.material diel dielectric er=4.3 .material copper metal conductivity=57.6meg.material copper_rough metal conductivity=57.6meg+ROUGHNESS=2e-6 计算介质材料的粗糙高度的均方值.shape rect rectangle width=
31、400e-6 height=40e-6 分别定义形状.layerstack stack1 background=air 叠层结构,注意顺序是从下至上,即铜层为最下层,上一层是介质+layer= 1 layer 包含两个项:材料material 厚度 0.5mm+layer= 2.fsoptions opt1 printdata=yes computeGd=no computeRs=yes 控制选项,不计算介质损耗Gd.model line1_rough W Modeltype=fieldsolver, 在model 中完整陈述所求解的结构+layerstack=stack1,+fsoption
32、s=opt1,+Rlgcfile=line1_rough.rlgc,使用line1_rough.rlgc这个文件来存储矩阵,在同路径文件夹内+conductor=shape=rect,origin=,material=copper_rough conductor作用是声明导线的部分,包括三个项,material ,shape ,origin ,如有多个导体,依次书写,如下+conductor=shape=rect,origin=,material=copper_rough.opt post.ac dec 100 1e6 1e10.end使用多核进程技术加速场求解器 pp si_198主要用于加
33、速趋肤效应部分电阻Rs的计算,相对另外三部分指令+ COMPUTE_GO=NO|YESCOMPUTE_RS=NO|YES|DIRECT|ITER 其中direct 和 yes 一样,使用加速,iter 使用迭代的矩阵算法Gridfactor= .fsoption 中的指令,只能使用整数,用来指定确定求解形状的最终分割数乘法因子,当compute_rs=yes 时,场求解器不会计算Ro.Rs.蒙特卡罗 si_207页关于蒙特卡罗的和生产工艺上尺度误差相关的例子非常好.下面是一个使用polar座标的共轴线模型 完整例子参见 si209页.SHAPE circle_1 CIRCLE RADIUS=0
34、.5m* Layer Stack .LAYERSTACK coaxial LAYER= $ only one 因为外围导体为无穷地,不要定义,所以这里只定义了中间部分的介质,而最中间部分的导体在下面的conductor中定义.MODEL coax W MODELTYPE=FIELDSOLVER FSOPTIONS=myOpt COORD=polar 声明使用极座标+ LAYERSTACK=coaxial, RLGCFILE=coax.rlgc+ CONDUCTOR = SHAPE=circle_1, MATERIAL=copper, ORIGIN= .MODEL twin W MODELTYP
35、E=FIELDSOLVER FSOPTIONS=myOpt COORD=polar+ LAYERSTACK=coaxial, RLGCFILE=twin.rlgc+ CONDUCTOR = SHAPE=circle_1, MATERIAL=copper, ORIGIN= + CONDUCTOR = SHAPE=circle_1, MATERIAL=copper,ORIGIN= 由于使用polar座标系,只须定义半径与角度而且Only one diel ectric is permitted and the dielectric layer is surrounded by ground.就是只
36、要定义中央的导体部分,外围为无穷地,且把介质完全包围起来. 见si_208IBIS 模型支持DC,AC,transient analysisb#x node_1 node_2 . node_N 所有外部结点+ file= filename model=model_name 指定所用到的 IBIS 的名字以与相关的 model+ keyword_1=value_1 . keyword_M=value_M 可选关键词+ M=num 乘法因子,正整数解决超频以与输入过载带来的问题, si_217rm_dly_rwf= default | rdly_time_value 值设为正数值rm_dly_fw
37、f= default | fdly_time_valuerm_tail_rwf= default | rtail_time_valuerm_tail_fwf= default | ftail_time_value各种bufferInput输入BUFFER si_218B_INPUT nd_pc nd_gc nd_in nd_out_of_in 共4个节点,node_in的观测电压可在node_out_of_in探测看+ file= filename model=model_name+ typ=typ|min|max|fast|slow power=on|off 如果设置power=on,那么地
38、/电钳位连接并开启所以不要再把它们连接到电源或地上,如果power=off,那么就要另外通过RLC或传输线来连接电源到这些结点+ buffer=1|input+ interpol=1|2+ nowarn+ c_com_pc=c_com_pc_value+ c_com_gc=c_com_gc_value+ pc_scal=pc_scal_value + gc_scal=gc_scal_value 打印时,.PRINT V VOutput 输出BUFFER B_OUTPUT nd_pu nd_pd nd_out nd_in nd_pc nd_gc 4到6个结点两个可选如果括号里钳位没定义,那默认为
39、各自连接到地/电 pull up/down+ file= file_name model=model_name+ typ=typ|min|max|fast|slow power=on|off power=on,同上,不再再去连接power/ground clamp+ buffer=2|output+ xv_pu=state_pu xv_pd=state_pd + interpol=1|2+ ramp_fwf=0|1|2 ramp_rwf=0|1|2+ fwf_tune=fwf_tune_value rwf_tune=rwf_tune_value+ nowarn+ c_com_pu=c_com_
40、pu_value+ c_com_pd=c_com_pd_value+ c_com_pc=c_com_pc_value+ c_com_gc=c_com_gc_value.探测流经C_comp的电流 si_223Tristate buffer 三态bufferB_3STATE nd_pu nd_pd nd_out nd_in nd_en nd_pc nd_gc 三态没有钳位,多了一个使能+ file= file_name model=model_name+ typ=typ|min|max|fast|slow power=on|off+ buffer=4|three_state+ xv_pu=sta
41、te_pu xv_pd=state_pd 同上输出buffer,对no_out结点并没有规定的规则.这个结点上的电压受到结点nd_in 与nd_en控制.电压源必须连接到nd_in,nd_en也要设置.nd_in,nd_en是代表0、1的控制信号.V_in nd_in gnd 0V pulseV_en nd_en gnd 0V pulseInput/Output BufferB_IO nd_pu nd_pd nd_out nd_in nd_en nd_out_of_in nd_pc nd_gcOpen Drain, Open Sink, Open Source BuffersOpen drai
42、n and open sink没有pullup电路,Open source buffers没有pulldown电路但它们的card 同output buffer一样,可像output 一样正常指定pullup 和pulldown ,尽管open 可能并不包含. 不过,下面的要注意Because open drain and open sink buffers do not have pullup circuitry, do not specify the xv_pu=nd_state_pu option.I/O Open Drain, I/O Open Sink, I/O Open Source Bufferssi_230详细的IBIS语法可见242页file = file_name 完整路径,如在同一文件夹中,只要使用文件名就行了model = model_name 指定ibis文件中的模型 model = ABC_1234_outbuffer = Buffer_Number | Buffer_Typetyp = typ|min|max|fast|slow hsp_ver = hspice_v