微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > RFIC设计学习交流 > 如何将Spice网表嵌入到Spectre网表中,并得到仿真结果

如何将Spice网表嵌入到Spectre网表中,并得到仿真结果

时间:10-02 整理:3721RD 点击:
想要在ADE环境下仿真一款芯片的性能(例如ADI的ADA4817),ADI给出的网表为:ADA4817.txt
我在ADE环境下搭建了一个ADA4817的测试平台,其中ADA4817为Symbol视图(不含网表),ADE生成的网表为:input.scs
如何仿真?

ADA4817.txt 和 input.scs
ADA4817.txt
* The following parameters are accurately modeled;
*
*
*FET Input common mode range
*Bandwidth 1050 MHz
*Voltage noise ~ 4nV/rtHz
*Slew Rate ~ 840V/us
*Input Capacitance Cm ~1.3pF and Dm ~0.1pF
*Vos is static and will not vary ~ 1.5 mV
*Distortion is not characterized
*Output Swing swing
*
*Node assignments
*non-inverting input
*| inverting input
*| | positive supply
*| | |negative supply
*| | ||output
*| | |||
.SUBCKT ADA48171 2 99 50 45
* FET INPUT STAGE
*Eos 9 2 poly(1) 100 98 4.2m 1
Vos 9 2 1.5m
Cd 1 2 0.1p
Ccm1 1 0 1.3p
Ccm2 2 0 1.3p
J1 5 1 4 pmod
J2 6 9 4 pmod
Ib1 1 0 2p
Ib2 9 0 2p
Dnil 9 42 DX
Vnil 99 42 3.4
Dpil 1 44 DX
Vpil 99 44 3.4
*R3 50 5 1
*R4 50 6 1
HR3 50 55 VR3 1
VR3 55 5 DC 0
HR4 50 66 VR4 1
VR4 66 6 DC 0
I11 99 4 1m
Ccap 45 2 0.8p
* COMMON-MODE GAIN NETW0RK
Ecm 80 98 POLY(2) 2 98 1 98 0 .5 .5
Ecc 97 0 99 0 1
Ess 52 0 50 0 1
Eref 98 0 POLY(2) 99 0 50 0 0 .5 .5
* GAIN STAGE & POLE AT 130 kHz
G1 13 98 5 6 0.045e3
R7 13 98 rnoise 255e3
*HR7 13 198 VR7 255E3
*VR7 198 98 DC 0
C3 13 98 30p
V1 97 14 1.65
V2 16 52 1.55
D1 13 14 DX
D2 16 13 DX
* POLE AT 1 GHz
G2 98 43 13 98 1
R10 98 43 1
C5 98 43 112p
* POLE AT 1.3 GHz
G3 98 53 43 98 1
R11 98 53 1
C6 98 53 112p
*POLE AT 130 GHz
*G4 98 63 53 98 1
*R12 98 63 rnoise 1
*C7 98 63 0.122p
* BUFFER STAGE
Gbuf 98 81 53 98 1e-2
Rbuf 81 98 100
* OUTPUT STAGE
Vo1 99 90 0
Vo2 51 50 0
R18 25 90 .02
R19 25 51 .02
*D100 45 250 Dx
*D101 250 45 Dx
Vcd 255 45 0
Lout 255 25 0.1p
G6 25 90 99 81 50
G7 51 25 81 50 50
V4 26 25 -0.8355
V5 25 27 -0.8355
D5 81 26 Dx
D6 27 81 DX
Fo1 98 70 vcd 1
D7 70 71 DX
D8 72 70 DX
vi1 71 98 0
Vi2 98 72 0
Erefq 96 0 45 0 1
Iq 99 50 0.0185
Fq1 96 99 POLY(2) Vo1 Vi1 0 1 -1
Fq2 50 96 POLY(2) Vo2 Vi2 0 1 -1
****** Voltage noise stage
rnoise1 39 98 1.8e-3
vnoise1 39 98 0
vnoise2 101 98 0.75
dnoise1 101 39 dn
fnoise1 100 98 vnoise1 1
rnoise2 100 98 1
.model Rnoise RES(T_abs=0)
.model pmod pjf (beta=0.5e-2, T_abs=-10)
.MODEL DX D (T_abs=0)
.model dn d(kf=2e-12,af=1, T_abs=-4)
.ENDS
*$
;$SpiceType=AMBIGUOUS

