comparaison d'un circuit électrique avec le plan spéci é · 3 lecture et traitement du...

43

Upload: doankhanh

Post on 13-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Comparaison d'un circuit électrique avec le plan

spéci�é

Dmitriy SLUTSKIY, Daria STEPANOVA, Simon STUKER

Sujet proposé par Sébastien Valette et Jean-Christophe Courrège, THALES

23 novembre 2012

Page 2: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Résumé

Dans ce rapport nous présentons quelques méthodes logicielles pour l'étude des�chiers .cif décrivant les circuits integrés. L'objectif est de simpli�er la compa-raison entre le circuit spéci�é par le �chier .cif et le circuit réalisé.

Page 3: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Mots clés : Circuit intégré, format .cif, VLSI, graphe des connexions.

1 Introduction

La micro-électronique est un des plus importants domaines de la technologiemoderne. Les produits de l'industrie des composantes électroniques ont trouvéune large utilisation dans des nombreux secteurs. Les technologies actuelles sontde plus en plus exigeantes et demandent des circuits intégrés performants et�ables dans des environnements di�érents. Un circuit intégré contemporain estréalisé avec une technologie submicronique qui peut assembler des dizaines demillions de transistors de taille in�nitésimale sur une aire de quelques cm3, etfonctionne à des fréquences élévées. Le nombre de transistors sur une seule pucecontinue à augmenter de façon exponentielle.Dans la première moitié du XXème siècle les composants électroniques étaientréalisés à l'aide de tubes à vide. Le premier transistor fut inventé à la �n del'année 1947 (J. Bardeen, W.Brattain et W. Schockley à Bell Labs). L'étapesuivante du developpement électronique fut l'invention du circuit monolithiqueintégré en 1958 par J. Kilby à Texas Instruments.Pour répondre aux demandes des technologies en developpement, les transistorsà e�et de champ à grille isolée (MOSFET en anglais pour Metal Oxide Semi-conductor Field E�ect Transistor) apparaissent dans la fabrication des circuitsintégrés dans les années 60. Les années 80 ont donné naissance aux circuitsCMOS (pour Complementary Metal Oxide Semiconductor) qui sont plus adap-tés à la miniaturusation.Les industries demandent des circuits intégrés comportant un nombre de plusen plus important de transistors. Les investissements nécessaires pour leur fa-brication sont très importants, le seuil de rentabilité suppose la production d'unminimum de circuits intégrés par tranche, à forte valeur ajoutée. Le coût d'uneusine de fabrication de circuits intégrés dépasse un milliard de dollars, c'estpourquoi la fabrication se fait rarement au même endroit que la conception.

Le but de ce travail est le développement d'outils de comparaison entre laspéci�cation d'un circuit et le circuit livré par un fabricant extérieur, a�n de s'as-surer que les fonctionnalités demandées sont bien implémentées dans le circuit,et qu'il n'y a pas de fonctionnalités supplémentaires malveillantes. L'idée estd'analyser les données décrivant le circuit souhaité pour avoir des informationssur les zones à risque, i.e. les endroits où l'implémentation de fonctionnalitéssupplémentaires ou la modi�cation de celles existantes est possible.

Le chapitre 2 décrit le problème et les principaux obstacles à surmonter. Ondécrit rapidement les étapes principales de la conception du circuit intégré. Onanalyse ensuite le problème posé du point de vue de l'attaquant qui ne possèdeque le �chier .cif et cherche à le modi�er avant la fabrication pour y inclure desfonctionnalités supplémentaires.

Les chapitres 3 et 4 sont consacrés à l'extraction des données du �chier .cif.Il s'agit d'en extraire des données brutes telles que le graphe des connexionsentre rectangles, ou les propriétés physiques telles que la densité du silicium.

Le chapitre 5 présente des algorithmes e�caces pour exploiter ces données.Le chapitre 6 présente l'application des outils décrits dans les chapitres pré-

cédents à un exemple de �chier .cif. Et en�n le chapitre 7 propose quelques

1

Page 4: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

pistes pour la suite.

2 Position du problème

