Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronic 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.

Register Log in

HSPICE Simulation refuses to match the Spectre Simulation

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:

FvM

Super Moderator
Staff member
Joined
Jan 22, 2008
Messages
47,960
Helped
14,147
Reputation
28,553
Reaction score
12,833
Trophy points
1,393
Location
Bochum, Germany
Activity points
278,233
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.
 

BigBoss

Advanced Member level 5
Joined
Nov 17, 2001
Messages
4,943
Helped
1,498
Reputation
2,994
Reaction score
1,339
Trophy points
1,393
Location
Turkey
Activity points
29,807
Transient Simulations need generally a Start-Up Condition.It may be a Time Limited Current Pulse or similar..
 

dick_freebird

Advanced Member level 5
Joined
Mar 4, 2008
Messages
7,129
Helped
2,088
Reputation
4,180
Reaction score
1,934
Trophy points
1,393
Location
USA
Activity points
57,198
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.
 

ThisIsNotSam

Advanced Member level 5
Joined
Apr 6, 2016
Messages
2,111
Helped
373
Reputation
746
Reaction score
384
Trophy points
83
Activity points
10,675
give it a kickstart like others suggested. both simulators should agree.
 

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top