Hspice仿真练习题库

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:以下仿真库均为 0.6u_30V_BCD_V0.2P1 1、根据下列要求写仿真语句: A、一般 lib 文件会加载在 list 文件中,如果我想在 list 文件屏蔽掉这 部分信息,可使用怎样语句,举例说明。 想在 list 文件中屏蔽掉一些信息,可以用.PROT 和.UNPR 组合来实现。 例如原始网表中含有调用 lib 的一条命令
INV
*******************************************
*Project-----INV_SIM
*******************************************
*Note--------Different TEMP Delay Sim
*******************************************
out 0 cap
Vdd
vdd 0 5
Vin
in 0 DC 2.5 PULSE 0 5 10N 1P 1P 100N 200N
*************************************
.OP
.DC
Vin 0 5 0.1
.PROBE DC LV9(MNM1) LV9(MPM1)V(out)
.measure tran q1fall trig v(clk) val='vdd/2' td=10n rise=3 targ v(q1) val='vdd/2' td=10n fall=2 *延迟10ns后,测量q1信号的下降响应clk信号变化的速度 .measure tran q2rise trig v(clk) val='vdd/2' td=10n rise=3 targ v(q2) val='vdd/2' td=10n rise=2 *延迟10ns后,测量q2信号的上升响应clk信号变化的速度 .measure tran q2fall trig v(clk) val='vdd/2' td=10n rise=2 targ v(q2) val='vdd/2' td=10n fall=1 *延迟10ns后,测量q2信号的下降响应clk信号变化的速度 .measure tran q3rise trig v(clk) val='vdd/2' td=10n rise=2 targ v(q3) val='vdd/2' td=10n rise=1 *延迟10ns后,测量q3信号的上升响应clk信号变化的速度 .measure tran q3fall trig v(clk) val='vdd/2' td=10n rise=3 targ v(q3) val='vdd/2' td=10n fall=2 *延迟10ns后,测量q3信号的下降响应clk信号变化的速度 .measure tran q4rise trig v(clk) val='vdd/2' td=10n rise=3 targ v(q4) val='vdd/2' td=10n rise=2 *延迟10ns后,测量q4信号的上升响应clk信号变化的速度 .measure tran q4fall trig v(clk) val='vdd/2' td=10n rise=2 targ v(q4) val='vdd/2' td=10n fall=1 *延迟10ns后,测量q4信号的下降响应clk信号变化的速度 .measure tran q5rise trig v(clk) val='vdd/2' td=10n rise=2 targ v(q5) val='vdd/2' td=10n rise=1 *延迟10ns后,测量q5信号的上升响应clk信号变化的速度 .measure tran q5fall trig v(clk) val='vdd/2' td=10n rise=3 targ v(q5) val='vdd/2' td=10n fall=2 *延迟10ns后,测量q5信号的下降响应clk信号变化的速度 .measure tran q6rise trig v(clk) val='vdd/2' td=10n rise=3 targ v(q6) val='vdd/2' td=10n rise=2 *延迟10ns后,测量q6信号的上升响应clk信号变化的速度 .measure tran q6fall trig v(clk) val='vdd/2' td=10n rise=2 targ v(q6) val='vdd/2' td=10n fall=1 *延迟10ns后,测量q6信号的下降响应clk信号变化的速度 .alter 'Slow Model' *换用慢速模型重新仿真,并让VDD减小为原来的0.85,电路温度上升为125°C .del lib 'l28_0p8.lib' typical .lib 'l28_0p8.lib' slow .param vdd='vdd_ref*0.85' .temp 125 .alter 'Fast Model' *换用快速模型重新仿真,并让VDD增大为原来的1.15倍,电路温度还原为25°C .del lib 'l28_0p8.lib' slow .lib 'l28_0p8.lib' fast .param vdd='vdd_ref*1.15' .temp 25 .end 根据网表分析电路图如下:
夹中有相应的仿真结果文件,可以借助这些仿真结果文件分析该网
表。
* Critical Path-Typical Model First .option parhier = local *定义变量赋值优先级顺序为:子电路调用(X)——>子电路定义 (.SUBCKT)——>顶层定义(.PARAM) .Global vdd gnd sub *定义vdd、gnd和sub为全局变量 .subckt dff clk d q qn *定义D触发器子模型 。。。。。。。 .ends .subckt nor2 a b n2 *定义2输入或非门子模型 。。。。。。。。。 .ends .subckt inv p_a p_n2 drive=1 *定义反相器子模型 mp0 n2 a vdd vdd pch l=len w='6*drive' m0 n2 a gnd sub nch l=len w='3*drive' *** Current Probe Information *** .protect *该部分值不显示在.lis文件当中 Vp_a p_a a *放置探针,监测反相器输入输出的直流、交流和瞬态电流。 .probe DC i1(Vp_a) .probe AC i1(Vp_a) .probe TRAN i1(Vp_a) Vp_n2 p_n2 n2 .probe DC i1(Vp_n2) .probe AC i1(Vp_n2) .probe TRAN i1(Vp_n2) .unprotect .protect .probe DC i1(mp0) *监测mp0的DC,AC,TRAN漏端电流 .probe AC i1(mp0) .probe TRAN i1(mp0) .probe DC i2(mp0) *监测mp0的DC,AC,TRAN栅极电流 .probe AC i2(mp0) .probe TRAN i2(mp0) .probe DC i3(mp0) *监测mp0的DC,AC,TRAN源端电流 .probe AC i3(mp0) .probe TRAN i3(mp0) .probe DC i1(m0) *监测m0的DC,AC,TRAN漏端电流 .probe AC i1(m0) .probe TRAN i1(m0) .probe DC i2(m0) *监测mp0的DC,AC,TRAN栅极电流
.END
DC 仿真曲线如图:
由图可知,输入和输出的交点在 2.59V,和计算的值差不多。 上述仿真模式是 DC 仿真,不含任何的时间延迟,通常 INV 在应用 中,如果有较大的负载,应该考虑它输入输出之间的时间延迟。 将仿真分析语句改写,并加入测试语句如下:
.OP .TRAN 0.1N 100N SWEEP cap LIN 5 100F 1P .TEMP -25 25 75 ************************************* .MEAS TRAN DELAYR TRIG V(in) VAL=2.59 RISE=1 TARG V(out) VAL=2.59 +FALL=1 .MEAS TRAN DELAYF TRIG V(in) VAL=2.59 FALL=1 TARG V(out) VAL=2.59 +RISE=1 .PROBE DC LV9(MNM1) LV9(MPM1)V(out) .END

