I designed a 5 stage ring oscillator using inverters....and i simulated in hspice
i found the output to be a dc voltage of 2.5V for a supply of 0-5V....
what could be the possible problem ......
you need to give an initial condition to start the oscillator, is it a 5 stage ring inverter based oscillator or 5 stage differential ring oscillator.For the former you need to just connect the inverters back to back, for the latter you need to set the gain of the differential pairs such that barkhausen criterion is satisfied.
you need to give an initial condition to start the oscillator, is it a 5 stage ring inverter based oscillator or 5 stage differential ring oscillator.For the former you need to just connect the inverters back to back, for the latter you need to set the gain of the differential pairs such that barkhausen criterion is satisfied.
The initial condition is important.
In the real circuit, the noise can let the ring to oscillate. but in spice, there are no noise, so we shoud add a initial condition at one node of the ring oscillator, as a noise. and that will trigger the ring to oscillate.
set initial condition in one node to .ic Vnode1=5 and in the previous node set .ic Vnode0 = 0, then run the transient simulation with .tran tincr tstop UIC so that
the initial conditions are taken into account.
make sure that the trapezoidal integration method is being used, BE or GEAR make it harder for oscillators to start-up.
when i give a pulse input it is working fine.....but i have one more doubt.....
before the pulse was given.....
how come 2.5 V(for a Vdd=5V) is coming as output ...(ie) inverter acts as a voltage divider.......????
i get the same value (Vdd/2)for different values of W and L in both pmos and nmos.....
Usually, you can add a enable/disable by insert a NAND gate into the inverter chain. And use a disable->enable squence and your oscillator wil function
spice add gmin in parallel/DC for convergence DC solve. Equal gmin all nodes make perfect divider. replace one inverter with nand, all ring need enable/disable nand.