input.scs
// Generated for: spectre
// Design cell name: tb_ADA4817
// Design view name: schematic
simulator lang=spectre
global 0
include "/home/EDA/IC5141/tools.lnx86/dfII/samples/artist/ahdlLib/quantity.spectre"
// Cell name: ADA4817
// View name: schematic
subckt ADA4817 _1 _2 _45 _50 _99
ends ADA4817
// End of subcircuit definition.
// Cell name: tb_ADA4817
// View name: schematic
V2 (Signal_IN 0) vsource type=sine ampl=30m freq=10K
V1 (N5V0 0) vsource dc=-5 type=dc
V0 (P5V0 0) vsource dc=5 type=dc
C1 (Signal_IN net25) capacitor c=100.0n
R3 (PreAMP_OUT 0) capacitor c=100.0n
R1 (PreAMP_IN PreAMP_OUT1) capacitor c=1.5p
R6 (0 net25) resistor r=4.7K
R2 (net25 PreAMP_IN) resistor r=330
R0 (PreAMP_IN PreAMP_OUT1) resistor r=3.3K
I5 (PreAMP_OUT1 PreAMP_OUT PreAMP_OUT N5V0 P5V0) ADA4817
I0 (0 PreAMP_IN PreAMP_OUT1 N5V0 P5V0) ADA4817
simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
digits=5 cols=80 pivrel=1e-3 ckptclock=1800 \
sensfile="../psf/sens.output" checklimitdest=psf
tran tran stop=1m errpreset=moderate write="spectre.ic" \
writefinal="spectre.fc" annotate=status maxiters=5
finalTimeOP info what=oppoint where=rawfile
dcOp dc write="spectre.dc" maxiters=150 maxsteps=10000 annotate=status
dcOpInfo info what=oppoint where=rawfile
modelParameter info what=models where=rawfile
element info what=inst where=rawfile
outputParameter info what=output where=rawfile
designParamVals info what=parameters where=rawfile
primitives info what=primitives where=rawfile
subckts info what=subcktswhere=rawfile
saveOptions options save=allpub

可以试试在spice netlist的头上插入
simulator lang=spice
不知道对后面的model起不起作用

include "xxx" 的形式将网标包进 input.scs里面,在命令行跑仿真
或者在ADE环境下 "design"下拉菜单,有个选项(忘记具体叫啥名字了,你自己找找看),直接把你的网标的路径/文件名称 加载进去,也就可以用图形化界面跑仿真的了 !

有个命令叫spp,可以把spice的网表转成spectre的网表。spp的命令应用在论坛里面有,你可以搜搜,就是我写的。

你的帖子,我看了,很有帮助
我用spp -convert<ADA4817.txt >ADA4817.scs
将其转化为spectre网表,见附
然后打开ADE,设置仿真方式DC,and Tran, 点击"Netlist and Run"按钮,生成整体网表文件input.scs (见1楼)
将ADA4817.scs网表Copy到input.scs相应位置,并将网表中的连线label改成与所定义的端口名一致,保存input.scs.
在已经打开的ADE界面下,点击“Run”(不是Netlist and Run),log文件(spectre.out)显示没有问题,没有仿真结果。
这是什么原因呢,以上步骤中哪里有问题?

