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 Nov 12 2020 | Return to top of page |
VLSI SAPD Documentation | Copyright © 2010 - 2020 UPMC All rights reserved |