1 2
μ
N
Cox
WN LN
(VGS
− VTHN )2
=
1 2
μ
P
Cox
WP LP
wenku.baidu.com
(VGS
− VTHP )2
,可以解得
WN = 0.39WP
LN
LP 。一般为了使得翻转速度加快,L 取最小值,W 可以根
据驱动能力来确定。
假定负载电容 Cout 大小为 100f,DC 仿真验证计算的正确性。网表
如下:
.LIB ‘0.6u_30V_BCD_V0.2P1.lib’ 可以在其前后分别加入上述命令以屏蔽 list 文件中输出关于 lib 文件 的信息。
.PROT
.LIB ‘0.6u_30V_BCD_V0.2P1.lib’
.UNPR
B、有个反相器 INV,输出端接负载电容 Cout。要求测量在不同温
度(3 个温度点),不同负载电容下的延时时间。如何实现?
.OPTIONS NODE LIST POST
.PARAM cap=100F
*************************************
MNM1
out in 0
0 N_50 L=0.6u W=2u M=1
MPM1
out in vdd vdd P_50 L=0.6u W=5u M=1
Cout
.probe AC i2(m0) .probe TRAN i2(m0) .probe DC i3(m0) *监测mp0的DC,AC,TRAN源端电流 .probe AC i3(m0) .probe TRAN i3(m0) .unprotect*.protect控制语句的截止,以下语句不受保护 .ends .subckt nor3 a b c n2 *定义3输入或非门子模型 。。。。。。。。。
*Data--------2010-07-20
*Owner-------Andy
*******************************************
.PROT
.LIB "0.6u_30V_BCD_V0.2P1.lib" tt
.UNPR
*************************************
首先设计一个 INV,INV 由一个上拉 PMOS 和一个下拉 NMOS 构成,
当两个 MOS 管同时处于饱和区的时候,此时 INV 的增益很高,很小
的输入变化就会得到很大的输出变化,因此,可以认为输出翻转点就
是 PMOS 和 NMOS 电流相等,且同时处于饱和区所对应的输入输出
电压。
饱和区的电流表达式为:1
2
μCox
W L
(VGS
− VTH
)2
,因此要使得
Vtrans
在中
间电压,需要满足式子
1 2
μ
N
Cox
WN LN
(VGS
− VTHN )2
=
1 2
μ
P
Cox
WP LP
(VGS
− VTHP )2 。
通过查阅 lib 0.6u_30V_BCD_V0.2P1.lib 文件,可以得到具体的参数
如下:
由于 Toxn=Toxp,因此 Coxn=Coxp, μn = 560cm2 /V / S , μ p = 230cm2 /V / S , Vthn = 0.8330V ,Vthp = −0.8730V ,VDD=5V,输入为 2.5V,此时满足等
.ends .subckt nand2 a b n2 *定义2输入与非门子模型 。。。。。。。。。
.ends *---------------------------------------------------------------------------* Main Circuit Netlist: *---------------------------------------------------------------------------c26 q2 gnd c='2*stdload' *电容赋值 c25 q4 gnd c='stdload' c28 net20 gnd c='stdload' c17 qn gnd c='stdload' c23 q5 gnd c='5*stdload' c11 q gnd c='stdload' Xi3 clk q6 q qn dff *调用子模型 Xi1 clk data q1 net20 dff Xi16 gnd q5 q6 nor2 Xi29 q2 q3 inv drive=2 *反相器,此次调用中drive变量赋值为2 Xi4 q4 q5 inv drive=size *反相器,此次调用中将size变量的当前值赋给drive变量 Xi2 q3 gnd gnd q4 nor3 Xi0 q1 vdd q2 nand2 v21 sub gnd dc=0 *衬底接地 v7 data gnd dc=vdd PULSE 0 vdd 1n 500p 500p 9.5n 20n *数据信号 v6 clk gnd dc=vdd PULSE 0 vdd 4n 500p 500p 4.5n 10n *时钟信号 v5 vdd gnd dc=vdd *电源 .op *计算电路的直流工作点 .options post=2 *输出文件存为ASCII码格式 .options probe *使用指针 .probe v(clk) v(data) v(q1) v(q2) v(q3) v(q4) v(q5) v(q6) v(q) v(qn) .param vdd_ref=3.3 vdd='vdd_ref' len=0.6 size=1 stdload=30f *变量赋值 .option scale=1e-6 lvltim=3 *scale=1e-6表示所有数据单位默认为微;lvltim=3表示使用具有time +reversal的DVDT时钟步调运算(一种高精度运算) .lib 'l28_0p8.lib' typical *调用库文件 .tran 1n 50n sweep size 1 5 1 *瞬态分析,size变量从1到5,步进为1 .measure tran q1rise trig v(clk) val='vdd/2' td=10n rise=2 targ v(q1) val='vdd/2' td=10n rise=1 *延迟10ns后,测量q1信号的上升响应clk信号变化的速度
仿真结果如下: 下面两个图描述的分别是不同温度下的瞬态仿真以及计算出来的延 时时间。
三个窗口分别对应三个不同温度下的结果,蓝色为输入信号,绿色为 输出曲线。
蓝色为输入上升时所 measure 到的延时,绿色为输入下降时 measure 到的延时
C、研究 cpath.sp 文件,注解该文件的仿真语句,越详细越好。文件
相关文档
最新文档