The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> AMS Simulators >> Initial conditions Ring Oscilator - spectre simulator
https://designers-guide.org/forum/YaBB.pl?num=1333544288

Message started by Polux on Apr 4th, 2012, 5:58am

Title: Initial conditions Ring Oscilator - spectre simulator
Post by Polux on Apr 4th, 2012, 5:58am

Hello,

I am simulating a ring oscilator circuit using spectre netlist syntaxis in ICCAP.  I think I have problems for the initial conditions for the circuit. Is there any help you can provide?.

Thank you for your help.

Here is the code for the circuit:


* Ring Oscilator main circuit
subckt ROz (7 6 5) //VDD=7 GND=6 OUT=5

*Definition of subcircuit for cmos inverter
#echo subckt inverter_ROz (1 2 3 4) //INPUT=1 OUTPUT=2 Vdd=3 Vss=4

*Parameters setup for model card used in cmos inverter subcircuit
#echo parameters tmp_l = $mpar(MAIN.L=53n)
#echo parameters tmp_w = $mpar(MAIN.W=30n)
#echo parameters tmp_h = $mpar(MAIN.H=60n)
#echo parameters tmp_toxs = $mpar(MAIN.toxs=2n)
#echo parameters tmp_toxt = $mpar(MAIN.toxt=2n)

*Connection of pmos and nmos FinFET transistor in cmos inverter
#echo T1 2 1 3 FinFET_spectre L=tmp_l*1e2 W=tmp_w*1e2 H=tmp_h*1e2 toxs=tmp_toxs*1e2 toxt=tmp_toxt*1e2 finger=1 TYPE=-1
#echo T2 2 1 4 FinFET_spectre L=tmp_l*1e2 W=tmp_w*1e2 H=tmp_h*1e2 toxs=tmp_toxs*1e2 toxt=tmp_toxt*1e2 finger=1 TYPE=1
#echo ends

*Connection of 5 inverters for the ring oscilator main circuit
#echo X0 5 1 7 6 inverter_ROz
#echo X1 1 2 7 6 inverter_ROz
#echo X2 2 3 7 6 inverter_ROz
#echo X3 3 4 7 6 inverter_ROz
#echo X4 4 5 7 6 inverter_ROz

*Set initial conditions for simulation

#echo ic 5=0
#echo ic 1=$mpar(VCC=4)


ends

Title: Re: Initial conditions Ring Oscilator - spectre simulator
Post by Geoffrey_Coram on Apr 6th, 2012, 7:31am

Does the simulation run, but the circuit doesn't oscillate?

I'm not familiar with #echo.  I'm also not familiar with $mpar.  Have you tried just
ic 1=4


Title: Re: Initial conditions Ring Oscilator - spectre simulator
Post by Polux on Apr 11th, 2012, 6:32am

hi, the #echo statement is used do the ICCAP parser can read $mpar function to create a variable for the parameter.  In any case #echo and $mpar can be neglected and we can forget they are used in this circuit.  I have also used your suggestiong before: ic=4, but still I received the same problem.  I have no clue where it comes from, perhaps it is something about the program I am using (ICCAP).

Thanks

Title: Re: Initial conditions Ring Oscilator - spectre simulator
Post by ywguo on Apr 12th, 2012, 5:02pm

Hi Polux,

I don't know what's the problem for the initial condition of your ring oscillator.

YES, there is code in your post. But any warning or error message? Does the ring oscillator malfunction?

Best Regards
Yawei

Title: Re: Initial conditions Ring Oscilator - spectre simulator
Post by Forum Administrator on Apr 13th, 2012, 1:06am

It seems to me that the most obvious first step would be to look at the netlist generated by ICCAP to see if the problem you are having is with ICCAP or Spectre. If the netlist looks fine but the circuit does not simulate, the problem is with Spectre. If the netlist looks broken, the problem is with ICCAP.

It is debugging 101. Isolate the problem.

-Ken

Title: Re: Initial conditions Ring Oscilator - spectre simulator
Post by Polux on Apr 16th, 2012, 4:28am

Hello all and thank you for the help.

Apparently in ICCAP using spectre simulator in mode ads ( a type of simulator that can be choosen in the program called spmodeads) gives compilation problems when we use initial conditions.  In order to avoid that problem, instead of using intial conditions, I used a nand gate in the first stage of the ring oscilator, se we can have an extra pin to estimulate the oscilation. Now it works fine.

Thanks again for the concern,


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