| Presentation | AGDS | CIF | DTR | OPENCHAMS | SPICE | Links & Contact |
The Caltech Intermediate Format (CIF) consists in a limited set of graphic primitives used to describe the shapes on each layer of an integrated circuit (see http://en.wikipedia.org/wiki/Caltech_Intermediate_Form for more informations).
Damien Dupuis: damien.dupuis(at)lip6(.)fr
Although the CIF format allows hierarchical description and supports several shapes, in this driver, we do not use hierarchy and only use Polygons.
The database consists in two simple objects :
To drive a CIF file, user has to create one CIF::Circuit and as many CIF::Polygon as the number of shapes of the layout. The CIF::Polygon objects can be created independently from for the CIF::Circuit but must be finally added to the CIF::Circuit using CIF::Circuit::addPolygon().
Once the CIF::Circuit is complete, simply call the CIF::Circuit::writeToFile() method to drive the database to file.
As said is the global presentation, VLSI SAPD project provides C++ libraries and Python modules for each supported format. In this section we present two simple code examples to drive a CIF file using C++ or Python. These two examples drive the same file transistor.cif:
Here is the C++ code (driveCif.cpp) used to generate the transistor.cif file. (Source is available in examples directory).
Here is the Python code (driveCif.py) used to generate the transistor.cif file. (Source is available in examples directory).
driveCif.py script, user must ensure that $PYTHONPATH variable points to the directory containing CIF.so module. | Generated by doxygen 1.8.14 on Thu Oct 18 2018 | Return to top of page |
| VLSI SAPD Documentation | Copyright © 2010 - 2011 UPMC All rights reserved |