degate  0.1.2
degate.h
Go to the documentation of this file.
00001 /* -*-c++-*-
00002 
00003  This file is part of the IC reverse engineering tool degate.
00004 
00005  Copyright 2008, 2009, 2010 by Martin Schobert
00006 
00007  Degate is free software: you can redistribute it and/or modify
00008  it under the terms of the GNU General Public License as published by
00009  the Free Software Foundation, either version 3 of the License, or
00010  any later version.
00011 
00012  Degate is distributed in the hope that it will be useful,
00013  but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  GNU General Public License for more details.
00016 
00017  You should have received a copy of the GNU General Public License
00018  along with degate. If not, see <http://www.gnu.org/licenses/>.
00019 
00020 */
00021 
00022 #ifndef __DEGATE_H__
00023 #define __DEGATE_H__
00024 
00025 /*! @mainpage libdegate
00026  *
00027  * @section intro_degate_sec What is degate?
00028  *
00029  * Degates' purpose is to aid  reverse engineering of integrated circuits (ICs).
00030  * Degate helps you to explore images from ICs. It matches logic gates  on the
00031  * imagery given by graphical templates and it assists you in tracing circuit paths.
00032  *
00033  * Degate is not a completely automatic analyzing tool. Degate helps you with
00034  * some automation in your manual reverse engineering process.
00035  *
00036  * Please have a look on the project website to learn more about degate.
00037  * @see http://www.degate.org
00038  *
00039  *
00040  * @section intro_libdegate_sec What is libdegate?
00041  *
00042  * Libdegate is a part of the degate project. It is a shared library, that implements
00043  * the core functionality of degate. The core functionality is basically working with
00044  * degate projects, with the logic model and with images. This library is documented
00045  * here.
00046  *
00047  * @ref example_page The example section explains how you can program with libdegate.
00048  */
00049 
00050 /*! @page example_page Examples
00051  *
00052  * @section howto_sec How to use libdegate?
00053  *
00054  * This section describes how to use libdegate in order to access logic model related
00055  * data and images from project files. The example presented here is taken from the
00056  * directory \p examples. You can find further examples below the 'tools' directory.
00057  *
00058  * @subsection example1 Example 1: Use the project importer.
00059  *
00060  * In the following example we will load a degate project and print the logic model.
00061  *
00062  * @include read_a_project.cc
00063  *
00064  * @subsection example2 Example 2: Load project and export the project as LaTeX code.
00065  *
00066  * This example shows code to iterate over project data, especially the cell library.
00067  * Cell library images are exported using the tool 'convert' from the ImageMagick tool
00068  * suite.
00069  *
00070  * @include gate_lib_doc.cc
00071  *
00072  */
00073 
00074 
00075 #include "globals.h"
00076 #include "degate_exceptions.h"
00077 
00078 /*
00079   These include for logic model related structures have
00080   to be in the correct order.
00081 */
00082 
00083 #include <LogicModelObjectBase.h>
00084 #include <Net.h>
00085 #include <Layer.h>
00086 #include <LogicModel.h>
00087 #include <ConnectedLogicModelObject.h>
00088 #include <PlacedLogicModelObject.h>
00089 #include <GateTemplate.h>
00090 
00091 #include "BoundingBox.h"
00092 #include "RegularGrid.h"
00093 #include "IrregularGrid.h"
00094 
00095 #include <PortColorManager.h>
00096 #include <Image.h>
00097 
00098 //#include <PluginBase.h>
00099 
00100 #endif