The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> Circuit Simulators >> Local parameter value will be used in Cadence Spectre
https://designers-guide.org/forum/YaBB.pl?num=1516022657

Message started by cheap_salary on Jan 15th, 2018, 5:24am

Title: Local parameter value will be used in Cadence Spectre
Post by cheap_salary on Jan 15th, 2018, 5:24am

When I create netlist by skill function of "createNetlist(?recreateAll t, ?display t)" in Cadence IC6.1.7, I get following netlist.

Quote:
parameters nf=4

subckt Hoge_Cell in1 in2 in3 out1 out2 inh_RF_Gnd
parameters nf=1
   D0 (in2 out1 inh_RF_Gnd) sbd_rf l=2u w=4u nf=nf
   D1 (out1 out2 inh_RF_Gnd) sbd_rf l=2u w=4u nf=nf
   Ch (in3 out2) mimcap_2p0_sin lt=30u wt=30u mf=1 mismatchflag=1
   Cc (in1 out1) mimcap_2p0_sin lt=30u wt=30u mf=1 mismatchflag=1
ends Hoge_Cell


subckt Hoge_Cascade DCin DCout RF_Gnd RFin_m RFin_p
parameters nf=1
   Im1 (RFin_m RFin_p RFin_p net10 net6 RF_Gnd) Hoge_Cell \
       nf=nf
   Ip1 (RFin_p RFin_m RFin_m net12 net7 RF_Gnd) Hoge_Cell \
       nf=nf
   Im2 (RFin_m net6 RF_Gnd net013 DCout RF_Gnd) Hoge_Cell \
       nf=nf
   Ip2 (RFin_p net7 RF_Gnd net9 DCout RF_Gnd) Hoge_Cell nf=nf
ends Hoge_Cascade


subckt Dual_Hoge DCin DCout RF_Gnd RFin_m RFin_p
parameters nf=1
   I1 (DCin a1\<1\> a1\<2\> a1\<3\> DCout RF_Gnd RFin_m RFin_p) \
       rectifier_separate
   I1_L (net011 DCout RF_Gnd RFin_m RFin_p) Hoge_Cascade \
       nf=nf
ends Dual_Hoge

Rec1 (gnd_ana rec1_out gnd_ana RF1in_m RF1in_p) Dual_Hoge nf=nf
Rec0 (gnd_ana rec0_out gnd_ana RF0in_m RF0in_p) Dual_Hoge nf=nf

However Cadence Spectre show following warning.
Quote:
Warning from spectre in `Dual_Hoge', during circuit read-in.
   WARNING (SFE-2946): "input.scs" 314: `Dual_Hoge': Parameter `nf' redefines parameter of same name defined at higher level. Local parameter value will be used.

Warning from spectre in `Hoge_Cascade', during circuit read-in.
   WARNING (SFE-2946): "input.scs" 302: `Hoge_Cascade': Parameter `nf' redefines parameter of same name defined at higher level. Local parameter value will be used.
       Further occurrences of this warning will be suppressed.


I want to pass nf=4 for "Rec0" and "Rec1" hierarchally.

What value is applied as nf for "Rec0" and "Rec1" hierarchally ?

Title: Re: Local parameter value will be used in Cadence Spectre
Post by cheap_salary on Jan 15th, 2018, 5:25am

If I create netlist from ADE, I get following netlist.
Quote:
parameters nf=4

subckt Hoge_Cell in1 in2 in3 out1 out2 inh_RF_Gnd
parameters _par0=1
   D0 (in2 out1 inh_RF_Gnd) sbd_rf l=2u w=4u nf=_par0
   D1 (out1 out2 inh_RF_Gnd) sbd_rf l=2u w=4u nf=_par0
   Ch (in3 out2) mimcap_2p0_sin lt=30u wt=30u mf=1 mismatchflag=1
   Cc (in1 out1) mimcap_2p0_sin lt=30u wt=30u mf=1 mismatchflag=1
ends Hoge_Cell


subckt Hoge_Cascade DCin DCout RF_Gnd RFin_m RFin_p
parameters _par0=1
   Im1 (RFin_m RFin_p RFin_p net10 net6 RF_Gnd) Hoge_Cell \
       _par0=_par0
   Ip1 (RFin_p RFin_m RFin_m net12 net7 RF_Gnd) Hoge_Cell \
       _par0=_par0
   Im2 (RFin_m net6 RF_Gnd net013 DCout RF_Gnd) Hoge_Cell \
       _par0=_par0
   Ip2 (RFin_p net7 RF_Gnd net9 DCout RF_Gnd) Hoge_Cell _par0=_par0
ends Hoge_Cascade


subckt Dual_Hoge DCin DCout RF_Gnd RFin_m RFin_p
parameters _par0=1
   I1 (DCin a1\<1\> a1\<2\> a1\<3\> DCout RF_Gnd RFin_m RFin_p) \
       rectifier_separate
   I1_L (net011 DCout RF_Gnd RFin_m RFin_p) Hoge_Cascade \
       _par0=_par0
ends Dual_Hoge

Rec1 (gnd_ana rec1_out gnd_ana RF1in_m RF1in_p) Dual_Hoge _par0=nf
Rec0 (gnd_ana rec0_out gnd_ana RF0in_m RF0in_p) Dual_Hoge _par0=nf


Cadence Spectre does not say warning of "Local parameter value will be used." for this netlist.

How can I create same netlist by "createNetlist(?recreateAll t, ?display t)" ?

Title: Re: Local parameter value will be used in Cadence Spectre
Post by Andrew Beckett on Jan 21st, 2018, 9:06am

I'm slightly surprised that ADE would netlist it differently than OCEAN - after all, it's the same infrastructure used in both cases. The mapped parameter name is when it thinks there is a conflict - I don't really see why there's a conflict in this case.

Either way, the behaviour of spectre should be the same - the warnings in the first case are telling you that the same parameter name has been used both globally and also locally, and it's telling you that the local value will win. However, since the local value is then overridden on each instance the value that will end up on D0 and D1 within Hoge_Cell will be nf=4 because it's passed down through the hierarchy. This will be the case in both netlists.

Regards,

Andrew.

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.