The VLSI project has its origins in a research project aimed to develop a method of helping to create Very-Large-Scale Integration (VLSI) chips. Funded by the Walloon Region from 1999 to 2001, the project results in the development of an algorithm dedicated to the placement of 2D components, the 2D-Genetic Algorithms (GA-2D), and a software prototype.
The 2D-GA has been designed to place a set of objects by optimizing two constraints:
- The total area occupied by the objects should be minimal.
- The total length of connections between objects should be minimal.
In practice, each object is represented by a polygon with different terminals, each terminal having multiple pins. The algorithm does not currently support distance constraints (such as the fact that two objects must be placed at a minimal or maximal distance one of each other), but integrating them is not excluded in the future.
2 The components
The VLSI project has three components:
- The ROptimization library contains an implementation of the 2D-GA. It is noted that to solve certain problems of placement, it is possible to create objects with only one terminal having a single pin in the center of the object (for example if the objects are people to place on a office space).
- The RVLSI library adapts the 2D-GA to the particular VLSI problem. It also has some classes to import some data from GDS and EDIFII files.
- A graphical application for KDE, called KDevVLSI, is used to control the process implemented and see the results.
Both libraries are available under the GNU LGPL while KDevVLSI is licensed under the GNU GPL. A description of the steps to build the project is available on WikiCS a>.
The screenshot below shows a possible arrangement for some objects where the connections are highlighted in red.