( ESNUG 348 Item 6 ) --------------------------------------------- [3/30/00]

From: [ Born To Run ]
Subject: Cadence's Silicon Ensemble Useless At 0.18um On Cross-Capacitance

Hey John, very anon please.

I like how ESNUG is adding physical design issues and wanted to add to the
discussion.  I wanted to give people designing 0.18um ASICs a heads up on 
cross-capacitance.  I'm seeing 2 problems here: ASIC suppliers seem to be
pretty clueless about it, and the advertised Cadence Silicon Ensemble flow
can't handle it for beans.

Here's the deal: I'm working on a 0.18um ASIC with a Japanese foundry.
Good guys.  They're working their butts off and closing timing without
a problem.  Not a word that we need to worry about cross-capacitance.  Then
I get to talking to some of my friends working on processors, and I start
to get a bad feeling.  For one thing, cross-capacitance isn't proportional
to clock speed, its proportional to metal pitch.  You can be running 83 MHz
in 0.18um and still have cross-capacitance bite you in the butt.  Sure,
maybe you can leave some margin on the table to cover additional delay due
to cross-capacitance, but you can't margin noise.  Get a glitch far enough
down your logic cone, clock it into a flop, and suddenly you get to debug
a frequency band where the part fails.  Lovely.

So when I press my foundry, I get this cheesey answer that they're going to
insert buffers every couple of millimeters to prevent cross-talk.  Sounds
good, right?  

Not once you run the simulations.  For most nets, a 1-2 mm buffering 
distance would be fine, but if you have a very high drive cell aggressing 
on a very low drive cell, it can increase your delay 50% at less than 
1/2 mm of adjacency, even on wide-pitched metal.  50%.  That's no small 
potatoes.  I mean, how much margin do you have?

So warning #1: If somebody tells you you don't have a cross-capacitance
problem in 0.18um, or that they can handle it with blind buffering, check
to see if they've simulated it or if they're just pulling this methodology
out of their butts based on how they think cross-capacitance works.

But it gets worse from there...

So now we know we've got a cross-capacitance problem, and we know we can't
just blindly jam buffers in to fix it, so what do we do?  We go check out 
the signal integrity option on Cadence Silicon Ensemble.

The best thing I can say for SE is that it runs without crashing.  

Here are the problems we've found:

  1. The parasitics coming from HyperExtract are up to 200% off compared 
     to 3D field solution.  A chimpanzee throwing darts at a diagram
     of parasitics could do better.

  2. Its flagging over 1000 noise violations in a few hundred K gates
     of logic.  Over 1K noise violations in < 9mm^^2 of randomly
     routed die?  Gimme a break!  Simulation showed that SE was
     over-estimating noise by > 100%.  It was using a slew rate
     less than half of the actual slew rate.  Its hard to say how many
     real noise violations are in there, but my simulations are saying
     my usual layout topologies ought to give me < 10 noise violations
     per 100K gates *usually*.  Not 1000!

  3. The repair file isn't.  I'm still playing around with this to see
     if other PBopt options might get me a better repair rate, but so
     far I'm still left with ALOT of xcap timing and noise violations 
     reported even after I run through the check/repair flow a couple 
     of times.  Given that these results are based on the HyperExtract
     parasitics that I know to be bogus, I'm not really motivated to
     run this into the ground.  To me, the whole solution has the feel 
     of something that isn't going to gel.

Lesson learned: Just because your EDA or ASIC vendor showes you a pretty
drawing of a flow, don't buy it until you see the parasitic, noise, and
delay modeling correlation.  Cross-capacitance isn't like bringing a
router up where the right values for metal pitch go a long ways towards
getting you something reasonably DRC clean.  Cross-cap and noise really 
require some tuning before you get back something clean.

Part of the trouble with all of this is the incredible lack of data in
the industry on what to expect in real live designs.  Virtually all the
data I've come across is from contrived layout topologies on test chips
or from microprocessors with manual or heavily programmed routing.  That
just isn't an option in ASIC design.  I haven't found anybody who can 
knowledgably tell me what kind of cross-capacitance issues to expect in 
automatically routed logic.  It gets down to religion.  Some people say 
that because this type of routing results in large numbers of extremely 
small aggressors, the cross-capacitance can be neglected (the aggressors
will never all aggress at the same time).  Sounds good.  But I sit here 
and look at the routing fanning in and out of some of my memories and
MUXes, and there are long stretches of massive adjacency.  I think the 
large-#-of-small-aggressors argument just doesn't hold up across the die.
Even in this random routing, there are instances of great regularity.  The
second argument I've come across is that odds are against all these lines 
having the appropriate phase relationship to clobber each other.  But I 
can't guarantee that for all signals entering and leaving memories and 
muxes.  What do I look like, someone who wants to run vectors for the
rest of my freakin' career?

All in all, I feel a lot of bad silicon coming on...

    - [ Born To Run ]



 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)