MAGIC Magic Mailing List
 
 

From: Jeff Sondeen (sondeen AT ISI DOT EDU)
Date: Sat Mar 20 2004 - 22:30:00 EST


Virantha N. Ekanayake writes:
 > I'm using Magic 7.1 with SCN6M_DEEP.09 tech file version 2002a.  I find
 > that I'm able to overlap, for instance, a m1 poly contact (pc) with a
 > m123c contact and electrically connect poly to m3 without any drc
 > errors (see the example .mag file
 > http://www.csl.cornell.edu/~viran/test.mag )
 > 
 > I'm not sure if this is legal in Magic (e.g, if I try to overlap a m1 poly
 > contact with a via1, the via1 erases the pc layer).

Hi.

as you point out, with the 'via1'('m2c') erasing the 'pc',
magic 2-layer symbolic contacts don't like to coexist when they have a
common layer.

the 'symbolic' form of the combination of 'pc' and 'm2c' would be
'pm12c'.

it can also get trickly stacking both 2-layer and 3-layer multiple
symbolic contacts, because both the 2-layer and 3-layer contacts you
choose must reside on separate planes, or they erase each other.  for
example, from the techfile 'type' section fragment below, a 'via1'
(aka. 'm2c') would erase a 'pm12c' since they both reside on the
metal1 plane. as you point out, 'pc' + 'm123c' works, as would 'pm12c'
+ 'm3c', because their planes of residence are different.  if you have
a lot of different combinations, you may want to forget the 'symbolic'
style and use the 'generic' style ('gc' + 'gv1' + ...) but in general
i wouldn't mix the two styles (as your cifin has to be one style or
the other ('*c*' for 'generic')).

  metal1  metal1,m1,blue
  metal1  m2contact,m2cut,m2c,via1,v1
  metal1  pm12contact,pm12c
  metal1  ppm12contact,ppm12c
  metal1  pnm12contact,pnm12c
  metal1  pdm12contact,pdm12c
  metal1  psm12contact,psm12c,pom12c,pwm12c
  metal1  ndm12contact,ndm12c
  metal1  nsm12contact,nsm12c,nom12c,nwm12c

the CHANGELOG discusses various combinations that work, and also see
the stack*.mag files under examples.

  ftp://ftp.isi.edu/pub/sondeen/magic/new/README
  ftp://ftp.isi.edu/pub/sondeen/magic/new/beta/CHANGELOG
  ftp://ftp.isi.edu/pub/sondeen/magic/new/betas/examples/stack*.mag

the CHANGELOG also lists some weird gotchas, like this:
...
          note that there's a subtle problem with magic's
          implementation of stacked contacts which happens when
          symbolic stacked contacts (3-layer connections like 'pm12c')
          are replaced by symbolic 2-layer contacts (like 'm2c').  for
          example, if you paint 'pm12c' (which connects poly to metal1
          and metal2), but then paint 'm2c' on top of it to replace
          it, the electrical connection between poly and the
          metal1/metal2 remains, but the material itself (poly +
          contact) is gone.  the same problem happens if you paint an
          'm3c' on top of a 'm123c': the 'm3c' didn't erase the
          metal1-metal2-metal3 electrical connection created by the
          'm123c'.  basically, the 2-layer symbolic contacts don't
          erase the connections made by 3-layer symbolic contacts to
          material on the plane below them.  so it's best to erase or
          delete 3-layer contacts before replacing them with 2-layer
          contacts, or to explcitely erase/delete the bottom layer
          material of a 3-layer symbolic contact to change it into a
          2-layer contact.  note that this sometimes happens with
          cif/cal read, unless you use one of the cif istyle's that
          preserves generic contacts (lambda=x.xx(*c*)).

          another way to fix the problem is to do ";save" followed by
          ";flush", which resets all the electrical connections.
...

/jeff


 > 
 > Can anyone comment on whether this is a bug or not?

Hi, stacking a 'pc' under an 'm123c' would probably work, but a better
combination might would be a 'pm12c' and then an 'm2c' on top of that,
or you could always avoid the 'plane erase layout on another plane' issue


 > 
 > Thanks!


 
 
Questions? Contact Rajit Manohar
cornell logo