第一行为该文件的名字,可以随便定义,一般以 .title 为起点
.lib 用于设置工艺库文件,后面添加工艺库所在的位置,用单引号引用,后面加TT
.end 网表结束语句,放置在网表文件的结尾位置
元件语句 R1 1 2 1K 分别表示器件类型,连接的节点,以及参数值
常量 ( 常用的单位 ) m 毫 u微 p皮 n 纳 meg兆
全局节点: .global node1 node2 node3 表示3个全局节点
子电路
.subckt subnum node1 node2 node3
.ends subnum 子电路结束
X1 node1 node2 node3 subnum 子电路调用
subnum为子电路名称,node1,node2不能为0,均是局部变量,可以与外部节点相同
独立源(电流源,电压源)
Vdd 1 0 10V AC=0.5V,90 电压源,直流分量是10V 交流分量0.5V,相位是90,正极节点1 负极节点0
VIN in gnd pulse 0 Supply 0.3ns 0.1ns 0.1ns 3ns 6ns 脉冲电压源,节点:in gnd pluse表示脉冲,低电平0 高电平supply(定义的常量1.8)0.3ns上升延迟时间 第一个0.1ns 上升时间 第二个0.1ns为下降时间 3ns为脉冲宽度,6ns为脉冲周期
.options 语句:.options opt1 opt2 opt3… optx 用于设置模拟的条件
list : 将电路参数,类似于各个地方的电容值 打印到列表文件(即lis文件)//很重要也很好用
nomod : 不输出model参数,减小列表文件的大小 //可用
node : 列出各个节点的元件端点,便于查错 //可用
opts 所有的option设置打印到列表文件//确实输出大量信息,暂时看不懂如何使用
acct : 将运行时间统计和仿真效率输出到列表文件 //通过运行仿真,未能成功使用
post : 使输出数据可以用MetaWaves浏览,即将数据输出到post processor
bypass=1不计算latent器件, latent 潜在的,隐藏的
brief=1 不输出网表信息 brief =0 输出网表信息//暂时还不在到怎么用
仿真过程中的一系列输出文件
*.ic 电路的初始条件
*.lis 仿真输出列表文件
*.st0 运行时间统计
*.tr0 暂态分析后处理程序输出
*.ac0 ac分析后处理程序输出
*.pa 分支路径表
*.mt0 测量报告后处理程序输出
输入行知识点:
用加号(+)表示续行,此时加号应该是新续行的第一个非数字,非空格字符
星号(*)和美元符号($)可以引出注释行,但是*必须是每行的第一个字母,$一般跟在一个语句之后,并与语句之间至少存在一个空格
控制卡,瞬态分析
.tran tincr1 tstop1 <tincr2 tstop2 ...>
举例: .tran 0.1ns 10ns 1ns 25ns start=5ns // 0~10ns范围内,步长为0.1ns;10~25ns范围内,补偿为1ns,从5ns开始打印输出结果
直流扫描
.dc Vin 0 5V 0.1v 输入电压进行直流扫描,初始值0V,终点值5V 步长0.1V
.option captab 对二极管,三极管,MOS管,电容,打印出信号的节点电容,例如输入电容,输出电容。
输出语句
.print 在list文件中打印输出分析结果 .print tran V(in) V(out) 打印瞬态值,Vin的瞬态,Vout的瞬态 后面可以添加多个变量进行打印输出
.plot 在list中打印低分辨率的曲线(由ASCII组成) 举例参见print
.measure 输出用户定义的分析结果到MT文件中,
.measure tran tphl trig v(in) val =0.9 rise =2 td =10p targ v(out) val =0.9 fall =2 //Rise Fall Delay模式 measure <AC|DC|TRAN>测量结果的名字 trig(代表起始) targ(代表终止)
trig和targ的格式:trig trig_val(起始引发变量) val = trig_val(指出上升,下降,反转的临界点)td=time_delay(开始测量时跳过的时间量0)(cross=c rise=r fall=f)分别指出开始触发的次数。
.measure tp param = '0.5*tplh+0.5*tphl'
附上反相器举例
.title inv
.lib 'C:\synopsys\Hspice_B-2008.09\tsmc018\MM018.L' TT $ Set 0.18um library
.options list node post nomod acct
.option captab
.tran 10ps 15ns
*.print tran V(in) V(out)
.param Supply=1.8 $Set power as 1.8V
.global vdd
vdd vdd 0 'Supply'
VIN in gnd pulse 0 Supply 0.3ns 0.1ns 0.1ns 3ns 6ns
.subckt inv in out wn=0.4u wp=0.4u
mn out in 0 0 nch l=0.2u w=wn
mp out in vdd vdd pch l=0.2u w=wp
.ends inv
.measure tran tphl trig v(in) val =0.9 rise =1 td =10p targ v(out) val =0.9 fall =1
.measure tran tplh trig v(in) val =0.9 fall =1 td =10p targ v(out) val =0.9 rise =1
.measure tp param = '0.5*tplh+0.5*tphl'
X1 in out inv wn=0.4u wp=0.4u
C1 out 0 85.22f $cg =1.3316f
.end
编好网表文件(要有.dc)点sinmulat
点edit ll确认没有error
点avanwaves
在result browser里面选择
反相器的仿真貌似不需要大神级别的就能解决吧....先把schematic画出啦,然后用ADE提取hspice网表文件.然后再编驱动文件(.sp文件)最后仿真就OK了. 刚开始不急不急慢慢来~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)