/*! \page CIF CIF Format \section cifPres Presentation 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). \n \subsection cifAutrhos Author Damien Dupuis: damien.dupuis(at)lip6(.)fr \subsection cifLimits Limitations Although the CIF format allows hierarchical description and supports several shapes, in this driver, we do not use hierarchy and only use Polygons. \section cifDB Stand alone database structure The database consists in two simple objects : - CIF::Circuit contains all CIF circuit informations such as the name, the unit used, the scale and the list of all Polygons. - CIF::Polygon describes a Polygon (a set of points). \subsection cifDriver Using the driver 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().\n Once the CIF::Circuit is complete, simply call the CIF::Circuit::writeToFile() method to drive the database to file. \section cifExamples Examples 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 \c transistor.cif: \include transistor.cif \image html transistorCif.png CIF example layout \image latex transistorCif.pdf CIF example layout width=.25\linewidth \subsection cifC C++ Here is the C++ code (\c mainCif.cpp) used to generate the transistor.cif file. (Source is available in examples directory). \include mainCif.cpp \subsection cifPython Python Here is the Python code (\c testCif.py) used to generate the transistor.cif file. (Source is available in examples directory). \include testCif.py \note In order to run the \c testCif.py script, user must ensure that $PYTHONPATH variable points to the directory containing pyCIF.so module. */