Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

HSPICE Simulation refuses to match the Spectre Simulation

Status
Not open for further replies.

Shuklaspeak

Newbie
Joined
Jan 23, 2021
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
26
Hi,

I am trying to simulate a Digital Controlled Ring Oscillator (Inverter based) in HSPICE. The design consists of a VCO and a (DCR) Digital Controlled Resistor (designed used PMOS transistors) that sits on top of the VCO (providing VDD to the VCO). I make a distinction between VDD and VDDRing. VDD is the supply voltage provided to the DCR. The latter is the voltage seen by the VCO (after encountering a drop through the DCR). In order to induce the oscillations, the supply voltage is ramped from 0 to VDD. My design works well in Spectre and I can observe the ring oscillations as a sweep a few control codes (these control the DCR and determine how much resistance will be dropped between VDD and VDDRing.

However, once I export the netlist to HSPICE, my circuit doesn't show any oscillations. There a few things that I tried-


1) I tried connecting the VDDRing to a ramp supply (this means it doesn't derive its voltage from the DCR) and I do see the oscillations in HSPICE
2) I tried changing the default options that Spectre generates for HSPICE-

.option artist = 2
.option ingold=2
.option parhier=local
.option psf =2

to

.option post
.option runlvl = 6
.option accurate =1
.option method = gear
.option captab
.option ingold=2 numdgt=10 measdgt=10
.option probe fsdb=1
.option MTTHRESH =2
.option autostop
.option psf =2

But still no luck getting the oscillations.

What completely stumps me is why the simulation doesn't reproduce the exact the result between Spectre and Hspice ? I will greatly appreciate some pointers on this.

Thank you!
 
Last edited by a moderator:

May be you experience the most popular beginners fault in oscillator simulation: SPICE initial transient solution biases the circuit in equilibrium where it stays forever. There are several possible solutions, e.g. skipping initial transient solution or injection a "kick start" pulse into the loop. If the oscillation condition is fulfilled, the pulse magnitude will quickly rise, if not, it decays.
 

Transient Simulations need generally a Start-Up Condition.It may be a Time Limited Current Pulse or similar..
 

Even simple settings differences can play.
Like gmin = 1E-12 is plenty high enough to
keep a CMOS inverter chain balanced on
its DC (meta)stable point, and what the
simulators' convergence behaviors and
mode-settings say, are "design variables"
when and if they affect results.

If one simulator's default is to end with
gmin residue all over the matrix and the
other's, just the explicit elements' values
then this could jack the DC initial condition
and thus transient startup results apart.

Too, time to exit the metastable region in
simulation depends greatly on position.
Figuring that "stable" is one exactly
umpty-ump-to-the-femtovolt point that
has infinte time to exit (absent a noise
event) and an orderly exit is faster, the further
from that perfect solution point. So, now DC
tolerances mater too as do the mysterious
differences in how two algorithms may
chew on and spit out data in what order
and how that all rubs up against the xxxTOLs.

You can't discount though, other possibilities
like two simulators, two include-chains, maybe
one's got a busted link or embeds a different
simulator-specific startup that messes some
variable around.
 

give it a kickstart like others suggested. both simulators should agree.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top