Giter Site home page Giter Site logo

brcrs / via-minimization Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 3.66 MB

Minimiser le nombre de vias utilisés pour connecter des fils entre différentes couches de routage est un problème majeur que l'on rencontre lors de la conception des circuits intégrés. En effet, une augmentation du nombre de vias a souvent pour effet de diminuer le rendement, la fiabilité et la performance des circuits intégrés, ainsi que d'augmenter le coût de leur manufacture.

Makefile 0.20% HTML 28.53% C 10.43% PostScript 60.85%

via-minimization's Introduction

Via Minimization

Dans le cadre du cours d’Algorithmique appliquée et structures de données (2I006) de la faculté Pierre et Marie Curie, nous avons été amené à concevoir un programme de résolution de problème dit de Via Minimization. Ce rapport présente nos travaux.

Minimiser le nombre de vias utilisés pour connecter des fils entre différentes couches de routage est un problème majeur que l'on rencontre lors de la conception des circuits intégrés. En effet, une augmentation du nombre de vias a souvent pour effet de diminuer le rendement, la fiabilité et la performance des circuits intégrés, ainsi que d'augmenter le coût de leur manufacture (traduit de C.-J. Richard Shi, "Solving Constrained Via Minimization by Compact Linear Programming", ECE Department, University of Iowa, Iowa City, Iowa 52242, U.S.A).

Pour résoudre ce problème, l'idée est la suivante : on considère une droite de balayage verticale imaginaire qui se déplace à travers l'ensemble de segments, de la gauche vers la droite. À une abscisse x donnée de son balayage, notons kx le nombre de segments horizontaux coupant la droite. On considère aussi l'ensemble T de taille kx de tous ces segments horizontaux, triées par leurs ordonnées. Un segment vertical d'abscisse x ne pourra alors intersecter que les segments de T. Pour mettre en œuvre ce balayage, on considère l'échéancier des points d'évènement E qui est définie comme une séquence d'abscisses, triées de la gauche vers la droite, qui vont définir les positions d'arrêt de la droite de balayage. Dans notre cas, les points d'évènements seront les extrémités gauche et droite des segments horizontaux et les abscisses des segments verticaux. Attention : dans ce tri, pour deux points de même abscisse, un point gauche de segment (horizontal) est avant un segment vertical et un segment vertical est avant un point droit de segment horizontal : en effet, l'évènement menant à la recherche d'intersection est le fait de balayer un segment vertical et il ne faut pas qu'à ce moment, les segments horizontaux pouvant le croiser soit hors de la structure T.

Fichiers

Le dossier du projet est constitué :

  • d’un dossier PartieA/
  • d’un dossier doc/ contenant ce rapport ;
  • d’un dossier src/ contenant les fichiers .c en rapport avec la Partie B ;
  • un dossier bin/ contenant les fichiers .o ;
  • un Makefile
  • un fichier CHANGELOG.txt décrivant les évolutions majeures du projet ; Le dossier PartieA/ contient tous les travaux en rapport avec la Partie A du projet, c-à-d :
  • un dossier src/ contenant tous les fichiers .c en rapport avec la Partie A;
  • un dossier bin/ contenant les fichiers .o ;
  • un dossier nets/ contenant des instances de Netlist ;
  • un dossier doc/ contenant le rapport intermédiaire de la partie A ;
  • un Makefile ;

via-minimization's People

Contributors

brcrs avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.