I'm running Cadence Virtuoso 6.1.6 through a remote desktop to computers at my school. These computers run Fedora 22. I'm simulating a ring oscillator VCO on Cadence, but it is taking literally FOREVER to complete the simulation. Here is the schematic of my VCO -

vco schematic

I have a vpulse generator which is attached to the feedback loop (as can be clearly seen in the above figure). I have a feeling that this pulse generator is the main source of the problem because the really slow simulations started after I added this component into my schematic.

Here are the parameters I have set for the pulse generator, just so you can get an idea -

parameters of pulse generator

I started simulation and it takes about 20 minutes to get to 12%. When I click the "Plot Outputs" button in ADE L, it shows that the simulation hasn't even started oscillating yet...and the estimated time of completion ranges from 1Hr16Min to 3Hrs+!

Has anyone else encountered this problem? If so, how can this be solved?

EDIT: I used the Ultrasim simulator on Cadence which simulates thousands of times faster than spectre, which was the simulator I was using before.

  • \$\begingroup\$ How long of a time period are you trying to simulate? \$\endgroup\$ – Adam Haun Nov 27 '15 at 1:12
  • \$\begingroup\$ The time period I've set right now is only 1ns. Even that takes about 15-20 minutes until I start seeing oscillations... \$\endgroup\$ – ragzputin Nov 27 '15 at 22:34
  • \$\begingroup\$ I don't mean the period of your signal source, I mean at what t value do you stop the simulation? It starts at t = 0, and ends at t = how many microseconds or milliseconds? And what's your time step? If the oscillator is expected to take several milliseconds to start up, then a simulation time of a couple hours is not unreasonable. \$\endgroup\$ – Adam Haun Nov 28 '15 at 0:08

You are right. The problem is the voltage source you have in the feedback loop.

You're trying to build a VCO, the frequency of which i believe you're controlling with the current level of the current starved inverters you have in the middle cell. Your frequency of oscillation will be determined by the propagation delay of the inverters in your chain, and trying to force it to another value with a pulse generator in the feedback loop will simply make the simulator go bonkers, as you're trying to drive a fixed frequency to a positive feedback loop that is trying to oscillate itself at a frequency determined by circuit components.

Remove the pulse generator, run a transient simulation to determine your oscillation frequency. You can guesstimate it by adding the propagation delays of the inverters you have in the chain.


"literally FOREVER" is probably not 100 % true :-)

You don't say how long the simulation is simulating -- You have a 200 MHz signal and so if you simulate anything over a few us, you'll notice it takes a longer time.

  • \$\begingroup\$ Actually "literally forever" could be true for a combinational feedback circuit ... like a ring oscillator ...without correctly set timings (digital) or parasitic components (analog) such that the simulator cannot converge to a stable output. Typically, simulators warn of such conditions though... \$\endgroup\$ – Brian Drummond Nov 27 '15 at 10:11
  • \$\begingroup\$ He hasn't waited 'literally forever' to find that out :-) \$\endgroup\$ – jp314 Nov 27 '15 at 18:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.