( ESNUG 374 Item 4 ) -------------------------------------------- [06/14/01]

Subject: ( ESNUG 373 #11 ) Cadence SE-SI Vs. Simplex Electromigration

> With our move to technologies below 0.18 and clock speeds in the upwards
> of 300+ Mhz, we are finding the need to run electromigration analysis on
> our signal nets.  Unfortunately, most EM analysis tools available today
> are for power nets.  Have you heard anything from the masses about this?
>
> So far, I've only uncovered ElectronStorm by Simplex as the only tool
> currently in the market that does EM analysis on signal nets.  Am I
> missing something here?  There's got to be more out there than this.
> Avanti has something in the works for this, but it won't be available
> until Q1/Q2 of 2002.  What about Synopsys, Cadence, Mentor Graphics?  Any
> new startups?  HELP!
>
>     - Caesar M. Abedin
>       Applied Micro Circuits Corp.               Andover, MA


From: Lou Scheffer <lou@cadence.com>

Hi, John!

Cadence has such a signal wire EM tool, and has had one for quite some time.

The Cadence tool SE-SI (Silicon Ensemble - Signal Integrity) has handled
the signal line electromigration problem for several years.  We call this
effect 'wire self heat', but it's the same effect.  It's also sometime
called 'Joule heating'.

It works like this:

During placement, we estimate the wire load (quite accurately, it's from the
global route) and calculate the slew rate.

Then we need the maximum switching frequency of the net.  We find this as
follows:

  1) clocks we know (gating is ignored);
  2) flops or latches are assumed to switch once/clock;
  3) combinatorial logic is assumed to switch at the rate of the fastest
     input.

or the user can tell us the max switching rate as a property.

Then, for each wire, we calculate the peak, RMS, and average current.

If any layers or vias have current limits in the LEF technology file (they
are a function of width and frequency, on both metal and vias) then we
compare the current to the limit.  

You can get a report (see below) and decide on the fix yourself, or tell
the placer to fix it automatically.  It does this by reducing the load by
changing the placement or inserting buffers.

Here is an example of the Qplace command file to generate the report:

   inputFormat SiliconEnsemble
   lefName example.lef
   defName "ROUTED.def sbc.def"
   ReportMode
   inputGCFTimingLibraries "mpeg.tlf.gcf" 
   inputGCFConstraints "mpeg.constr.gcf" 
   timingMode TRUE 
   timingTruncateReport false

   optSISelfHeatReportName POST.optSISelfHeatReport

Here is an example of the report.  In this report positive numbers represent
violations; negative numbers represent margin.

  # Self heat report created by ULTRA PLACER on Thu May 10 08:52:38 2001

  SELF HEAT REPORT:
  6 self heat violations out of 12097 nets

  1. Self-heat violation histogram:

  Violation (mA)                #net
  ----------------------------------
    -2.970 to   -2.805             2
    -2.805 to   -2.640             0
    -2.640 to   -2.475             0
    -2.475 to   -2.310             1
    -2.310 to   -2.145             0
    -2.145 to   -1.980             0
    -1.980 to   -1.815             0
    -1.815 to   -1.650          1044
    -1.650 to   -1.485            32
    -1.485 to   -1.320             6
    -1.320 to   -1.155             0
    -1.155 to   -0.990             4
    -0.990 to   -0.825             0
    -0.825 to   -0.660          8220
    -0.660 to   -0.495          1840
    -0.495 to   -0.330            48
    -0.330 to   -0.165           887
    -0.165 to   -0.000             7
    -0.000 to    0.165             6
     0.165 to    0.330             0

  2. Violation summary information

  Net             Total  Trans  Maximum  Peak     RMS   Average   Vio
  name             cap   time    freq   current current current
                   (pF)  (ns)    (MHz)   (mA)     (mA)    (mA)

  usb_bus_out[4]  1.5078 0.3741  100.0  10.0756  2.7561  0.7539  0.0593
  usb_bus_out[7]  1.4600 0.3741  100.0  9.7559  2.6686  0.7300  0.0354
  usb_bus_out[5]  1.4333 0.3741  100.0  9.5775  2.6198  0.7166  0.0220
  usb_bus_out[6]  1.4175 0.3741  100.0  9.4722  2.5910  0.7088  0.0142
  usb_bus_out[3]  1.4044 0.3741  100.0  9.3844  2.5670  0.7022  0.0076
  usb_bus_out[2]  1.3908 0.3741  100.0  9.2938  2.5422  0.6954  0.0008
  usb_bus_out[1]  1.3792 0.3741  100.0  9.2161  2.5210  0.6896  -0.0050

  [ lots of information on other nets deleted ]

  3. Detailed violation information

  Net                    Vio      Layer    Current  Current  Current
  Name                            Name      Type     Value    Limit

  usb_bus_out[4]         0.0593   metal5       Avg   0.7539   0.6946
  usb_bus_out[7]         0.0354   metal1       Avg   0.7300   0.6946
  usb_bus_out[5]         0.0220   metal1       Avg   0.7166   0.6946
  usb_bus_out[6]         0.0142   metal1       Avg   0.7088   0.6946
  usb_bus_out[3]         0.0076   metal1       Avg   0.7022   0.6946
  usb_bus_out[2]         0.0008   metal1       Avg   0.6954   0.6946


Note that the transition time reported here is a 0-100% time.  This
is the 20-80 or 10-90 time extrapolated to 0-100% for the purpose of
current calculation.  (In other words we are assuming each signal
transition is a saturated ramp).


Here is the relevant part of the LEF file:

  LAYER contact
    TYPE CUT ;
    ACCURRENTDENSITY AVERAGE  
      FREQUENCY 1 5 20 50 80 110 140 170 200 230 260 290 320 350
                380 410 440 470 500 ;
      CUTAREA 1.3 ;
      TABLEENTRIES  
        1.3  1.3813  1.4625  1.5438  1.625  1.7063  1.8  2.4  3  3.6  4.2
        4.8  5.02  5.05  5.08  5.11  5.14  5.17  5.2 ;
    SPACING .4 ;
  END contact

  LAYER metal1
    TYPE ROUTING ;
    ACCURRENTDENSITY AVERAGE  
      FREQUENCY 1 5 20 50 80 110 140 170 200 230 260 290 320 350 380
                410 440 470 500 ;
      WIDTH .6 ;
      TABLEENTRIES  
        .748 .82925 .9105 .99175 1.073 1.2 1.8 2.4 3 3.6
        4.2 4.8 5.02 5.05 5.08 5.11 5.14 5.17 5.2 ;
    PITCH 1.04 ;
    OFFSET .52 ;
    WIDTH .6 ;
    SPACING .32 ;
    DIRECTION HORIZONTAL ;
    RESISTANCE RPERSQ .53E-01 ;
    CAPACITANCE CPERSQDIST .42E-04 ;
    EDGECAPACITANCE .113E-03 ;
  END metal1

I hope this helps your reader, John.

    - Lou Scheffer
      Cadence


 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)