Showing results for 
Search instead for 
Did you mean: 

Does anyone work with CIF (Caltech Intermediate Format) files in LabVIEW?

Go to solution

Hey everyone,


Does anyone work with CIF (Caltech Intermediate Format) files? These are files that are generated by IC layout programs, such as TannerEDA L-Edit, which define the layers and layout of masks used in VLSI semiconductor device processing (photolithography).


I would like to parse these CIF files to generate a wafer map of the devices for use in on-wafer testing. Currently, a shot map is made and then I manually go through and define row and column coordinates for the edge of a wafer and various drop-in locations. I would like to automate this process, and I know if can be done by reading these CIF files. However, I don't really know how to read them, and I can only get so much information from the Wikipedia page and from the original paper.


So I ask: does anyone have a set of VIs that make reading CIF files easier? Or, can anyone who works with them help me with my problem? I can describe it in much better detail once someone comes along...

0 Kudos
Message 1 of 5
I know for sure that I have a CIF viewer/parser in Mathematica. I think I have most if not all of it in LV as well. I will have to dig a little for it.
0 Kudos
Message 2 of 5

Oh excellent! Aside from LabVIEW, the other language that I know well is Mathematica, so that works out perfectly. If you can't find the LV stuff, the Mathematica stuff would be helpful.

0 Kudos
Message 3 of 5
Accepted by topic author dthor

Here is one of my CIF notebooks from Mathematica (remove the .txt extension obviously).  I used this one to create a new CIF file with four instances of the object contained in a file.


You can load a file by the following:


symName = loadCIF;


You can see the layers:




You can view the layers:


Show[{viewCIFlayer[symName,layer #,color]}]


(add multiple layers to the list if desired)


If you have a typical CIF file I can also test to see that it recognizes the objects you use, I typically stick to polygons and boxes.

Message 4 of 5



I'll use this code to try and make something useful in LV.

0 Kudos
Message 5 of 5