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!
|
|