The <b>Ascii Graphic Database System (AGDS)</b> format is an ascii (text) version of the wellknown and industry standard GDS II binary format. This format hierarchicaly represents geometric shapes, labels and other layout informations (see http://en.wikipedia.org/wiki/GDSII for more informations). \n
The ascii format has several advantages versus binary format:
- human readable,
- easy to edit manually or with dedicated tools,
- easy to search or grep into,
- easy to compare and understand differences between two files,
- easy to convert.
The conversion from Ascii GDS to binary GDS and vice versa can be done with <b>OwlVision GDSII Viewer</b> available at http://owlvision.org\n
Since it has been developped in java, it can be run on all platforms.
\subsection agdsAutrhos Author
Damien Dupuis: damien.dupuis(at)lip6(.)fr
\subsection agdsLimits Limitations
Currently the only supported shape in this driver is the rectangle.
\section agdsDB Stand alone database structure
The database conists in for simple objects :
- AGDS::Library contains all AGDS library informations such as the name, the units used (user and physical) and the list of all Structures.
- AGDS::Structure describes a GDS Structure with a name and a list of Elements.
- AGDS::Element is an abstract class from which derived the AGDS::Rectangle.
- AGDS::Rectangle describes a rectangle element of a structure.
\subsection agdsDriver Using the driver
To drive an AGDS file, user has to create one AGDS::Library and add AGDS::Structure objects to it with the AGDS::Library::addStructure() method. Each AGDS::Structure contains at least one AGDS::Element added with AGDS::Structure::addElement() method.\n
All objects can be independently created as far as they are correctly added to their parent. \n
Once the library is completely specified, simply call the AGDS::Library::writeToFile() method to drive the database to file.
\section agdsExamples 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 AGDS file using C++ or Python. These two examples drive the same file \c transistor.agds:
\include transistor.agds
\image html transistorCif.png AGDS example layout
\image latex transistorCif.pdf AGDS example layout width=.25\linewidth
\note In order to compile this code, a CMakeLists.txt file is provided. User must set the $VLSISAPD_TOP variable before running these commands in the directory containing the CMakeLists.txt file: