The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Apr 19th, 2024, 9:01am
Pages: 1
Send Topic Print
virtuoso ADE:spectre netlist error,unknown variables (Read 4030 times)
abhilash_172
Junior Member
**
Offline



Posts: 10
india
virtuoso ADE:spectre netlist error,unknown variables
Jan 20th, 2016, 10:57am
 
hello everyone,
i am using IC615 cadence software.i am able to simulate a simple circuit using ncsu pdk in virtuoso ADE.same thing i tried with umc pdk.when i give transistor width/length directly as number in object properties,simulation is working.But when i give width or length as variables,new unknown variables(iPargers,ers,iPa....) are appearing in ade window and spectre is giving an error.can anyone suggest a solution?

the netlist file generated is below
Code:
// Generated for: spectre
// Generated on: Jan 20 04:56:26 2016
// Design library name: moschar
// Design cell name: id_vds
// Design view name: schematic
simulator lang=spectre
global 0
parameters iPargers ers iPa fingers fingers2 fifingers ngers MW gers w fin \
    iPa20n i r Ln=2u Wn=2u Vds=0 Vgs=700m

include "/opt/PDK/umc130nm/Models/Spectre/L130E_HS12_V241.lib.scs" section=tt



// Library name: moschar
// Cell name: id_vds
// View name: schematic
NM0 (net4 net3 0 0) n_12_hsl130e w=(Wn)/(1) l=Ln ad=(((Wn)/iPargers")ers")) < (160n+2*60n)) ? ((int((1) iPa.0) * ((((280.0n)+(2*(6-60n)))*)*(60n+160n+60n)) + (2*100n*Par("fingers"))))) + (((iPar("fingeriPar("fingers") / 2) - int((1) / 2) != 0) ? ((((280.0n)+*(60n-60n)))*)*(60n+160n+60n)) + (100n*((Wn)/"fingers")ers")))) : 0)) / (1) : ((int(iPar("fingers2.0) * ((Wn)/(1)*((120n-600n-60n)+(280.0n)+(1206iPar("fifingers") / 2)ngers") / 2) - int((1) / 2) != 0) ? ((Wn)/iPar("fingers"(60n-60n+iPar(r("MW")+(120n-60n))) : 0)) / (1) \
         ps=(((Wn)/iPargers")ers")) < (160n+2*60n)) ? ((2*(((280.0n)+(2*(6-60n)))+)+(60n+160n+60n)+100n)) + (int(((1) - 1) / 2) * (2*(((280.0n)+(2*(60n-60))+)+(60n+160n+6+60n))+(4*100n))) + gers") / 2) - int((1) / fingers") / 2) == 0) ? (2*(((280.0n)+(2*(60n-60n)))+(60n+160n+60n)+100n)) : 0)) / (1) : ((2*Par(r("w")/ir("fingers")+(60n-60n+(280.0n)+(120n-60n)))))) + (int((iPar("fin/ 2.0) * (2*(iPar("w (2*((Wn)/(1)+iPa20n-60n)+(280.0n)+(1n-6))))) + + ( ((((1) / 2) - int((1) / 2)  ? (2"w")ar(iPar(")/(1)+(60n-60n+iPiPar("MW")+(120n-60n)))) : 0)) / (1) \
         pd=(((Wn)/iPargers")ers")) < (160n+2*60n)) ? ((int((1) ((i.0) * (2*(((280.0n)+(2*0n-60n)))+)+(60n+160n+60n))+(4*100n)("fingers") / 2) - int(iPar("fingersPar("fingers") / 2) != 0) ? (2*(((280.0n)+(2*(60n-60n)))+(60n+160n+60n)+100n)) : 0)) / (1) : ((int((1) / 2.0) * (2*((Wn)/(1)+(202("MW")+(120n-60n))))) + (((iPar("fin((((1) / r) - int((1) / 2) !? (2*w")/r((Wn)/iPargers")ers")+(60n-60n+(280.0n)+(120n0n)))) : : 0)) / (1) \
         m=(1)*(1) nf=1 mis_flag=1 mf=(1)*(1)
V1 (net3 0) vsource dc=Vgs type=dc
V0 (net4 0) vsource dc=Vds type=dc
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 sensfile="../psf/sens.output" \
    checklimitdest=psf
dcOp dc write="spectre.dc" maxiters=150 maxsteps=10000 annotate=status
dcOpInfo info what=oppoint where=rawfile
dc dc param=Vds start=0 stop=1.2 step=0.01 oppoint=rawfile maxiters=150 \
    maxsteps=10000 annotate=status
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=subckts  where=rawfile
save NM0:d
saveOptions options save=allpub 

Back to top
 

Capture.png
View Profile   IP Logged
abhilash_172
Junior Member
**
Offline



Posts: 10
india
Re: virtuoso ADE:spectre netlist error,unknown variables
Reply #1 - Jan 20th, 2016, 11:01am
 
After pressing the run button in ade window ,there are new variables in ade window
Back to top
 

Capture_2.png
View Profile   IP Logged
AMS_ei
Community Member
***
Offline



Posts: 67

Re: virtuoso ADE:spectre netlist error,unknown variables
Reply #2 - Jan 19th, 2017, 6:13am
 
Hi,

In my opinion, these are design variables which are included in the schematic. You have to provide some valid values to these variables.

Thank you.

Kind regards,
Back to top
 
 
View Profile   IP Logged
Geoffrey_Coram
Senior Fellow
******
Offline



Posts: 1998
Massachusetts, USA
Re: virtuoso ADE:spectre netlist error,unknown variables
Reply #3 - Jan 26th, 2017, 12:12pm
 
It looks to me like there are some callbacks that can't handle variables for length and width.  You might try un-checking the box that says "Calc Diff Params" (and perhaps specifying values for Source diffusion area, etc.).
Back to top
 
 

If at first you do succeed, STOP, raise your standards, and stop wasting your time.
View Profile WWW   IP Logged
Andrew Beckett
Senior Fellow
******
Offline

Life, don't talk to
me about Life...

Posts: 1742
Bracknell, UK
Re: virtuoso ADE:spectre netlist error,unknown variables
Reply #4 - Jan 29th, 2017, 2:08am
 
At a wild guess, you might be seeing some symptoms of lack of RHEL6 support in 64-bit Virtuoso until IC615 ISR12 (might have been ISR13 - can't remember precisely as it was a while ago). It doesn't look like a callback issue to me because the edit properties form is showing what looks like a properly formed expression for the source/drain area and perimeter parameters.

Can you report what getVersion(t) returns?

Then can you try running "virtuoso -32" and do a Simulation->Netlist->Recreate and see if that fixes it? If it does, then using a version later than (for safety) IC615 ISR13 should solve the problem and will work in both 32-bit and 64-bit virtuoso. At the time, it was clearly shown on the downloads.cadence.com site that Virtuoso was not supported on RHEL6 until ISR12/ISR13 time.

There was a problem where the 64-bit C libraries on RHEL6 changed the behaviour of strcpy when copying within a string. This was something that was warned against for many years, but empirically had worked on every platform for the preceding 20 years or more. Given that the netlister replaces the calls to iPar("var") with var it's probably doing a strcpy to shuffle the characters further up the string.

Regards,

Andrew.
Back to top
 
 
View Profile WWW   IP Logged
Pages: 1
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.