簡單瞭解 simulation-hspice
前言:
如果你希望把layout做好的話,你就應該知道的
多一些,再多一些!
總之多瞭解一些東西畢竟沒有什麼壞處,知識在肚子裡也不會壞掉。
前言:
如果你希望把layout做好的話,你就應該知道的
多一些,再多一些!
總之多瞭解一些東西畢竟沒有什麼壞處,知識在肚子裡也不會壞掉。
一、簡述
首先來瞭解一下SPICE的發展歷程,以及常見的SPICE仿真軟件。
SPICE(Simulation Program with Integrated Circuit Emphasis)
is the de-facto standard for circuit simulation。
最早於1972年於美國加州大學伯克利分校開發,主要用於集成電路的分析。
1975年正式推出,並於1988年被定為美國國家標準。
常見縮寫UCB(University of California/Berkeley) BSIM(Berkeley Short-channel IGFET Model),BPTM(Berkeley Predictive Technology Model)
相關的spice有:PSPICE(可以運行於PC及相兼容的機器),TSPICE,SBTSPICE,Spectre等。
spice通過描述一些模型,並由foundry廠提供參數值進行仿真,以達到模擬真實生產的情況,決定是否能夠通過,
並以此進行調整,減少不必要的損失。
二、實例
以nand2為例進行仿真,所需hspice file內容如下:(nan2.sp):
simulation for NAND2
.option node post
.option accurate
.MODEL N NMOS LEVEL = 1 CGDO=.2N CGSO=.2N CGBO=2N
.MODEL P PMOS LEVEL = 1 CGDO=.2N CGSO=.2N CGBO=2N
MI01 NET01 B VSS VSS N L=0.5U W=1.0U
MI02 OP A NET01 VSS N L=0.5U W=1.0U
MI03 OP A VDD VDD P L=0.5U W=1.0U
MI04 OP B VDD VDD P L=0.5U W=1.0U
.tran 5ns 100ns
.temp 25
.op
VDD vdd 0 5v
VSS vss 0 0
vA A 0 pulse(0,5v,10ns,5ns,5ns,15ns,50ns)
vB B 0 pwl(0,0v 10ns,0v 15ns,5v 60ns,5v 65ns,0v)
.end
%hspice nand2.sp >nand2.lis
生成的後綴文件對照列表所示:
File Description
Suffix
output
listing
.lis
transient analysis results
.tr*
transient analysis measurement results .mt*
DC analysis results
.sw*
DC analysis measurement results
.ms*
AC analysis results
.ac*
AC analysis measurement results
.ma*
FFT analysis graph data
.ft*
subcircuit cross listing
.pa*
output status
.st*
initial conditions
.ic*
用nWave打開nand2.tr0,查看的結果,如圖所示:
以上運行hspice的一個實例,下面將來重點分析nand2.sp 中每一句的意義何在。
三、重點分析
simulation for NAND2
標題,標注作用。
.option node post
.option accurate
選項,控制包括輸出類型、精確度、速度及收斂等情況
node 表示輸出node點的信息 post 表示輸出當前option的信息
accurate會增加cup運算時間,但精確度會得到提高。
.MODEL N NMOS LEVEL = 1 CGDO=.2N CGSO=.2N CGBO=2N
.MODEL P PMOS LEVEL = 1 CGDO=.2N CGSO=.2N CGBO=2N
模型,不同的model有不同的參數,提取這些值應該由流片的foundry廠提供。
MOSFET Model Levels:
public models & modified BSIM1
Level = 4 or 13 :BSIM1
Level = 5 or 39 :BSIM2
Level = 49 :BSIM3.3
Level = 8 :SBT MOS8
Level 48 :IBM ,Level 32 :AMD ,Level 45:Lucent ,...
MI01 NET01 B VSS VSS N L=0.5U W=1.0U
MI02 OP A NET01 VSS N L=0.5U W=1.0U
MI03 OP A VDD VDD P L=0.5U W=1.0U
MI04 OP B VDD VDD P L=0.5U W=1.0U
netlist,對應下圖結構.
這個通常的netlist格式,完整的應該有
.subckt nand op a b
...
.end
M表示MOSFET,語法如下:
Mxxx D G S B mtype L=value W=value
其它,X:subcircuit,C:cap,R:resistor,Q:bjt等
常用單位,如表所示:
Unit
Factor Unit Factor
F
1E-15
FT .305
P
1E-12
K 1e3
N
1E-9
MEG 1e6
U
1E-6
G 1e9
MI
25.4e-6
T 1e12
M
1E-3
DB 20log10
.tran 5ns 100ns
.temp 25
.op
設定,這裡也屬於控制部分,其實寫在哪裡都無所謂。
.tran設定仿真時間在5ns為一個step,100ns這個範圍
.tmp設定溫度
.op表示輸入控制。.OP,.IC,.NODESET為DC控制點,屬於analysis Type & Orders,
最先計算。
.op輸出如節點電位,目標電流,半導體器件電流,電容等信息。
VDD vdd 0 5v
VSS vss 0 0
power設定,vdd設定apply voltage的值。vss默認在0v。
vA A 0 pulse(0,5v,10ns,5ns,5ns,15ns,50ns)
vB B 0 pwl(0,0v 10ns,0v 15ns,5v 60ns,5v 65ns,0v)
灌輸入信號,語法如下:
pulse是一個脈衝信號。
Vxxx n1 n2 pulse(v1 v2 td tr tf tpw tper)
pwl是分段線性信號,每一點都說明,否則就保持最後值不變。
可以用repeat+delay進行循環設定。
Vxxx n1 n2 pwl(t1 v1,t2 v2,...)
.end
結尾語句
如果你認為把什麼都放在一起,不易於管理,也可以分門別類
比如把subcircuit放在一起叫netlist,把model都放在一起叫xx.mdl
在sp file可以使用.include對這些文件進行調用,如:
.include netlist
.include xx.mdl
四、調整
根據波形進行調整,這才到了最重要的地方。
分析手段各異,但最終的目標相同。當你每天對著這些波形發愣的時候,你就會懷念起
童年時的美好生活。
首先來瞭解一下SPICE的發展歷程,以及常見的SPICE仿真軟件。
SPICE(Simulation Program with Integrated Circuit Emphasis)
is the de-facto standard for circuit simulation。
最早於1972年於美國加州大學伯克利分校開發,主要用於集成電路的分析。
1975年正式推出,並於1988年被定為美國國家標準。
常見縮寫UCB(University of California/Berkeley) BSIM(Berkeley Short-channel IGFET Model),BPTM(Berkeley Predictive Technology Model)
並以此進行調整,減少不必要的損失。
二、實例
以nand2為例進行仿真,所需hspice file內容如下:(nan2.sp):
simulation for NAND2
.option node post
.option accurate
.MODEL N NMOS LEVEL = 1 CGDO=.2N CGSO=.2N CGBO=2N
.MODEL P PMOS LEVEL = 1 CGDO=.2N CGSO=.2N CGBO=2N
MI01 NET01 B VSS VSS N L=0.5U W=1.0U
MI02 OP A NET01 VSS N L=0.5U W=1.0U
MI03 OP A VDD VDD P L=0.5U W=1.0U
MI04 OP B VDD VDD P L=0.5U W=1.0U
.tran 5ns 100ns
.temp 25
.op
VDD vdd 0 5v
VSS vss 0 0
vA A 0 pulse(0,5v,10ns,5ns,5ns,15ns,50ns)
vB B 0 pwl(0,0v 10ns,0v 15ns,5v 60ns,5v 65ns,0v)
.end
%hspice nand2.sp >nand2.lis
生成的後綴文件對照列表所示:
File Description
transient analysis results
transient analysis measurement results
DC analysis results
DC analysis measurement results
AC analysis results
AC analysis measurement results
FFT analysis graph data
subcircuit cross listing
output status
initial conditions
用nWave打開nand2.tr0,查看的結果,如圖所示:
以上運行hspice的一個實例,下面將來重點分析nand2.sp 中每一句的意義何在。
三、重點分析
simulation for NAND2
標題,標注作用。
.option node post
.option accurate
選項,控制包括輸出類型、精確度、速度及收斂等情況
node 表示輸出node點的信息 post 表示輸出當前option的信息
accurate會增加cup運算時間,但精確度會得到提高。
.MODEL N NMOS LEVEL = 1 CGDO=.2N CGSO=.2N CGBO=2N
.MODEL P PMOS LEVEL = 1 CGDO=.2N CGSO=.2N CGBO=2N
模型,不同的model有不同的參數,提取這些值應該由流片的foundry廠提供。
MOSFET Model Levels:
public models & modified BSIM1
Level = 4 or 13 :BSIM1
Level = 5 or 39 :BSIM2
Level = 49 :BSIM3.3
Level = 8 :SBT MOS8
Level 48 :IBM ,Level 32 :AMD ,Level 45:Lucent ,...
MI01 NET01 B VSS VSS N L=0.5U W=1.0U
MI02 OP A NET01 VSS N L=0.5U W=1.0U
MI03 OP A VDD VDD P L=0.5U W=1.0U
MI04 OP B VDD VDD P L=0.5U W=1.0U
netlist,對應下圖結構.
這個通常的netlist格式,完整的應該有
.subckt nand op a b
...
.end
M表示MOSFET,語法如下:
Mxxx D G S B mtype L=value W=value
其它,X:subcircuit,C:cap,R:resistor,Q:bjt等
常用單位,如表所示:
Unit
.tran 5ns 100ns
.temp 25
.op
設定,這裡也屬於控制部分,其實寫在哪裡都無所謂。
.tran設定仿真時間在5ns為一個step,100ns這個範圍
.tmp設定溫度
.op表示輸入控制。.OP,.IC,.NODESET為DC控制點,屬於analysis Type & Orders,
最先計算。
.op輸出如節點電位,目標電流,半導體器件電流,電容等信息。
VDD vdd 0 5v
VSS vss 0 0
power設定,vdd設定apply voltage的值。vss默認在0v。
vA A 0 pulse(0,5v,10ns,5ns,5ns,15ns,50ns)
vB B 0 pwl(0,0v 10ns,0v 15ns,5v 60ns,5v 65ns,0v)
灌輸入信號,語法如下:
pulse是一個脈衝信號。
Vxxx n1 n2 pulse(v1 v2 td tr tf tpw tper)
pwl是分段線性信號,每一點都說明,否則就保持最後值不變。
可以用repeat+delay進行循環設定。
Vxxx n1 n2 pwl(t1 v1,t2 v2,...)
.end
結尾語句
如果你認為把什麼都放在一起,不易於管理,也可以分門別類
比如把subcircuit放在一起叫netlist,把model都放在一起叫xx.mdl
在sp file可以使用.include對這些文件進行調用,如:
.include netlist
.include xx.mdl
四、調整
根據波形進行調整,這才到了最重要的地方。
分析手段各異,但最終的目標相同。當你每天對著這些波形發愣的時候,你就會懷念起
童年時的美好生活。