Un circuit intégré est formé de plusieurs composantes qui implémentent uneou plusieurs fonctions. Des transistors sont à la base des circuits intégrés. Lesmicroschémas sont composés essentiellement de �ls réalisant les interconnec-tions. Les �ls sont disposés en plusieurs couches et les transistors se trouventdans les couches les plus basses. Les processeurs modernes peuvent contenir de6 à 10 couches sur une surface extrêmement réduite.Le coût important de la fabrication (successions d'étapes depôts-lithographies-gravures-dopages) des circuits intégrés impose la production par des fonderiesspécialisées extérieures aux laboratoires de conception. Le fabricant est sus-ceptible de modi�er le �chier pour adapter la production à ses propres outilstechniques. Le but de notre travail est de véri�er que les fonctionnalités ducircuit ainsi produit sont exactement celles demandées. Le nombre importantde couches et la taille réduite des puces compliquent la tache de véri�cationdes fonctionnalités des circuits. Il existe des méthodes de véri�cation matérielletelles que le découpage de la puce test et la photographie couche par couche. Cesméthodes sont souvent plus coûteuses que la production. Nous nous limiteronsdonc à une étude logicielle préparatoire du �chier .cif en adoptant le point devue de l'attaquant. On se focalise sur le problème de la détermination des zonesles plus importantes (à risque) sur la puce. Nous étudierons en particulier lastructure logique du graphe des connexions (composantes connexes, densité deconnexions) et sa disposition physique sur le circuit intégré.La conception des circuits intégrés suit le schéma suivant :

� Création de la netlist décrivant un circuit imprimé. Elle est obtenue parsynthèse logique de la description logique du circuit imprimé.

� Tri de la netlist, insertion des cellules d'isolation.� Production du �chier PDEF de données des plans des étages et de la puis-sance, insertion des interconnections entre les di�érents niveaux logiques.À ce stade on e�ectue la véri�cation de la traçabilité du boîtier à puce.

� Production du �chier GDSII qui représente le macro placement, l'insertiondes connexions entre couches (vias).

� Mise en place des �ls, clôture de l'intégrité du signal et du timing, �xationde l'électromigration du signal, masques. A ce stade on e�ectue l'analysetemporelle statique du boîtier à puce.

� Réduction des pertes au niveau des transistors à plusieurs tensions deseuils.

� Insertion des condensateurs de découplage, analyse de la chute de tensionRI, �xation de l'électromigration de la puissance. À ce stade on contrôlela chute de tension RI du boîtier à puce.

� Véri�cation physique : la comparaison du layout au schéma électrique(Layout Versus Schematic, LVS).

� Envoi à la fonderie.La véri�cation de la conception se fait selon le modèle représenté sur la Figure1.

Les véri�cations e�ectuées assurent la réalisabilité du circuit. Le �chier des-criptif conçu au laboratoire fournit les données nécessaires à la fabrication du

2

Page 5: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 1 � Véri�cation de la conception.

circuit spéci�é. On souhaite trouver les réponses aux questions suivantes :

� L'attaque : Est-il possible de le modi�er en un temps raisonnable de façonà y intégrer des nouvelles fonctionnalités espions ou à enlever certainesfonctionnalités existantes ?

� La défense : Peut-on e�ectuer une véri�cation peu coûteuse du produitfabriqué pour s'assurer du fonctionnement prévu ?

On part ainsi du �chier de spéci�cation, on developpe les outils de lecture dece �chier et de la représentation des données sous une forme plus maniable. Onanalyse la struture du circuit en tant que graphe abstrait et la densité locale descouches de silicium et des interconnections. Cette analyse permet de déterminerles zones où l'implantation de nouveaux composants est la plus probable etindique donc les endroits à privilégier pour la véri�cation physique de la puce.

3 Lecture et traitement du �chier (de type .cif)

Dans ce rapport on présente particulièrement le travail avec les �chiers deconception des circuits intégrés présentés sous la forme �chier .cif qui est leformat plus ergonomique pour la technologie de fabrication des composantesélectroniques SCMOS (Complementary Metal Oxide Semiconductor). Le formatCIF (Call Intermediate Format) est le plus couramment utilisé pour la descrip-tion des circuits intégrés. C'est un format textuel qui fournit une structure des

3

Page 6: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

bases de données commune pour l'intégration de plusieurs outils. Les descrip-tions en �chiers CIF sont conçues en ensemble de primitives graphiques utilespour la présentation hierarchique des formes bidimensionnelles sur les couchesdi�érentes de la puce. On y distingue deux types de propositions : celles quiconcernent la géométrie et celles qui concernenet le contrôle.

Géométrie Contrôlelayer(l) passage entre couches df début de la dé�nition d'un symbole ;

box(b) rectangle ; df �n de la dé�nition d'un symbole ;

wire(w) chemin ; dd supprimer la dé�nition de sousroutages ;

roundflash(r) cercle ; 0-9 inclure une information supplémentaire ;

polygon(p) �gure arbitraire ; end(e) pour terminer un �chier CIF.

call(c) autres déclarations géométriques.

Remarque 3.1 On a mentionné dans le chapitre précédent d'autres formatsutilisés pendant la conception du circuit. Le format PDEF (Physical DesignExchange Format) qui représente l'information physique intermédiaire. Le for-mat GDSII (GDS pour Graphic Database System) est un format conçu pour lecontrôle des tracés des masques photographiques des circuits intégrés largementutilisé aussi pour l'échange des �chiers de spéci�cation notamment les �chiers.gds peuvent être envoyés à la fonderie pour la production du circuit en ques-tion. Le passage entre .gds et .cif étant simplement e�ectué à l'aide de di�érentslogiciels (Electric par exemple), on se limite à l'étude du dernier.

3.1 Outils de lecture et de traitement

Le �chier cif est un �chier texte et peut donc être traité par un éditeur detexte. Compte tenu la taille du �chier (la taille pour un circuit intégré réel peutatteintre plusieurs Go) nous avons utilisé Emacs pour ce travail. Le passage parun éditeur de texte est nécessaire pour la préparation au traitement mathéma-tique : les logiciels de calcul (Maple dans notre cas) ont leur propre syntax. Ilfaut donc traduire. Cette préparation avec Emacs nous a fourni les listes desrectangles au format Maple.

On cherche dans un premier temps à représenter les données du �chier despéci�cation couche par couche. On distingue les niveaux de silicium et les in-terconnexions (les vias). Au niveaux inférieurs on retrouve les transistors P-N-Pet N-P-N codés par CWN-CSP et CSN-CWP. Le contact entre les transistorsest e�ectué aux niveaux de métal supérieurs : les couches codées par CMF etCMS reliées par les couches des interconnections (vias) CVA.

On se focalise sur les couches supérieures qui connectent les transistors etcréent le schéma électrique et logique du circuit (CMF, CMS, CVA).

4 Algorithmes de lecture du graphe de connexions

Dans cette partie, nous allons présenter di�érentes méthodes qui permettentde mieux comprendre la connectique d'un circuit à partir du �chier de spéci�ca-tion. Cette information permettra ultérieurement de mettre en évidence les zonesdotées d'une forte densité connectique, susceptibles d'être sollicitées par un com-posant supplémentaire malveillant. Le but de cette section est donc d'extrairedu �chier .cif les données pertinentes (connexions entre les rectangles, taille des

4

Page 7: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

rectangles, densité du circuit à un endroit donné). Dans la section suivante nousexploiterons ces données pour cerner autant que possible l'organisation généraledu circuit.

La démarche globale est la suivante : on considère en entrée les donnéesd'un �chier .cif, extraites selon les précisions du paragraphe précédent. Il s'agitd'une liste de rectangles, identi�ées par leurs dimensions et leur centre. On vaécrire un algorithme qui permet de déterminer si deux rectangles donnés sontphysiquement en contact ou non. Un contact peut avoir lieu dans deux cas de�gure :

� Les deux rectangles sont adjacents, et sont situées sur un même niveau.� Les deux rectangles ont une intersection non vide, et sont situés à unniveau d'écart. Dans ce cas de �gure, l'un d'eux est un via.

On va essayer de déterminer, à l'aide d'un algorithme, quels rectangles sontconnectés. Ces connexions forment un graphe que nous appelons graphe deconnexion. Les n÷uds de ce graphe sont les rectangles du �chier de spéci�-cation, et ces noeuds sont reliés par un arc lorsque les rectangles correspondantssont physiquement en contact.

Il est alors naturel de se demander comment on va représenter ce graphe. Ilexiste deux façons classiques : la première est de dresser la matrice d'adjacencedu graphe M = (Mi,j)i,j∈sommets, dé�nie par :

Mi,j =

{1 si un arc relie les sommets i et j0 sinon

La deuxième façon classique de représenter un graphe est de dresser la listed'adjacence L = (Li)i∈sommets dé�nie par :

Li = {j}j∈voisins(i)

Cette deuxième façon est plus compacte lorsque le graphe est peu dense. Lesalgorithmes décrits dans cette partie donnent chacune des descriptions. Leurstemps d'exécution sont proportionnels à la taille du résultat. On pourra choisirde restreindre la description du graphe à quelques parties bien choisies, ce quidonnera une représentation locale, avec des temps de calcul moindre.

Nous avons choisi de travailler avec le logiciel de calcul formel Maple 11. Lesalgorithmes seront cependant présentés en langage naturel (leurs versions enlangage Maple sont données en annexe). Un petit travail préliminaire est alorsnécessaire : Dans Maple, les rectangles (en tant qu'objets géométriques) sontdécrits par un quadruplet [x1, y1, x2, y2], où [x1, y1] sont les coordonnées de leurcoin supérieur gauche et [x2, y2] celles leur coin inférieur droit.

5

Page 8: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 2 � Rectangles sous format cif (en haut) et Maple (en bas)

L'algorithme suivant convertit les rectangles extraits du �chier .cif à ce for-mat :

Algorithme 1: ConversionRectanglesEntrées : Liste de rectangles K au format du �chier .cif et un tag tSorties : Liste de rectangles L au format Maple

1 N ← Taille de la liste K2 pour n = 1 a N faire

3 Ln ← [K[n]3 − K[n]12 ,K[n]4 +

K[n]22 ,K[n]3 +

K[n]12 ,K[n]4 − K[n]2

2 , t]4 �n5 retourner L

Cet algorithme permet d'ajouter à chaque rectangle une cinquième com-posante, un tag, qui correspond à la couche physique où le rectangle est situé.Dans toute la suite, on suppose que cette opération a été réalisée pourl'ensemble des rectangles du �chier .cif, et que les listes des di�érents

6

Page 9: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

niveaux ont été fusionnées en une seule. Cette (grande) liste contient desvecteurs à 5 composantes : les 4 prémières sont des coordonnées d'un rectanglesous format Maple, et la cinquième correspond à son niveau.

A présent, on peut ré�échir à un algorithme qui décide si deux rectanglessont physiquement en contact. On va utiliser les propriétés suivantes :

Soient R(R1, R2, R3, R4) et S(S1, S2, S3, S4) deux rectangles, dont les coor-données sont sous le format de Maple.

Figure 3 � Intersection de deux rectangles R et S

Alors :� Les rectangles R et S s'intersectent si et seulement si[R1, R3] intersecte [S1, S3] et [R4, R2] intersecte [S4, S2]

� Les rectangles R et S sont adjacents si et seulement si

R et S s'intersectent et

∣∣∣∣∣∣[R1, R3] ∩ [S1, S3] est un singletonou[R4, R2] ∩ [S4, S2] est un singleton.

� Dans chaque cas de �gure, l'intersection de R et S est : [R1, R3]∩[S1, S3]×[R4, R2] ∩ [S4, S2].

L'intersection de deux intervalles est réalisée par l'algorithme 2, et le calculde l'intersection de deux rectangles est réalisé par l'agorithme 3. L'algorithme4 utilise ce dernier, et décide si deux rectangles sont physiquement en contact.

7

Page 10: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Algorithme 2: IntersectionIntervalles

Entrées : Deux intervalles [a, b] et [c, d]Sorties : Intervalle [BG,BD] (éventuellement réduit à l'ensemble vide

ou un singleton)1 BD ← min(b, d)2 BG← max(a, c)3 si BG ≤ BD alors4 retourner [BG,BD]5 sinon6 retourner ∅7 �n

Algorithme 3: IntersectionRectanglesEntrées : Deux rectangles R et SSorties : Rectangle M (éventuellement réduit à un segment, un point, ou

l'ensemble vide)1 L ← IntersectionIntervalles([R1, R3], [S1, S3])2 H ← IntersectionIntervalles([R4, R2], [S4, S2])3 si L 6= ∅ et H 6= ∅ alors4 retourner [L1, H2, L2, H1]5 sinon6 retourner ∅7 �n

Algorithme 4: ContactEntrées : Deux rectangles R et S, avec numéro de niveau en cinquème

coordonnéeSorties : Valeur Booléenne : vrai ou faux

1 si IntersectionRectangles(R,S) 6= ∅ et |R5 − S5| ≤ 1 alors2 retourner vrai3 sinon4 retourner faux5 �n

Ce test permet de faire plusieurs opérations qui nous intéressent :� Etant donnée une zone rectangulaire, on peut déterminer la partie de lazone occupée par l'ensemble des rectangles. Cela permet de mettre enévidence une forte présence (densité) de cuivre dans une région physiquedu circuit.

� Déterminer la connectique du circuit, c'est-à-dire les contacts qui existententre les di�érents rectangles.

Pour faciliter le premier point, on utilise une procédure qui calcule l'aired'un rectangle :

Ensuite, pour une zone rectangulaire Z, on peut donner la proportion d'aireoccupée par les rectangles d'une liste L, s'ils sont disjoints :

8

Page 11: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Algorithme 5: AireEntrées : Un rectangle RSorties : Nombre réel A

1 A ← (R3 −R1)(R2 −R4)2 retournerA

Algorithme 6: DensiteLocaleEntrées : Une zone rectangulaire Z et une liste de rectangles LSorties : Un nombre réel

1 S ← 02 pour R ∈ L faire3 Int← IntersectionRectangles(R,Z)4 si Int 6= ∅ alors5 S ← S +Aire(Int)6 �n

7 �n

8 retourner SAire(Z)

Le deuxième point, qui consiste à déterminer les rectangles qui sont encontact, est plus délicat. A ce stade, on dispose seulement de l'ensemble desnoeuds du graphe des connexions, et d'une fonction Contact :

R×R→ {vrai, faux}

dé�nie sur les couples de noeuds, à valeurs booléennes, qui indique si un arcexiste entre les noeuds. Le choix de représentation du graphe des connexionss'impose ici. La matrice d'adjacence complète est alors éliminée d'o�ce. Pourl'obtenir il faudrait un temps de calcul quadratique en le nombre de rectangles.Même en restreignant les tests de connexion à trois couches consécutives, letemps de calcul est très important (Nous l'avons constaté sur l'exemple dela partie 4). On va donc commencer par traiter un problème légèrement plussimple : étudier un terme donné de la suite d'adjacence. C'est-à-dire : quels sontles rectangles en contact direct avec un rectangle donné ?

Plusieurs méthodes ont été mises en oeuvre pour arriver à cette �n rapide-ment, sans e�ectuer exhaustivement des test de contacts avec tous les rectangles.La première consistait à faire la chose suivante : pour un rectangle donné, onconsidère la zone bordante obtenue en ajoutant une marge ε sur les bord durectangle.

9

Page 12: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

ϵ

ϵ

ϵ

ϵ

Figure 4 � Rectangle bordé d'un marge de ε

Dans un premier temps, on isole les rectangles qui ne peuvent rencontrercette zone pour des raisons évidentes (ils sont trop éloignés et trop petits pourla toucher). Ensuite, on e�ectue les test de contact avec le rectangle de départsur cette liste réduite. Cela revient à réduire le nombre de tests de contactélémentaires au pro�t de tests d'intersection avec une zone donnée. Sur l'exemplede la partie 4, cette idée a permis de gagner un temps considérable sur des zonesde faible connectivité. En revanche, sur des zones denses elle n'était toujours passu�samment performante.

L'idée la plus aboutie et la plus performante que nous proposons est lasuivante. Soit Z(Z1, Z2, Z3, Z4) une zone rectangulaire donnée. Tout rectangledont le bord droit est inférieur à Z1 ne peut rencontrer Z. Et tout rectangledont le bord gauche est supérieur à Z3 ne peut rencontrer Z. La même idées'applique aux bords haut et bas du rectangle. Cela permet d'éliminer la plupartdes rectangles. Pour tirer le meilleur parti de cette idée, on a intérêt à trier àl'avance les rectangles selon leurs bords gauche, droit, haut et bas. On utiliseensuite le fait suivant. Si R(R1, R2, R3, R4) est un rectangle de largeur inférieureà L, alors R ne peut intersecter Z que si R1 ≥ Z1−L et R1 ≤ Z3 (voir la �gure5). Autrement dit, l'examen du bord gauche su�t à éliminer la plupart desrectangles qui ne sont pas trop larges.

Avant de passer aux tests de contact, on trie donc l'ensemble des rectanglespar rapport à chacune de leurs coordonnées, par leur hauteur, puis par leurlargeur. Les algorithmes de tri sont déjà présents dans Maple, et sont réalisés entemps au plus linéaire par rapport au nombre de rectangles. Les commandes àutiliser sont précisées en annexe. On notera simplement TriParCoordonnee( L ,c) la liste de rectangles L triée par valeurs croissantes de la c-ième coordonnée,et TriParLargeur(L) (resp. TriParHauteur(L)) la liste de rectangles L triée parlargeurs croissantes (resp. hauteurs croissantes).

10

Page 13: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Remarque 4.0.1 Tous ces tris peuvent être réalisés en amont, à partir de l'ins-tant où l'on dispose de la liste complète des rectangles. En l'état actuel, les algo-rithmes de tri les plus performants sont réalisés en temps O(n · log(n)). Si l'ons'autorise à stocker des données en mémoire, ce temps peut même être réduit àO(n). On pourra trouver une grande variété d'algorithmes de tri, avec les tempsd'execution correspondants dans le cinquième châpitre du livre de Knuth [3].

La méthode que nous allons utiliser peut être réalisée de façon analoguepour les largeurs ou pour les hauteurs. Nous allons la détailer pour les largeurs.Dans un premier temps, on isole les rectangles les plus larges. On �xe uneproportion s comprise entre 0 et 1, et on isole la part des s plus gros rectangles.Cette opération peut être réalisée rapidement grâce au tri que nous avons faitpréalablement :

Algorithme 7: GrosRectanglesEntrées : Une liste de rectangles L triées par largeur croissante, et une

proportion s ∈ [0, 1]Sorties : Liste de rectangles M

1 N ← Taille de la liste L2 n← E(s ·N) (La fonction E() désigne la partie entière)3 pour k = n a N faire4 Mn−k+1 ← Lk

5 �n6 retourner M

Figure 5 � Test de contact pour la liste triée par la première coordonnée

Comme nous avons trié les premières coordonnées des rectangles, on cherchesimplement la plage de données de la liste triée pour lesquelles R1 est comprisentre Z1 − L et Z3. Pour le premier seuil, on procède à une recherche dicho-tomique. Une fois atteint ce seuil (la borne de gauche de la plage critique),

11

Page 14: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

on procède par une recherche incrémentale pour atteindre la borne supérieure.Nous aurions pu réaliser une deuxième dichotomie à ce stade, mais on peutpenser que le nombre de valeur parcourus reste petit dans cette étape. Une foisdéterminée la plage de rectangles pour lesquelles Z1 − L ≤ R1 ≤ Z3, on peutprocéder à un test de contact avec Z. L'algorithme ci-dessous réalise la totalitéde ces opérations :

Algorithme 8: VoisinsTriLargeurEntrées : Une liste de rectangles L triées par première coordonnée, un

rectangle R de cette liste, et une proportion s ∈ [0, 1].Sorties : Ensemble de rectangles M

1 M ← {R}2 GR← GrosRectangles(L, s)3 l← GR[1]3 −GR[1]14 PR← TriParCoordonnee(L \GR, 1)5 pour S ∈ GR faire6 si Contact(R,S) alors7 M ←M ∪ {S}8 �n

9 �n10 Sinf ← R1 − l11 Ssup ← R3

12 N ← Taille de la liste PR13 ig ← 114 id ← N15 tant que ig < id − 1 faire

16 im ← E(ig+id

2 )17 si PR[im]1 < Sinf alors18 ig ← im19 sinon20 id ← im21 �n

22 �n23 i← ig24 tant que PR[i]1 < Ssup faire25 si Contact(R,PR[i]) alors26 M ←M ∪ {PR[i]}27 �n28 i← i+ 1

29 �n30 retourner M

Remarques 4.0.2 � Les listes GR et PR dans cet algorithme contiennentrespectivement les 10% des rectangles (si s = 0.1) les plus larges et les90% des rectangles les plus �ns. La liste PR est par ailleurs triée par laprémière coordonnée. En vérité, nous n'avons pas réalisé ce tri au coursde l'algorithme : PR peut être obtenu en prenant la liste complète, triéepar la première coordonnée, et en y retranchant sa �n, qui forme GR.

� Les lignes 15 à 20 correspondent à la recherche dichotomique de la bornede gauche de la plage critique.

12

Page 15: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

On peut produire une version analogue VoisinsTriHauteur pour les hauteurs.Lorsque nous avons a�aire à un rectangle donné, on observe largeur et hauteur.Lorsque le rectangle est �n (petite largeur, forte hauteur) l'algorithme Voisins-TriLargeur a de meilleures chances d'aboutir rapidement. Lorsque le rectangleest aplati (grosse largeur et petite hauteur) c'est VoisinsTriHauteur qui seraplus performant. On peut donc créer sans di�culté un algorithme VoisinsTriqui choisit pour un rectangle donné l'algorithme le plus adapté parmi Voisins-TriHauteur et VoisinsTriLargeur, et qui renvoie l'ensemble des voisins directs.

Dans la partie suivante, nous allons étudier les propriétés du graphe desconnexions. Avec les algorithmes que nous venons de voir, on peut donner unterme de la liste d'adjacence du graphe, c'est-à-dire produire pour un rectangledonné l'ensemble de ses voisins.

5 Outils d'analyse théoriques du graphe des connexions

Avec le travail réalisé dans la partie 2, nous disposons à présent d'un graphequ'il convient d'étudier. La question posée initialement peut être formulée de lafaçon suivante : "Dans ce graphe, quelles zones sont susceptibles d'accueillir uncomposant malveillant ?"

Le risque d'une zone peut être quanti�é de plusieurs manières. Nous al-lons tenir compte des contraintes d'un constructeur malveillant pout identi�erles zones les plus intéressantes (et donc les plus risquées). Le moins que nouspuissions soupçonner, c'est qu'il demeure une cohérence spatiale au cours del'implantation : Les composant prévus initialement dans le �chier .cif restentprésents, et un composant supplémentaire serait nécéssairement situé dans unezone peu dense. En conséquence, les zones à forte densité de cuivre présententun faible risque, puisqu'elles laissent peu de place au constructeur malveillant.La procédure DensiteLocale donne la densité dans une zone rectangulaire, etpermet d'identi�er les zones les plus désertiques du circuit.

La deuxième caractéristique qui paraît indispensable pour un composantmalveillant est un accés su�samment riche aux di�érentes parties du circuit.D'une part, il y a des parties qui sont nécéssaires au fonctionnement du com-posant : alimentation, horloge, ... D'autre part, le composant veut avoir unein�uence (néfaste) sur le fonctionnement du circuit : fuite d'informations, trans-gression d'une sécurité, retardement du fonctionnement d'autres zones (par créa-tion d'une fausse horloge)... Le composant malveillant aura donc également be-soin d'un bon accès aux sorties du circuit.

Ces deux point suscitent donc un intérêt accru pour les zones de forte connec-tivité, c'est-à-dire celles qui sont connectées aux parties les plus sensibles ducircuit. Bien que ces parties ne soient pas indiquées dans un �chier .cif, leconstructeur peut avoir une bonne idée de la localisation de ces zones et guiderla recherche. Au cours de la semaine de travail nous nous sommes seulementintéressées aux zones qui possèdent un grand nombre de connexions.

Étudier seulement le degré d'un noeud ne donne pas su�samment d'informa-tion sur son importance. Un noeud de degré 2, faisant o�ce d'interconnexion,peut avoir un rôle crucial du point de vue logique. On va donc s'intéresserplutôt à ses voisins au second degré, troisième degré, etc... Pour mesurer si lesous-graphe de ces noeuds voisins (à un certain ordre) s'étale sur une granderégion, on peut regarder son rayon. C'est la plus grande distance d'un voisin

13

Page 16: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

(d'un certain degré) au noeud de départ. Cette information rend un noeud plusou moins sensible : s'il accède à des zones éloignées du circuit, il est considérécomme plus important.

Pour un noeud donné et un ordre de voisinages croissant, on va dresser unpro�l. Ce dernier est composé d'une part de l'évolution du nombre de voisins,et d'autre part de l'évolution du rayon, lorsqu'on augmente progressivement ledegré de voisinage. Il est calculé à partir de l'algorithme suivant :

Algorithme 9: Pro�lEntrées : Une liste de rectangles L, un rectangle R de cette liste, et un

degré de voisinage d.Sorties : Deux listes (Vi)iet (ri)i où pour chaque i, Vi est un entier et ri

un réel positif.1 V0 ← 12 r0 ← 03 O ← {R}4 F ← {R}5 G← {R}6 pour i = 1 a d faire7 pour f ∈ F faire8 G← G ∪ V oisinsTri(L, f)9 �n10 F ← G \O11 O ← O ∪G12 Vi ← Card(O)13 ri ← max(ri−1,max(distance(R, f), f ∈ F ))14 �n15 retourner V, r

En sortie, la i-ème composante de la liste V , Vi indique le nombre de voisinsde R de degré inférieur ou égal à i, tandis que ri désigne la distance maximalede R à l'un de ces voisins. Typiquement, un noeud situé au sein d'un zone deforte connexité va voir V croître rapidement et r très lentement.

Le graphe admet une partition en composantes connexes. La composanteconnexe d'un rectangle est l'ensemble des rectangles qui lui sont connectés,directement ou indirectement. C'est donc l'ensemble de tous les voisins, sansconsidération d'ordre de voisinage. On devine que chacune de ces composantesconnexes correspond à une fonctionnalité spéci�que. Il n'est pas si simple etrapide de déterminer ces composantes. Avec quelques légères modi�cations surl'algorithme Pro�l ci-dessus, on peut donner la composante connexe issue d'unnoeud donné :

Tout comme pour l'agorithme Pro�l, on utilise une démarche de di�usion.On part d'un noeud, et on note l'ensemble ses voisins. Ensuite on ajoute à cetensemble tous les voisins des noeuds ajoutés à la dernière étape. On dénote F lesnouveaux noeuds (comme frontière). On ne peut malheureusement pas garantirl'aboutissement de cet algorithme en temps court. Sa durée de calcul dépendfortement de la structure du graphe, et du noeud de départ choisi.

Une autre façon intéressante d'étudier le graphe des connexions est de lepartager en sous-graphes (communautés), en s'assurant que ces sous-graphessoient faiblement interconnectés. Le problème devient alors un peu plus simple

14

Page 17: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Algorithme 10: ComposanteConnexeEntrées : Une liste de rectangles L, un rectangle R de cette liste.Sorties : Un ensemble de rectangles O

1 O ← {R}2 F ← {R}3 G← {R}4 tant que F 6= ∅ faire5 pour f ∈ F faire6 G← G ∪ V oisinsTri(L, f)7 �n8 F ← G \O9 O ← O ∪G10 �n11 retourner O

car on s'autorise du relâchement : on partitionne l'ensemble des noeuds, mais onn'exige pas que les sous-graphes obtenus soient déconnectés. On parle alors de"coupe du graphe" et non de "partitionnement". Le défaut de partitionnementpeut alors s'exprimer en nombres d'arêtes "fautives". Ce sont les arêtes reliantdes noeuds de deux parties distinctes. Le coût d'une coupe est dé�ni comme lenombre d'arêtes fautives.

Il existe de nombreuses méthodes de partitionnement de graphes qui tententde minimiser le coût de la coupe. On peut citer les méthodes d'expansion derégion, qui utilisent un principe similaire à l'algorithme ComposanteConnexe :Pour réaliser une k-partition, on démarre avec k noeuds choisis dans le graphe(de façon aléatoire éventuellement). Ces k noeuds constituent les premières par-ties de la partition incomplète. Ensuite, à chaque étape, chaque ensemble trouveparallèlement les noeuds avec qui ils ont le plus grand nombre de connexions,et absorbe ces noeuds. On répète cette opération jusqu'à ce qu'il ne reste plusde noeuds libres.

Une autre méthode de partitionnement utilisée est celle des centres mobiles.On �xe à nouveau le nombre de parties k de notre partition, et on choisit knoeuds aléatoirement dans le graphe. Ensuite, à chaque étape, chaque noeud dugraphe est assemblé à son centre de gravité le plus proche. On obtient ainsi unek-partition. On calcule ensuite les k centres de gravité de chaque partie, et onrecommence l'opération. La méthode se termine lorsque les centres de gravitérestent immobiles.

Lorsque on ne connait pas le nombre de classes à l'avance, ni la taille dechaque classe, on doit faire appel à d'autres méthodes de partitionnement. Unepiste intéressante, que nous n'avons pas pu étudier faute de temps est d'appliquerles principes de la détection de communauté aux circuits. Ces techniques sontutilisées dans les réseaux sociaux par exemple pour détecter des groupes d'amis,ou des personnes partageant un même loisir. Il existe une grande variété deméthodes pour arriver à cette �n. On pourra trouver un résumé dans l'articlede Satu Elisa Schae�er [5] et l'état de l'art de la thèse de Pascal Pons [4].

Nous allons à présent mettre ces méthodes en oeuvre sur un exemple.

15

Page 18: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

6 Etude d'un exemple

6.1 Inventaire et visualisation de contenu du �chier cif.

Comme nous l'avons détaillé dans les parties précédentes, les �chiers despéci�cation donnent lieu à des graphes de connexion. Ces graphes ne sont pasquelconques et possèdent des caractéristiques particulières. Une énigme bienconnue illustre un problème au coeur de la conception des circuits multi-couches :trois maisons souhaitent se connecter individuellement au gaz, à l'électricité età l'eau courante sans jamais croiser cables, �ls et tuyaux de connexion.

Figure 6 � Enigme �eau, électricité et gaz�

Nous savons que cela est impossible, à cause des propriétés des graphesplanaires. Un graphe planaire est un graphe qui peut être plongé dans un plan(sans que deux arêtes se coupent). Pour de tels graphes, il existe des relationssur le nombre de noeuds et d'arêtes qui interdisent certaines situations. Citonspar exemple celle qui répond négativement à l'énigme :

Proposition 6.1.1 Soit un graphe planaire connexe ayant n sommets, a arêtes,et f faces, alors

n− a+ f = 2.

C'est justement ce type de limitations qui impose d'avoir plusieurs couches surun circuit. Maintenant, si l'on restreint le graphe aux rectangles d'un mêmeniveau, les propriétés des graphes planaires sont évidemment vraies. La règleprincipale des vias est qu' ils ne connectent que deux rectangles de deuxniveaux successifs, et qu'ils n'ont jamais de contact avec d'autres vias.

Ces propriétés particulières justi�ent le fait que nous avons voulu travailleravec un réel �chier .cif plutôt qu'un graphe généré aléatoirement. Un graphealéatoire n'aurait certainement pas eu ces caractéristiques typiques d'un circuitmulti-couches. Nous avions à disposition un �chier particulièrement facile àanalyser, puisqu'il ne disposait que d'un seul module. Il n'y a donc pas eubesoin de recomposer le circuit physique en introduisant les di�érents symbolesavec les transformation correspondantes.

16

Page 19: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Le �chier traîté avait une taille de 11 Mo, ce qui est relativement petit. Lescircuits réalisés de nos jours ont des �chiers .cif pouvant aller jusqu'à 100 Go.Nous avons cependant constaté que certains algorithmes ont eu un temps decalcul important pour ce "petit" �chier. Après extraction (à l'aide du logicielEmacs), le nombre de rectangles dans chaque couche était :

� CMS : 319� CVA : 162988� CMF : 3668� CCA : 188852� CCP : 6630� CAA : 1222� CSP : 494� CSN : 568� CWP : 220� CWN : 256� COG : 40� XP : 40

Ces abréviations, propres aux �chiers .cif et à la technologie utilisée (ici SC-MOS) ont des signi�cations qui ne nous intéressent pas. De plus elles peuventnous induire en erreur. Nous n'allons pas entrer dans le détail sur les architec-tures de la technologie SCMOS, mais seulement identi�er les parties qui nousintéressent. Contrairement aux apparences, ce circuit est composé de 2 couchesde connecteurs, CMF et CMS, reliées entre elles par le niveau CVA. Ci-dessousleurs représentations, dans la précision permise par notre visionneur d'images :

17

Page 20: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 7 � La couche CMS

18

Page 21: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 8 � La couche CMF

La couche CVA n'est pas représentée à cause des limitations graphiques denotre poste.

Les transistors sont obtenus grâce à la superposition des couches CWN /CWP et CSN / CSP. Plus précisément, il existe deux types de transistors :le transistor de type N-P-N est obtenu en déposant deux métaux dopés "N"(appelés source et drain) sur un métal de type "P" (appelé base) et vice-versapour le transistor P-N-P. Les deux niveaux CWP et CWN sont situés sur unmême niveau et correspondent aux bases des di�érents transistors (notez queleur di�érence est située dans la compositions N ou P). Les niveaux CSP et CSNcorrespondent aux sources et drains déponsés sur ces bases et vivent égalementsur un même niveau. Ci-dessous leurs représentations, où l'on a identi�é enrouge les métaux dopés P et en bleu les métaux de type N :

19

Page 22: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 9 � La couche CSN+CSP

Figure 10 � La couche CWN+CWP

Ces couches CW et CS sont reliées par le niveau CAA, qui fait simplemento�ce de connecteur. Nous l'avons omis car il n'a aucun impact sur la topologiedes connexions : il calque simplement les connecteurs des transistors. Voici sareprésentation :

20

Page 23: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 11 � La couche CAA

En revanche, les niveaux CCA et CCP (situées sur une même couche) sontcruciaux, car ils viennent e�ectuer le contact entre les transistors et la coucheCMF. Leur di�érence est que CCA connecte les sources/drains et que CCPconnecte les bases. Nous n'avons pas pu représenter ces couches, car elle sontcomposées d'un nombre de rectangles très important. Pour des raisons de mé-moire, le visionneur d'images de Maple n'est pas parvenu à a�cher cette couche.

Finalement, les couches COG et XP ont pour seul objectif d'isoler et derendre accessible les 40 connecteurs du circuit (gros rectangles apparents "àl'extérieur"), et seront donc omises dans l'étude. Notez que ces connecteursferont o�ce d'entrées/sorties dans le fonctionnement du circuit.

Compte tenu de ces remarques, la disposition physique des couches est doncla suivante :

� CMS� CVA� CMF� CCA + CCP� CSN + CSP� CWN + CWP

Les couches les plus riches dans cette disposition physique sont les couchesCVA et CCA + CCP. Au cours de l'exécution des di�érents algorithmes, ils'est e�ectivement avéré que celles-ci viennent augmenter fortement le tempsd'execution. La cause principale est que les vias sont souvent doublés : deuxrectangles (sur CMF et CMS par exemple) sont parfois reliés par plusieur vias.Une démarche possible, que nous n'avons pas abordée ici, est d'éliminer dansun premier temps tous les vias super�us : si un via connecte deux rectangles,

21

Page 24: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

tous les autres vias connectant ces deux mêmes rectangles sont identi�és aupremier. Une telle démarche n'altère pas la topologie logique du circuit, maisréduit grandement le nombre de rectangles en entrée.

6.2 Etude de la structure physique du circuit.

Tout d'abord, on peut e�ecteur une étude de la géographie du circuit. Onconstate sur les �gures [NUMEROS] que le circuit est constitué de deux cou-ronnes rectangulaires, avec la couronne intérieure qui est située au-dessus destransistors N-P-N et la couronne extérieure au-dessus des transistors P-N-P.Nous avons départagé cette périphérie en 20 zones rectangulaires, et déterminéla densité de cuivre dans ces zones sur les 6 niveaux du circuit. Ces di�érentesdensités sont représentées par des niveaux de gris, plus foncés pour les zones lesplus denses, sur la �gure suivante :

Figure 12 � Densité moyenne de cuivre dans chaque zone

On a constaté sur les images physiques du circuit que certaines zones sontdenses, mais qu'elles contiennent peu de rectangles. On a donc également repré-senté par des teintes de gris les niveaux les plus riches en rectangles.

22

Page 25: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 13 � Nombre de rectangles dans chaque zone

On peut alors se faire une idée simpli�ée des zones à risque : ce sont les zonespeu denses, contenant peu de rectangles. En e�et, si une zones contient beaucoupde rectangles, et qu'elle est dense en cuivre alors ça sera automatiquement plusdi�cile d'y apporter des modi�cations. En revanche, il est clairement plus facilede changer une zone contenant quelques gros rectangles plutôt qu'un zone dense,parsemée d'un grand nombre petits rectangles. On peut alors considérer danschaque zone le produit densité de cuivre × densité de rectangles. En voici lareprésentation par niveaux de gris :

23

Page 26: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 14 � Produit du nombre de rectangles et de la densité de cuivre danschaque zone

Cette approche met en avant les "coins" du circuit. Dans ces zones, lesrectangles sont relativement gros par rapport à leur nombre. En réduisant leurtaille, sans altérer leurs connexions, il devient aisément possible de libérer unepartie du circuit et d'y implanter une fonctionnalité supplémentaire.

6.3 Etude de la structure logique du circuit.

Passons maintenant à l'étude de la topologie logique. On peut dejà s'en faireune idée grossière en étudiant le degré moyen par noeud dans chacune des 20zones indiquées précédemment. Dans la �gure suivante, on a représenté par desniveaux de gris ces degrés moyens.

24

Page 27: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 15 � Degré moyen par noeud dans chaque zone.

Une zone plus foncée indique un fort degré moyen, et donc un risque accrude présence de composants supplémentaires. En l'occurence, toutes les zones ontpratiquement le même degré moyen. La raison est simple : comme le circuit estmajoritairement constitué de vias (voir cardinaux en début de partie), le degrédans chaque zone est proche de 2. Sur le �chier que nous avons étudié, cetteapproche nous donne donc peu de renseignements intéressants.

En exécutant les algorithmes qui donnent les voisins directs de chacun desrectangles, nous avons pu réaliser la liste d'adjacence complète du circuit. End'autres termes, en utilisant judicieusement les algorithmes, nous avons pu cal-culer et stocker la suite (Vi)i∈Rectangles dé�nie par

Vi = {j}j∈V oisins(i)

Cette opération a pu être e�ectué en peu de temps grâce à une simpli�cation duproblème. On a constaté que le calcul des rectangles voisins aux vias (niveauxCVA et CCA+CCP) prenaient un temps très important par rapport aux autresrectangles (toujours à cause du problème arti�ciel des nombreux vias parallèles).Nous avons donc, dans un premier temps, déterminé les voisins de tous les autresrectangles. Ensuite, on a simplement obtenu les voisins direct des vias en croisantles listes d'adjancence des couches susceptible d'entrer en contact avec les vias.Plus précisémént, à partir de la liste d'adjacence du niveau CMS et CMF, onpeut déterminer la liste d'adjacence de la couche CVA. En e�et, on sait quechaque rectangle de la couche CVA est connecté à deux rectangle, un (et unseul) sur la couche CMF et un (et un seul) sur la couche CMS. Il su�t donc,pour un rectangle de CVA donné, de rechercher les deux voisis directs (un surCMF, un sur CMS).

Une fois que nous avions à disposition la liste d'adjacence complète, il étaitpossible de déterminer les di�érentes composantes connexes du circuit. Lors-

25

Page 28: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

qu'aucune contrainte n'est imposée, nous avons découvert que le circuit n'enpossédait qu'une ! En plus simple : tous les rectangles du circuit sontinterconnectés, via des transistors éventuellement. Ce résultat nous aconforté dans l'idée que ce circuit ne possède qu'une seule fonctionnalité. Ona ensuite réalisé une étude fonctionnelle en limitant les composantes connexesaux transistors. Cette étude a été réalisée en restreignant l'étude aux niveauxCMS+CVA+CMF, c'est-à-dire à la structure du circuit. On laisse donc pro-visoirement de coté les transistors. On calcule donc les composantes connexesdes trois niveaux CMS+CVA+CMF réunis. Nous avons découvert que le circuitrésultant est composé de 40 composantes connexes, et que chaque composanteconnexe contient un des connecteurs extérieurs. On a alors décidé de numéroterles connecteurs dans le sens des aiguilles d'une montre, en commençant par celuisitué en haut à gauche du circuit, comme l'indique le schéma suivant :

Figure 16 � Numérotation des connecteurs.

La fonctionnnalité du circuit est obtenu par l'interaction des di�érentescomposantes connexes via les transistors. Ce que nous avons constaté est queparmi les 40 composantes connexes, 38 ont une géométrie similaire. Prenons parexemple la composante connexe numéro 1, qui en fait partie. Nous avons tentéde la représenter, et adoptant un code couleur : en vert, ses rectangles situés surla couche supérieure CMS, en rouge ses rectangles CMF, et en bleu les partiesdes transistors en contact avec la composante connexe.

26

Page 29: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 17 � Représentation de la composante du connecteur 1, à gauche sapartie CMS, à droite ses parties CMF et CSN+CSP.

On a constaté que les composantes connexes des connecteurs 1 à 4, de 6 à 20et de 31 à 40 sont toutes superposables à celle-ci (à rotation près). En revanche,les connecteurs 21 à 25 et de 27 à 30 ont la forme suivante (en adoptant le mêmecode couleur) :

Figure 18 � Représentation de la composante du connecteur 21, à gauche sapartie CMS, à droite ses parties CMF et CSN+CSP.

Les exceptions à cette règle sont les connecteurs 5 et 26. Ce sont les seulsconnecteurs connectés à des "bases" de transistors. En voici les représentations,en représentant en jaune les bases des transistors (couche CWN+CWP) connec-tées :

27

Page 30: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 19 � Représentation de la composante du connecteur 5.

28

Page 31: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 20 � Représentation de la composante du connecteur 26.

On constate que ces compsantes sont presque omniprésentes dans le circuit.Nous aurions pu arriver à cette conclusion en dressant le pro�l des connecteurs,c'est à dire en se basant sur des données locales. Voici ce que donne l'algorithmePro�l pour le connecteur 1, de type ordinaire :

29

Page 32: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 21 � Pro�l du connecteur 1 (En rouge le rayon, en bleu le nombre devoisins).

alors que le pro�l de connecteur 5 est :

Figure 22 � Pro�l du connecteur 5 (En rouge le rayon, en bleu le nombre devoisins).

et celui du connecteur 26 (NB : l'échelle de l'axe des ordonnées a du êtremodi�ée pour visionner complètement le pro�l)

30

Page 33: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 23 � Pro�l du connecteur 26 (En rouge le rayon, en bleu le nombre devoisins).

Ces deux derniers pro�ls indiquent une forte connectivité à une distanceimportante, ce qui est cohérent avec l'omniprésence des composantes connexesen question. Les connecteurs 5 et 26 ont donc des rôles importants dans lecircuit, ce qui signi�e que leurs composantes connexes ont de fortes chancesd'être sollicitées par un composant malveillant. Cela ne limite malheureusementque peu le champ de recherche, car ces composantes sont plutôt vastes. Uneautre chose qui saute aux yeux est que le connecteur 11 a son rayon qui stagne,alors que son nombre de voisins croît de façon explosive. Cela indique que àune distance de 27500 de ce connecteur, sa composant connexe est dense enrectangles. Le cercle centré au connecteur 11 de rayon 27500 est donc un lieuintéressant de ce point de vue.

On peut également réaliser une étude en inversant les rôles connecteurs-transistors. En d'autres termes : plutôt que de s'intéresser à l'interaction descomposantes connexes via les transistors, on peut réaliser l'étude ponctuelle dechaque transistor pour en déduire le plus sollicité. L'algorithme Pro�l convientparfaitement pour cette tâche. Il y a en tout 136 transistors dans le circuit,et nous n'allons pas dresser exhaustivement le pro�l de chacun. Prenons parexemple le transistor P-N-P situé juste en dessous du connecteur 5.

31

Page 34: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Figure 24 � Transistor étudié.

Son pro�l est le suivant :

Figure 25 � Pro�l du transistor étudié (En rouge le rayon, en bleu le nombrede voisins).

Ici encore, le rayon a tendace à stagner, tandis que le nombre de voisins

32

Page 35: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

croît assez rapidement. Cela signi�e que la zone d'in�uence majeure de ce tran-sistor est situé à une distance d'environ 35000 unités. En recoupant les zonesd'in�uence des di�érents transistors, on peut mettre en avant des parties sen-sible, qui permettent de restreindre la véri�cation du circuit. Une chose qui apu être réalisée, mais qui dépasse largement l'objectif �xé initialement, est lareprésentation complète de la fonction logique du circuit. Nous pouvons dresserle schéma logique qui lie les di�érents connecteurs aux transistors. En voici unschéma succint :

Figure 26 � Schéma logique du circuit.

Dans ce schéma, les �èches représentent une connexion à toute la rangéedésignée. Par exemple, le connecteur 5 est connecté à toutes les bases de larangée de gauche (rouges et bleues) et tous les connexions sources et drainsbleues, ce qui est représenté par les trois �éches du coin supérieur gauche.

6.4 Commentaires et remarques.

Finalement, après ces étude purement formelle du circuit, il demeure deschoses que l'on voit mais qui ne sont pas apparues dans les di�érents indi-cateurs. Les connecteurs, situés à l'extérieur des deux couronnes, n'occupent

33

Page 36: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

pas complètement la périphérie. De plus, les transformateurs sont situés seule-ment aux endroits où se trouvent des connecteurs (voir schéma CSN+CSP).Il semble alors possible d'ajouter des transistors aux endroits "vacants" de lacouche CSN+CSP, et d'ajouter un connecteur à proximité. Une telle modi�ca-tion pourraît être détectée en étudiant la densité de rectangles ou de métal avecune résolution un peu meilleure.

On peut aussi envisager des tests logiques, c'est-à-dire des tests sur le fonc-tionnement électronique du circuit. Une fois connues les composantes connexesdes niveaux CMS+CVA+CMF, on pourrait mesurer la résistance entre deuxconnecteurs donnés. S'ils sont dans la même composante connexe on doit mesu-rer une résistance faible. S'ils sont dans des composantes connexes di�érentes, lecourant ne doit pas s'établir. Faute de connaissances précises sur ces techniques,nous n'allons pas insister sur ce point.

Une autre chose qui saute aux yeux est que les composantes des connecteurs5 et 26 occupent de vastes parties du circuit, mais qu'elles sont séparées parune très petite distance à certains endroits. Un peut alors penser qu'il est facilede les mettre en contacts pour nuire au fonctionnement du circuit, ou créer descourt-circuits. Sans connaissance précise du fonctionnement du circuit, on peutdi�cilement savoir si une telle corruption est réellement envisageable. Une so-lution possible à ce problème est d'évaluer toutes les distances mutuelles(minimales) séparant deux composantes connexes du circuit. Ce ne de-vrait pas être di�cile car il y a peu de composantes connexes CMS+CVA+CMF(en tout cas beaucoup moins que de rectangles ...).

Maintenant que nous avons mis en évidence di�érentes méthodes pour dé-tecter des zones à risque, on peut ré�échir à la qualité de notre résultat. Mal-heureusement, nous n'avons pas pu approfondir cette ré�exion autant que nousl'aurions souhaité. Par exemple, si l'on considère le découpage en 20 zones (voirles �gures 12 et 6.2), et que l'on parvient à valider la conception d'une zonedonnée, quelles garanties pouvons nous donner sur l'adéquation du circuit ?

Plusieurs réponses sont possibles :� En termes de volume : Un vingtième du circuit physiquement adéquat (ycompris les zones dépourvues de cuivre).

� En termes de rectangles : Une proportion de rectangles pr placés correc-tement.

� En termes de cuivre : Une proportion pc de cuivre correctement située.� En termes logiques : Un nombre Nc de connexions assurées correctement.� En termes logiques, variante : Un nombre Ns de séparations logiques as-surées correctement.

En limitant les méthodes statistiques au simple échantilonnage, les résultats ob-tenus sont insatisfaisants. En e�et, pour chacun des critères donnés ci-dessus,les garanties données sont très faibles. Prenons la véri�cation en termes de vo-lume : en contrôlant un vingtième du volume du circuit, on ne peut donner unegarantie d'adéquation au-delà de 5%. Le densité de cuivre étant à peu près ho-mogène sur le circuit (voir �gure 12), on arrive à un résultat aussi insatisfaisanten raisonnant en termes de densité de cuivre. Nous n'avons pas abouti à uneréelle solution pour ce problème, d'autant plus que nous n'avons pas réellementaccordé plus d'importante à un critère qu'à un autre dans l'identi�cation deszones à risque. On a toutefois la conviction que lorsque la fonction du cicuitest connue, et que le rôle de chaque connecteur est bien déterminé, il est pos-sible de classi�er les critères. Donnons un exemple simple : dans la plupart des

34

Page 37: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

circuits imprimés, la fonctionnement synchronisé des transistors est assurée parun connecteur faisant o�ce d'horloge. On appelle couramment ce connecteur"clock". Il est évident que sans accéder à la composante de ce connecteur il estimpossible d'altérer le fonctionnement du circuit de façon é�cace. Le connec-teur clock est donc prépondérant et les zones à risque, données par l'étude deson pro�l, donnent une excellente garantie sur l'adéquation du circuit. En pous-sant ce raisonnement à l'extrême, on pourrait imaginer le scénario suivant : ons'attend à une altération du connecteur clock, qui présente 3 zones à risque. Envéri�ant l'une de ces zones, on donne une garantie d'adéquation d'environ 33%sur le fonctionnement de l'horloge. On suggère donc de classi�er les composantpar "importance", dans la mesure où cela est possible. Clairement, une telleapproche demande la connaissance parfaite du rôle du circuit et des di�érentsconnecteurs.

35

Page 38: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

7 Conclusion et perspectives

Après la description détaillée de nos idées, et un premier aperçu des résultatsqu'elles permettent d'obtenir, on peut dresser un bilan provisoire. Revenonsd'abord à la question initialement posée : "Peut-on mettre en évidence des zonesde véri�cation pour garantir l'adéquation d'un circuit imprimé à son �chier despéci�cation ?". Nous avons essayé de répondre à la question inverse : "Peut-onmettre en évidence des zones susceptibles d'être modi�ées, à partir du �chierde spéci�cation ?", et recherché des zones présentant de l'intérêt dans le circuit.Pour cette recherche, nous avons étudié deux aspects du circuit :

� L'aspect physique, la forme géographique du circuit.� L'apect logique, la connectique du circuit.

Nous avons mis en place divers algorithmes pour calculer des invariants liés àchacun des aspects. Comme les �chier étudiés ont une taille importante, nousavons pris la précaution de donner seulement des algorithmes avec des tempsd'exécution linéaires en la taille de l'entrée. En ce qui concerne l'étude phy-sique, les principaux indicateurs présentés sont le nombre de rectangles etla densité de rectangles dans une zone donnée. Pour les indicateurs lo-giques, on s'intéresse à des invariants locaux classiques des graphes : degré,degré moyen par noeud, n-voisinages, et rayon d'un voisinage. Dansla partie consacrée à l'exemple, les résultats présentés sont aisément interpré-tables, et fournissent des indications sur d'éventuelles zones à risque. En utili-sant judicieusement les algorithmes, nous sommes ensuite parvenus à donnerla structure logique complète du circuit, ce qui dépasse quelque peu le cadredu sujet. Elle est néanmoins intéressante, puisqu'elle permet d'identi�er descomposantes connexes les plus importantes, et d'en dégager notammentdeux qui sont réellement omniprésentes dans le circuit. Cette information n'au-rait pas pu sortir d'une étude locale ou ponctuelle d'une partie du circuit. Bienque notre démarche soit tout à fait justi�ée sur le plan théorique, et exécutableen temps relativement court sur le �chier traîté, elle présente quelques défauts.Compte tenu des tailles des �chiers de spéci�cation actuels, il se peut que lestemps d'exécution des algorithmes présentés soient très important sur unexemple réaliste, de l'ordre de plusieurs jours. Cela réduit tout de même le délaiannoncé initialement de 2 ans, mais reste cependant long. Ensuite, nous avonspu examiner la connectique de chaque connecteur extérieur du circuit, car il n'yen avait que 40. Il faudrait une démarche plus méthodique lorsque ce nombreest plus important.

Il demeure par ailleurs quelques points qui pourraient être développés da-vantage. Un premier est le parsing des �chiers cif. Nous avons eu accès à un�chier constitué d'un seul module, or en général les �chiers cif sont composésde plusieurs modules. Ceux-ci sont assemblés par des procédures qui font inter-venir des transformations de type translation, rotation, symétrie. Cette tâchen'est pas la plus compliquée, et nous ne l'avons pas détaillée.

Ensuite, sur les méthodes employées, on pourrait proposer de nouvelles ap-proches. Il existe des méthodes de coupe de graphes que nous n'avons pas étu-diées, et qui pourraient donner des information intéréssantes sur la structure.Hormis les méthodes classiques mathématiques (voir par exemple les articles [1]et [2]) on peut penser aux techniques de détection de communautés (voir [5]ou [4] ). Ces méthodes, utilisées habituellement dans les réseaux sociaux, pos-sèdent des algorithmes de calcul distribués très e�caces sur des �chiers de grande

36

Page 39: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

taille. Finalement, le point le plus important, que nous n'avons pas réellementeu le temps d'aborder en profondeur, est celui de la qualité de nos résultats.Quelle garantie pouvons nous donner en éliminant les zones à risque mises enévidence par nos algorithmes ? Cette question mérite ré�exion, et nous pensonsque la réponse est fortement liée au fonctionnement du circuit.

37

Page 40: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

Références

[1] Ulrich Elsner and A Survey. Graph partitioning - a survey, 1997.

[2] Jin Kim, Inwook Hwang, Yong-Hyuk Kim, and Byung-Ro Moon. Geneticapproaches for graph partitioning : a survey. In Proceedings of the 13thannual conference on Genetic and evolutionary computation, pages 473�480.

[3] Donald E. Knuth. The Art of Computer Programming, Volume III : Sortingand Searching. 1973.

[4] Pascal Pons. Détection de communautés dans les grands graphes de terrain.PhD thesis, Université Paris 7 - Denis Diderot, 2007.

[5] Satu Elisa Schae�er. Graph clustering. Computer Science Review, 1(1) :27� 64.

38

Page 41: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

8 Annexe : Algorithmes en langage Maple.

> >

> >

> >

> >

> > > >

> >

> >

> >

> >

39

Page 42: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

> >

> >

> > > >

> >

> > > >

> >

40

Page 43: Comparaison d'un circuit électrique avec le plan spéci é · 3 Lecture et traitement du chier (de type .cif) Dans ce rapport on présente particulièrement le traailv avec les chiers

> > > >

> >

> >

> >

> >

> >

41