[comp.lsi] Problem reading GDS into Magic

elh@vu-vlsi.Villanova.EDU (Edward L. Hepler) (02/21/89)

I am having a problem reading a GDS-II file into Magic.  I am probably
not interpretting the Maintainer's Manual correctly - if this is the case,
please bear with me...

I have a GDS file which has calma layers for metal, poly, and contacts,
among others...  I have generated a tech file (by editing out sections
which are not needed from scmos.tech) to identify the process and have
successfully read the file.  However, none of my contacts appear!
In trying to debug the problem, I have created a separate plane for contacts
(by recompiling magic with MAXPLANES set to 9)....  If I do this, I can
use the :see command to actually view the individual poly, metal, etc.
layers (including where contacts should be).  

Let's use pc (poly to metal) contacts as an example.  A contact should appear
where there is a coincidence of metal1, poly, and contact layers.  I can
confirm that they are all there (useing :see).  In my cifinput section, I 
have some statements like:

    layer pc CCA
        and CPG
        and CMF
    layer ndc
        or CCA
        and CMF
        and CND
    layer pdc
        or CCA
        and CMF
        and CPD

Where CCA is the contact layer; CPG is poly; CMF is metal.
No contact appears!  If I leave out the "and CPG" statement,  I get
poly contacts (in more places than I want them! including where ndiff and
pdiff contacts should be).
My interpretation of the manual is that pc should start with the contents
of the CCA layer, "AND" in the CPG layer, "AND" in the CMF layer, and writ
the results as poly contacts to the appropriate magic layer. (Without changing
any of the CIF (CCA,CPG,or CMF) layer contents...
It then should do the same for ndiff contacts (but this time start with
nothing, and "OR" in the contact layer - which should have the same results...)
and then the pdiff contacts...

What am I doing wrong?

Thanks,

Ed Hepler
elh@vu-vlsi or hepler@cbmvax

sllu@jenny.isi.edu (Shih-Lien Lu) (02/22/89)

In article <2214@vu-vlsi.Villanova.EDU> elh@vu-vlsi.Villanova.EDU (Edward L. Hepler) writes:
>I am having a problem reading a GDS-II file into Magic.  I am probably
>
>I have a GDS file which has calma layers for metal, poly, and contacts,
>among others...  I have generated a tech file (by editing out sections
>which are not needed from scmos.tech) to identify the process and have
>successfully read the file.  However, none of my contacts appear!
>In trying to debug the problem, I have created a separate plane for contacts
>(by recompiling magic with MAXPLANES set to 9)....  If I do this, I can
>use the :see command to actually view the individual poly, metal, etc.
>layers (including where contacts should be).  
>
>Let's use pc (poly to metal) contacts as an example.  A contact should appear
>where there is a coincidence of metal1, poly, and contact layers.  I can
>confirm that they are all there (useing :see).  In my cifinput section, I 
>have some statements like:
>
>    layer pc CCA
>        and CPG
>        and CMF
>    layer ndc
>        or CCA
>        and CMF
>        and CND
>    layer pdc
>        or CCA
>        and CMF
>        and CPD
>
> (stuff deleted)
>
>and then the pdiff contacts...
>
>What am I doing wrong?
>

In order to get the contact you need to have all CCA,CPG and CMF
on the same hierarchy. The way Magic and its tech file is set up,
it will form the abstract layer "pc" only when all layers are
presented.
Possible solutions:
	(1) flatten the geometry
	(2) re-write the CIF in section of the tech to accomodate
	    layers in different hierarchy. One way is to have no
	    "abstract" layers but all Magic layer corresponds to
	    a CIF layer. This is the simpliest method but you will
	    not be able to extract correctly. (if you want to know
	    why, I can explain to you on a seperate message)

Cheers,

Shih-Lien Lu
sllu@mosis.edu

elh@vu-vlsi.Villanova.EDU (Edward L. Hepler) (02/24/89)

Shih-Lien Lu:

Thank you for responding.

I'm afraid I don't understand your comment. I have separate calma layers
for Contacts (CCA), Poly (CPG), and Metal1(CMF).  I assumed that magic
read this information into separate CIF structures and then combined them
in the way specified in the cifinput section of the tech file before writing
the appropriate magic layer.  In fact, doesn't the NMOS example in the 
Maintainer's Manual #2 (pg 18) do exactly this?

You say that:
>In order to get the contact you need to have all CCA,CPG and CMF
>on the same hierarchy. The way Magic and its tech file is set up,
>it will form the abstract layer "pc" only when all layers are
>presented.
>Possible solutions:
>	(1) flatten the geometry
>	(2) re-write the CIF in section of the tech to accomodate
>	    layers in different hierarchy. One way is to have no
>	    "abstract" layers but all Magic layer corresponds to
>	    a CIF layer. This is the simpliest method but you will
>	    not be able to extract correctly. (if you want to know
>	    why, I can explain to you on a seperate message)

I thought that I was doing it correctly.  After I read the GDS, I can
do a ":see no", then ":see con" (The extra layer I defined to hold CCA),
then ":see m1", then ":see poly" and verify that all the layers are
present where the contact should be.  Doesn't the cifinput rule:

    layer pc CCA
        and CPG
        and CMF

say to form a poly-metal contact on a magic layer where the CIF layers CCA,
CPG, and CMF coincide?   Did I misinterpret that magic makes a distinction
between CIF layers and its own layers?  I assumed that creating an extra
plane to hold the contacts would not hurt anything, especially since I
do not mention it in the drc or extract sections - it is only used when
reading GDS and has no rules or parasitics associated with it.  It allows
me to see where the CCA layer exists...

Please forgive me for being slow to understand...

BTW, Please post the result, as I haven't been able to get a response back
from my inquires to MOSIS via usenet mail to mosis@mosis.edu.

Thanks,

Ed Hepler
elh@vu-vlsi or hepler@cbmvax