ADA4817.scs
// .SUBCKT ADA48171 2 99 50 45
simulator lang=spectre insensitive=yes
//FET INPUT STAGE
// Eos 9 2 poly(1) 100 98 4.2m 1
vos ( 9 2 ) vsource dc=1.5m
cd ( 1 2 ) capacitor c=0.1p
ccm1 ( 1 0 ) capacitor c=1.3p
ccm2 ( 2 0 ) capacitor c=1.3p
j1 ( 5 1 4 ) pmod
j2 ( 6 9 4 ) pmod
ib1 ( 1 0 ) isource dc=2p
ib2 ( 9 0 ) isource dc=2p
dnil ( 9 42 ) dx
vnil ( 99 42 ) vsource dc=3.4
dpil ( 1 44 ) dx
vpil ( 99 44 ) vsource dc=3.4
// R3 50 5 1
// R4 50 6 1
hr3 ( 50 55 ) ccvs probe=vr3 rm=1
vr3 ( 55 5 ) vsource dc=0
hr4 ( 50 66 ) ccvs probe=vr4 rm=1
vr4 ( 66 6 ) vsource dc=0
i11 ( 99 4 ) isource dc=1m
ccap ( 45 2 ) capacitor c=0.8p
//COMMON-MODE GAIN NETW0RK
ecm ( 80 982 98 1 98 ) pvcvscoeffs=[0 .5 .5 ]
ecc ( 97 0 99 0 ) vcvs gain=1
ess ( 52 0 50 0 ) vcvs gain=1
eref ( 98 099 0 50 0 ) pvcvscoeffs=[0 .5 .5 ]
//GAIN STAGE & POLE AT 130 kHz
g1 ( 13 98 5 6 ) vccs gm=0.045e3
r7 ( 13 98 ) rnoise r=255e3
// HR7 13 198 VR7 255E3
// VR7 198 98 DC 0
c3 ( 13 98 ) capacitor c=30p
v1 ( 97 14 ) vsource dc=1.65
v2 ( 16 52 ) vsource dc=1.55
d1 ( 13 14 ) dx
d2 ( 16 13 ) dx
//POLE AT 1 GHz
g2 ( 98 43 13 98 ) vccs gm=1
r10 ( 98 43 ) resistor r=1
c5 ( 98 43 ) capacitor c=112p
//POLE AT 1.3 GHz
g3 ( 98 53 43 98 ) vccs gm=1
r11 ( 98 53 ) resistor r=1
c6 ( 98 53 ) capacitor c=112p
// POLE AT 130 GHz
// G4 98 63 53 98 1
// R12 98 63 rnoise 1
// C7 98 63 0.122p
//BUFFER STAGE
gbuf ( 98 81 53 98 ) vccs gm=1e-2
rbuf ( 81 98 ) resistor r=100
//OUTPUT STAGE
vo1 ( 99 90 ) vsource dc=0
vo2 ( 51 50 ) vsource dc=0
r18 ( 25 90 ) resistor r=.02
r19 ( 25 51 ) resistor r=.02
// D100 45 250 Dx
// D101 250 45 Dx
vcd ( 255 45 ) vsource dc=0
lout ( 255 25 ) inductor l=0.1p
g6 ( 25 90 99 81 ) vccs gm=50
g7 ( 51 25 81 50 ) vccs gm=50
v4 ( 26 25 ) vsource dc=-0.8355
v5 ( 25 27 ) vsource dc=-0.8355
d5 ( 81 26 ) dx
d6 ( 27 81 ) dx
fo1 ( 98 70 ) cccs probe=vcd gain=1
d7 ( 70 71 ) dx
d8 ( 72 70 ) dx
vi1 ( 71 98 ) vsource dc=0
vi2 ( 98 72 ) vsource dc=0
erefq ( 96 0 45 0 ) vcvs gain=1
iq ( 99 50 ) isource dc=0.0185
fq1 ( 96 99 )pcccs probes=[ vo1 vi1]coeffs=[0 1 -1 ]
fq2 ( 50 96 )pcccs probes=[ vo2 vi2]coeffs=[0 1 -1 ]
//**** Voltage noise stage
rnoise1 ( 39 98 ) resistor r=1.8e-3
vnoise1 ( 39 98 ) vsource dc=0
vnoise2 ( 101 98 ) vsource dc=0.75
dnoise1 ( 101 39 ) dn
fnoise1 ( 100 98 ) cccs probe=vnoise1 gain=1
rnoise2 ( 100 98 ) resistor r=1
model rnoise res
+ t_abs=0
model pmod jfet type=p
+ beta=0.5e-2t_abs=-10
model dx diode
+ t_abs=0
model dn diode
+ kf=2e-12af=1t_abs=-4
ends sppMAIN
// $
// $SpiceType=AMBIGUOUS

你的第一句没写对,所以这个model没有被掉进你的netlist。// .SUBCKT ADA48171 2 99 50 45==> 应该把注释去掉,改为
.SUBCKT ADA48171 2 99 50 45
simulator lang=spectre insensitive=yes
//FET INPUT STAGE
// Eos 9 2 poly(1) 100 98 4.2m 1
vos ( 9 2 ) vsource dc=1.5m
cd ( 1 2 ) capacitor c=0.1p
ccm1 ( 1 0 ) capacitor c=1.3p
ccm2 ( 2 0 ) capacitor c=1.3p
j1 ( 5 1 4 ) pmod
j2 ( 6 9 4 ) pmod
ib1 ( 1 0 ) isource dc=2p
ib2 ( 9 0 ) isource dc=2p
dnil ( 9 42 ) dx
vnil ( 99 42 ) vsource dc=3.4
dpil ( 1 44 ) dx
vpil ( 99 44 ) vsource dc=3.4
// R3 50 5 1 ==> 这两句也奇怪,怎么把R3、R4注释掉了?如果是你人工注释的劝你把他们再加上。
// R4 50 6 1
hr3 ( 50 55 ) ccvs probe=vr3 rm=1
vr3 ( 55 5 ) vsource dc=0
hr4 ( 50 66 ) ccvs probe=vr4 rm=1
vr4 ( 66 6 ) vsource dc=0
i11 ( 99 4 ) isource dc=1m
ccap ( 45 2 ) capacitor c=0.8p



model pmod jfet type=p
+ beta=0.5e-2t_abs=-10
model dx diode
+ t_abs=0
model dn diode
+ kf=2e-12af=1t_abs=-4
ends sppMAIN==>这句也奇怪,怎么跟subckt的定义不一样呢?
// $
// $SpiceType=AMBIGUOUS

请阅读以下1楼的input.scs。
注释部分是器件的SPICE网表下载下来的时候已经就有的,没有做过改动。
end SppMAIN 已经被注释了。

自己顶一个

我也遇到过这个问题,学习一下

同样的问题

没成功!

mark
也在捉摸这事

不清楚是什么东西

顶一个

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top