Projet VLSI

1 Description

Le projet VLSI trouve son origine dans un projet de recherche visant à développer une méthode d'aide à la création de puces de type Very-Large-Scale Integration (VLSI). Financé par la Région wallonne de 1999 à 2001, le projet aboutit au développement d'un algorithme dédié au placement de composants 2D, le 2D-Genetic Algorithms (2D-GA), ainsi qu'un premier prototype d'application.
Le 2D-GA a été pensé pour placer un ensemble d'objets en optimisant deux contraintes :
  1. La surface totale occupée par les objets doit être minimale.
  2. La longueur totale des connexions entre les objets doit être minimale.
En pratique, chaque objet est représenté par un polygone ayant différents terminaux, chaque terminal ayant plusieurs pins. L'algorithme ne gère actuellement pas des contraintes de distances (comme le fait que deux objets doivent être placés à une distance minimale ou maximale l'un de l'autre), mais une intégration de celles-ci n'est pas exclue à l'avenir.

2 Les composants

Le projet VLSI comprend trois composants :
  1. La librairie ROptimization contient une implémentation du 2D-GA. Il est a noté que pour résoudre certains problèmes de placement, on peut créer des objets ne disposant que d'un seul terminal ayant une seule pin située au centre de l'objet (par exemple si les objets sont des personnes à placer sur un plateau de bureaux).
  2. La librairie RVLSI adapte le 2D-GA pour résoudre le problème du VLSI. Elle dispose aussi de quelques classes pour importer certaines données à partir de fichiers GDS et EDIFII.
  3. Une application graphique pour KDE, appelée KDevVLSI, permet de piloter le processus implémenté et de voir les résultats.
Les deux librairies sont disponibles sous la licence GNU LGPL, tandis que KDevVLSI l'est sous la licence GNU GPL. Une description des étapes à suivre pour installer le projet est disponible sur WikiCS.

3 Exemple

La capture d'écran ci-dessous montre un agencement possible pour des objets où les connexions sont surlignées en rouge.
KDevVLSI