T INTÉGRÉ DES CIRCUITS DIGITAUX ANALYSE ET GÉNÉRATION …virazel/These/phd_french.pdf ·...
Transcript of T INTÉGRÉ DES CIRCUITS DIGITAUX ANALYSE ET GÉNÉRATION …virazel/These/phd_french.pdf ·...
ACADÉMIE DE MONTPELLIER
UNIVERSITÉ MONTPELLIER IISCIENCES ET TECHNIQUES DE LANGUEDOC
présentée à l'Université de Mon
pour obten
Spécialité : Génie Informati
Formation Doctorale : Systè
École Doctorale : Informatio
TTEESSTT IINNTTÉÉGGRRÉÉ DDAANNAALLYYSSEE EETT GGÉÉNN
AALLÉÉAATTOOII
Arn
Soutenue le
M. René DAVID, Directeur de Recherche É
M. Patrick GIRARD, Chargé de Recherche
M. Christian LANDRAULT, Directeur de Re
M. Michaël NICOLAIDIS, Directeur de Rec
M. Serge PRAVOSSOUDOVITCH, Profess
Mme Pascale THEVENOD-FOSSE, Direct
E
THÈStpellier II Sciences et Techniques du Languedoc
ir le DIPLÔME DE DOCTORAT
que, Automatique et Traitement du Signal
mes Automatiques et Microélectroniques
n, Structures, Systèmes
EESS CCIIRRCCUUIITTSS DDIIGGIITTAAUUXXÉÉRRAATTIIOONN DDEE SSÉÉQQUUEENNCCEESSRREESS AADDJJAACCEENNTTEESS
par
aud VIRAZEL
devant le Jury composé de :
mérite CNRS, INPG Grenoble Examinateur
CNRS, Université Montpellier II Examinateur
cherche CNRS, Université Montpellier II Examinateur
herche CNRS, iRoC Technologies (Grenoble) Rapporteur
eur, Université Montpellier II Directeur de Thèse
eur de Recherche CNRS, LAAS (Toulouse) Rapporteur
REMERCIEMENTS
Les travaux de recherche de ce mémoire ont été effectués au Laboratoire d'Informatique,
de Robotique et de Microélectronique de Montpellier (LIRMM) dirigé par Monsieur Gaston
Cambon, Professeur à l'Université Montpellier II, au début de ma thèse et qui, par la suite, a
été remplacé par Monsieur Michel Habib, Professeur à l'Université Montpellier II.
Je remercie Monsieur Serge Pravossoudovitch, Professeur à l'Université Montpellier II,
sous la direction duquel ces travaux ont été effectués, pour son aide, l'expérience dont il m'a
fait profiter et la confiance qu'il m'a accordée tout au long de la préparation de ces travaux.
Je tiens à exprimer ma gratitude à Messieurs Christian Landrault (Directeur de Recherche
au CNRS) et Patrick Girard (Chargée de Recherche au CNRS), pour les nombreux conseils
qu'ils m'ont prodigués tout au long de ces années, ainsi que la confiance qu'ils m'ont
témoignée.
Je souhaite également exprimer toute ma reconnaissance à Monsieur René David,
Directeur de Recherche Émérite au CNRS (Laboratoire d'Automatique de Grenoble) qui a
participé grandement à ces travaux. Qu'il trouve dans ces lignes tout mes remerciements pour
sa sympathie, sa disponibilité, sa pédagogie et son aide précieuse.
Je remercie aussi Madame Pascal Thévenod-Fosse, Directeur de Recherche au CNRS
(Laboratoire d'Analyse et d'Architecture des Systèmes de Toulouse) et Monsieur Michaël
Nicolaidis, Directeur de Recherche au CNRS (iRoC Technologies – Grenoble), qui m'ont fait
l'honneur d'accepter d'être rapporteurs et membres du jury de cette thèse. Vos remarques
judicieuses, précises et constructives sur le manuscrit m'ont été d'un grand secours pour le
finaliser.
Que mes camarades et amis du LIRMM trouvent ici un hommage à la hauteur de leur aide,
de leur soutien et de leur bonne humeur. Je ne pourrais oublier l'ensemble des personnes du
LIRMM, de l'administration aux services techniques, qui ont rendu cette thèse la plus
agréable possible.
Enfin, je remercie mes parents et ma famille pour leur soutien au cours de ces longues
années d'études et sans lesquels je ne serai pas docteur aujourd'hui.
SSOOMMMMAAIIRREE
SOMMAIRE
SOMMAIRE
INTRODUCTION GÉNÉRALE ___________________________________ 1
Chapitre I : CONTEXTE DE L’ÉTUDE _________________________ 7Introduction........................................................................................................... 9I Défauts, Erreurs et Fautes dans les Circuits VLSI ........................................ 10
I.1 Notations ............................................................................................................... 10I.2 Couverture de Défauts........................................................................................... 10
II Les Fautes de Délai ......................................................................................... 14II.1 Nature des Délais dans un Circuit......................................................................... 14II.2 Modèles de Faute de Délai ................................................................................... 15
II.2.1 Modèle Local ................................................................................................................. 15II.2.2 Modèle de Chemin ........................................................................................................ 16
II.3 Test des Fautes de Délai ...................................................................................... 18II.3.1 Principe du Test des Fautes de Délai ........................................................................... 18II.3.2 Phénomènes d'Invalidations d'un Test de Délai ........................................................... 19II.3.3 Modes de Détection d'une Faute de Délai .................................................................... 22
II.3.3.1 Faute de Délai Fonctionnellement Sensibilisable ou Redondante....................................... 22II.3.3.2 Le test Robuste ................................................................................................................... 23II.3.3.3 Le Test Non-Robuste .......................................................................................................... 24II.3.3.4 Bilan .................................................................................................................................... 27
III Les Fautes de Court-Circuit........................................................................... 28III.1 Classification des Fautes de Court-Circuit ........................................................... 28III.2 Modèles de Faute de Court-Circuit ...................................................................... 30III.3 Test Logique des Fautes de Court-Circuit............................................................ 31
Conclusion .......................................................................................................... 33
Chapitre II : ANALYSE COMPARATIVE DE L'EFFICACITÉDES SÉQUENCES ALÉATOIRES MIC ET SIC __________ 33
Introduction......................................................................................................... 37I Comparaisons Aléatoire / Pseudo-Aléatoire .................................................. 38
I.1 Génération de Séquences de Test Aléatoires........................................................ 39I.1.1 Séquence de Vecteurs RMIC......................................................................................... 39I.1.2 Séquence de Vecteurs RSIC ......................................................................................... 41
I.2 Étude de l'Influence du Caractère Aléatoire sur les Séquences SIC ...................... 42
II Comparaisons RMIC / RSIC ............................................................................ 44II.1 Test des Fautes de Délai ...................................................................................... 45
II.1.1 Une Étude de Cas ......................................................................................................... 45II.1.1.1 Efficacité Réelle du Test et Taux de Succès ....................................................................... 48II.1.1.2 Efficacité Réelle des Séquences RMIC et RSIC.................................................................. 51
II.1.2 Généralisation à d'Autres Circuits ................................................................................. 53
II.2 Application à d'autres Modèles de Faute .............................................................. 55II.2.1 Test des Fautes de Court-Circuit .................................................................................. 56II.2.2 Test des Fautes de Collage .......................................................................................... 58
II.3 Propriété "Universelle" des Séquences de Test RSIC .......................................... 59
Conclusion .......................................................................................................... 62
Chapitre III : IMPLANTATION MATÉRIELLE DE SÉQUENCES RSIC_____ 63Introduction......................................................................................................... 65I Test Intégré ....................................................................................................... 66
I.1 Principe ................................................................................................................. 66I.2 Génération Pseudo-Aléatoire................................................................................. 68
I.2.1 Généralités ..................................................................................................................... 68I.2.2 Registre à Décalage à Rétroaction Linéaire : LFSR ...................................................... 69
II Mise en Œuvre de la Génération RSIC........................................................... 71II.1 Structure............................................................................................................... 71II.2 Contraintes ........................................................................................................... 72
II.2.1 LFSR "Aléatoire"............................................................................................................ 72II.2.2 Le Transcodage............................................................................................................. 76II.2.3 Période de la Séquence de Test ................................................................................... 79
II.3 Bilan des Contraintes............................................................................................ 81
Conclusion .......................................................................................................... 82
Chapitre IV : VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE ___ 83Introduction......................................................................................................... 85I Validation de la Structure ................................................................................ 86
I.1 Comparaison de l'Efficacité Robuste ..................................................................... 86I.2 Comparaison de l'Efficacité Non-Robuste.............................................................. 89
II Optimisations de la Structure......................................................................... 92II.1 Étude du Paramètre k – Taille du LFSR................................................................ 92II.2 Étude du Paramètre - Équilibre des Probabilités de Commutation .................... 94II.3 Étude du Paramètre - Décalage Multiple sur le LFSR ....................................... 98II.4 Bilan de l'Étude des Paramètres......................................................................... 101
III Optimisation du Générateur en Fonction de la Structure du Circuit ....... 101IV Coût en Surface du Générateur .................................................................. 104
VI.1 Environnement BILBO....................................................................................... 105VI.2 Environnement C-BILBO................................................................................... 108
Conclusion ........................................................................................................ 113
CONCLUSION GÉNÉRALE __________________________________ 115
Annexe I : SIMULATEUR DE FAUTES DE COURT-CIRCUIT________ 121
SOMMAIRE
Annexe II : COMPARAISONS "ALÉATOIRE" / PSEUDO-ALÉATOIRE __ 127
Annexe III : PROBABILITÉS DE TRANSITION
EN FONCTION DU PARAMÈTRE σ_________________ 133
RÉFÉRENCES __________________________________________ 143
LISTES DES ALGORITHMES, COURBES, FIGURES ET TABLEAU ________ 155
1
IINNTTRROODDUUCCTTIIOONN GGÉÉNNÉÉRRAALLEE
INTRODUCTION GÉNÉRALE
3
INTRODUCTION GÉNÉRALE
Dans un avenir proche, l'augmentation de la complexité des circuits intégrés ainsi que
l'utilisation massive de systèmes sur puce mèneront très certainement à la généralisation du
test intégré logique (BIST pour "Built-In Self Test"). Ceci est confirmé par le rapport de
l'ITRS ("International Technology Roadmap for Semiconductors") [Sia99] affirmant que d'ici
2014, le test d'un circuit intégré coûtera plus cher que sa fabrication à moins que des
techniques de BIST soient utilisées.
Le BIST logique consiste à intégrer directement dans le circuit un générateur de vecteurs
de test et un analyseur de réponses. Cette technique offre ainsi de nombreux avantages
comparée au test externe qui devient de plus en plus difficile et coûteux. Le premier problème
dû à l'utilisation d'un testeur externe (EAT pour "Équipement Automatique de Test") provient
du fait que ce type d'équipement est souvent moins rapide que le circuit à tester. En effet,
alors que les performances en vitesse des circuits augmentent de 30 % par an, les
performances temporelles des EATs augmentent seulement de 12 % par an. A l'inverse, le
BIST permet de tester le circuit en utilisant son horloge interne, permettant ainsi l'application
de vecteurs à la fréquence nominale du circuit. Le test intégré apparaît donc comme une
solution intéressante afin de tester les circuits actuels à leurs fréquences de fonctionnement
("test at speed"). De plus, le BIST réduit grandement la quantité de données de test à stocker,
entraînant l'utilisation d'un EAT de moindre coût. Le BIST est aussi une solution efficace
pour le test des systèmes sur puce (appelés SOC pour "System-On-Chip"). Cette solution
permet, en effet, de tester les différents cœurs composant un système tout en préservant
l'aspect "propriété intellectuelle" associé.
Dans le cadre du test intégré, de nombreux travaux ont consisté à proposer des
architectures de génération de vecteurs de test. Sachant que la génération exhaustive
[McCl84, Crai85, Vuks94] n'est pas envisageable pour la plupart des circuits ou cœurs (en
raison du nombre d'entrées qui est souvent important), les architectures de génération de
vecteurs peuvent être classées en trois catégories : méthodes déterministes, pseudo-aléatoires
et mixtes.
Les méthodes déterministes consistent à stocker une séquence de vecteurs prédéterminée,
générée à partir d'un générateur automatique de vecteurs de test (ATPG pour "Automatic Test
4
Pattern Generator") [Dand84, Star84, Edir92]. Ces architectures sont très efficaces en termes
de détection de fautes, mais sont également très coûteuses en surface. De plus, ce type de
génération repose sur l'utilisation d'un modèle de faute spécifique, ce qui limite quelque peu la
couverture de défauts que l'on peut obtenir.
L'approche pseudo-aléatoire consiste à appliquer un ensemble de vecteurs pseudo-
aléatoires produit par une structure de type LFSR ou Automate Cellulaire [Savi84, Will85,
Wagn87, Wund87, Pila93, Wang94, Gira97, Fago99]. Contrairement aux approches
déterministe, l'utilisation du test pseudo-aléatoire peut conduire à des séquences de test de
longueur importante. Cependant, l'avantage majeur de ce type de génération est que la
séquence de test utilisée n'est pas spécifique à un modèle de faute et qu'un grand nombre de
défauts de natures diverses peuvent être mis en évidences lors du test. De plus, l'utilisation
d'une technique de génération pseudo-aléatoire est facile à mettre en œuvre et entraîne un coût
en surface faible.
La dernière approche concerne les architectures mixtes. Ces techniques consistent à utiliser
conjointement l'approche déterministe et l'approche pseudo-aléatoire. Des vecteurs
déterministes sont utilisés pour tester les fautes difficiles1, tandis que des vecteurs aléatoires
ciblent les fautes faciles à détecter. Ainsi, la surface additionnelle est réduite car le nombre de
vecteurs déterministes à générer est limité. Parmi ces approches, nous pouvons citer les
techniques de compression [Koen91, Hell95, Hell98, Chak99] et celles dites de "bit-fixing" ou
"bit-flipping" [Toub96a, Toub96b, Fago98, Kief00]. Cependant, l'utilisation de techniques
déterministes rend les approches mixtes limitées à un modèle de faute spécifique ce qui limite
donc la couverture de défauts.
Le but de l'étude présentée dans ce manuscrit est de proposer une structure de génération
de vecteurs de test permettant de tester efficacement plusieurs modèles de faute. L'intérêt
d'utiliser une telle génération peut s'expliquer de la manière suivante. Le modèle de faute de
collage classique reste le plus utilisé pour valider une séquence de test. En effet, le taux de
couverture de fautes de collage est une métrique établie pour la communication entre
fournisseur et clients de circuits intégrés. Cependant, certains défauts pouvant affecter les
circuits dans les nouvelles technologies CMOS ne sont plus modélisés correctement par le
modèle de faute de collage [Aitk99]. L'utilisation de plusieurs modèles de faute tels que le
modèle de faute de délai et le modèle de faute de court-circuit, en complément du modèle de
faute de collage, est une solution permettant de garantir une couverture de défauts élevée
1 Fautes détectées par un petit nombre de vecteurs par rapport aux autres fautes dans le circuit.
INTRODUCTION GÉNÉRALE
5
[Ma95, Nigh97a, Nigh97b, Nigh99, Sia99]. Pour ces différentes raisons, cette étude consiste à
proposer une solution alternative consistant à utiliser un générateur permettant de tester
efficacement les fautes de collage ainsi que les fautes de court-circuit et les fautes de délai.
Une question se pose alors : Quel procédé de génération doit-on utiliser pour générer une
telle séquence de test ? Considérant les différentes approches de génération présentées
précédemment, la solution qui s'impose est l'approche pseudo-aléatoire car elle est
indépendante du modèle de faute utilisé. Cependant, il a été démontré dans [Davi98] que les
qualités de détection des fautes d'une séquence pseudo-aléatoire peuvent être améliorées en
respectant certaines conditions sur l'aspect aléatoire de la génération. En utilisant ces
principes, nous montrerons, tout au long de ce manuscrit, l'efficacité de la génération aléatoire
à travers l'utilisation de séquences de test que nous appellerons séquences RSIC (pour
"Random Single Input Change"). Une telle séquence de test est une séquence de vecteurs
adjacents dans laquelle le terme "Random" signifie que la sélection du bit à changer entre
deux vecteurs consécutifs est réalisée aléatoirement. L'aspect universel de cette séquence de
test sera démontré en prouvant sa capacité à tester efficacement les fautes des trois modèles
considérés.
Ce manuscrit est divisé en quatre chapitres. Dans un premier temps, nous situerons le
contexte de l'étude en définissant les modèles de faute considérés (collage, court-circuit et
délai). Pour chacun de ces modèles, nous verrons en détail les conditions générales de
détection qui leurs sont associées.
Ensuite, nous présenterons les comparaisons effectuées sur des séquences de test aléatoires
qui seront, dans un premier temps, générées de manière logicielle. Ces comparaisons
concernent les séquences de vecteurs non adjacents, notées RMIC ("Random Multiple Input
Change") et les séquences RSIC. A travers des expérimentations menées sur les trois modèles
de faute (délai, court-circuit et collage), un bilan général des résultats obtenus nous permettra
de conclure sur l'aspect universel des séquences de test RSIC.
Dans le troisième chapitre, nous aborderons l'aspect réalisation matérielle de séquences de
test RSIC. Après avoir rappelé les notions de base du test intégré, nous présenterons la
structure de génération de séquences RSIC ainsi que l'ensemble des contraintes nécessaires à
sa réalisation.
Finalement, le dernier chapitre de ce mémoire sera consacré aux évaluations et
optimisations de la structure de génération. Dans un premier temps, nous validerons cette
structure par rapport aux résultats obtenus à l'aide de séquences générées de manière
6
logicielle. Cette structure de génération sera ensuite optimisée en vu d'un coût en surface
additionnel minimal. Nous conclurons ce chapitre par une comparaison des coûts en surface
induits par la structure de génération proposée par rapport à une approche de génération
pseudo-aléatoire classique de type LFSR.
7
Chapitre IChapitre IChapitre IChapitre I
CCOONNTTEEXXTTEE DDEE LL’’ÉÉTTUUDDEE
CONTEXTE DE L’ÉTUDE
9
Chapitre I CCOONNTTEEXXTTEE DDEE LL’’ÉÉTTUUDDEE
INTRODUCTION
L'objectif de ce premier chapitre est de situer le contexte de l'étude. Comme indiqué dans
l'introduction générale, notre objectif est de proposer une structure intégrée de génération de
vecteurs de test, permettant de tester efficacement plusieurs modèles de faute. Cette prise en
compte de plusieurs modèles de faute s'avère indispensable afin d'améliorer la couverture de
défauts des circuits actuels [Nigh97a, Nigh97b, Nigh99, Sia99]. En d'autres termes, il n'est
plus suffisant de tester uniquement les fautes de collage pour statuer sur la qualité résultante
du test.
Après un rapide rappel sur les notions de défaut, erreur et panne, la première partie de ce
chapitre sera consacrée aux comparaisons de couverture de défaut et couverture de faute. Ces
travaux nous permettrons donc de justifier l'étude menée.
Dans la deuxième partie de ce chapitre, nous présenterons en détail les modèles de faute de
délai ainsi que les différents modes de détection qui leur sont associés.
La dernière partie sera consacrée aux modèles de fautes de court-circuit ainsi qu'aux
comportements ET et OU associés au test logique.
Chapitre I
10
I DÉFAUTS, ERREURS ET FAUTES DANS LES CIRCUITS VLSI
I.1 Notations
Un circuit, qu'il soit simple ou très complexe, doit effectuer la ou les fonctions définies par
son cahier des charges. L'apparition d'un comportement inexact, c'est-à-dire non conforme au
comportement attendu, est définie par l'ensemble des termes suivants : défauts, erreurs et
fautes. Les définitions sont les suivantes [Bush00] :
Définition I.1 : Un défaut (aussi appelé défaillance) est la différence, non
voulue, entre l'implantation réelle et l'implantation désirée du système.
Les défauts dans les circuits VLSI ("Very Large Scale Integration") sont typiquement les
suivants [Howe81] :
! défauts du procédé de fabrication : rupture d'oxyde, transistor parasite, …
! défauts du matériau : pureté, fissure du matériau, …
! défauts du boîtier : dégradation des contacts, étanchéité du boîtier, …
! défauts de vieillesse : électromigration, rupture de diélectrique, …
Définition I.2 : Une erreur est la manifestation logique d'un défaut
observable sur une sortie du circuit. Elle peut se produire en présence de
certains stimuli.
Définition I.3 : Une faute ou panne correspond à la représentation d'un
défaut suivant un modèle donné. La modélisation permet l'utilisation
d'outils de simulation de fautes et de génération automatique de vecteurs de
test (ATPG).
I.2 Couverture de Défauts
Les évolutions technologiques se traduisent non seulement par une diminution constante de
la taille des transistors et donc par une augmentation de la fréquence de fonctionnement, mais
aussi par une densité d'intégration toujours plus importante, ainsi que par une augmentation de
la taille des puces. Ces différentes notions sont présentées dans le Tableau I.1 dans lequel les
valeurs correspondent à des circuits de type microprocesseur en fonction de l'année
d'apparition de la technologie (0,35 µm, 0,25 µm, … etc).
CONTEXTE DE L’ÉTUDE
11
Année 1995 1998 1999 2002 2005 2008
Technologie 0,35 µm 0,25 µm 0,18 µm 0,13 µm 0,10 µm 0,07 µmNb. Transistors / cm2 2 M 3,7 M 6,6 M 18 M 44 M 109 MSurface de la puce 250 mm2 300 mm2 340 mm2 430 mm2 520 mm2 620 mm2
Tableau I.1 : Estimations sur la densité d'intégration et sur la surface des puces [Sia99]
La diminution de la largueur des transistors, des lignes d'interconnexions et de
l'espacement entre ces lignes a permis une densité d'intégration plus importante. Cependant,
ces progrès technologiques font apparaître des défaillances spécifiques. Ainsi, les circuits
actuels sont plus sensibles à des défauts temporels. L'origine s'explique, d'une part, par les
fréquences de fonctionnement élevées et d'autre part, par la prépondérance prise par les
interconnexions sur les performances des circuits. Cette dernière notion est illustrée sur la
Figure I.1 dans le cas d'interconnexions en aluminium.
0
10
20
30
40
50
0,10,30,50,7
délais des portes
délais des interconnexions
somme des délais
Technologies (µµµµm)
Délais (ps)
Figure I.1 : Estimations sur les délais en fonction de la génération technologique [Sia99]
Cette figure révèle une inversion de tendance à partir de la technologie 0,25 µm. En effet, à
partir de cette technologie, les interconnexions influent de manière prépondérante sur les
performances des circuits.
Une autre raison, rendant les circuits plus sensibles aux défauts temporels, est liée à la foi
aux interconnexions et aux fréquences de fonctionnements élevées. Ces phénomènes, connus
sous le nom de diaphonie [Serv01], interviennent sous forme de couplage capacitif entre
lignes mais aussi par des phénomènes inductifs.
Chapitre I
12
Afin d'être le plus exhaustif possible, il faut ajouter à cette liste l'occurrence de défauts de
type court-circuit due à la diminution entre les lignes d'interconnexions (sur un même niveau
ou entre niveaux de métaux).
Ces différentes défaillances, spécifiques aux technologies "submicronique", nous
permettent de montrer l'importance de considérer plusieurs modèles de faute afin d'obtenir
une couverture de défauts élevée. Cette conclusion a aussi été illustrée par le groupe
SEMATECH ("SEmiconductor MAnufacturing TECHnology"). En effet, dans le cadre du test
des circuits digitaux et plus particulièrement dans le cadre de l'analyse comparative des taux
de couverture de différents modèles de faute, ce groupe a proposé un certain nombre de
résultats [Nigh97a, Nigh97b]. Pour leurs expérimentations, les auteurs ont utilisé un certain
nombre de tests qui sont les suivants :
! le test fonctionnel,
! le test des fautes de collage,
! le test des fautes de délai (modèle local : transition),
! le test IDDQ.
Ces tests ont été appliqués à un ensemble de circuits dont les caractéristiques sont les
suivantes :
! taille : 116 000 portes
! technologie : 0,8 µm
! tension d'alimentation : 3,3 V
! fréquence de fonctionnement : de 40 à 50 MHz
! 249 entrées / sorties
! DFT : Circuit scan complet avec 5280 bascules scan réparties en 8 chaînes de scan.
La Figure I.2 résume les résultats obtenus lors de l'application des différents types de test
utilisés sur un ensemble de circuit. Les termes "pass" et "fail" signifient respectivement que
les circuits sont jugés corrects ou défectueux en fonction du type de test appliqué. A titre
d'exemple, 1251 circuits ont passé avec succès le test fonctionnel mais ont été déclarés
défectueux par les tests de collage, de délai et IDDQ.
CONTEXTE DE L’ÉTUDE
13
pass pass fail fail
pass NC1 6 1463 7 pass
pass 14 0 34 1 fail
fail 6 1 13 8 pass
fail 52 36 1251 NC1 fail
pass fail pass fail
Test IDDQ (5µA)
Test Fonctionnel
Test
des
Fau
tes
de C
olla
ge
Test
des
Fau
tes
de D
élai
Figure I.2 : Bilan des tests "pass" et "fail" (source SEMATECH) 1
A partir de ces expérimentations, le même groupe a proposé une analyse plus fine des
résultats obtenus par les différents tests appliqués au circuit cité ci-dessus [Nigh99]. Ainsi,
pour chaque circuit défectueux, les auteurs ont recherché la localisation du ou des défauts
dans le circuit. Ces analyses permettent donc de montrer l'importance des modèles de faute
utilisés. En effet, certains circuits ayant passé avec succès le test fonctionnel ainsi que le test
des fautes de collage, ont été déclarés défectueux par le test des fautes de délai de transition et
le test IDDQ. Les différents défauts mis en cause sont dus, la plupart du temps, à des défauts
de type court-circuit. Ceci permet donc de montrer les limitations du modèle de faute de
collage vis-à-vis de l'obtention d'une bonne couverture de défauts.
A l'aide de ces expérimentations, nous pouvons donc justifier l'étude réalisée qui consiste à
considérer plusieurs modèles de faute (IDDQ, court-circuit, délai, circuit ouvert, … etc) en
complément du modèle de collage, afin d'augmenter la couverture de défauts. Parmi les
modèles de faute cités, nous avons choisi d'utiliser le modèle de délai de chemin ainsi que le
modèle de court-circuit.
Le modèle de panne de collage classique ne sera pas décrit plus en détail dans ce
manuscrit. Par contre, il nous a semblé utile d'exposer les modèles de panne temporelle et de
panne de court-circuit utilisés.
1 Résultats non-communiqués par les auteurs.
Chapitre I
14
II LES FAUTES DE DÉLAI
II.1 Nature des Délais dans un Circuit
Afin de comprendre les effets d’une faute de délai, nous allons nous intéresser, dans un
premier temps, à l’origine des retards dans un circuit. Considérons, par exemple, le cas d’un
inverseur CMOS. Le schéma électrique complet d’un tel inverseur est donné sur la Figure I.3.
Vs
Vdd
t0
Vs = f(Ve,t)Ve Vs
Vdd
W p IP
W n IN
τin
CL
Figure I.3 : Inverseur en technologie CMOS
La charge de cette cellule est entièrement définie par la capacité CL englobant les capacités
parasites, les capacités d’interconnexions et les charges des portes contrôlées. La forme du
signal d’entrée est modélisée par une rampe de durée τin.
Le délai, dans un inverseur CMOS, peut être obtenu à partir de l’équation de conservation
des charges dans la structure [Turg96] :
dtdV*CII s
LNp =− (I.1)
où CL représente la charge totale de sortie de l’inverseur en commutation et où on évalue
l’excursion en tension dVs aux bornes de CL comme le transfert de charge produit par le
courant moyen disponible (Ip-IN) pendant un intervalle de temps défini dt, appelé délai de la
porte. Afin d’améliorer la précision de cette équation, il est nécessaire de prendre en compte
un certain nombre de facteurs qui ont été négligés. Dans [Daga97] est présentée la
modélisation du retard et de la durée de rampe de sortie de l’inverseur submicronique en
prenant en compte les effets des capacités non utilisés précédemment.
Dans le cadre de la simulation, plusieurs niveaux de modélisation des retards peuvent être
considérés selon la précision souhaitée. C'est ainsi que dans le cadre de la simulation logico-
CONTEXTE DE L’ÉTUDE
15
temporelle, qui a pour principal but de vérifier le fonctionnement du circuit sans avoir
nécessairement une précision absolue sur les délais de propagation, chaque intervalle de
temps peut être modélisé par un élément de retard sur les entrées et sur la sortie de la porte.
Ces paramètres peuvent être combinés afin d’obtenir un temps de montée et un temps de
descente. La Figure I.4 illustre la modélisation des délais d’une porte logique NOR.
e1Se2
temps de descentetemps de montée
Figure I.4 : Modélisation des temps de montée et de descente d’une porte NOR
L’ensemble de ces données est fourni par les fondeurs en fonction des caractéristiques de
l’environnement (rampe d’entrée et charge de sortie) et de la technologie utilisée. De plus,
pour chaque type de cellule, les fabriquants fournissent, pour les temps de montée et temps de
descente, les valeurs minimales, typiques et maximales (min / typ / max).
II.2 Modèles de Faute de Délai
Une faute de délai affecte les paramètres temporels du circuit. Elle peut soit être localisée
sur un site particulier, soit être la conséquence de plusieurs défauts accumulés sur un chemin
du circuit. La modélisation des défaillances, pouvant affecter le comportement temporel d’un
circuit logique, a donné lieu à une classification des fautes [Gira92, Krst98] en fonction de
l’aspect local ou global de la panne (Figure I.5).
Faute deDélai
ModèleLocal
ModèleGlobal
Faute de Délaide Transition
Faute de Délaide Porte
Faute de Délaide Chemin
Faute de Délaide Porte Multiple
Figure I.5 : Classification des différents modèles de faute de délai
II.2.1 Modèle Local
Le modèle local de faute de délai conduit généralement aux fautes de délai de porte
[Hsie77, Barz83, Haya84, Kish86, Koep86, Pram88]. Ce modèle caractérise un défaut
temporel affectant les entrées ou la sortie d’une porte logique du circuit sous test. En fonction
Chapitre I
16
du type de commutation retardée (commutation montante ou descendante), le défaut est
modélisé par une panne de type "lent-à-monter" et/ou "lent-à-descendre".
Propriété I.1 : Une faute de délai de porte se manifeste quand le temps de
propagation d’une porte du circuit sous test est supérieur au temps de
propagation maximal spécifié. Sa détection dépend de la fréquence de test
mais également du chemin logique sensibilisé pour propager cette faute.
Un cas particulier du modèle local est le modèle de faute de délai de transition [Leve86,
Waic86, Schu87, Waic87]. Dans ce modèle, le retard induit par la panne est supposé être
suffisamment long pour provoquer une erreur quel que soit le chemin utilisé pour la propager.
Ce modèle permet de gérer les phénomènes dus à la propagation des erreurs dans les circuits
séquentiels (masquage, etc..) [Cava97].
Le modèle local est particulièrement intéressant dans le cadre du diagnostic [Gira92]. Dans
ce cas, il s’agit de déterminer le site de la panne avec la plus grande précision possible (porte
logique). Un autre avantage non négligeable de ce modèle est le nombre de fautes possibles
dans le circuit. Ce nombre reste limité au nombre de connexions du circuit voire le double si
l’on considère les pannes "lent-à-monter" et "lent-à-descendre". Ceci n’est pas le cas avec
d’autres modèles tel que le modèle de faute de délai de chemin que nous détaillerons par la
suite.
En ce qui concerne le modèle de faute de délai de transition, l'inconvénient majeur est que
seul l’aspect qualitatif des fautes est pris en compte, ce qui limite son utilisation au cas
particulier des fautes de délai de grande taille. Cependant, le modèle de faute de transition est
très souvent utilisé dans les applications industrielles car il est simple à manipuler et, de plus,
il est très proche du modèle de faute de collage d'un point de vue génération de vecteurs de
test. A contrario, le modèle de faute de délai de porte est beaucoup plus complexe à mettre en
œuvre car c'est l'aspect quantitatif de la faute qui est pris en compte.
De manière générale, l'utilisation des modèles de faute de délai de porte ou de transition
amène à des taux de couvertures de défauts faibles dans la mesure où les défauts multiples et
répartis ne sont pas explicitement considérés.
II.2.2 Modèle Global
Afin de ne pas se restreindre aux pannes isolées dans le circuit, le modèle global ou
modèle de faute de délai de chemin ainsi que le modèle de délai de porte multiples
(rarement traité puisque la probabilité d'apparition d'une faute multiple dans un circuit est
CONTEXTE DE L’ÉTUDE
17
nettement inférieure à celle d'une faute unique) ont été développés [Smit85, Lin87, Park87,
Savi86, Rajs87].
Propriété I.2 : Une faute de délai de chemin est une faute de délai associée
à un chemin acyclique reliant une entrée primaire à une sortie primaire du
circuit sous test. Ce type de panne survient lorsque le délai de propagation
du chemin considéré excède le délai critique du circuit.
L’avantage de ce modèle est que les défauts localisés et les défauts répartis sur un chemin
sont également modélisés par une faute de délai de chemin.
Ce modèle présente cependant un inconvénient majeur car, pour la plupart des circuits, il
est impossible de considérer la totalité des chemins lors du test. En effet, le nombre de
chemins peut croître de manière exponentielle avec le nombre de portes. A titre d’exemple, le
nombre de chemins structurels à tester dans le circuit de référence ISCAS’85 c6288 [Brgl85]
est approximativement égal à 1,8.1020. Dans ce cas, il est donc impossible de tester tous les
chemins.
Cependant, le modèle de chemin est plus réaliste que le modèle de délai de porte. En effet,
l'utilisation du modèle de délai de chemin permet de prendre en compte la totalité des défauts
temporels pouvant affecter le circuit. De plus, comme le modèle de transition présenté
précédemment, le modèle de faute de délai de chemin est souvent utilisé à échelle industrielle.
Dans ce cas, uniquement un ensemble de chemin critique est testé [Hitc82a, Hitc82b, Al-H85,
Li89]. Cependant, ceci devient de moins en moins possible dans les circuits actuels. En effet,
dans ces circuits, les chemins sont quasiment tous équilibrés afin de satisfaire les contraintes
de performances temporelles et de puissance [Alin01]. Donc, tester par exemple uniquement
10 % des chemins critiques n'est plus une solution viable pour garantir le fonctionnement du
circuit. En effet, les chemins non considérés lors du test, ayant des temps de propagation très
proches des chemins testés, si un défaut affecte les temps de propagation de ces chemins, le
circuit a de très fortes chances de ne plus fonctionner à sa fréquence nominale.
Nous pouvons donc conclure que l'utilisation du modèle de faute de délai de chemin
permet de garantir le bon fonctionnement d'un circuit à sa fréquence nominale. Son utilisation
entraînera, bien sûr, des temps de test très longs. Cependant, avec les technologies actuelles,
les circuits fonctionnant à des fréquences de l'ordre du GHz, l'application de plusieurs
dizaines de millions de vecteurs reste tout à fait envisageable d'un point de vue temps de test.
Chapitre I
18
II.3 Test des Fautes de Délai
II.3.1 Principe du Test des Fautes de Délai
Qu’il soit associé à un chemin ou à une porte, le test d'une panne temporelle nécessite
d'activer la panne, de la propager et de l'observer.
L’activation d’une faute de délai nécessite l’application d’une transition sur le site de la
panne (transition montante ou descendante suivant le type de panne considéré). Cette
transition est obtenue en appliquant successivement deux valeurs complémentaires sur le site
de la panne (paire de vecteurs V0 V1).
La propagation consiste à ouvrir un chemin entre le site de la panne et un point observable
du circuit qui est, généralement, une sortie primaire.
Finalement, l'observation de la panne consiste à capturer les valeurs de sortie du circuit et à
les comparer avec celles d'un circuit répertorié sain. De plus, la particularité importante de
l'observation de la panne est l'instant auquel les valeurs de sorties du circuit vont être
capturées. Cet instant est calculé à partir d'un intervalle de temps Tc correspondant à la
différence entre l'instant T1 d'application du vecteur V1 et l'instant d'observation Tobs. Il est à
noter que si l’intervalle de temps Tc est très grand (cas d'un test à basse fréquence par rapport
à la fréquence nominale du circuit), une faute de délai peut ne pas être observée en sortie car,
dans ce cas, la faute n’affectera pas les valeurs logiques de sortie.
Ces trois phases nécessaires au test d'une faute de délai sont présentées sur la Figure I.6.
T0 T1 Tobs = T1+Tc
V0
Initialisation
Observationdes sorties
Observation
V1
Sensibilisation
Tc
CircuitCombinatoireRegistre d'Entrée Registre de Sorties
H1
H2
H1 H2
Figure I.6 : Schéma de principe du test de délai
CONTEXTE DE L’ÉTUDE
19
A l’instant T0, le vecteur d’initialisation V0 est appliqué sur les entrées primaires du circuit
à tester. Ensuite, à l’instant T1 (sachant que T1-T0 ≥ Tc), le circuit est stabilisé, on applique le
vecteur de sensibilisation V1 par l'intermédiaire de l'horloge H1. Ce deuxième vecteur
provoque une ou plusieurs transitions sur les entrées du circuit et propage ces transitions à
travers le circuit. Les valeurs logiques des sorties primaires sont observées à l’instant
Tobs = T1 + Tc par l'intermédiaire de l'horloge H2. Ces réponses sont alors comparées aux
réponses d’un circuit sain.
De manière générale, l’absence de fautes de délai dans un circuit logique est définie de la
façon suivante :
Définition I.4 : Un circuit fonctionne correctement à sa fréquence nominale
si les deux conditions suivantes sont respectées : la fréquence de test doit
être égale à la fréquence nominale du circuit et le circuit ne doit pas
comporter de faute de délai de chemin. Ceci est vérifié si chaque chemin P,
compris entre une entrée primaire et une sortie primaire, propage ses
signaux en un temps inférieur ou égal au temps Tc.
L'aspect fréquence de test ou temps d'observation est donc un des points importants du test
des pannes temporelles. A l'heure actuelle, le test des fautes de délai devient de plus en plus
important de part les fréquences utilisées lors du test des circuits. En effet, les circuits sont
généralement testés à leur fréquence nominale, permettant ainsi d'obtenir des temps de test
plus courts. Ceci entraîne donc la mise en évidence plus fréquente de défauts temporels.
II.3.2 Phénomènes d'Invalidations d'un Test de Délai
A partir de ce point, nous détaillerons les différents phénomènes liés au test de délai en
utilisant le modèle de délai de chemin. Il est à noter que les différents raisonnements présentés
sont identiques quel que soit le modèle utilisé.
Le cas idéal de propagation de l'effet d'une faute de délai de chemin est présenté sur la
Figure I.7. Dans ce cas, les entrées des portes n'appartenant pas au chemin à tester ("off-path")
sont placées à des valeurs non prioritaires pour les deux vecteurs V0 et V1.
Chapitre I
20
Entrées n’appartenant pas au chemin testé"off-path"
0 0
1 10 0
1 0V0 V1
Figure I.7 : Cas idéal du test d'une faute de délai de chemin
Lorsque les entrées n'appartenant pas au chemin à tester ne présentent pas de valeurs non
prioritaires pendant la phase d'activation (V0) ou de propagation (V1), le test peut être invalidé
par des phénomènes de masquage.
Le test d'une faute de délai peut aussi être invalidé par un aléa :
! statique : les valeurs initiales et finales sont identiques (Figure I.8.a),
! dynamique : changement provisoire de valeur pendant une transition montante
ou descendante (Figure I.8.b).
a) b)
Figure I.8 : Exemples de signaux contenant des aléas
a) aléa statique et b) aléa dynamique
Dans ce cas, des phénomènes transitoires pourront invalider le test. Par exemple, lors de la
présence d'un aléa statique (Figure I.8.a), si l'instant d'observation Tobs est situé avant l'aléa, la
valeur observée est correcte (un 0 logique) mais le circuit est défectueux. En effet, le circuit
est déclaré sain si l’instant d’observation est situé après l'aléa.
Illustrons ces notions d'invalidation du test des fautes de délai de chemin par masquage ou
par aléa à l'aide de deux exemples.
Exemple I.1 : Considérons le circuit présenté sur la Figure I.9 dans lequel chaque porte
est affectée d’un délai unitaire. La faute de délai considérée est répartie sur le chemin
e4-c-S ("on-path"). La paire de vecteurs (V0=1011, V1=1110) est appliquée en entrée.
CONTEXTE DE L’ÉTUDE
21
1 1a
b
c
1
2
3
4
0 1
1 1
1 0
V0 V1
e1
e2
e4
e3S
Figure I.9 : Invalidation du test par masquage
Cette paire de vecteurs (V0, V1) sensibilise la faute de délai considérée. Cependant,
l'observation de l'effet de faute est masquée par la présence d'une valeur prioritaire sur
l'autre entrée de la porte 4 (Figure I.10).
Tc
Tobs
b
T1
c
S
Valeur prioritaire sur l'entrée("off-path") de la porte 4
Figure I.10 : Chronogramme des signaux avec invalidation du test par masquage
Ainsi, la faute de délai, sur le chemin considéré, n'aura aucune influence sur la transition
de sortie. On dit alors que le test est invalidé par masquage.
Exemple I.2 : Considérons le même circuit que celui de la Figure I.9 mais en appliquant
la paire de vecteurs de test (V0=1101, V1=1111) sur les entrées (Figure I.11).
Comme le chemin e3-a-b-S présente un délai de propagation supérieur au chemin e3-c-S
(le nombre de portes est différent) la sortie S présente un bref passage à 1. Il y a donc
occurrence d’un aléa statique (Figure I.12).
Chapitre I
22
1 1
a
b
c
1
2
3
4
1 1
0 1
1 1
V0 V1
e1
e2
e4
e3S
Figure I.11 : Invalidation d’un test par un aléa
Si l'on considère maintenant que les chemins e3-a-b-S et e3-c-S présentent des temps de
propagations supérieurs à la limite autorisée (> Tc), l’aléa statique en sortie est donc
retardé. Lors de l’observation du nœud de sortie S, le retard de l'aléa peut entraîner que
la valeur lue est la même que la valeur attendue. La présence de la faute n’est donc pas
détectée.
Tc
Tobs
e3
T1
a
b
c
Scircuit fautif
Scircuit sain
Figure I.12 : Chronogramme des signaux avec invalidation du test par un aléa
II.3.3 Modes de Détection d'une Faute de Délai
II.3.3.1 Faute de Délai Fonctionnellement Sensibilisable ou Redondante
On trouve généralement dans la littérature deux grandes classifications des fautes de délai
de chemin : fonctionnellement sensibilisable et fonctionnellement redondante [Chen96]
dont les définitions sont les suivantes :
CONTEXTE DE L’ÉTUDE
23
Définition I.5 : Un chemin est fonctionnellement sensibilisable s'il existe un
vecteur d'entrée qui ne masque pas la valeur se propageant sur le chemin
quand celle-ci est à la valeur non prioritaire.
Il est à noter que cette condition est la condition essentielle du test d'une faute de délai de
chemin. En effet, si cette condition n'est pas remplie, alors le chemin est fonctionnellement
redondant car il sera impossible de propager une transition sur le chemin testé.
Définition I.6 : Un chemin est fonctionnellement redondant s'il n'est pas
fonctionnellement sensibilisable.
Dans l'ensemble des fautes fonctionnellement sensibilisables, nous allons définir les
conditions nécessaires au test robuste, non-robuste et non-robuste validable.
II.3.3.2 Le test Robuste
Un test robuste est défini de la manière suivante :
Définition I.7 : Un test de délai robuste est un test qui permet de détecter
une panne temporelle indépendamment de la taille des autres délais de
propagation ou des autres pannes temporelles dans le circuit [Park87].
Pour obtenir une détection de panne temporelle de manière robuste, il faut qu'une transition
se propage sur le chemin à tester et que les entrées externes des portes, présentes sur le
chemin de propagation, soit aux valeurs non prioritaires pendant l’application du deuxième
vecteur (V1). Une restriction supplémentaire s’applique quand une valeur non prioritaire est
présente sur le chemin à tester pendant l’application du premier vecteur (V0). Dans ce cas, il
ne doit pas y avoir de transitions sur les entrées externes des portes présentes sur le chemin à
tester. La Figure I.13 présente ces conditions appliquées dans le cas d’une porte AND.
X 1 1 1a) b)
Pas de transitoireou stable à 1
Figure I.13 : Cas d’une porte AND en détection robuste
a) chemin lent à monter et b) chemin lent à descendre
Afin d'illustrer la notion de test robuste considérons l'exemple suivant :
Chapitre I
24
Exemple I.3 : Dans le circuit présenté sur la Figure I.14, dont chaque porte a un délai
unitaire, considérons un défaut réparti sur le chemin e2-a-b-S. La paire de vecteurs de
test (V0 = 1011 et V1 = 1111), appliquée sur les entrées primaires du circuit, génère une
transition montante en entrée du chemin à tester et propage cette transition jusqu’au
nœud de sortie S.
Nous remarquons que les vecteurs utilisés permettent de détecter un retard sur le chemin
e2-a-b-S indépendamment des autres pannes temporelles dans le circuit (Figure I.15).
En effet, les autres entrées primaires des portes, traversées par le chemin à tester, ont été
placées à des valeurs non prioritaires pour les vecteurs V0 et V1. De cette manière, la
transition propagée en sortie ne peut être invalidée par d’autres pannes temporelles
présentes dans le circuit. Cette paire de vecteurs de test permet donc de tester de
manière robuste la faute de délai de chemin considérée.
1 1 e1
0 1 e2
1 1 e4
1 1 e3
S
V0 V1
ab
c
1
2
3
4
Figure I.14 : Exemple de test de délai robuste
Scircuit fautif
Tc
Scircuit sain
Tobs
b
T1
Figure I.15 : Chronogramme des signaux pour un test robuste
II.3.3.3 Le Test Non-Robuste
Un test non-robuste [Park87], contrairement à un test robuste, peut être invalidé sous
certaines conditions. Cette notion est définie de la manière suivante :
CONTEXTE DE L’ÉTUDE
25
Définition I.8 : Un test non-robuste est un test qui permet de détecter une
panne temporelle en supposant que les autres pannes dans le circuit
n’existent pas (hypothèse de la panne unique) [Park87].
Une panne temporelle est détectée de manière non-robuste quand une transition se propage
sur le chemin à tester et quand les entrées externes des portes, présentes sur le chemin de
propagation, sont aux valeurs non prioritaires pendant l’application du deuxième vecteur (V1).
La Figure I.16 présente ces conditions appliquées dans le cas d’une porte AND.
X 1 X 1a) b)
Figure I.16 : Cas d’une porte AND en détection non-robuste
a) chemin lent à monter et b) chemin lent à descendre
Ces notions sont reprises dans l'exemple suivant.
Exemple I.4 : Considérons le circuit de la Figure I.17, dans lequel chaque porte a un
délai unitaire. La faute de délai considérée est répartie sur le chemin e2-a-b-S.
1 1 e1
0 1 e2
0 1 e4
1 1 e3
S
V0 V1
ab
c
1
2
3
4
Figure I.17 : Exemple de test de délai non-robuste
La paire de vecteurs de test (V0 = 1010 et V1 = 1111) est appliquée en entrée. Cette paire
de vecteur génère deux transitions montantes sur les entrées e2 et e4. Ces deux
transitions sont propagées jusqu’à la sortie S suivant les chemins b (e2-a-b-S) et le
chemin c (e4-c-S).
Dans le premier cas de figure, supposons qu'il n'y a pas de retard sur le chemin c (Figure
I.18.a). Dans ce cas, la panne répartie sur le chemin b est détectée.
Chapitre I
26
Par contre, si le chemin c est également affecté d’une panne temporelle, le délai de
propagation de ce chemin devient supérieur à celui du circuit sain et il est alors
impossible de détecter la panne sur le chemin b (Figure I.18.b).
On dit qu’il s’agit d’un test non-robuste pour la panne temporelle sur le chemin b en
question puisque la validité de ce test dépend de la présence ou non d'un retard sur le
chemin c.
Scircuit fautif
Tc
Scircuit sain
Tobs
b
T1
c
a)
Scircuit fautif
Tc
Scircuit sain
Tobs
b
T1
c
b)
Figure I.18 : Chronogramme des signaux pour un test non-robuste
a) détection et b) non-détection de la panne
Cependant, les phénomènes d'invalidations du test non-robuste peuvent être résolus en
utilisant le mode de détection non-robuste validable [Redd87, Crep96] dont la définition est
la suivante :
Définition I.9 : Un chemin est testé de manière non-robuste validable si le
ou les chemins, qui rendent son test non-robuste, sont testés de manière
robuste.
Ce type de considération nécessite de trouver, pour un test non-robuste donné, les paires de
vecteurs testant de manière robuste l'ensemble des chemins sur les "off-path"2 pouvant
invalider le test du chemin considéré. Si nous reprenons l'exemple de la Figure I.17, la paire
de vecteurs (V0 = 1010 et V1 = 1111) teste de manière non-robuste le chemin b (e2-a-b-S). Ce
test est invalidé par le chemin c (e4-c-S). Par contre, si une autre paire de vecteur, testant le
chemin c (e4-c-S) de manière robuste est au préalablement appliqué au circuit, alors le test
non-robuste est appelé non-robuste validable. Il est donc évident que cette contrainte de pré-
génération compliquera grandement la génération de vecteurs de test [Srin97].
2 Ensemble de chemins permettant la propagation de la transition sur le chemin à tester.
CONTEXTE DE L’ÉTUDE
27
II.3.3.4 Bilan
La Figure I.19 présente une répartition des différents modes de détection des fautes de
délai de chemin présentés. Par exemple, toutes les fautes qui ne sont pas fonctionnellement
redondantes sont fonctionnellement sensibilisables. Dans cet ensemble, une faute testable de
façon robuste est aussi testable de façon non-robuste validable et ainsi de suite.
Testablenon-robuste
TestableRobuste
Fonctionnellementredondant
Testablenon-robuste
validable
Fonctionnellementsensibilisable
Figure I.19 : Classification des fautes de délai de chemin
A partir de ces différentes définitions, nous avons choisi, pour nos expérimentations, de
manipuler les tests robustes et non-robustes.
En ce qui concerne le test robuste, c'est un test très souvent utilisé car il garantit la
détection définitive de la faute [Mao89] (les phénomènes de masquage et d'aléa n'empêchent
pas la propagation de l'effet de faute). Cependant, ce mode de détection présente un
inconvénient majeur. En effet, très souvent un grand nombre de fautes n'ont pas de test
robuste de par l'architecture du circuit ou bien la séquence de test appliquée. Dans ce cas,
l'utilisation du test non-robuste, faisant l'hypothèse de la panne unique, permet de palier le
problème du test robuste.
Pour nos expérimentations, nous avons utilisé un outil industriel de génération et de
simulation de séquences de test, Testgen de Synopsys [Test99]. Dans cet outil, la notion de
test non-robuste est reprise sous une appellation propre à l'outil noté "Weak non-robuste". Par
contre, les contraintes nécessaires au test robuste ne sont pas implantées dans l'outil.
Cependant, un modèle très proche noté "Strong non-robuste" (Figure I.20) qui diffère du test
robuste uniquement sur les notions de transitoire est implanté dans cet outil.
Chapitre I
28
X 1 1 1a) b)
Figure I.20 : Cas d’une porte AND en détection "Strong non-robuste"
a) chemin lent à monter et b) chemin lent à descendre
En comparant les conditions de détection "Strong non-robuste" pour une porte AND
indiquées sur cette figure avec celles présentées sur la Figure I.13 (cas du test robuste), nous
constatons que :
! dans le cas d'une transition montante, les conditions sur la deuxième entrée de
la porte sont identiques.
! dans le cas d'une transition descendante, la détection robuste implique une
valeur stable à 1, sur la deuxième entrée de la porte, pendant l'application de la
paire de vecteurs. Cette condition de stabilité n'est pas reprise dans le cas de la
détection "Strong non-robuste".
Dans la suite de ce mémoire, nous utiliserons le mode de détection "Strong non-robuste"
comme étant une approximation du test robuste.
III LES FAUTES DE COURT-CIRCUIT
Un court-circuit est défini de manière générale comme une défaillance physique mettant en
relation électrique deux équipotentielles indépendantes dans le circuit sain. Ces courts-circuits
sont causés, par exemple, par des particules opaques accidentellement déposées sur un des
masques de fabrication et provoquant, par l’intermédiaire de la résine photosensible, soit une
présence de matériau conducteur supplémentaire entre deux équipotentielles, soit au contraire
une absence de matière isolante. Il est clair qu’il existe de nombreuses autres causes
physiques qui peuvent être à l’origine des courts-circuits (non-homogénéité du substrat,
contamination de surface, etc.).
III.1 Classification des Fautes de Court-Circuit
Chaque court-circuit peut être caractérisé de manière générale par sa localisation sur le
circuit et par sa résistance. La valeur de la résistance dépend de la topologie et de la nature du
matériau qui constitue le court-circuit. Des études menées sur des circuits réels montrent que
CONTEXTE DE L’ÉTUDE
29
sur un ensemble de circuits issus de différentes chaînes de production, la grande majorité des
valeurs de résistances se situe entre 0Ω et 500Ω [Rodr92].
Les différents courts-circuits possibles sont classés en fonction du type d'équipotentielles
qu'ils affectent. Les équipotentielles d’un circuit peuvent être divisées en trois groupes définis
relativement à l’entité porte logique comme illustré sur la Figure I.21 [Huc95] :
! le groupe des équipotentielles externes reliant les différentes portes logiques est
noté Ext,
! le groupe des lignes d’alimentation est noté Alim,
! le groupe des équipotentielles internes reliant les différents transistors et
n’appartenant pas aux deux groupes précédents est noté Int.
En associant deux à deux les groupes d’équipotentielles précédemment définis, six
classes de courts-circuits peuvent être définies : Ext/Ext, Ext/Int, Ext/Alim, Int/Int,
Int/Alim et Alim/Alim. Il est clair que les courts-circuits de la classe Alim/Alim ne
nécessitent pas d’études particulières. En effet, ils sont soit sans effet lorsqu’ils sont du
type Vdd/Vdd ou Gnd/Gnd, soit leur caractère catastrophique les rend aisément
détectables.
PortesLogiques
N2
N1
E1
E2
E2
E1
E3
E3
Vdd
Gnd
S
E1 N1
N2
Vdd
Gnd
SE2E3
ExternesInternesAlimentations
Figure I.21 : Classement des nœuds
Finalement, les courts-circuits se répartissent en cinq classes. En vue de mieux cibler cette
étude, il est intéressant de connaître leur répartition dans chacune de ces classes afin de les
ranger d’après leur incidence sur le taux de rejet sur site. Cette répartition a été réalisée dans
[Midk93] sur un ensemble de onze circuits de comparaison de la famille ISCAS’85 [Brgl85].
Les moyennes des résultats sont reportées sur la Figure I.22.a pour chacune de ces classes.
Chapitre I
30
Classe %Ext/Ext 75,90Ext/Int 6,40
Ext/Alim 6,80Int/Int 5,10%
Int/Alim 5,80%
%Ext/Ext Sortie/Sortie
Entrée/SortieEntrée/Entrée
65,206,404,30
Ext/Int Entrée/IntSortie/Int
1,504,90
Ext/Alim 6,80
Int/Int Portes DifférentesMême porte
0,204,90
Int/Alim 5,8a) b)
Prépondérants
Non-Prépondérants
Figure I.22 : Classification des courts-circuits
Il apparaît clairement que la classe Ext/Ext possède une probabilité d’apparition beaucoup
plus grande que celle des autres classes avec 75,90% contre moins de 7% pour chacune des
autres. Par conséquent, cette classe possède la plus grande incidence sur le taux de rejet sur
site.
Une répartition à l’intérieur de chaque classe est reportée sur la Figure I.22.b où apparaît la
grande prépondérance des courts-circuits de la classe Ext/Ext entre sorties de portes
différentes (65,20%). Les autres courts-circuits, au vu des pourcentages précédents, sont
considérés comme non prépondérants. Dans la suite de cette étude, nous ne considérerons que
les courts-circuits de la classe Ext/Ext.
III.2 Modèles de Faute de Court-Circuit
Le test d'une faute de court-circuit, si l'on considère les valeurs des courants et des
tensions, est très précis mais ce type d'approche engendrerais des temps de simulation très
importants pour des circuits de grandes tailles [Lavo98]. Dans ce cas, le court-circuit est
évalué en fonction de la résistance. Il existe, dans ce domaine de test, de nombreux modèles
[Huc95] qui restent difficiles à utiliser pour des circuits concrets. Pour nos expérimentations,
nous avons choisi de manipuler le test logique qui est beaucoup plus facile à mettre en œuvre
mais, bien sur, moins précis de par l'utilisation de deux valeurs logiques 0 et 1.
Dans le cadre du test logique, lorsqu'on considère deux lignes d'un circuit en court-circuit,
les valeurs prises par ces deux lignes sont fonction de deux comportements ou modèles :
comportement ET ("wire AND") et comportement OU ("wire OR") [Mei74, Huc95]. La
Figure I.22 présente les deux comportements considérés dans cette étude. Dans le cas d'un
comportement ET, les valeurs des deux lignes en court-circuit prennent la valeur 0 logique
CONTEXTE DE L’ÉTUDE
31
(Figure I.23.a). Inversement, le comportement OU entraîne la valeur 1 logique sur les deux
lignes (Figure I.23.b).
Faute de court-circuit
0
1
A
B
a)
0
0
0
1
A
B
b)
1
1
Figure I.23 : Modèles de faute de court-circuit
a) comportement ET ("wire AND") et b) comportement OU ("wire OR")
L'avantage de ces modèles de faute est qu'ils ne prennent pas en compte la valeur de la
résistance de court-circuit. En effet, le court-circuit est considéré comme franc avec comme
prépondérance soit le 1 logique ("wire OR"), soit le 0 logique ("wire AND").
III.3 Test Logique des Fautes de Court-Circuit
Soit une faute de court-circuit entre deux lignes A et B. La faute de court-circuit est
détectée de manière fonctionnelle :
! si la faute est sensibilisée,
! si son effet est propagé sur une sortie du circuit.
La phase de sensibilisation consiste à appliquer deux valeurs logiques opposées sur les
lignes A et B (0 et 1 ou inversement). Pour ce qui est de la propagation de l'erreur, cela est
fonction du modèle utilisé pour le court-circuit (ET / OU).
Afin de réaliser nos expérimentations, nous avons réalisé un simulateur de court-circuit
présenté dans l'Annexe I. Le principe de ce simulateur est basé sur la détection des fautes de
collage [Ma99]. En effet, nous avons utilisé le fait que l'observation de l'effet d'une faute de
court-circuit puisse se ramener au test des fautes de collage sur les lignes A et B. Dans ce cas,
suivant le collage testé (collage à 0 ou collage à 1), nous pouvons statuer sur l'état testé ou
non (comportement ET / OU) de la faute considérée (Figure I.24).
Chapitre I
32
0
0
0
1
A
B
SortiesPrimaires
Faute de court-circuitComportement ET
1
0
1
1
A
B
SortiesPrimaires
a)
0
1/01/0
Propagationde l'effet de
fauteFaute de court-circuitComportement OU
0/1
1
0/1
Propagationde l'effet de
faute
b)
Collage à 0
Collage à 1
Figure I.24 : Détection d’une faute de court-circuit
a) comportement ET et b) comportement OU
Le comportement ET conduit à une valeur logique 0 sur les deux lignes en court-circuit. La
détection d’une faute de court-circuit sur les sorties primaires est alors équivalente à la
détection de la faute de collage à 0 de la ligne (A ou B) portant la valeur logique 1 (Figure
I.24.a).
Le comportement OU conduit à une valeur logique 1 sur les deux lignes en court-circuit.
La détection d’une faute de court-circuit sur les sorties primaires est alors équivalente à la
détection de la faute de collage à 1 de la ligne (A ou B) portant la valeur logique 0 (Figure
I.24.b).
CONTEXTE DE L’ÉTUDE
33
CONCLUSION
Dans ce chapitre, nous avons présenté une synthèse portant sur les modèles de panne que
nous allons utiliser. Dans un premier temps, nous avons défini les notions de défaut, erreur et
panne et montré l'intérêt d'utiliser différents modèles de faute afin d'améliorer la couverture de
défaut.
Les différents modèles de panne temporelle, c'est-à-dire, modèle local et modèle global,
ont ensuite été présentés. La dernière partie à été consacrée au modèle de panne de court-
circuit et plus particulièrement aux comportements ET et OU.
Ce chapitre nous a permit de présenter les motivations de cette étude qui consiste à
proposer une structure de génération intégrée permettant de tester efficacement plusieurs
modèles de faute dans le but d'obtenir une couverture de défauts élevée. Le choix de ces
modèles est lié aux défaillances spécifiques des technologies "submicronique". Ainsi, nous
considérerons, dans la suite de ce manuscrit, les modèles de délai de chemin et de court-
circuit en complément du modèle classique de collage.
35
Chapitre IIChapitre IIChapitre IIChapitre II
AANNAALLYYSSEE CCOOMMPPAARRAATTIIVVEEDDEE LL''EEFFFFIICCAACCIITTÉÉ DDEESS SSÉÉQQUUEENNCCEESS
AALLÉÉAATTOOIIRREESS MMIICC EETT SSIICC
ANALYSE COMPARATIVE DE L'EFFICACITÉ DES SÉQUENCES ALÉATOIRE MIC ET SIC
37
Chapitre II AANNAALLYYSSEE CCOOMMPPAARRAATTIIVVEE DDEESS SSÉÉQQUUEENNCCEESS
AALLÉÉAATTOOIIRREESS MMIICC EETT SSIICC
INTRODUCTION
Ce chapitre est consacré à une analyse comparative de séquences aléatoires où les vecteurs
successifs ne diffèrent que d'un seul bit (séquences de vecteurs adjacents ou SIC pour "Single
Input Change") et de séquences ou les vecteurs diffèrent de plusieurs bits (séquences de
vecteurs non-adjacents ou MIC pour "Multiple Input Change"). Le but final de cette étude est
dans un premier temps, de montrer l'intérêt des séquences RSIC (pour "Random SIC") par
rapport aux séquences RMIC (pour "Random MIC") et, par la suite de conclure sur l'aspect
universel de ces séquences à travers des expérimentations menées sur les trois modèles de
faute (délai, court-circuit et collage).
Dans la première partie de ce chapitre, nous présenterons les procédés de génération des
séquences de test aléatoires utilisées ainsi que des comparaisons montrant l'intérêt des
séquences aléatoires par rapport aux séquences pseudo-aléatoires.
La deuxième partie sera consacrée aux comparaisons entre les séquences RSIC et RMIC
sur les modèles de faute de délai de chemin, faute de court-circuit et faute de collage. A la fin
de cette partie, nous effectuerons une analyse générale des différentes expérimentations afin
de montrer le caractère universel des séquences de test RSIC.
Chapitre II
38
I COMPARAISONS ALÉATOIRE / PSEUDO-ALÉATOIRE
Pour nos expérimentations, nous avons considéré des séquences de vecteurs de test
aléatoires équiprobables (autant de chance d'avoir un 0 ou un 1). Nous parlerons alors de
séquences RMIC (pour "Random Multiple Input Change") et RSIC (pour "Random Single
Input Change"). D'un point de vue théorique, les séquences de test RMIC et RSIC peuvent
être définies de la manière suivante. Considérons :
L).V(l)...V(V(1)V(2).. S = , (II.1)
comme une séquence de test composée de L vecteurs de n bits V(l). Chaque vecteur de S
prend une valeur de l'ensemble :
12j10 n V..., , V..., , V, VV −= , (II.2)
ou Vj correspond à un vecteur de n bits (x1, x2, …, xn) associé à une valeur décimale j. Par
exemple, pour n = 5, V9 = 01001, c'est-à-dire que x1 = x3 = x4 = 0 et x2 = x5 = 1.
Dans une séquence RMIC, la probabilité Pr[ V(l) = Vj ] = 1 / 2n pour tout l et tout j. De plus,
la probabilité Pr[ V(l) = Vj ] est indépendante des valeurs de V(i) quand i = 1, 2, …, l-1 . Dans ce
cas, on parle de génération de séquences de test sans contrainte.
Dans une séquence RSIC,
[ ]n1V1)V(lV V(l)Pr kj ==−= , si et seulement si a2k-j = , (II.3)
où a est un entier positif. En d'autres termes, pour tout l > 0, V(l) diffère de V(l-1) exactement
d'un seul bit choisi aléatoirement. Contrairement à la séquence RMIC, dans ce cas la
génération est avec contrainte. De plus, ce bit doit être indépendant de ceux choisis
précédemment, ce qui est défini par la relation suivante :
[ ] 2jj n1V)2V(lV V(l)Pr ==−= (II.4)
Ces différentes propriétés permettent de définir, d'un point de vue théorique, une séquence
de test purement aléatoire. Cependant, les procédés de génération, qu'ils soient logiciels ou
matériels, ne sont pas aléatoires mais pseudo-aléatoires car reproductibles dans le temps.
Ainsi, la génération d'une séquence de test RMIC ou RSIC ne peut être parfaite. Il est donc
important, afin de se rapprocher le plus possible des propriétés aléatoires, de réaliser la
génération dans de bonnes conditions afin de limiter, par exemple, les phénomènes de
corrélations entre vecteurs.
ANALYSE COMPARATIVE DE L'EFFICACITÉ DES SÉQUENCES ALÉATOIRE MIC ET SIC
39
Afin de différencier les procédés de génération utilisés, nous appellerons, dans la suite de
ce manuscrit, séquences de test aléatoires des séquences issues d'un procédé de génération
permettant de se rapprocher des propriétés citées ci-dessus. Le terme pseudo-aléatoire sera
utilisé pour qualifier les séquences de test issues d'un procédé de génération standard.
I.1 Génération de Séquences de Test Aléatoires
Dans un premier temps, nous avons évité de nous préoccuper de l'aspect structure
matérielle en générant les séquences de test de manière logicielle. L'aspect implantation
matérielle fera l'objet du chapitre suivant.
Le principe de la génération logicielle est basé sur l'utilisation de la fonction rand() du
langage C. Cette fonction produit une série de chiffre Y qui ne sont pas purement aléatoires.
Cependant, la séquence générée possède de bien meilleures propriétés (corrélation,
périodicité, …) que les séquences pseudo-aléatoires. De manière générale, les instructions
rand(), des différents langages de programmation, sont basées sur les nombres congrus
[Knut81, Yarm88]. Il a été mis en évidence par [Prép97] que les bits de poids faible des mots
produits par la fonction rand() ont une période de 2 pour le poids faible y0, 4 pour y1 et ainsi
de suite. Afin d'éviter ce phénomène, nous n'avons pas considéré les bits de poids faibles, en
utilisant uniquement les 15 bits de poids forts sur les 32 possibles. En effet, en prenant cette
précaution, il a été montré que le phénomène précédent disparaissait complètement [Prép97].
Les séquences de test aléatoires RMIC et RSIC, obtenues par les procédés de génération
logiciels détaillés dans la suite de ce chapitre, nous servirons de référence. Les qualités
aléatoires de ces séquences n'ont pas été évaluées [Cho87]. En effet, les procédés de
génération de séquences de test sont basés sur l'utilisation de la fonction rand() dont les
qualités aléatoires ne sont plus à démontrer.
I.1.1 Séquence de Vecteurs RMIC
Pour générer une séquence de vecteurs RMIC plusieurs solutions sont envisageables. La
solution que nous avons retenue est présentée sur la Figure II.1.
Dans ce procédé de génération, deux cas possibles sont envisagés :
! le nombre d’entrées du circuit (n) est inférieur ou égal à 15,
! le nombre d’entrées du circuit (n) est supérieur à 15.
Chapitre II
40
1 152
12 premiers bits
1 152
10 premiers bits
1 152
10 premiers bits
1 152
11 premiers bits
1 12
1 3110 10 11
12
a)
V1
VL
V1
VL
b)
Tirages Aléatoire Séquences de Vecteurs
Figure II.1 : Génération logicielle d'une séquence RMIC
a) n ≤ 15 et b) n > 15
Dans le premier cas (n ≤ 15) présenté sur la Figure II.1.a, un seul tirage aléatoire permet de
générer un vecteur. Les n bits de poids fort constituent le vecteur.
Par contre, si n > 15 (Figure II.1.b), il est nécessaire d'effectuer plusieurs tirages aléatoires
pour générer un vecteur. Le vecteur est donc constitué de la concaténation de tirages
aléatoires. Dans l'exemple où n = 31, il est nécessaire de réaliser 3 tirages aléatoires pour
générer un vecteur. Après la transformation décimal vers binaire, les 10 bits de poids fort des
2 premiers tirages sont groupés avec les 11 bits de poids fort du troisième tirage aléatoire.
Ceci permet d'obtenir un vecteur de 31 bits. En répétant L fois un de ces procédés, nous
obtenons une séquence RMIC constituée de L vecteurs de test (Algorithme II.1).
ANALYSE COMPARATIVE DE L'EFFICACITÉ DES SÉQUENCES ALÉATOIRE MIC ET SIC
41
de l = 1 à L avec L = longueur de la séquence /* premier cas */si n ≤ 15
Y = rand() ;/* calcul du vecteur */Vl = n bits de poids fort de Y ;
/* deuxième cas */sinon
/* choix du nombre de tirages aléatoires t */t = n/15 ;/* faire autant de tirages aléatoires que nécessaire */de i = 1 à t-1
Yi = rand() ;/* calcul du vecteur */Vl = Vl + n/t bits de poids fort de Yi ;
Vl = Vl + ( n - n/t x (t-1) ) bits de poids fort de Yi ;
Algorithme II.1 : Étapes de la génération RMIC
I.1.2 Séquence de Vecteurs RSIC
Cette séquence aléatoire, où seulement un seul bit commute entre deux vecteurs, est
également générée en utilisant la fonction rand() du C. La Figure II.2 présente le principe de
cette génération.
0 215-1
n tranches
1 2 3 n
1 2 3 n
Mots générés parla fonction rand
Commutationdu bit n° 1
Commutationdu bit n° n
Vecteur de Départ
Tirages Aléatoire
Séquences de Vecteurs
Figure II.2 : Génération logicielle d'une séquence RSIC
Chapitre II
42
L'ensemble des valeurs comprises entre 0 et 215-1 est divisé en n intervalles (n = nombre
d'entrées du circuit sous test). En fonction de la valeur retournée par la fonction aléatoire, le
bit correspondant au numéro de l'intervalle est changé dans le nouveau vecteur. Ce procédé
démarre avec un vecteur choisi de manière aléatoire en utilisant le procédé de la génération
RMIC. Ce procédé est répété L-1 fois pour générer une séquence RSIC de longueur L
(Algorithme II.2).
/* Initialisation de la séquence */vecteur V1(t1) = x1(t1) x2(t1) … xn(t1) ;
de l = 2 à L avec L = longueur de la séquence Y = rand() ;Y = Y / (215-1)i = Y*n ;
/* Choix du bit à commuter */si xi(l-1) = 0
xi(l) = 1 ;sinon
xi(l) = 0 ;
pour tout j ≠ i xj(l) = xj(l-1) ;
Algorithme II.2 : Étapes de la génération RSIC
I.2 Étude de l'Influence du Caractère Aléatoire sur lesSéquences SIC
Au début de ce chapitre, nous avons présenté les notions de séquences aléatoires et pseudo-
aléatoires. Dans cette partie, nous allons montrer l'importance du caractère aléatoire d'une
séquence de test. Pour cela, nous avons comparé les séquences RSIC (séquences aléatoires
issues d'une procédé logiciel) aux séquences SIC (séquences pseudo-aléatoires issues d'une
d'un procédé de génération standard) sur le modèle de faute de délai de chemin.
Un ensemble de simulation a été effectué afin de comparer les couvertures de faute
robustes obtenues par une séquence SIC [Gira97, More98] générée par un LFSR et la
séquence RSIC. Le Tableau II.1 présente les résultats obtenus sur un ensemble de circuits
ISCAS'89 [Brgl89] en considérant uniquement leurs parties combinatoires, avec un modèle de
faute de délai de chemin.
ANALYSE COMPARATIVE DE L'EFFICACITÉ DES SÉQUENCES ALÉATOIRE MIC ET SIC
43
ATPG SIC RSIC
Circuit #vecteurs_ATPG Tc % #vecteurs Tc % Eff % Tc % Eff %
s298 688 76,19 68800 57,79 75,85 69,70 91,48s382 1398 88 139800 68,37 77,69 80,25 90,19s386 736 100 73600 87,92 87,92 98,79 98,79s420 1322 100 132200 51,17 51,17 66,86 66,86s510 1366 100 136600 75,95 75,95 91,11 91,11s526 1396 86,3 139600 70,37 81,50 78,05 90,40s641 2778 66,16 277800 44,06 66,60 50,29 76,01s713 4418 22,54 441800 16,44 72,94 18,87 83,72s1238 4992 62,2 499200 46,59 74,94 55,40 89,11s1494 3518 98,8 351800 80,52 81,47 93,40 94,51s3330 15862 89,87 158620 12,71 14,14 55,97 62,28s5378 29730 74,02 297300 34,18 46,18 47,94 64,77
Tableau II.1 : Comparaisons SIC/RSIC pour un test robuste
La première colonne de ce tableau indique le nom des circuits, la seconde indique la
longueur de la séquence de test (#vecteurs_ATPG) et la troisième indique la couverture de
faute obtenue (Tc % ) par un ATPG [Test99]. Pour certains circuits, la couverture de faute
n'est pas de 100% car ces circuits contiennent des fautes de délai de chemin non testables de
manière robuste. Les cinq dernières colonnes de ce tableau présentent les résultats obtenus par
les séquences SIC (pseudo-aléatoire générées à partir d'un LFSR standard) et RSIC
(aléatoire). La longueur de test appliquée (#vecteurs), dans le cas de ces séquences,
correspond à 100*(# vecteurs ATPG). Le choix de cette longueur de test provient d'un certain
nombre d'expérimentations que nous avons réalisés. Nous avons pu constater qu'elle
correspondait à un bon compromis entre le temps de test et la qualité résultante de détection
des fautes. En effet, pour cette longueur de test, la couverture de faute n'évolue quasiment
plus. De plus, ce choix de longueur de test nous permet d'avoir des longueurs de test
différentes pour chaque circuit et donc adaptées à la difficulté de test de chacun.
Dans les quatre dernières colonnes, les résultats sont à la fois exprimés en termes de
couverture de faute (Tc % ) mais aussi en termes d'efficacité (Eff % ) par rapport à la
couverture de faute obtenue par l'ATPG. Ces résultats ont été obtenus en utilisant une seul
séquence de chaque type.
Ces expérimentations montrent bien que la séquence RSIC est plus efficace que la
séquence SIC pseudo-aléatoire. En effet, en moyenne, l'écart obtenu entre les deux séquences
est de plus de 15%. Ces différences s'expliquent de part la nature des séquences de test
Chapitre II
44
utilisées. Dans le cas de la génération SIC (pseudo-aléatoire), l'architecture s'articule autour
d'un LFSR standard. Ceci engendre donc certaines corrélations entre les vecteurs successifs
de la séquence. Par contre, dans le cas de la génération RSIC (aléatoire) la transition entre
chaque vecteur est choisie "aléatoirement".
Dans le cas du test non-robuste, la même conclusion peut être tirée en analysant les
données répertoriées dans le Tableau II.2.
SIC RSICCircuit ATPG Tc % #vecteurs Tc % Eff % Tc % Eff %
s298 78,79 68800 77,49 98,35 78,79 100s382 91,75 139800 90,00 98,09 91,25 99,73s386 100 73600 98,05 98,05 100,00 100s420 100 132200 62,17 62,17 68,62 68,62s510 100 136600 100,00 100 100,00 100s526 87,80 139600 83,12 94,67 84,27 95,98s641 71,02 277800 54,00 76,03 57,02 80,29s713 37,13 441800 31,19 84 31,13 83,84s1238 62,93 499200 59,79 95,01 61,14 97,16s1494 98,89 351800 68,48 69,25 98,89 100s3330 90,94 158620 65,53 72,06 70,60 77,63s5378 82,20 297300 44,83 54,54 55,26 67,23
Tableau II.2 : Comparaisons SIC/RSIC pour un test non-robuste
Plus généralement, ces comparaisons ont été étendues aux modèles de faute de court-
circuit et collage en considérant aussi les séquences de test MIC (séquences de vecteurs
pseudo-aléatoires générées à l'aide d'un LFSR standard) et RMIC (séquences de vecteurs
aléatoires). Ces résultats sont présentés dans l'Annexe II.
II COMPARAISONS RMIC / RSIC
Afin de détailler ces comparaisons et les différentes notions que nous avons proposées,
nous allons, dans un premier temps, détailler les résultats sur le modèle de panne temporelle.
Dans la suite, nous étendrons ces comparaisons aux autres modèles de faute considérés, c'est-
à-dire, les fautes de court-circuit et les fautes de collage.
ANALYSE COMPARATIVE DE L'EFFICACITÉ DES SÉQUENCES ALÉATOIRE MIC ET SIC
45
II.1 Test des Fautes de Délai
L'étude comparative sur le modèle de faute de délai est divisée en deux parties. La
première partie est une étude de cas nous permettant de détailler les différentes notions
proposées. Ensuite, nous généraliserons ces notions sur un ensemble de circuits de la famille
ISCAS'89 [Brgl89].
II.1.1 Une Étude de Cas
Le cas d'étude que nous avons considéré correspond à la partie combinatoire du circuit
s382 [Brgl89]. Les performances des séquences RMIC et RSIC sont évaluées par rapport aux
résultats obtenus par l'ATPG Testgen de Synopsys [Test99]. Le Tableau II.3 présente les
résultats obtenus par l'ATPG (Générateur Déterministe) sur ce circuit.
Délai
Circuit n Ld Tc R % Tc NR %s382 24 1398 88 91,75
Tableau II.3 : Résultats ATPG obtenus sur le circuit s382
Sur le Tableau II.3, (n) représente le nombre d'entrées du circuit et (Ld) la longueur de la
séquence de test. Cette longueur de test correspond à une couverture de fautes maximale,
c'est-à-dire avec une efficacité de 100 % sur le modèle de délai de chemin. Les colonnes (Tc
R % ) et (Tc NR % ) présentent respectivement les taux de couverture robuste et non-robuste.
Ces résultats peuvent être interprétés de la manière suivante. La séquence de test, constituée
de 1368 vecteurs, détecte 88 % des fautes de délai de chemin de manière robuste. Cette
séquence permet de détecter 91,75 % des fautes de délai de chemin de manière non-robuste.
Donc, 8,25 % des fautes restantes ne sont pas testables ni de manière robuste ni de manière
non-robuste (fautes uniquement fonctionnellement sensibilisables ou fonctionnellement
redondantes). De plus, comme l'ensemble des fautes testées de manière robuste est inclus dans
l'ensemble des fautes testées de manière non-robuste, il y a exactement 91,75 – 88 = 3,75 %
des fautes qui ont uniquement un test non-robuste. Ces résultats vont nous servir de base pour
les comparaisons effectuées dans la suite. Afin d'éviter l'effet des fautes redondantes dans
l'interprétation des résultats, nous exprimerons les résultats obtenus en termes d'efficacité par
rapport à la séquence déterministe (ATPG). Ces efficacités seront exprimées en fonction des
équations suivantes :
Chapitre II
46
! dans le cas d'un test robuste :
100 x % ATPGRTc
% RTc % R Eff = (II.5)
! dans le cas d'un test non-robuste :
100 x % ATPGNRTc
% NRTc % NR Eff = (II.6)
Ainsi, les termes Eff R % et Eff NR % représentent, respectivement, le nombre de fautes
détectées par une séquence donnée par rapport au nombre de fautes testables pour un test
robuste et non-robuste.
Le Tableau II.4 présente les résultats obtenus avec les séquences RMIC et RSIC. Les
efficacités robustes (Eff R % ) et non-robustes (Eff NR % ) sont données pour différentes
longueurs de test (#vecteurs). La séquence de test de 1000000 de vecteurs permet de montrer
que l'évolution des efficacités sature.
RMIC RSIC
#vecteurs Eff R % Eff NR % Eff R % Eff NR %
10 12,78 16,49 1,70 1,63100 25,57 52,04 14,35 15,40349 30,97 73,97 24,57 25,61699 33,09 86,78 43,47 46,051398 33,24 91,01 52,84 57,222796 33,52 96,86 61,36 66,496990 33,52 99,31 76,56 84,33
13980 33,52 99,86 81,53 90,3227960 33,52 99,86 86,65 96,1969900 33,52 99,86 89,06 98,64139800 33,52 99,86 90,19 99,731000000 33,52 99,86 90,48 100
Tableau II.4 : Efficacités Robustes et Non-Robustes
pour les séquences RMIC et RSIC
A partir des ces résultats, nous pouvons faire quelques observations :
1) Les efficacités robustes et non-robustes, obtenues avec la séquence RSIC sont
très proches alors qu'il y beaucoup plus d'écart entre celles obtenues avec la
séquence RMIC. L'application d'une séquence de test RSIC permet de
sensibiliser seulement un petit nombre de chemin par paire de vecteurs. Ainsi,
les conditions d'un test robuste sont plus facilement respectées. Ceci entraîne
ANALYSE COMPARATIVE DE L'EFFICACITÉ DES SÉQUENCES ALÉATOIRE MIC ET SIC
47
donc l'obtention d'une efficacité robuste élevée mais aussi une efficacité non-
robuste très proche de l'efficacité robuste. Par contre, dans le cas d'une
séquence de test RMIC, le changement de plusieurs bits entre vecteurs fait
apparaître beaucoup plus de phénomènes de masquage. Ceci ce traduit par une
grande différence entre les efficacités robustes et non-robustes.
2) Pour une séquence de test courte (< 500 vecteurs) les efficacités obtenues avec
la séquence RSIC sont inférieures à celles obtenues avec la séquence RMIC.
Pour une séquence de test plus longue, l'efficacité non-robuste obtenue avec la
séquence RMIC est supérieure à celle obtenue avec la séquence RSIC. Par
contre, la séquence RSIC est beaucoup plus efficace que la séquence RMIC en
termes d'efficacité robuste.
3) Pour une séquence de test très longue (de l'ordre de 1000000 de vecteurs), les
séquences RMIC et RSIC sont autant efficaces en termes d'efficacité non-
robuste.
La Courbe II.1 présente les évolutions obtenues à partir des résultats du Tableau II.4.
s382
0
20
40
60
80
100
10 100 1000 10000 100000 1000000#vecteurs
Eff %
RMIC Eff R % RSIC Eff R %
RMIC Eff NR % RSIC Eff NR %
Courbe II.1 : Efficacités des séquences RMIC et RSIC pour le circuit s382
Pour résumer ces expérimentations, nous pouvons dire que la séquence RMIC amène à de
meilleurs résultats en termes d'efficacité non-robuste alors que la séquence RSIC est plus
intéressante dans le but d'obtenir une efficacité robuste élevée. Par conséquent, une question
se pose : Quel est le type de séquences à utiliser pour le test des fautes de délai de chemin ?
Afin de répondre à cette question, nous allons définir ce que nous appelons l'efficacité réelle
du test.
Chapitre II
48
II.1.1.1 Efficacité Réelle du Test et Taux de Succès
Comme précisé précédemment, les séquences de test utilisées sont plus ou moins efficaces
selon le mode de détection considéré : le test robuste pour la séquence RSIC et le test non-
robuste pour la séquence RMIC. Est-il donc préférable de favoriser le test robuste ou le test
non-robuste ? Dans la suite de cette partie nous discuterons de ces notions en essayant de
définir ce qu'est l'efficacité réelle d'une séquence de test.
Lors de l'application d'une séquence de test sur le circuit, une incertitude se pose sur la
proportion de fautes testées de manière non-robuste qui sont réellement détectées. Ainsi,
l'efficacité réelle du test peut être définie de la manière suivante :
Définition II.1 : L'efficacité réelle du test correspond à la couverture de
faute robuste plus une proportion des fautes uniquement testées de manière
non-robuste.
En effet, par définition une faute de délai de chemin testée de manière robuste sera détectée
lors de l'application du test (les phénomènes de masquages ou d'aléas n'empêchent pas
l'activation ou la propagation de la faute). Par contre, avec les problèmes d'invalidation du test
non-robuste, seulement une proportion des fautes testées de manière non-robuste sera détectée
lors de l'application du test. Cette proportion dépend du nombre mais aussi de la nature des
défauts qui affectent le circuit et qui peuvent donc invalider les tests non-robustes. Nous
appellerons cette proportion le "taux de succès non-robuste" noté SNR qui est défini de la
manière suivante :
Définition II.2 : Le taux de succès, noté SNR, correspond à la proportion de
fautes, ayant uniquement un test non-robuste, réellement détectée lors de
l'application du test.
N'ayant aucun moyen de connaître le taux de succès à priori, nous considérerons, pour nos
expérimentations, trois valeurs arbitraires qui sont : SNR = 10 %, 50 % et 90 % .
Nous pouvons ainsi exprimer l'efficacité réelle, notée EFF(SNR), en fonction du taux de
succès, noté SNR, de la manière suivante :
NRNR S x q) x R EffNR (Effq x R Eff)EFF(S −+= (II.7)
avec :
Robuste-Non Tc_ATPGRobuste Tc_ATPG q = (II.8)
ANALYSE COMPARATIVE DE L'EFFICACITÉ DES SÉQUENCES ALÉATOIRE MIC ET SIC
49
sachant que les termes :
! Eff R et Eff NR correspondent respectivement aux efficacités robustes et non-
robustes obtenues par une séquence de test donnée.
! Tc_ATPG Robuste et Tc_ATPG Non-Robuste correspondent aux taux de
couverture robuste et non-robuste obtenus à l'aide de l'ATPG Testgen de
Synopsys [Test99] pour une efficacité complète (100 %).
Démonstration II.1 : L'Équation II.7 se démontre de la manière suivante. Soit :
! #FRD : le nombre de fautes réellement détectées par une séquence donnée,
! #FR : le nombre de fautes détectées de manière robuste par une séquence donnée,
! #FNR : le nombre de fautes détectées de manière non-robuste par une séquence
donnée,
! #FTR : le nombre de fautes testables de manière robuste (information ATPG),
! #FTNR : le nombre de fautes testables de manière non-robuste (information
ATPG),
! #FT : le nombre total de fautes dans le circuit (nombre de fautes de délai de
chemin du circuit sous test).
Avec ces différentes notations, le nombre de fautes réellement détectées correspond à la
somme entre le nombre de fautes détectées de manière robuste (#FR) et le nombre de
fautes ayant été testées uniquement de manière non-robuste (#FNR - #FR) multiplié par
le taux de succès (SNR). Nous obtenons ainsi la formulation suivante :
NRNR S x FR)# FNR(#FR#)FRD(S# −+= (II.9)
L'efficacité réelle étant le rapport entre le nombre de fautes réellement détectées et le
nombre de fautes testables de manière non-robuste, l'Équation II.9 se ramène à la forme
suivante :
NRNR S x )FTNR#
FR# FTNR#FNR#(
FTNR#FR#
FTNR#FRD# )EFF(S −+== (II.10)
Dans cette équation, le terme #FNR / #FTNR correspond à l'efficacité non-robuste notée
Eff NR. De plus, le rapport #FR / #FTNR peut se mettre sous la forme suivante afin de
faire apparaître le paramètre q :
Chapitre II
50
q x R EffRobusteNon Tc_ATPG
Robuste Tc_ATPG xR Eff
FT#FTR#x
FTNR#FT#x
FTR#FR#
FTR#FTR#x
FT#FT#x
FTNR#FR#
=−
=
= (II.11)
Ainsi, à partir des Équations II.10 et II.11, nous obtenons donc la relation entre les
efficacités robuste et non-robuste permettant de calculer l'efficacité réelle.
Cette notion d'efficacité réelle est illustrée sur la Courbe II.2. L'efficacité réelle se situe
entre l'efficacité robuste et l'efficacité non-robuste. Par définition, elle est au moins supérieure
à l'efficacité robuste (un test robuste est indépendant des autres fautes dans le circuit) et
inférieure ou égale à l'efficacité non-robuste (problème d'invalidation du test) en fonction de
la valeur du taux de succès.
0
20
40
60
80
100
100 1000 10000 100000#vecteurs
Eff %
Efficacité Robuste
Efficacité Non-Robuste
Efficacité RéelleProportion des fautes
ayant uniquement un testnon-robuste
Taux de succèsSNR
A
B
BA
=
Courbe II.2 : Illustration de l'efficacité réelle
Nous pouvons considérer deux cas particuliers qui sont les suivants :
! Si le taux de succès est de 0 % alors, l'efficacité réelle est égale à l'efficacité
robuste car aucune faute, ayant uniquement un test non-robuste, n'est détectée.
! Si le taux de succès est de 100 %, l'efficacité réelle est identique à l'efficacité
non-robuste car toutes les fautes, testées de manière non-robuste, ont été
détectées. Dans ce cas, il n'y a aucun problème d'invalidation du test.
ANALYSE COMPARATIVE DE L'EFFICACITÉ DES SÉQUENCES ALÉATOIRE MIC ET SIC
51
II.1.1.2 Efficacité Réelle des Séquences RMIC et RSIC
Dans cette partie, nous allons comparer les efficacités réelles des séquences de test RMIC
et RSIC. Les applications de l'Équation II.7, pour le circuit s382, sont présentées sur le
Tableau II.5. Après la colonne (#vecteurs), qui représente le nombre de vecteurs de la
séquence, ce tableau est divisé en deux parties. La première partie (RMIC EFF % ) présente les
valeurs calculées en termes d'efficacité réelle pour les trois valeurs du taux de succès
considérées (SNR 10% , SNR 50 % et SNR 90 % ). De manière similaire, la deuxième partie
(RSIC EFF % ) présente les efficacités réelles obtenues avec la séquence RSIC. Ces résultats
sont aussi représentés par les graphiques de la Courbe II.3.
RMIC EFF % RSIC EFF %
#vecteurs SNR 10 % SNR 50 % SNR 90 % SNR 10 % SNR 50 % SNR 90 %10 12,68 14,37 16,07 1,63 1,63 1,63100 27,27 38,28 49,29 13,93 14,58 15,24349 34,13 51,84 69,54 23,77 24,59 25,41699 37,24 59,26 81,28 42,12 43,87 45,611398 37,79 61,44 85,10 51,33 53,95 56,572796 38,62 64,50 90,39 59,61 62,67 65,736990 38,86 65,73 92,59 74,51 78,88 83,2413980 38,92 66 93,09 79,40 84,25 89,1127960 38,92 66 93,09 84,41 89,64 94,8869900 38,92 66 93,09 86,73 92,02 97,32139800 38,92 66 93,09 87,82 93,11 98,411000000 38,92 66 93,09 88,09 93,39 98,68
Tableau II.5 : Efficacités réelles pour le circuit s382
avec différentes valeurs du taux de succès
Sur ces courbes, il apparaît clairement que l'efficacité réelle croit plus rapidement au début
avec la séquence RMIC. Ensuite, pour des séquences de test supérieures à 20000 vecteurs, la
séquence RSIC est plus efficace que la séquence RMIC quelle que soit la valeur du taux de
succès considéré.
Chapitre II
52
s382SNR 10%
0
20
40
60
80
100
10 100 1000 10000 100000 1000000#vecteurs
Eff %
RMIC
RSIC
a)
s382SNR 50%
0
20
40
60
80
100
10 100 1000 10000 100000 1000000#vecteurs
Eff %
RMIC
RSIC
b)
s382SNR 90%
0
20
40
60
80
100
10 100 1000 10000 100000 1000000#vecteurs
Eff %
RMIC
RSIC
c)
Courbe II.3 : Comparaison des efficacités réelles des séquences RMIC et RSIC
pour différentes valeurs du taux de succès a) SNR = 10 %, b) SNR = 50 % e c) SNR = 90 %
ANALYSE COMPARATIVE DE L'EFFICACITÉ DES SÉQUENCES ALÉATOIRE MIC ET SIC
53
En conclusion de ces expérimentations, nous pouvons constater, surtout dans le cas ou le
taux de succès est de 90 %, que l'application d'une séquence de test RSIC longue amène à de
meilleurs résultats même si l'efficacité non-robuste de la séquence RSIC est inférieure à celle
obtenues avec la séquence RMIC. Nous verrons dans la suite que les séquences de test seront
encore plus longues pour des circuits de plus grandes tailles. Ces longueurs de test sont
nécessaires pour garantir une efficacité réelle élevée. De plus, comme nous l'avons déjà
précisé, les temps de test sont liés aux performances temporelles des circuits. Les
technologies actuelles, permettant d'atteindre des fréquences de fonctionnement de l'ordre du
GHz, rendent donc tout à fait envisageable l'application de séquences de test de plusieurs
millions de vecteurs. Il est donc préférable d'utiliser une séquence aléatoire de vecteurs
adjacents (RSIC) pour le test des fautes de délai de chemin.
II.1.2 Généralisation à d'Autres Circuits
Afin de confirmer les conclusions des expérimentations effectuées sur le circuit s382, nous
avons effectué le même type d'expérimentation sur un ensemble de circuits de la famille
ISCAS'89 [Brgl89]. Le Tableau II.6 présente les résultats obtenus par un ATPG [Test99]. La
première colonne indique le nom des circuits. Après le nombre d'entrées des circuits (n), le
nombre de faute de délai de chemin (# chemins) et la longueur des séquences de test générées
(Ld), les deux dernières colonnes présentent respectivement les taux de couverture de fautes
de délai robuste (Tc R % ) et non-robuste (Tc NR % ) obtenues par l'ATPG (avec une efficacité
de 100 %).
Délai
Circuit n # chemin Ld Tc R % Tc NRs298 17 462 688 76,19 78,79s382 24 800 1398 88 91,75s386 13 414 736 100 100s420 35 682 1322 100 100s510 25 686 1366 100 100s526 24 820 1396 86,34 87,8s641 54 2778 2778 66,16 71,02s713 54 6130 4418 22,54 37,13s1238 32 3984 4992 62,17 62,93s1494 14 1802 3518 98,83 98,89s3330 172 9074 15862 89,87 90,94s5378 214 18532 29730 74,02 82,2
Tableau II.6 : Résultats ATPG délai obtenus sur les circuits ISCAS'89
Chapitre II
54
Nous avons appliqué à cet ensemble de circuit les séquences de test RMIC et RSIC. Les
résultats obtenus sont reportés sur le Tableau II.7. La colonne (#vecteurs) indique la longueur
des séquences de test appliquées (100*Ld). Il est à noter que nous avons appliqué des
séquences de test de longueur 10*Ld pour les deux derniers circuits (s3330 et s5378) afin
d'obtenir des temps de simulation réaliste. Les deux dernières parties (RMIC et RSIC)
présentent les résultats en termes d'efficacité robuste (Eff R % ) et non-robuste (Eff NR % )
obtenus avec ces deux séquences de test.
RMIC RSIC
Circuit #vecteurs Eff R % Eff NR % Eff R % Eff NR %s298 68800 36,65 100 91,48 100s382 139800 33,52 99,86 90,19 99,73s386 73600 40,82 100 98,79 100s420 132200 37,24 84,31 66,86 68,62s510 136600 31,78 100 91,11 100s526 139600 30,09 100 90,4 95,98s641 277800 18,12 97,11 76,01 80,29s713 441800 20,76 96,74 83,72 83,84s1238 499200 29,35 99,84 89,11 97,16s1494 351800 30,83 99,78 94,51 100s3330 158620 23,47 90,71 62,28 77,63s5378 297300 24,51 97,09 64,77 67,23
Tableau II.7 : Efficacités robustes et non-robustes des séquences RMIC et RSIC
Dans tous les cas, les résultats obtenus en termes d'efficacité robuste avec la séquence
RSIC sont supérieurs à ceux obtenus avec la séquence RMIC. Dans le cas du test non-robuste,
comme pour le cas d'étude présenté précédemment, nous obtenons des résultats très proches
dans la majorité des cas. Cependant, pour les deux plus grands circuits traités (s3330 et
s5378) l'écart est beaucoup plus important. En effet, pour ces deux circuits, nous n'avons pas
appliqué une séquence de test très longue (limité à 10*Ld) pour des raisons de temps de
simulation trop importants.
Le Tableau II.8 présente les résultats en termes d'efficacité réelle en appliquant l'Équation
II.7. Comme précédemment, nous avons utilisé trois valeurs du taux de succès (SNR = 10 %,
SNR = 50 % et SNR = 90 %). Nous pouvons remarquer que, pour les deux premières valeurs du
taux de succès (10 et 50 %), la séquence de test RSIC est toujours plus efficace. Par contre,
dans le cas d'un taux de succès de 90 %, pour 5 circuits (s420, s641, s713, s3330 et s5378)
c'est la séquence RMIC qui est plus efficace. Ceci provient du fait que l'efficacité non-robuste
ANALYSE COMPARATIVE DE L'EFFICACITÉ DES SÉQUENCES ALÉATOIRE MIC ET SIC
55
obtenue avec la séquence RSIC est très inférieure à celle obtenue avec la séquence RMIC
(Tableau II.7). Si l'on augmente la longueur des séquences de test la séquence RSIC serait
alors plus efficace.
RMIC EFF % RSIC EFF %
Circuit #vecteur SNR 10 % SNR 50 % SNR 90 % SNR 10 % SNR 50 % SNR 90 %s298 68800 41,90 67,72 93,54 89,62 94,23 98,85s382 139800 38,92 66,00 93,09 87,83 93,12 98,41s386 73600 46,74 70,41 94,08 98,91 99,40 99,88s420 132200 41,95 60,78 79,60 67,04 67,74 68,44s510 136600 38,60 65,89 93,18 92,00 95,56 99,11s526 139600 36,63 64,79 92,96 89,61 92,44 95,27s641 277800 24,90 57,00 89,09 71,76 75,55 79,34s713 441800 21,02 54,67 88,33 54,12 67,33 80,54s1238 499200 36,08 64,42 92,76 88,95 92,60 96,25s1494 351800 37,71 65,30 92,88 95,01 97,23 99,45s3330 158620 29,95 56,95 83,96 63,16 69,59 76,02s5378 297300 29,57 59,58 89,59 59,22 62,78 66,34
Tableau II.8 : Efficacités réelles pour avec différentes valeurs du taux de succès
Comme pour le cas d'étude, nous constatons que l'utilisation des séquences de test RSIC
peut être préférée aux séquences RMIC pour le test des fautes de délai de chemin surtout dans
le cas de séquences de test longues. Cependant, pour certains circuits la séquence de test
RMIC est plus efficace avec un taux de succès de 90 %. Mis à part les deux derniers circuits
pour lesquels les longueurs de séquences sont trop courtes, nous pouvons constater que les
écarts obtenus pour les circuits s420, s641 et s713 restent faibles (inférieurs à 10%). De plus,
un taux de succès de 90 % est un pourcentage élevé. Dans ce cas, l'efficacité réelle correspond
quasiment à l'efficacité non-robuste. C'est-à-dire que les effets de masquage et d'aléa
n'interviennent pas lors de l'application du test (notion de test non-robuste). Donc, dans
l'ensemble la séquence RSIC est plus efficace.
II.2 Application à d'autres Modèles de Faute
Ayant montré l'intérêt d'utiliser des séquences RSIC pour le test du modèle de faute de
chemin, nous allons étendre l'étude à d'autres modèles de faute. Comme indiqué
précédemment, les modèles retenus sont les fautes de court-circuit mais aussi les fautes de
collage. Ainsi, l'utilisation des ces différents modèles de faute, nous permettra d'obtenir une
couverture de défaut élevée.
Chapitre II
56
II.2.1 Test des Fautes de Court-Circuit
Les listes de fautes considérées dans cette partie sont issues d'une extraction "post layout"
[Gonç97]. Ainsi, les listes de fautes sont constituées de fautes de court-circuit, entre lignes
proches sur le "layout" de type "standard cell", c'est-à-dire, ayant une probabilité non
négligeable d'affecter le circuit. Nous les appellerons courts-circuits réalistes.
Les résultats en termes de taux de couverture de fautes de court-circuit sont présentés sur le
Tableau II.9 pour la séquence RMIC et le Tableau II.10 pour la séquence RSIC. Dans chaque
tableau, la colonne (#fautes) indique le nombre de fautes de court-circuit considéré. Ensuite,
les résultats sont exprimés en termes de couverture de fautes en utilisant les notations
suivantes :
! Tc ET % = Taux de couverture de fautes testées pour un comportement ET,
! Tc OU % = Taux de couverture de fautes testées pour un comportement OU,
! Tc ET&OU % = Taux de couverture de fautes testées les comportements ET et
OU.
! Tc ET||OU % = Taux de couverture de fautes testées soit pour un comportement
OU soit pour un comportement ET,
Les séquences de test appliquées aux circuits sont, dans un premier temps, de 10000
vecteurs. De plus, les résultats sont exprimés uniquement en termes de taux de couverture de
faute et non en termes d'efficacité car dans ce cas, nous ne disposons pas d'information de
type ATPG sur les propriétés détectable3, non-testable4 et autre de chaque faute. De plus, nous
avons appliqué ces séquences de test uniquement sur un petit ensemble de circuit car nous ne
disposions pas de l'ensemble des listes de fautes de court-circuit réaliste.
RMIC
Circuit #fautesTc ET
%Tc OU
%Tc ET&OU
%Tc ET||OU
%s386 390 99,23 100 99,23 100s420 521 86,18 88,29 77,74 96,74s510 1073 99,72 100 99,72 100s1238 2924 99,69 99,9 99,62 99,97s1494 3851 100 99,95 99,95 100
Tableau II.9 : Taux de couverture de fautes de court-circuit pour la séquence RMIC
3 Il existe un vecteur permettant de sensibiliser la faute et propager son effet sur une sortie primaire du circuit.4 Il n'existe pas de vecteur pour tester la faute.
ANALYSE COMPARATIVE DE L'EFFICACITÉ DES SÉQUENCES ALÉATOIRE MIC ET SIC
57
RSIC
Circuit #fautesTc ET
%Tc OU
%Tc ET&OU
%Tc ET||OU
%s386 390 99,23 100 99,23 100s420 521 83,3 83,69 73,51 93,47s510 1073 99,72 100 99,72 100s1238 2924 99,62 99,73 99,42 99,93s1494 3851 100 99,95 99,95 100
Tableau II.10 : Taux de couverture de fautes de court-circuit pour la séquence RSIC
Au vu des résultats obtenus avec les séquences de test RMIC et RSIC, nous pouvons dire
que les taux de couverture de faute sont proches malgré l'application d'une séquence de test
courte (10000 vecteurs). Cependant, notre objectif est aussi de tester efficacement les pannes
temporelles. Ceci engendre l'application de séquences de test beaucoup plus longues. Les
résultats, reportés sur le Tableau II.11, ont été obtenus avec des longueurs de séquences de
test identiques à celles utilisées pour le test des fautes de délai. Après le nom des circuits ainsi
que le nombre de fautes considérées, la colonne (#vecteurs) indique les longueurs des
séquences de test utilisées. Par contre, les résultats sont uniquement présentés en termes de
taux de couverture de faute Tc ET&OU % et Tc ET||OU % car ces deux modes de détection sont
les plus représentatifs de la qualité du test effectué.
RMIC RSIC
Circuit #fautes #vecteursTc ET&OU
%Tc ET||OU
%Tc ET&OU
%Tc ET||OU
%s386 390 73600 99,23 100 99,23 100s420 521 132200 81,96 98,89 81,23 97,59s510 1 073 136600 100 100 100 100s1238 2 924 499200 99,90 100 99,90 100s1494 3 851 351800 99,95 100 99,95 100
Tableau II.11 : Taux de couverture de fautes de court-circuit avec des séquences de test
de longueurs compatibles à celles utilisées pour le test des fautes de délai
Nous pouvons donc conclure que si la séquence de test RSIC n'est pas meilleure, elle est
aussi efficace que la séquence de test RMIC pour des longueurs de test compatibles avec le
test des pannes temporelles.
Chapitre II
58
II.2.2 Test des Fautes de Collage
De la même manière que pour les pannes de court-circuit, nous comparerons, dans cette
partie, l'efficacité des séquences RSIC et RMIC en considérant le modèle de collage classique
Le Tableau II.12 présente les résultats obtenus à l'aide d'un ATPG. Dans ce tableau, après le
nom des circuits, les colonnes (n) et (#fautes) indiquent respectivement le nombre d'entrées et
le nombre de fautes de chaque circuit. La colonne (Lc) indique les longueurs des séquences de
test obtenues pour les taux de couverture de fautes (Tc ATPG % ) pour une efficacité de
100 %.
Collage
Circuit n #fautes Lc Tc ATPG %s298 17 308 38 100s382 24 399 36 100s386 13 372 86 100s420 35 394 55 100s510 25 550 67 100s526 24 555 68 99,82s641 54 465 46 100s713 54 581 90 93,46s1238 32 1327 196 94,8s1494 14 1478 158 99,19s3330 172 2866 238 100s5378 214 4603 141 99,13
Tableau II.12 : Résultats ATPG collage obtenus sur les circuits ISCAS'89
Ensuite, nous avons procédé de la même manière que pour les comparaisons sur le modèle
de fautes de court-circuit. Les résultats comparatifs des séquences RMIC et RSIC sont
présentés sur le Tableau II.13. Après le nom des circuits, la colonne suivante (#vecteurs)
indique les longueurs des séquences de test utilisées. Ces longueurs de test sont identiques à
celles utilisées pour le test des fautes de délai de chemin. La suite de ce tableau est divisée en
deux parties (RMIC et RSIC) résumant les résultats obtenus en termes de taux de couverture
de faute (Tc % ) et d'efficacité (Eff % ).
ANALYSE COMPARATIVE DE L'EFFICACITÉ DES SÉQUENCES ALÉATOIRE MIC ET SIC
59
RMIC RSIC
Circuit #vecteurs Tc % Eff % Tc % Eff %s298 68800 100 100 100 100s382 139800 100 100 100 100s386 73600 100 100 100 100s420 132200 97,88 97,88 96,1 96,1s510 136600 100 100 100 100s526 139600 99,82 100 99,82 100s641 277800 99,35 99,35 99,35 99,35s713 441800 92,94 99,44 92,94 99,44s1238 499200 94,8 100 93,7 98,84s1494 351800 99,19 100 99,19 100s3330 158620 88,85 88,85 86,29 86,29s5378 297300 98,85 99,72 98,72 99,59
Tableau II.13 : Comparaisons RMIC et RSIC sur le modèle de faute de collage
De manière similaire au test des fautes de court-circuit, ces résultats montrent que, pour
des longueurs de séquences de test compatibles avec le test des fautes de délai de chemin, les
séquences RSIC sont pratiquement aussi efficaces que les séquences RMIC.
II.3 Propriété "Universelle" des Séquences de Test RSIC
Dans cette partie, nous allons synthétiser les différents résultats obtenus avec la séquence
de test RSIC afin de montrer le caractère universel de cette séquence de test.
L'efficacité des séquences de test RSIC sur les différents circuits et modèles de pannes est
reportée sur le Tableau II.14. Après le nom des circuits, la colonne (#vecteurs) indique les
longueurs de séquences de test appliquées à chaque circuit. Il est à noter que ces longueurs
correspondent à celles utilisées pour le test des fautes de délai de chemin. Ensuite, le tableau
est divisé en trois parties. La première partie présente les résultats obtenus, en termes
d'efficacité robuste (Eff R % ) et non-robuste (Eff NR % ), pour le test des fautes de délai. La
partie (Court-Circuit) indique les taux de couverture obtenus (Tc ET&OU % et Tc ET||OU % ).
Finalement, la dernière partie présente les résultats, en termes d'efficacité (Eff % ), obtenus sur
le modèle de faute de collage.
Chapitre II
60
Délai Court-Circuit Collage
Circuit #vecteurs Eff R % Eff NR % Tc ET&OU % Tc ET||OU % Eff %s298 68800 91,48 100 - - 100s382 139800 90,19 99,73 - - 100s386 73600 98,79 100 99,23 100 100s420 132200 66,86 68,62 81,23 97,59 96,1s510 136600 91,11 100 100 100 100s526 139600 90,4 95,98 66,79* 86,26* 100s641 277800 76,01 80,29 99,06* 100* 99,35s713 441800 83,72 83,84 - - 99,44s1238 499200 89,11 97,16 99,9 100 98,84s1494 351800 94,51 100 99,95 100 100s3330 158620 62,28 77,63 - - 86,29s5378 297300 64,77 67,23 - - 99,59
Tableau II.14 : Synthèse des résultats démontrant l'efficacité des séquences de test RSIC
(* résultats obtenus avec des séquences de 10000 vecteurs de test)
En ce qui concerne le test des fautes de court-circuit, nous avons uniquement des résultats
pour quelques circuits car les temps de simulation sont très longs mais aussi car nous n'avons
pas toutes les listes de fautes de court-circuit réaliste. De plus, les résultats en italique (*) ont
été obtenus en limitant la séquence à 10000 vecteurs de test pour cause de temps de
simulation prohibitif.
A titre d'exemple, la Courbe II.4 représente sous forme graphique, les évolutions obtenues,
en termes de couverture de faute, sur le circuit s1494. Comme illustré sur ces courbes, pour
une longueur de test courte (< 10000 vecteurs) les couvertures de faute de collage et court-
circuit sont quasi complètes. En augmentant la longueur de la séquence, nous arrivons aussi à
tester correctement les fautes de délai de chemin. De plus, pour cette longueur de séquence de
test, les résultats obtenus en termes de taux de couverture de faute robuste et non-robuste sont
très proches, ce qui garantit une très bonne efficacité réelle du test.
ANALYSE COMPARATIVE DE L'EFFICACITÉ DES SÉQUENCES ALÉATOIRE MIC ET SIC
61
s1494
0
20
40
60
80
100
1 10 100 1000 10000 100000 1000000#vecteurs
Tc %
Délai RobusteDélai Non-RobusteCourt-Circuit ET&ORCollage
Courbe II.4 : Exemples d'évolutions des taux de couverture de faute
obtenues sur le circuit s1494
En conclusion, nous pouvons dire que, pour des longueurs de séquences de test supérieures
ou égales à 500000 vecteurs, la séquence RSIC est très efficace pour le test des modèles de
faute considérés. Néanmoins, nous pouvons nous poser la question de savoir si une longueur
de test de 500000 vecteurs est envisageable d'un point de vue pratique. Les technologies
actuelles permettent de concevoir des circuits fonctionnant à des fréquences de l'ordre du
GHz. Si le circuit est testé à une fréquence de 1 GHz par exemple, l'application de 500000
vecteurs entraînera un temps de test de 0,5 ms. Nous pouvons donc en conclure que
l'application d'une séquence de test même très longue n'est plus un handicap sachant qu'en
plus elle garantira une couverture de défauts élevée. En effet, cette séquence de test amène à
des couvertures de faute de collage, court-circuit et délai de chemin élevées. Nous pourrions
aussi étendre cette étude au modèle de circuit ouvert. Ce type de faute, qui nécessite
l'application de paires de vecteurs, serait testé avec des efficacités comparables à celles
obtenues pour le modèle de délai de chemin. Nous pouvons donc conclure que la séquence de
test RSIC peut être considérée comme une séquence de test "universelle".
Chapitre II
62
CONCLUSION
Dans ce chapitre nous avons effectué des comparaisons entre deux types de séquences de
test aléatoire. Les résultats expérimentaux obtenus en comparant les séquences RMIC et
RSIC, sur le modèle de faute de délai de chemin nous ont permis de définir la notion
d'efficacité réelle du test. Cette notion, qui est liée au taux de succès, a permis de montrer qu'il
était préférable d'utiliser des séquences de test RSIC. En effet, nous avons montré que ces
séquences étaient plus efficaces que les séquences RMIC quand, à la fois, les tests robustes et
non-robustes sont considérés.
La suite de ce chapitre a consisté à comparer ces séquences sur les modèles de faute de
court-circuit et collage. Le bilan de l'ensemble des ces expérimentations (menées sur les
modèles de délai, court-circuit et collage) a montré l'intérêt d'utiliser des séquences de test
RSIC.
Maintenant que nous avons montré le caractère universel des séquences de test RSIC, nous
allons concentrer notre étude sur la recherche d'une structure de génération intégrée
permettant de produire ce type de séquences.
63
Chapitre IIIChapitre IIIChapitre IIIChapitre III
IIMMPPLLAANNTTAATTIIOONN MMAATTÉÉRRIIEELLLLEEDDEE SSÉÉQQUUEENNCCEESS RRSSIICC
IMPLANTATION MATÉRIELLE DE SÉQUENCES RSIC
65
Chapitre III IIMMPPLLAANNTTAATTIIOONN MMAATTÉÉRRIIEELLLLEE
DDEE SSÉÉQQUUEENNCCEESS RRSSIICC
INTRODUCTION
Après avoir montré l'intérêt d'utiliser une séquence de test RSIC, ce chapitre va détailler
comment il est possible de réaliser un générateur matériel produisant ce type de séquence.
Dans un premier temps, nous présenterons les différents aspects du test intégré ainsi que
les approches de génération dites pseudo-aléatoires et plus particulièrement les principes du
registre à décalage à rétroaction linéaire ou LFSR.
La deuxième partie de ce chapitre sera consacrée à la structure de génération de séquence
de test RSIC. Après avoir présenté les principes de la structure, nous détaillerons les
différentes contraintes nécessaires à sa réalisation. L'ensemble de ces contraintes permettra
d'obtenir une génération de vecteurs aléatoires.
Chapitre III
66
I TEST INTÉGRÉ
I.1 Principe
Les techniques de test intégré ou BIST pour "Built-In Self Test" consistent à inclure
directement dans le circuit tout ou partie des fonctions réalisées par le testeur, c’est-à-dire
génération de vecteurs de test et analyse des résultats. Le schéma de principe du test intégré
est présenté sur la Figure III.1.
Circuitsous Test
Gén
érat
eur d
eVe
cteu
rs d
e Te
st
Anal
yseu
r de
Sign
atur
es
Unité de Contrôledu Test
Figure III.1 : Architecture classique du test intégré
Ce schéma fait apparaître les modules matériels principaux, associés aux différentes
architectures de test intégré, à savoir :
! un Générateur de Vecteurs de Test (GVT),
! une Logique de Contrôle et de Multiplexage
! un Compacteur / Analyseur de Réponses.
De part cette architecture, le test intégré présente divers avantages [Zori99] dont :
! la suppression de la nécessité d'un testeur coûteux,
! la possibilité de tester le circuit à haute fréquence et surtout à sa vitesse
nominale de fonctionnement, condition nécessaire au test des fautes de délai,
! la possibilité de tester le circuit sur site.
En contrepartie, l'utilisation du test intégré conduit obligatoirement à un surcoût en surface
s'accompagnant d'une perte de performance en fonctionnement normal due au multiplexage.
En ce qui concerne le compacteur de réponse, de nombreuses et efficaces techniques de
compression de réponses existent et sont disponibles dans la littérature [Cart82, Hass84,
Savi85, Davi86, Bard87]. La structure de compression de réponses la plus classique est le
IMPLANTATION MATÉRIELLE DE SÉQUENCES RSIC
67
MISR ("Multiple Input Shift Register") proposée par [Kone80]. Ces différentes structures de
compression de réponse ne seront pas détaillées dans la suite. Nous nous préoccuperons donc
uniquement, dans la suite de ce rapport, de l'aspect génération de vecteurs de test et plus
particulièrement de la génération pseudo-aléatoire.
Deux approches peuvent être envisagées pour l'implantation du test intégré :
! le test intégré série,
! le test intégré parallèle.
Le principe du test intégré série est basé sur une technique de Conception en Vue du
Test (CVT ou DFT : "Design For Testability") appelée technique de scan5 [Will73]. Le test
intégré série (Figure III.2) consiste à générer des vecteurs dont les bits seront chargés en série
(on parle alors de "sérialisation" de vecteurs) dans la chaîne de scan avant d’être appliqués au
circuit. La réponse est ensuite capturée également dans la chaîne de scan avant d'être décalée
en série pour être compressée à l'aide d'un compresseur de réponses.
GVT
Circuitsous Test
Référence
Contrôle
OK/OK
Com
para
teur
Chaîne de Scan
CR
Figure III.2 : Le test intégré série ("test-per-scan")
Le test intégré série s'intègre parfaitement dans une méthodologie scan sans apporter de
modifications notables. Cependant, l'inconvénient majeur du test intégré série provient d'un
temps très long dû à la sérialisation des vecteurs de test dans la chaîne de scan. De plus, cette
sérialisation préalable des vecteurs de test rend le test des fautes de délai difficile et dans tous
les cas extrêmement coûteux en surface additionnelle. Par exemple, nous pouvons citer une
solution consistant à doubler la chaîne de scan afin de pouvoir appliquer, en un coup
d'horloge, une paire de vecteurs de test [Derv91].
Dans le cas du test intégré parallèle ou "test-per-clock" (Figure III.3), un vecteur de test
est généré et la réponse du circuit est capturée et compactée à chaque cycle d'horloge.
5 Technique consistant à rendre les bascules d'un circuit complètement contrôlables et observables.
Chapitre III
68
GVT
Circuitsous Test
CR Référence
Contrôle Comparateur
EntréesPrimaires Sorties
Primaires
OK/OK
Figure III.3 : Le test intégré parallèle ("test-per-clock")
Le test intégré parallèle est beaucoup plus rapide que son homologue série. En effet, dans
ce cas, un vecteur de test est appliqué à chaque cycle d'horloge. Cependant, son domaine
d'application reste limité généralement aux circuits combinatoires. Il est bien sûr possible de
l'appliquer aux circuits séquentiels mais, dans ce cas, le coût en surface est plus important de
par l'utilisation de bascules plus complexes de type BILBO [Koen80, Bush00] ou C-BILBO
[Abra90].
L'avantage majeur du test intégré parallèle est qu'il permet de tester le circuit à sa vitesse
nominale de fonctionnement et donc de prendre en compte le test des fautes de délai. C'est
pour cette raison que nous avons retenu ce type d'architecture dans notre étude.
I.2 Génération Pseudo-Aléatoire
I.2.1 Généralités
Le test intégré est généralement basé sur un générateur pseudo-aléatoire. Cette génération
pseudo-aléatoire repose sur l'utilisation d'Automate Cellulaire (CA pour "Cellular
Automata") [Hort89, Hort90] et plus généralement sur l'utilisation d'un Registre à Décalage à
Rétroaction Linéaire (LFSR pour "Linear Feedback Shift Register") [Golo82, Bard87].
Au-delà de cet aspect pseudo-aléatoire, de nombreuses études ont été menées [Knut81,
Bard90, Hort90, Prad94, Davi98] afin de juger le caractère aléatoire des séquences de test en
fonction :
! de la fréquence d'apparition des valeurs 0 et 1 sur les différents bits des
vecteurs produits,
! des corrélations possibles entre ces bits,
IMPLANTATION MATÉRIELLE DE SÉQUENCES RSIC
69
! des densités de 0 et de 1 au sein d'un vecteur donné.
Dans la suite de cette partie, nous détaillerons uniquement les principes du LFSR car cette
architecture de générateur pseudo-aléatoire servira de base à nos comparaisons.
I.2.2 Registre à Décalage à Rétroaction Linéaire : LFSR
Un LFSR est constitué de bascules, reliées en série, subissant une rétroaction linéaire à
travers des portes XOR à deux entrées. Les bascules constituent les étages du générateur et
sont en général des bascules de type D.
Les architectures de LFSRs les plus classiques sont le LFSR à portes XOR externes, dit
de type 1 (Figure III.4.a) et le LFSR à portes XOR internes, dit de type 2 (Figure III.4.b).
ak-1a0 ak-2
hk-1h1 hk =1
ak-1a0 ak-2
h1 hk-1 hk =1
a)
b)
Figure III.4 : Architectures de LFSR
a) LFSR à portes XOR externes (type 1) et b) LFSR à portes XOR internes (type 2)
Les deux types de LFSRs sont mathématiquement équivalents et sont décrits par un
polynôme caractéristique (Équation I.1) de la forme :
ik
1iixh1P(x) ∑
=
+= (III.1)
où k le nombre de bascules du LFSR. Dans le cas d'un LFSR à portes XOR externes, la
constante binaire hi définit la présence (hi=1) ou l'absence (hi=0) d'une connexion de l'étage
i-1 à la boucle de rétroaction. Si hi=1, la valeur courante ai-1 de la bascule i-1 intervient dans le
calcul de l'état suivant. Dans le cas d'un LFSR à portes XOR internes, la constante binaire hi
définit la connexion ou non de la boucle de rétroaction à la porte XOR connectée en sortie de
la bascule i-1.
Chapitre III
70
La Figure III.5 représente un LFSR de type 1 (c'est-à-dire à portes XOR externes) à trois
étages. Dans un tel LFSR, h1=0 et h2=h3=1. D'après l'Équation III.1, son polynôme
caractéristique est : P(x) = x3 ⊕ x2 ⊕ 1.
a2a0 a1
Figure III.5 : Exemple d'un LFSR à trois étages
Les transitions d'états du LFSR peuvent être calculées à partir de la matrice
caractéristique [M] de dimension k×k.
[ ]
=
−− 1k2k21 hh...hh110...00001...000........00...10000...010
M (III.2)
Le calcul de l’état suivant ai+1 est obtenu :
! dans le cas d’un LFSR de type 1 par le produit entre le vecteur ligne ai et la
matrice [M] (Équation III.3) :
ai+1 = ai × [M] (III.3)
! dans le cas d’un LFSR à portes XOR internes (type 2) par l'Équation III.4 où le
vecteur ai est un vecteur colonne :
ai+1 = [M] × ai (III.4)
Étant donné qu'un LFSR à k étages est constitué d'un nombre fini k de bascules, 2k états
peuvent être générés. Cependant, lorsque toutes les bascules sont initialisées au 0 logique ai=0
∀ i, l'état suivant restera inchangé ai+1=0 ∀ i (état absorbant). A l'inverse, lorsque les bascules
ne sont pas toutes initialisées à 0, l'état ai+1=0 ∀ i n'est jamais atteint.
Définition III.1 : Une séquence générée par un LFSR à k étages, ayant une
période de 2k-1, est appelée séquence de longueur maximale [Bard87].
Définition III.2 : Le polynôme caractéristique d’un LFSR, associé à une
séquence de longueur maximale, est un polynôme primitif [Bard87].
IMPLANTATION MATÉRIELLE DE SÉQUENCES RSIC
71
Le Tableau III.1 donne des exemples de polynôme primitif pour des valeurs de n
comprises entre 1 et 36 [Bard87]. Par exemple, pour le degré 30 nous avons le polynôme
primitif P(x)=x30 ⊕ x16 ⊕ x15 ⊕ x ⊕ 1.
degré degré degré1 0 13 4 3 1 0 25 3 02 1 0 14 12 11 1 0 26 8 7 1 03 1 0 15 1 0 27 8 7 1 04 1 0 16 5 3 2 0 28 3 05 2 0 17 3 0 29 2 06 1 0 18 7 0 30 16 15 1 07 1 0 19 6 5 1 0 31 3 08 6 5 1 0 20 3 0 32 28 27 1 09 4 0 21 2 0 33 13 010 3 0 22 1 0 34 15 14 1 011 2 0 23 5 0 35 2 012 7 4 3 0 24 4 3 1 0 36 11 0
Tableau III.1 : Exemple de polynômes primitifs
Le principal avantage des LFSRs est lié au faible coût en surface nécessaire à son
implantation. De manière générale, dans les séquences de test générées par les LFSRs, la
probabilité d’avoir un 1 logique est presque égale à la probabilité d’avoir un 0 logique sur
chaque bit du vecteur généré (P(0) ≈ P(1) ≈ 1/2). Ces séquences sont appelées séquences
équiprobables ("flat random").
II MISE EN ŒUVRE DE LA GÉNÉRATION RSIC
Une des contraintes principales que nous nous sommes fixée dans cette étude est que la
structure de génération matérielle de la séquence RSIC doit permettre de conserver l'aspect
aléatoire de la génération logicielle utilisée dans le Chapitre II. Ainsi, la structure proposée
dans la suite de ce chapitre devra remplir un certain nombre de conditions garantissant la
génération de séquences de vecteurs de test aléatoires.
II.1 Structure
Le principe du générateur RSIC, que nous avons utilisé, a été proposé dans [Davi98]. La
Figure III.6 présente le schéma de principe de ce générateur.
Chapitre III
72
V(t) = x1(t)
Q1 QkQm . . . . . . . . . . .. . . . . . . . . . .Générateur (Pseudo) Aléatoire, k bits
. . . . . . . . . . . . .m bits Rm(t)R(t) = R1(t)
. . . . . . . . . . .
Transcodage
Circuit sous Test
. . . . . . . . . .
n bits xn(t)
Figure III.6 : Principe du générateur RSIC
De manière générale, un générateur source de k bits est utilisé. La valeur du vecteur
Q1Q2…Qk, obtenue à partir de ce générateur source, change à chaque cycle d'horloge. A
chaque instant t, un sous-ensemble de m bits est utilisé (avec m ≤ k). Le vecteur
R(t) = R1(t)R2(t)…Rm(t) est ensuite transformé en un vecteur V(t) de n bits (n > m) avec
V(t) = x1(t)x2(t)…xn(t). Ce vecteur V(t) est ensuite appliqué au circuit sous test.
Afin de prendre en compte les propriétés de la séquence RSIC, indiquées précédemment,
les points suivants doivent être respectés :
! R(l) est indépendant de R(l−1).
! Le transcodage, entre R(l) et V(l), doit satisfaire l'équation suivante (Équation
II.3 du Chapitre II) :
[ ]n1V1)V(lV V(l)Pr kj ==−= , si et seulement si a2k-j = , (III.6)
! La période de la séquence de vecteurs S = V(1)V(2)…V(l) doit au moins être
égale à la longueur du test L (Équation II.2 du Chapitre II).
12j10 n V..., , V..., , V, VV −= , (III.7)
Ces trois points vont être développés dans les parties suivantes.
II.2 Contraintes
II.2.1 LFSR "Aléatoire"
Afin d'améliorer les propriétés aléatoires de la séquence de test générée à l'aide de la
structure présentée sur la Figure III.8, il est nécessaire d'utiliser un générateur source
possédant de "bonnes propriétés aléatoires". En effet, l'utilisation d'un LFSR standard ne
permet pas de satisfaire la condition citée ci-dessus qui impose l'utilisation de séquences de
IMPLANTATION MATÉRIELLE DE SÉQUENCES RSIC
73
vecteurs non corrélés (R(l) est indépendant de R(l−1)). Afin de résoudre ce problème de
corrélation entre vecteurs, nous utiliserons une structure matérielle permettant de générer une
séquence de test possédant de "bonnes" propriétés aléatoires. Cette architecture de LFSR
"aléatoire" a été proposée dans [Davi98].
La méthode consiste à modifier un LFSR standard, c'est-à-dire dont le polynôme
caractéristique est primitif. Ces modifications permettent, en plus d'obtenir une séquence de
vecteurs non corrélés, de générer toutes les paires de vecteurs possibles. L'ensemble des
contraintes nécessaires à ces modifications sont les suivantes :
! Génération de toutes les paires de vecteurs possibles :
Pour un circuit à m entrées, si pour un vecteur donné on veut obtenir les 2m
vecteurs suivants, il faut être capable de générer 22m vecteurs. Sachant qu'un
LFSR de degré k génère une séquence de 2k-1 vecteurs, il faut donc utiliser un
LFSR de degré :
12m k +≥ (III.8)
Cette première contrainte rend aussi possible la génération du vecteur nul sur
les entrées primaires puisque le degré du polynôme est supérieur au nombre
d'entrées du circuit.
! Génération de vecteurs non corrélés :
Les problèmes de corrélation entre vecteurs seront résolus en rajoutant un
nouveau paramètre. Ce paramètre σ représente le nombre de décalages dans le
registre avant de prélever un nouveau vecteur. Si nous voulons tester un circuit
à m entrées, il faut utiliser un LFSR de degré k avec k ≥ 2m+1, pour remplir la
première condition. Notons b(1)b(2)…b(2k-1) l'ensemble des bits consécutifs
générés par ce LFSR. A chaque cycle d’horloge, le LFSR produit un nouveau
vecteur. Cependant, la séquence ainsi produite est fortement corrélée. En effet,
si le premier vecteur de la séquence de test est R(1) = b(k)b(k-1)…b(k-m+1),
après un cycle d'horloge, le vecteur suivant est R(2) = b(k+1)b(k)…b(k-m+2).
Pour que le vecteur R(2) ne soit pas corrélé avec R(1) (aucune valeurs de b(i)
en commun), il faut que R(2) = b(k+m)b(k+m-1)…b(k+1). Ceci entraîne donc
un décalage minimal de σ = m. Dans le cas général, pour que les vecteurs
générés soient non corrélés, nous devons satisfaire l'équation suivante :
Chapitre III
74
m)1(2σm k −−≤≤ (III.9)
La borne supérieure s'explique de la même manière. En effet, pour que le
vecteur R(2) ne soit pas corrélé avec R(1) il faut que R(2) = b(k+2k-1-m)b(k+2k-
2-m)…b(k+2k). La valeur maximale de σ est donc 2k-1-m. Les valeurs minimale
et maximale de σ correspondent aux valeurs nécessaires permettant d'obtenir
une génération de vecteurs de test non corrélés. Cependant, il a été démontré
dans [Davi98] que le choix σ = m permettait, dans tous les cas, de garantir une
génération de vecteurs non corrélés (condition nécessaire et suffisante).
! Génération d'une séquence de longueur maximale :
La dernière contrainte est :
12et σ k − premiers entre eux, (III.10)
Elle permet de générer tous les vecteurs de la séquence. Cette contrainte
permet donc de produire une séquence de longueur maximale. L'explication de
cette contrainte est donnée dans [Davi98 propriété 10.3].
Illustrons ces différentes contraintes sur l'exemple suivant :
Exemple III.1 : Considérons, par exemple, que nous avons besoin de vecteurs de 2 bits
(m = 2). Afin de satisfaire l'Équation III.8, le degré k du LFSR doit au moins être de 5.
La Figure III.7.a présente un LFSR dont le polynôme est x5 ⊕ x2 ⊕ 1. Comme le
polynôme utilisé pour ce LFSR est primitif, la séquence de bits générée est une
séquence pseudo-aléatoire de longueur 25 - 1 = 31 comme illustré sur la Figure III.7.b.
Les bits successifs de cette séquence sont notés b(1)b(2)…b(31). Les valeurs des
vecteurs sont donc : R(1) = b(5)b(4) = 00, R(2) = b(6)b(5) = 10 et ainsi de suite. Dans le
cas général, R2(l+1) = R1(l). Afin d'éliminer ces corrélations, choisissons σ = m = 2
(Équation III.7). Nous obtenons, comme vecteur R(2), le couple b(7)b(6). Dans ce cas,
nous pouvons dire que deux vecteurs consécutifs ainsi produits sont non corrélés.
Sur la Figure III.7.c nous avons représenté l’implantation de telles contraintes pour la
génération de la séquence aléatoire dans le cas d'un circuit à 2 entrées. L'utilisation de
deux portes XOR permet de générer un vecteur de test à chaque cycle d’horloge. Le
chaînage des bascules de la Figure III.7.c peut s'expliquer à partir des états issus du
LFSR standard (polynôme primitif P(x) = 1 ⊕ x2 ⊕ x5) de la Figure III.7.a. Si Q1, Q2, Q3,
Q4 et Q5 représentent les cinq étages des LFSRs, nous pouvons calculer les états du
IMPLANTATION MATÉRIELLE DE SÉQUENCES RSIC
75
LFSR standard pour différents instants t = t0, t1 et t2. Ces états sont répertoriés dans les
trois premières colonnes du Tableau III.2.
Q1 Q2 Q3 Q4 Q5
R
c)
a)
024
123
122
121
120
119
018
017
016
115
114
013
112
111
110
09
18
07
16
05
04
03
02
11
025
126
127
028
129
030
031
11
02
Période = 25 – 1 = 31
R
b(i)i
b)
Q1 Q2 Q3 Q4 Q5
R
Figure III.7 : Structure d'un LFSR "aléatoire"
a) LFSR standard, b) Séquence générée et c) Réalisation matérielle pour σ = 2
t = t0 t = t1 t = t2 Pour σσσσ = 2Q1(t0) Q1(t1) = Q2(t0) ⊕ Q5(t0) Q1(t2) = Q2(t1) ⊕ Q5(t1) Q1 ⇐ Q1 ⊕ Q4
Q2(t0) Q2(t1) = Q1(t0) Q2(t2) = Q1(t1) Q2 ⇐ Q2 ⊕ Q5
Q3(t0) Q3(t1) = Q2(t0) Q3(t2) = Q2(t1) Q3 ⇐ Q1
Q4(t0) Q4(t1) = Q3(t0) Q4(t2) = Q3(t1) Q4 ⇐ Q2
Q5(t0) Q5(t1) = Q4(t0) Q5(t2) = Q4(t1) Q5 ⇐ Q3
Tableau III.2 : Explication de l'implantation du LFSR "aléatoire"
Le paramètre σ = 2 implique que l'état du LFSR aléatoire à l'instant t2 doit directement
être déduit de son état à l'instant t0. La dernière colonne du Tableau III.2 indique le
chaînage correspondant des bascules.
Chapitre III
76
Cette solution est peu coûteuse en termes de surface additionnelle car la modification du
LFSR nécessite seulement un petit nombre de portes XOR additionnelles (correspondant au
nombre de décalages requis) comparé à un LFSR standard. En effet, le nombre de portes
XOR est directement lié au nombre de décalages à effectuer. Ainsi, le nombre de portes XOR
permettant de réaliser le LFSR "aléatoire" est le suivant :
! Un polynôme caractéristique à 3 termes, dans le cas d'un LFSR standard, entraîne
l'utilisation d'une porte XOR. Ainsi, le coût en surface nécessaire à la modification
en LFSR "aléatoire" sera le suivant :
σNb_XOR = (III.11)
! Par contre, dans le cas d'un polynôme caractéristique à 5 termes, le coût en surface
sera plus important. En effet, un polynôme à 5 termes nécessite trois portes XOR
pour sa réalisation. Nous obtenons donc un coût en surface trois fois plus important :
σ x 3Nb_XOR = (III.12)
Ainsi, afin d'avoir un coût en surface additionnelle minimal, nous utiliserons pour nos
expérimentations des polynômes de LFSR uniquement à trois termes. De plus, la surface
additionnelle nécessaire à la réalisation d'un LFSR "aléatoire" dépend du nombre de bascules
car ce nombre est doublé (Équation III.8). Cependant, dans l'architecture de génération RSIC
proposée, le LFSR utilisé est de petite taille car nous ajoutons à ses sorties un module de
démultiplexage. Ainsi, le coût en surface engendrée par le doublement de la taille du LFSR ne
sera pas un handicap.
II.2.2 Le Transcodage
Le principe du transcodage est illustré sur la Figure III.8. Le transcodeur est constitué d'un
décodeur 1 parmi n, qui permet de transformer le vecteur R(l) vers un vecteur T(l). Ainsi, nous
obtenons Ti(l) = 1 et Tj(l) = 0 pour tout j ≠ i.
IMPLANTATION MATÉRIELLE DE SÉQUENCES RSIC
77
n bits
T(l). . . . . . . . .
DécodeurCode 1 parmi n
. . . . . . . . .
T1 Tn
V(l)x1 xn
CLKQ1 QkQm . . . . . . . . . . .. . . . . . . . . . .
Générateur (Pseudo) Aléatoire, k bits
. . . . . . . . . . . . .m bits R(l)
Figure III.8 : Transcodage de R(l) à V(l)
Ensuite, chaque bit du vecteur T(l) est appliqué aux entrées d'un ensemble de n bascules T.
Le schéma d'une telle bascule est présenté sur la Figure III.9.
CLK
Ti QiDi
Figure III.9 : Bascule T
A l'aide de cette bascule, nous obtenons les relations suivantes :
1)(lQ(l)Q ii −= si 01)(lTi =− (III.13)
1)(lQ(l)Q ii −= si 11)(lTi =− (III.14)
Donc, le vecteur de sortie V(l) diffère du vecteur V(l-1) uniquement d'une valeur xi.
A partir de cette structure, il faut donc poser un certain nombre de condition afin de définir
la valeur du paramètre m.
1. Si n = 2a, où a est un entier, alors m = a peut être choisi
2. Dans le cas plus général, 2a-1 < n < 2a. Dans ce cas, m ≥ a, c'est-à-dire,
m ≥ log2n . En pratique, nous considérerons que :
αnlogm 2 += (III.15)
avec α = 2 ou 3. Ces valeurs seront discutées dans la suite de ce chapitre.
Exemple III.2 : Considérons un circuit à 3 entrées. Ceci entraîne m = log23 + α. En
choisissant α = 2, nous obtenons m = 4. Il y a donc 24 = 16 valeurs possibles pour R(l)
Chapitre III
78
que nous notons R0,R1, …,R15. Le décodeur doit générer 3 sorties notées T1, T2 et T3. Il
faut donc répartir les 16 valeurs de R(l) afin d'obtenir des probabilités de commutation
équilibrées. Si nous associons 6 valeurs à T1 (T1 = R0 +R1 + R2 + R3 + R12 +R14) et 5
valeurs à T2 (T2 = R8 + R9 + R10 + R11 + R15) et à T3 (T3 = R4 + R5 + R6 + R7 + R13), les
probabilités de commutations sont donc les suivantes :
166change]Pr[x1 ≈ et
165change]Pr[xchange]Pr[x2 ≈= 3
Le choix des combinaisons entre les différentes valeurs de R(l) est obtenu par
optimisation à l'aide du tableau de Karnaugh présenté sur la Figure III.10.
0 0 0 1 1 1 1 0
0 0
0 1
1 1
1 0
T1 (6 valeurs)
T2 (5 valeurs)
T3 (5 valeurs)
Q1 Q2
Q3 Q4
Figure III.10 : Représentation sous forme de tableau de Karnaugh
du choix des valeurs de Ti
Ainsi, nous obtenons les équations suivantes pour trois valeurs de Ti :
432431 .Q.QQQ.QT +=
421432 .Q.QQ.QQT +=
321433 .QQ.QQ.QT +=
La réalisation matérielle du décodeur, pour les valeurs de n et m citées ci-dessus, est
représentée sur la Figure III.11. Ce schéma est complété par le registre de bascules T.
IMPLANTATION MATÉRIELLE DE SÉQUENCES RSIC
79
T1 T2 T3
x1 x2 x3 V(l)
T(l)
R(l)
CLK
Q1 Q2 Q3 Q4
Figure III.11 : Exemple de décodeur pour n = 3 et m = 4
Il est à noter que la probabilité d'obtenir le vecteur R0 (sachant que R0 = 0 0 0 0) est
inférieure aux probabilités d'obtenir les autres valeurs (de R1 à R15). Afin d'équilibrer au
mieux les probabilités de commutation, R0 est associé à T1 car c'est l'entrée x1 qui a la
plus forte probabilité de commutation (166change]Pr[x1 ≈ ).
II.2.3 Période de la Séquence de Test
La période de la séquence de test générée par la structure va nous permettre de définir la
valeur de k, c'est-à-dire la taille du LFSR. Comme défini au début de ce chapitre (Définition
III.1), la période d'un LFSR de degré k est 2k-1. Nous allons montrer que la période de la
séquence RSIC générée par la structure est :
1)(2 x 2L k −= (III.16)
En d'autre terme, la période de la séquence RSIC correspond au double de la période du
LFSR utilisé.
Démonstration III.1 [Davi01b]: La démonstration de l'Équation III.16 est faite en deux
parties. Dans un premier temps, nous montrerons que l'état du générateur RSIC est le
Chapitre III
80
même à l'instant l = 0 et l = 2x(2k-1). Ensuite, nous démontrerons qu'il n'y a pas de
période plus courte entre ces deux valeurs.
1. L'état du générateur est obtenu à partir de l'état du LFSR mais aussi de l'état
des bascules T. Notons Ni le nombre de changements d'une entrée du circuit
xi entre l'instant l = 0 et l = 2k-1. Comme la période de la séquence générée
par le LFSR est 2k-1, l'entrée xi du circuit change Ni fois entre l = 2k–1 et
l = 2 x (2k–1) car la séquence est la même. Donc, entre l = 0 et l = 2 x (2k-1)
l'entrée xi change 2 x Ni. Ainsi, le nombre de changements effectué sur
l'entrée xi est un nombre pair. Ceci nous permet de conclure que l'état initial
à l = 0 est le même que celui obtenu à l = 2 x (2k-1).
2. Afin de démontrer qu'il n'existe pas de période plus courte, nous allons
considérer le cas ou n = 2m. Considérons, à partir de la Figure III.12, que
Ti = Ri pour i ≠ n et Tn = R0. Ainsi, entre l = 0 et l = 2 x (2k-1), il y a
(propriété 10.2 [Davi98]) :
A2 x 2N x 2 mki == − changements de xi pour i ≠ n et (III.17)
2-A(2 x 2N x 2 mki =−= − )1 changements de xn (III.18)
De plus, considérons que la période de la séquence de test est 2 x (2k–1) / d
et notons Ni(d) le nombre de changements d'une entrée xi du circuit pendant
une période. A partir des Équations III.17 et III.18, nous obtenons la relation
suivante :
dA(d)Ni = pour i ≠ n et
d2-A(d)Nn = (III.19)
A partir de ces deux dernières équations nous pouvons déduire que :
d2(d)N-(d)N ni = (III.20)
Dans une période de test, Ni(d) et Nn(d) sont des nombres pairs. Ainsi,
l'Équation III.20 est vraie uniquement si d = 1. Dans ce cas, il n'existe donc
pas de période plus courte que 2 x (2k-1).
Finalement, la taille du LFSR est obtenue par l'équation suivante :
1)2L(log k 2 +≥ (III.21)
IMPLANTATION MATÉRIELLE DE SÉQUENCES RSIC
81
II.3 Bilan des Contraintes
Finalement, pour que la structure matérielle produise une séquence SIC ayant de "bonnes
propriétés aléatoires", elle doit respecter les contraintes suivantes :
! Le polynôme du LFSR est primitif (à 3 termes) de degré k tel que :
1)2L(log k 2 +≥ ,
! Le nombre de bit m utilisé sur le LFSR doit être le suivant :
m = log2n + α avec α ≥ 0,
! Le nombre de décalage σ sur le LFSR, afin d'obtenir une génération de
vecteurs non corrélés, doit satisfaire les relations suivantes :
m ≤ σ ≤ 2k-1-m et σ et 2k-1 premiers entre eux,
! Finalement, le décodeur doit être réaliser de manière à obtenir des
probabilités de commutation quasiment identique sur chaque entrée du
circuit :
bj, le nombre de bits associé à Tj tel que : 1bminbmax jiji≤− .
Nous analyserons, dans le chapitre suivant, l'importance de chacune de ces contraintes afin
de voir s'il est possible d'en relâcher certaines pour minimiser le coût en surface engendrée par
la structure sans trop nuire à la qualité de la séquence générée.
Chapitre III
82
CONCLUSION
Dans ce chapitre nous avons abordé l'implantation matérielle de la séquence de test RSIC.
Dans un premier temps, nous avons exposé les principes du test intégré et plus
particulièrement les notions du test pseudo-aléatoire réalisé à partir du LFSR.
La deuxième partie de ce chapitre a été consacrée à la structure de génération RSIC. Après
les principes du générateur, nous avons détaillé tour à tour les contraintes nécessaires à la
génération d'une séquence de vecteurs aléatoires. Ceci nous a permis d'introduire le LFSR
"aléatoire" [Davi98]. La structure présentée permet de résoudre les problèmes dus à la
structure des LFSRs standards qui sont généralement dus à la corrélation entre vecteurs.
A la fin de ce chapitre, nous avons exposé les contraintes nécessaires à la réalisation de
cette structure de génération intégrée. Il nous reste maintenant à valider et éventuellement
optimiser cette structure.
83
Chapitre IVChapitre IVChapitre IVChapitre IV
VVAALLIIDDAATTIIOONNSS EETT OOPPTTIIMMIISSAATTIIOONNSSDDEE LLAA SSTTRRUUCCTTUURREE
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
85
Chapitre IV VALIDATIONS ET OPTIMISATIONS
DE LA STRUCTURE
INTRODUCTION
Dans ce chapitre nous allons analyser les caractéristiques de la structure de génération
RSIC présentée dans le chapitre précédent afin de tenter de l'optimiser.
Dans un premier temps, nous analyserons les performances des séquences générées par
cette structure en termes de couverture de fautes.
Dans la deuxième partie de ce chapitre, nous analyserons les contraintes liées à cette
structure. Nous tenterons ainsi de définir si certaines d'entre elles peuvent être relâchées afin
de réduire la surface nécessaire à l'implantation du générateur, sans toutefois nuire à la qualité
des séquences générées.
Après avoir exposé les principes de l'optimisation structurelle utilisée qui est basée sur la
recherche des entrées compatibles, la dernière partie sera consacrée à l'évaluation en surface
de ce générateur.
Chapitre IV
86
I VALIDATION DE LA STRUCTURE
Afin de valider la structure de génération présentée dans le Chapitre III ainsi que les
différentes contraintes nécessaires à sa réalisation, nous allons comparer les séquences de test
générées par cette structure à celles obtenues de manière logicielle (Chapitre II). Afin de
faciliter les notations, nous appellerons RSICS les séquences obtenues de manière logicielles
et RSICH celles générées avec la structure présentée.
Comme précédemment, nous avons effectué ces comparaisons sur le circuit s382. Le
générateur RSICH1, spécifique à ce circuit, est défini à partir des contraintes suivantes :
! le polynôme du LFSR est primitif de degré k tel que 1)2L(logk 2 +≥ ,
! m = log2n + α avec α =2 ou 3,
! m ≤ σ ≤ 2k-1-m et σ et 2k-1 premiers entre eux,
! bj, le nombre de bit associé à Tj tel que : 1bminbmax jiji≤− .
Ce circuit possède 24 entrées (n = 24). La longueur de la séquence de test est de 1000000
vecteurs ce qui implique k ≥ 19 (Équation III.18). Comme σ et 2k-1 doivent être premiers entre
eux (Équation III.7) et que le polynôme du LFSR doit être constitué de trois termes (coût
minimal en surface), alors la plus petite valeur de k est 23. Ainsi, le générateur RSIC pour ce
circuit, est défini de la manière suivante :
RSICH1 :
! le polynôme du LFSR est x23 ⊕ x5 ⊕ 1,
! m = log2n + α = 7 pour α = 2,
! σ = m = 7,
! le nombre de bits associé à Ti est 6 pour i = 1 à 8 et 5 pour i = 9 à 24.
I.1 Comparaison de l'Efficacité Robuste
Les comparaisons sont basées sur un ensemble de 15 expérimentations. Chaque
expérimentation correspond à un état initial différent. Le Tableau IV.1 présente les résultats
obtenus en termes d'efficacité robuste. Les résultats obtenus avec les séquences RSICS sont
numérotés de S1 à S15 (Tableau IV.1.a) et de S16 à S30 pour la génération RSICH1 (Tableau
IV.1.b). De plus, sur chaque tableau, la première colonne indique le nombre de vecteurs
appliqué et la dernière, la valeur moyenne des 15 expérimentations effectuées.
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
87
Efficacité Robuste - RSICS
# vecteurs S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 Moyenne
10 1,27 2,13 2,41 1,27 1,99 1,56 2,41 1,99 3,13 2,41 2,56 1,84 3,69 2,41 0,42 2,10
100 19,60 12,65 13,35 9,94 9,24 6,82 14,35 12,36 14,64 10,51 13,64 14,20 17,76 14,92 11,80 13,05
349 29,11 22,16 23,01 23,72 24,72 25,28 25,70 28,98 37,36 24,57 26,84 28,83 32,24 27,56 36,22 27,75
699 34,80 29,68 37,36 30,82 32,95 36,51 37,78 43,61 44,47 32,95 38,50 35,65 42,61 45,32 47,31 38,02
1398 48,44 47,31 52,84 47,44 44,32 48,16 50,85 52,70 53,98 45,17 49,58 53,98 55,68 55,68 53,27 50,63
2796 60,66 65,20 66,76 59,81 60,80 62,36 61,93 62,65 61,80 57,53 61,23 65,20 65,20 70,60 62,50 62,95
6990 74,72 80,40 77,27 73,86 75,14 73,86 75,14 75,99 77,27 71,59 77,41 77,13 74,43 77,98 75,57 75,85
13980 80,25 86,08 85,65 81,39 81,39 81,67 82,52 82,52 82,39 82,81 83,81 82,39 81,95 83,52 84,51 82,86
27960 84,66 87,78 87,35 86,93 87,07 86,93 85,65 85,23 86,22 86,65 87,22 87,64 86,08 86,65 87,22 86,62
69900 87,78 89,49 89,91 88,92 88,92 88,49 88,64 88,07 88,35 88,77 89,20 89,20 88,92 88,92 88,77 88,82
139800 88,64 90,06 90,63 88,92 90,06 89,06 89,34 88,64 88,77 89,49 90,76 90,19 89,77 89,49 89,06 89,52
1000000 88,92 90,06 90,63 89,20 90,06 89,34 89,49 88,92 88,92 89,91 90,76 90,19 89,91 89,49 89,06 89,66
Efficacité Robuste – RSICH1
# vecteurs S16 S17 S18 S19 S20 S21 S22 S23 S24 S25 S26 S27 S28 S29 S30 Moyenne
10 1,14 3,13 2,13 2,27 3,13 1,99 2,56 1,42 1,42 2,69 1,56 1,84 1,99 1,84 2,27 2,09
100 4,55 18,32 14,20 18,32 16,63 5,82 6,53 4,83 5,53 6,53 5,68 5,68 5,82 5,82 5,68 8,66
349 27,98 26,70 25,14 28,98 26,84 27,41 26,70 26,99 25,99 30,40 28,69 26,27 28,41 22,58 27,56 27,11
699 36,22 38,78 37,78 43,61 42,61 36,22 37,50 35,36 36,36 38,22 39,49 36,22 37,22 32,81 36,22 37,64
1398 45,32 53,84 49,15 56,11 54,41 50,28 48,86 45,17 46,88 50,72 51,28 47,16 46,31 48,30 51,70 49,70
2796 58,67 63,35 60,23 64,92 63,92 64,35 59,09 57,25 62,08 57,95 61,08 65,63 62,36 59,94 63,50 61,62
6990 72,86 74,57 75,57 77,69 75,42 75,42 75,70 74,15 75,99 74,72 72,59 75,28 76,27 75,85 75,70 75,19
13980 81,10 81,10 83,81 86,78 81,95 82,24 81,25 82,24 82,10 83,38 80,97 82,24 82,24 81,53 81,10 82,27
27960 85,51 85,36 87,35 89,20 85,08 86,93 84,51 85,36 85,65 86,65 86,93 86,36 88,49 86,93 85,36 86,38
69900 89,77 88,92 89,77 90,19 87,92 89,91 87,64 89,63 88,07 89,91 89,49 87,92 90,63 88,77 89,20 89,18
139800 90,63 89,34 90,76 90,91 88,77 90,63 88,20 90,63 89,49 90,76 90,19 90,06 90,63 88,92 89,77 89,98
1000000 90,63 89,34 90,76 90,91 89,34 91,05 88,77 90,63 89,49 90,76 90,48 90,48 90,91 89,49 90,06 90,21
a)
b)
Tableau IV.1 : Validation de la structure pour un test robuste
a) RSICS et b) RSICH1
L'ensemble des résultats du Tableau IV.1 est illustré par les Courbes IV.1.a pour les
séquences RSICS et IV.1.b pour la génération RSICH1. Ces courbes montrent que la différence
entre les deux générations utilisées n'est pas visible pour une séquence de test longue. En
effet, l'état initial influe principalement sur le début des séquences de test.
Chapitre IV
88
s386
0
20
40
60
80
100
10 100 1000 10000 100000 1000000#vecteurs
Eff %
RSIC
a)
s386
0
20
40
60
80
100
10 100 1000 10000 100000 1000000#vecteurs
Eff %
RSIC
b)
RSICS
RSICH1
Courbe IV.1 : Illustration des résultats robuste a) RSICS et b) RSICH1
La Figure IV.1 présente une analyse plus détaillée pour deux longueurs de test (L = 139800
et 1000000 vecteurs). La première longueur de test utilisée correspond à 100*Ld_ATPG
(L = 139800) qui est la valeur utilisée pour l'ensemble de nos expérimentations. La deuxième
longueur de test (L = 1000000) permet en plus de montrer qu'il y a peu d'évolution des
efficacités robustes de par l'augmentation de la longueur de la séquence de test.
Sur cette figure, l'axe des abscisses correspond aux valeurs des efficacités robustes
obtenues à partir des expérimentations effectuées. Ces valeurs d'efficacité sont indiquées par
tranche de 1%. Par exemple, nous pouvons déterminer combien de séquences de test (parmi
les 15 expérimentations effectuées) permettent d'obtenir une efficacité robuste comprise entre
88 % et 89 % si la longueur de la séquence est de 139800 vecteurs. Dans ce cas, la réponse est
4 pour la génération RSICS (expérimentations S1, S4, S8 et S9) et 3 pour la génération
RSICH1 (expérimentations S20, S22 et S29). De plus, le nombre de fautes non testées en
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
89
robuste est compris entre 78 et 84. La même interprétation peut être effectuée pour une
longueur de test de 1000000 vecteurs. Dans ce cas, 3 séquences RSICS (S1, S8 et S9) et 1
séquence RSICH1 (S2) permettent d'obtenir une efficacité comprise entre 88 % et 89 %.
# séquences
139 800
1 000 000
L
Efficacité Robuste %# fautes non détectées(parmi les 704 testables en robuste)
2
4
6
8
0< 88 88-89 89-90 90-91 91-92 > 92
> 84 78-84 71-77 64-70 57-65 < 57
RSICS
RSICH1
Figure IV.1 : Comparaison RSICS et RSICH1 en robuste pour deux longueurs
de la séquence de test
De plus, l'efficacité robuste est comprise entre 88 % et 91 % pour toutes les séquences de
test (RSICS et RSICH1) pour une longueur de test de 139800 vecteurs. Par contre, si
L = 1000000 l'efficacité robuste est comprise entre 88 % et 92 % pour la génération RSICH1.
En conclusion, nous pouvons dire que ces comparaisons montrent que les résultats obtenus
par les générations logicielle (RSICS) et matérielle (RSICH1) sont quasiment identiques en
termes d'efficacité robuste.
I.2 Comparaison de l'Efficacité Non-Robuste
De manière similaire aux comparaisons effectuées pour le test robuste, les Tableaux IV.2 et
les Courbes IV.2 présentent les résultats obtenus en termes d'efficacité non-robuste.
Chapitre IV
90
Efficacité Non-Robuste - RSICS
# vecteurs S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 Moyenne
10 1,09 3,40 2,31 2,58 3,27 1,91 2,58 1,36 1,36 2,86 1,63 1,77 1,91 2,18 2,31 2,17
100 4,49 19,89 14,99 18,80 17,71 5,72 6,67 4,63 5,99 6,54 5,85 5,99 5,58 6,13 5,58 8,97
349 29,01 28,88 26,70 30,38 28,74 29,29 29,43 28,20 26,83 32,83 30,79 27,65 29,97 24,25 29,56 28,83
699 39,11 41,69 39,92 47,28 45,92 37,87 41,42 37,60 38,29 41,69 42,92 37,47 39,24 35,29 38,42 40,28
1398 48,37 58,72 52,73 60,49 58,18 54,22 53,55 48,23 50,14 55,18 56,40 50,82 49,46 53,13 56,27 53,73
2796 63,08 69,08 64,85 70,57 69,21 69,48 64,58 62,27 68,12 63,22 67,03 71,79 67,72 66,08 69,62 67,11
6990 79,69 82,56 83,11 85,01 83,38 82,69 84,74 80,93 84,05 81,47 79,69 82,96 83,92 83,51 83,65 82,76
13980 89,65 90,46 91,96 95,37 90,74 90,46 92,10 90,74 91,41 91,68 90,46 91,28 91,14 90,05 90,19 91,18
27960 94,82 95,37 96,59 98,22 95,37 95,77 95,77 94,68 95,64 95,50 96,32 95,77 97,55 96,86 94,82 95,94
69900 99,04 99,46 99,04 99,31 98,64 98,91 98,91 99,04 98,50 99,18 99,04 97,55 99,59 99,18 99,18 98,97
139800 99,86 99,86 100 100 99,46 99,59 99,46 100 100 100 99,73 99,59 99,59 99,31 99,73 99,74
1000000 99,86 99,86 100 100 100 100 100 100 100 100 100 100 100 99,86 100 99,97
Efficacité Non-Robuste – RSICH1
# vecteurs S16 S17 S18 S19 S20 S21 S22 S23 S24 S25 S26 S27 S28 S29 S30 Moyenne
10 1,22 2,18 2,58 1,22 2,04 1,49 2,58 2,18 3,54 2,31 2,86 1,77 4,49 2,45 0,40 2,22
100 22,47 12,81 13,62 10,22 9,26 7,22 16,08 12,81 15,13 11,17 14,58 14,58 20,16 15,67 12,81 13,91
349 33,65 22,75 23,43 24,65 26,02 26,56 28,47 31,19 40,60 26,29 29,01 29,97 35,84 29,70 39,24 29,82
699 39,65 31,06 39,65 32,70 34,60 38,83 42,10 46,74 47,96 35,69 41,56 38,15 47,14 48,92 51,77 41,10
1398 53,95 49,73 57,09 52,19 46,59 51,64 56,27 58,04 59,00 48,92 53,41 58,04 61,58 60,36 57,91 54,98
2796 67,57 70,30 72,48 65,94 65,54 67,99 67,99 70,03 67,99 62,67 66,08 70,43 71,93 77,38 67,72 68,80
6990 84,33 88,28 84,74 81,74 82,96 82,56 83,92 85,56 86,10 80,11 84,87 84,60 82,02 86,51 84,20 84,17
13980 90,74 95,23 94,68 90,74 90,19 91,28 93,05 93,05 91,96 92,10 92,37 90,87 91,28 93,19 94,28 92,33
27960 95,64 97,55 96,59 97,55 96,86 97,13 96,04 95,91 97,00 96,32 96,46 97,28 96,19 96,73 97,82 96,74
69900 98,77 99,31 99,18 99,73 98,77 99,18 99,18 99,04 99,46 98,77 98,50 98,91 99,04 99,46 99,59 99,13
139800 99,73 99,86 100 99,73 99,86 99,73 99,86 99,59 99,86 99,46 100 99,86 99,86 100 99,86 99,82
1000000 100 99,86 100 100 99,86 100 100 100 100 99,86 100 99,86 100 100 99,86 99,95
a)
b)
Tableau IV.2 : Validation de la structure pour un test non-robuste
a) RSICS et b) RSICH1
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
91
s386
0
20
40
60
80
100
10 100 1000 10000 100000 1000000#vecteurs
Eff %
RSIC
a)
s386
0
20
40
60
80
100
10 100 1000 10000 100000 1000000#vecteurs
Eff %
RSIC
b)
RSICS
RSICH1
Courbe IV.2 : Illustration des résultats non-robuste a) RSICS et b) RSICH1
La Figure IV.2 présente des comparaisons pour deux longueurs des séquences de test.
L'efficacité non-robuste est comprise entre 99,3 % et 100 % quelles que soient les séquences
de test (RSICS et RSICH1) pour L =139800 vecteurs. Si la longueur des séquences de test est
de 1000000 de vecteurs, alors, l'efficacité non-robuste est comprise entre 99,7 % et 100 %. Le
choix de ces deux longueurs de séquences de test est identique aux comparaisons effectuées
précédemment sur l'efficacité robuste.
Chapitre IV
92
139 800
1 000 000
L
Efficacité Non-Robuste %# fautes non détectées(parmi les 734 testable en Non-Robuste)
2
4
6
8
0< 99.3 99.3-.5 99.5-.7 99.7-.9 > 99.9
> 5 4 or 5 3 1 or 2 0
RSICS
RSICH1
# séquences
10
12
Figure IV.2 : Comparaison RSICS et RSICH1 en non-robuste
pour deux longueurs de la séquence de test
Ainsi, à partir des différentes comparaisons effectuées pour des tests robustes et non-
robustes, nous pouvons conclure que la génération matérielle RSICH1 est aussi efficace que la
génération logicielle RSICS. A partir de maintenant, le générateur RSICH1 servira de base de
comparaison afin de minimiser, une à une, les contraintes.
II OPTIMISATIONS DE LA STRUCTURE
Dans cette partie, nous allons étudier l'influence des différentes contraintes et paramètres
du générateur :
! taille du LFSR : k,
! équilibre des probabilités de commutation : α,
! décalage multiple sur le LFSR : σ.
afin de montrer leur importance relative dans le but d'optimiser la structure en termes de
surface additionnelle sans dégrader l'efficacité des séquences de test.
II.1 Étude du Paramètre k – Taille du LFSR
La première modification des contraintes consiste à diminuer la taille du LFSR. Ainsi,
nous considérerons un générateur RSICH2 identique au générateur RSICH
1 sauf pour ce qui est
de la taille k du LFSR utilisé. Ce générateur est défini de la manière suivante :
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
93
RSICH2 :
! LFSR de degré k = 11 avec le polynôme suivant x11 ⊕ x2 ⊕ 1,
! m = log2n + α = 7 pour α = 2,
! σ = m = 7,
! le nombre de bit associé à Ti est 6 pour i = 1 à 8 et 5 pour i = 9 à 24.
Avec ce polynôme, la période de la séquence de test sera plus courte. En effet, à l'aide de
l'Équation III.16 du Chapitre III nous obtenons la période suivante :
4094)1(2 x 2 1)(2 x 2L 11k =−=−=
Le Tableau IV.3 présente les résultats obtenus pour différentes longueurs de test en termes
d'efficacité robuste et non-robuste. Les évolutions obtenues avec les générateurs RSICH1 et
RSICH2, présentées sur la Courbe IV.3, montrent une saturation dans l'évolution de la
couverture de faute aux alentours du 4000ième vecteur.
RSICH1 RSICH
2
# vecteurs Eff R % Eff NR % Eff R % Eff NR %10 1,14 1,09 2,98 3,13100 4,55 1,22 16,91 18,11349 27,98 29,01 26,27 28,34699 36,22 39,11 33,24 35,841398 45,32 48,37 49,86 54,372796 58,67 63,08 55,82 61,496990 72,86 79,69 57,82 63,4913980 81,1 89,65 57,82 63,4927960 85,51 94,82 57,82 63,4969900 89,77 99,04 57,82 63,49139800 90,63 99,86 57,82 63,491000000 90,63 99,86 57,82 63,49
Tableau IV.3 : Comparaisons RSICH1 et RSICH
2
Chapitre IV
94
s386
0
20
40
60
80
100
10 100 1000 10000 100000 1000000#vecteurs
Eff %
RSICH1
RSICH2
R
NRR
NR
Courbe IV.3 : Évolutions des générations RSICH1 et RSICH
2
A partir de ces résultats sur les efficacités robustes et non-robustes obtenues, nous pouvons
ainsi valider le choix du degré du LFSR à utiliser. En effet, si le degré du LFSR ne satisfait
pas l'équation suivante :
1)2L(log k 2 +≥
les qualités de détection des fautes de la séquence de test seront dégradées de par la
diminution de la période.
II.2 Étude du Paramètre αααα - Équilibre des Probabilités de Commutation
Le paramètre α du générateur RSICH idéal permet d'obtenir, sur les entrées du circuit sous
test, des probabilités de commutations quasi-identiques. Afin d'étudier l'influence de ce
paramètre, nous l'avons fait varier. A titre d'exemple, nous présentons les résultats obtenus
avec un générateur (RSICH3) dont les paramètres sont identiques au générateur RSICH
1 mise à
part la valeur de α permettant de déséquilibrer les probabilités de transitions. Ce générateur
est défini de la manière suivante :
RSICH3 :
! le polynôme du LFSR est x29 ⊕ x2 ⊕ 1,
! m = log2n + α = 14 pour α = 9,
! σ = m = 14,
! le nombre de bits associé à Ti est 1365 pour i = 1 à 4, 1364 pour i = 5 à
12 et 1 pour i = 13 à 24.
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
95
Ainsi, les probabilités de changement des sorties x13 à x24 sont beaucoup plus faibles que
celles des sorties x1 à x12. Il est à noter que, pour ce générateur, nous avons aussi modifié le
degré k du LFSR afin de satisfaire l'Équation III.8 du Chapitre III, c'est-à-dire :
12m k +≥
Le Tableau IV.4 présente les résultats obtenus pour différentes longueurs de test en termes
d'efficacité robuste et non-robuste.
RSICH1 RSICH
3
# vecteurs Eff R % Eff NR % Eff R % Eff NR %10 1,14 1,09 1,14 1,09100 4,55 1,22 5,68 5,85349 27,98 29,01 6,12 6,62699 36,22 39,11 6,12 6,621398 45,32 48,37 6,12 6,622796 58,67 63,08 6,12 6,626990 72,86 79,69 10,5 11,513980 81,1 89,65 14,13 15,527960 85,51 94,82 20,5 23,8769900 89,77 99,04 25,5 29,75139800 90,63 99,86 44,25 52,41000000 90,63 99,86 73,27 83,65
Tableau IV.4 : Comparaisons RSICH1 et RSICH
3
Les évolutions obtenues avec les générateurs RSICH1 et RSICH
3, sont présentées sur la
Courbe IV.4.
s386
0
20
40
60
80
100
10 100 1000 10000 100000 1000000#vecteurs
Eff %
RSICH1
RSICH3
R
NR
RNR
Courbe IV.4 : Évolutions des générations RSICH1 et RSICH
3
Chapitre IV
96
Ces valeurs mettent évidence la relative inefficacité de la génération RSICH3. Ce
phénomène s'explique de la manière suivante. Notons ρ :
min ncommutatio de éProbabilitmax ncommutatio de éProbabilitρ = (IV.1)
le rapport des probabilités de commutation d'une séquence de test. Le cas idéal correspond à ρ
= 1. Dans ce cas, les probabilités de commutations de chaque entrée du circuit sont
équilibrées. Par contre, dans le cas du générateur RSICH3, ce rapport est grand puisque ρ =
1365. Ce fort déséquilibre entre les probabilités de commutation dégrade donc l'efficacité de
la séquence de test obtenue par ce générateur.
Le cas du générateur RSICH3 est bien sûr un cas extrême. Nous allons donc montrer qu'un
faible déséquilibre entre les probabilités de commutation n'aura qu'un faible impact sur la
qualité de la séquence de test. En effet, si nous considérons maintenant que m = log2n , un
rapport de 1, entre les probabilités de commutation, peut être obtenu uniquement si n est une
puissance de 2. Sinon, la valeur minimale est ρ = 2. Ainsi, nous définissons le générateur
RSICH4 de la manière suivante :
RSICH4 :
! le polynôme du LFSR est x23 ⊕ x5 ⊕ 1.
! m = log2n + α = 5 pour α = 0,
! σ = m = 5.
! le nombre de bits associé à Ti est 2 pour i = 1 à 8 et 1 pour i = 9 à 24.
Pour ce générateur, le rapport des probabilités de commutation est ρ = 2. Le Tableau IV.5
présente les comparaisons, en termes d'efficacité robuste (Eff R %) et non-robuste (Eff NR %),
des générations RSICH1 et RSICH
4 pour différentes longueurs de test. Ces valeurs sont
représentées, sous forme graphique, sur la Courbe IV.5.
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
97
RSICH1 RSICH
4
# vecteurs Eff R % Eff NR % Eff R % Eff NR %10 1,14 1,09 3,83 4,09100 4,55 1,22 13,92 17,44349 27,98 29,01 22,01 26,7699 36,22 39,11 34,38 36,241398 45,32 48,37 45,74 50,142796 58,67 63,08 58,52 62,546990 72,86 79,69 75,42 77,11
13980 81,1 89,65 83,38 87,4727960 85,51 94,82 86,5 93,5969900 89,77 99,04 89,06 98,5139800 90,63 99,86 90,63 99,731000000 90,63 99,86 90,63 100
Tableau IV.5 : Comparaisons RSICH1 et RSICH
4
s386
0
20
40
60
80
100
10 100 1000 10000 100000 1000000#vecteurs
Eff %
RSICH1 Eff R %
RSICH1 Eff NR %
RSICH4 Eff R %
RSICH4 Eff NR %
Courbe IV.5 : Évolutions des générations RSICH1 et RSICH
4
Au vu de ces résultats, nous pouvons donc conclure que l'Équation III.15 du Chapitre III,
c'est-à-dire :
αnlogm 2 +=
peut être améliorée afin d'obtenir un coût en surface additionnelle réduit. Finalement, dans la
suite, nous prendrons comme valeur de m :
nlogm 2= (IV.2)
Chapitre IV
98
afin d'obtenir ρ = 1 ou 2 suivant la valeur de n. C'est donc le générateur RSICH4 qui servira de
base pour les comparaisons et analyses suivantes.
A titre d'illustration, nous avons repris l'exemple de la Figure III.11. Ainsi, avec les
nouvelles contraintes du générateur RSICH4, le décodeur obtenu est présenté sur la Figure
IV.3. Dans ce cas, la surface nécessaire à l'implantation du décodeur est beaucoup moins
importante.
T1
x1 x2 x3
V(l)
T(l)
R(l)
CLK
Q1 Q2
T2 T3
Figure IV.3 : Exemple de décodeur pour n = 3 et m = 2
II.3 Étude du Paramètre σσσσ - Décalage Multiple sur le LFSR
Dans cette dernière partie, nous allons nous intéresser au paramètre σ de décalage du
LFSR. Jusqu'à présent, les différents générateurs étudiés utilisaient une valeur de σ = m. Pour
démonter l'impact de ce paramètre sur les qualités de la génération, nous utilisons le
générateur RSICH5 pour lequel uniquement le paramètre σ = 1 diffère du générateur RSICH
4.
Ce générateur est défini de la manière suivante :
RSICH5 :
! le polynôme du LFSR est x23 ⊕ x5 ⊕ 1.
! m = log2n + α = 5 pour α = 0,
! σ = 1.
! le nombre de bit associé à Ti est 2 pour i = 1 à 8 et 1 pour i = 9 à 24.
Ce générateur est comparé au générateur RSICH4 sur un ensemble de circuits de la famille
ISCAS'89 [Brgl89]. Les résultats comparatifs sont présentés sur le Tableau IV.6. Après le
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
99
nom des circuits ainsi que leur nombre d'entrées (n), la colonne (# vecteurs) indique les
longueurs de séquences de test utilisées. Ces longueurs de test correspondent à celles utilisées
dans les chapitres précédents (100*Ld_ATPG). La colonne m indique le nombre de bits du
LFSR utilisé pour chaque circuit. Il est à noter que nous avons utilisé un LFSR de degré k =
23, identique pour chaque circuit, avec comme polynôme primitif
x23 ⊕ x5 ⊕ 1. Ensuite, pour chaque génération, les résultats sont exprimés en termes
d'efficacité robuste (Eff R %) et non-robuste (Eff NR %).
RSICH4 RSICH
5
Circuit n # vecteurs m Eff R % Eff NR % Eff R % Eff NR %
s298 17 68800 5 91,76 100 90,05 98,9s382 24 139800 5 90,63 99,73 90,06 99,59s386 13 73600 4 98,79 100 82,13 83,33s420 35 132200 6 66,42 68,48 65,84 67,01s510 25 136600 5 91,4 100 89,36 98,98s526 24 139600 5 92,09 97,64 93,09 97,64s641 54 277800 6 76,56 80,6 78,57 82,26s713 54 441800 6 84,69 83,84 85,18 85,46
s1238 32 499200 5 88,79 97 89,03 95,46s1494 14 351800 4 93,43 100 73,61 78,73
Tableau IV.6 : Comparaisons RSICH4 et RSICH
5
L'ensemble de ces résultats est représenté sur la Courbe IV.6, pour les efficacités robustes
et sur la Courbe IV.7 pour les efficacités non-robustes.
0
20
40
60
80
100
s298
s382
s386
s420
s510
s526
s641
s713
s123
8s1
494
circuits
Eff %
RSICH4
RSICH5
RSICH4
RSICH5
Courbe IV.6 : Comparaisons RSICH4 et RSICH
5 pour un test robuste
Chapitre IV
100
0
20
40
60
80
100
s298
s382
s386
s420
s510
s526
s641
s713
s123
8s1
494
circuits
Eff %
RSICH4
RSICH5
RSICH4
RSICH5
Courbe IV.7 : Comparaisons RSICH4 et RSICH
5 pour un test non-robuste
Les résultats obtenus avec la génération RSICH5 sont très proches de ceux obtenus avec la
génération RSICH4. Cependant, pour deux circuits (s386 et s1494), nous obtenons des résultats
inférieurs de l'ordre de 15 à 20 %. Afin d'analyser les problèmes rencontrés pour ces deux
circuits, nous avons calculé la probabilité suivante :
t(l)]λ)Pr[t(l =+ (IV.3)
comme étant la probabilité qu'une transition effectuée à l'instant l se reproduise à l'instant l+λ.
Le calcul de cette probabilité, en fonction de σ (nombre de décalages sur le LFSR) mais aussi
de n (nombre d'entrées du circuit sous test) est détaillé dans l'Annexe III. A partir des formules
présentées dans cette annexe nous pouvons donner deux résultats importants correspondant à
λ = 2 :
! pour σ = 1 :
41t(l)])Pr[t(l ==+ 2 (IV.4)
! pour σ = m :
2n 1t(l)])Pr[t(l ==+ 2 (IV.5)
A l'aide des Équations IV.4 et IV.5, nous pouvons conclure sur l'intérêt du choix σ = m. En
effet, quand σ = m la probabilité de refaire la transition est inversement proportionnelle au
carré du nombre d'entrées. De plus, ce résultat correspond à la définition théorique d'une
séquence RSIC (Équation II.4 du Chapitre II). Par contre, si σ = 1 la probabilité est constante
et égale à 1/4.
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
101
Ces deux équations nous permettent donc de justifier l'utilisation de σ = m afin de ne pas
dégrader les qualités aléatoires de la séquence de test. De plus, comme précisé précédemment,
le coût en surface engendré par ce choix reste faible car il correspond seulement à l'ajout de
quelques portes XOR.
II.4 Bilan de l'Étude des Paramètres
Les différents essais sur les paramètres du générateur de départ permettent de définir les
degrés de liberté que nous pouvons nous octroyer afin d'optimiser la surface du générateur. En
utilisant une valeur de m (correspondant au nombre de bits utilisé sur le LFSR) minimale
(Équation IV.2) nous réduisons ainsi la taille du transcodeur. Nous pouvons définir les
contraintes finales du générateur RSIC matériel de la manière suivante :
! le polynôme du LFSR est primitif (à 3 termes) de degré k tel que :
k ≥ 2m+1 et 1)2L(log k 2 +≥
! m = log2n
! σ = m
! bi, le nombre de bits associé à Ti tel que bi = 1 ou 2.
L'ensemble de ces contraintes correspond donc à une implantation de coût minimal. La
modification de l'une d'entre elles aura bien sûr pour effet de diminuer la surface additionnelle
du générateur mais au détriment de l'efficacité de la séquence de test générée.
III OPTIMISATION DU GÉNÉRATEUR EN FONCTIONDE LA STRUCTURE DU CIRCUIT
Après avoir montré l'influence des paramètres du générateur RSIC, nous nous sommes
intéressé à un autre type d'optimisation. Cette dernière dépend de la structure du circuit sous
test. En effet, en analysant les caractéristiques structurelles des circuits, nous pouvons
transformer une séquence SIC en une séquence pseudo-SIC. Cette notion est définie de la
manière suivante :
Définition IV.1 : Considérons un circuit sous test avec une entrée Ii
appartenant au cône de la sortie O et une entrée Ij n’appartenant pas au
cône de cette même sortie. Une paire de vecteurs SIC (V0, V1) teste un
chemin P de Ii vers O de manière robuste. Ce chemin est aussi testé de
manière robuste par une autre paire de vecteurs MIC (V0’, V1’) qui diffère
Chapitre IV
102
de (V0, V1) seulement par le jéme bit. Dans ce cas, la paire de vecteurs (V0’,
V1’) est appelée pseudo-SIC.
Le but de cette optimisation est donc de rechercher les entrées du circuit n'agissant pas sur
une même sortie. Ce type d'optimisation a été proposé par [More98] afin d'optimiser une
structure de génération de vecteurs aléatoires SIC [Gira97, More98]. Afin de montrer ce
procédé d'optimisation, considérons l'exemple suivant.
Exemple IV.1 : Considérons le circuit de la Figure IV.3.
O2
O1
I2
I1
I3
I4
Figure IV.3 : Exemple de circuit
Afin de rechercher les entrées "compatibles", c'est-à-dire celles pouvant être communes
lors du test, ce circuit est représenté sous forme de graphe de dépendance (Figure
IV.4.a). Dans ce graphe, les nœuds correspondent aux entrées et sorties du circuit et
chaque arc correspond à l'existence d'un chemin logique entre une entrée et une sortie.
A partir du graphe de dépendance, nous construisons le graphe d'incompatibilité
présenté sur la Figure IV.4.b.
I1
I2
I3
I4
O1
O2
a)
I1
I2
I3
I4
b)
I1I2
I3
I4
c)
Figure IV.4 : Représentation du circuit sous forme de graphe
a) graphe de dépendance, b) graphe d'incompatibilité et c) graphe de compatibilité
Dans ce graphe, la présence d'un arc entre deux nœuds (entrées du circuit) indique que
ces deux entrées agissent sur la même sortie. Donc, elles ne pourront pas être activées
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
103
en même temps lors du test. Ensuite, le graphe d'incompatibilité est transformé en
graphe de compatibilité (Figure IV.4.c). Ce dernier graphe est donc uniquement
constitué de tous les arcs qui n'existaient pas dans le graphe précédent. A partir du
graphe de compatibilité, la recherche des entrées compatibles se ramène à la recherche
du nombre minimal de clique6. Ainsi, dans cet exemple, on peut conclure que les
entrées I1 et I4 sont compatibles. Dans un premier temps, une paire de vecteurs teste de
manière robuste le chemin P1 (Figure IV.5.a) allant de l'entrée I1 à la sortie O1. Il en est
de même pour le chemin P2 (Figure IV.5.b) entre I4.et O2. Ces deux entrées, I1 et I4, étant
compatibles, il est donc possible de les faire commuter simultanément.
a)
b)
c)
Chemin P1
O2
O1
I2
I1
I3
I4
0 0
00
11
1 1
XXX X
1 0
XX
I2
I1
I3
I4
0 0
1 1
X X
Chemin P2
O2
O1
00
11
XX
1 0
XX
I2
I1
I3
I4
0 0
1 1
O2
O1
00
11
1 0
1 0
Figure IV.5 : Exemple de test robuste
a) test du chemin P1, b) test du chemin P2 et c) test des deux chemins simultanément
Ainsi, il est possible de tester de manière robuste les deux chemins simultanément
(Figure IV.5.c). La paire de vecteurs (V0 =1011, V1 =0010) est donc appelée paire de
6 Une clique est un ensemble de nœud dans un graphe connexe (un nœud est connecté à tout les autres nœuds).
Chapitre IV
104
vecteurs pseudo-SIC. Nous pouvons donc dire que le test de ce circuit possédant 4
entrées se ramène au test d'un circuit à 3 entrées.
Ce procédé de recherche automatique (programmé en langage C) des entrées compatibles a
été appliqué à l'ensemble des circuits de référence ISCAS'89 [Brgl89]. Le Tableau IV.7
résume les résultats obtenus. Après le nom des circuits, la deuxième colonne (n) indique le
nombre d'entrées de chacun. La dernière colonne de ce tableau (n*) présente le nombre
d'entrées obtenu après optimisation structurelle. En d'autre terme, la recherche des entrées
compatibles permet, par exemple, de ramener le test du circuit s526, possédant 24 entrées, au
test d'un circuit à 14 entrées.
Circuit n n*
s510 25 20s526 24 14s641 54 27s713 54 27s820 23 21s832 23 21s953 45 19s1196 32 23s1238 32 23s1423 91 59s1488 14 14s1494 14 14s5378 214 61s9234 247 87s13207 700 212s15850 611 183s35932 1763 16s38417 1664 100s38584 1464 147
Tableau IV.7 : Résultats de l'optimisation structurelle [More98]
IV COÛT EN SURFACE DU GÉNÉRATEUR
Afin d'estimer le coût en surface engendré par la structure de génération proposée, nous
avons considéré un environnement de test parallèle ou "test per-clock". Dans un premier
temps, nous utiliserons le schéma classique du test parallèle, c'est-à-dire, une succession de
blocs combinatoires séparés par des registres. Dans ce cas, les registres doivent soit appliquer
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
105
la séquence de test (Générateur) soit récupérer les réponses (Analyseur de signature). Ce
premier environnement est appelé "environnement BILBO".
Nous envisagerons par la suite une structure ("C_BILBO") où les registres produisent les
séquences de test et analysent les réponses simultanément.
Pour ces environnements, les évaluations vont consister à comparer le coût en surface
engendré par une technique de génération standard (générateur de séquences MIC : LFSR
standard) avec celui engendré par la structure de génération RSIC. Il est à noter que les
contraintes utilisées pour le générateur RSIC seront de coût minimal. Nous utiliserons aussi
les résultats de l'optimisation structurelle afin de limiter le coût en surface de la structure.
VI.1 Environnement BILBO
La Figure IV.6 présente le schéma de principe du test parallèle que nous avons utilisé. Dans
le cas d'une génération de vecteur de test standard (séquences MIC), entre chaque bloc
combinatoire, un registre de cellule BILBO [Koen80, Bush00] ("Built-In Logic Block
Observation") doit être rajouté (Figure IV.6.a). Dans le cas de la génération RSIC, le registre
BILBO initial est modifié, afin qu'il puisse réaliser la fonction bascule T et les éléments
nécessaires à la génération RSIC (Transcodeur et LFSR) sont rajoutés (Figure IV.6.b).
Transcodeur
Circuitsous Test
C1
Registre BILBO
LFSR k bits
b)
n bits
Circuitsous Test
C1
Registre BILBOM
n bits
n* bits
m bits
a)
Figure IV.6 : Schéma de principe du BIST parallèle
a) génération standard MIC et b) génération RSIC
Le schéma logique d'une cellule BILBO est présenté sur la Figure IV.7.a. Une telle cellule
permet, grâce à deux entrées de commande (B1 et B2) d'obtenir les 4 modes de fonctionnement
suivants :
Chapitre IV
106
! B1 = B2 = 0 : Mode SCAN
! B1 = 1 et B2 = 0 : Fonctionnement normal
! B1 = 0 et B2 = 1 : Mode Générateur (LFSR)
! B1 = B2 = 1 : Mode Analyseur de Signature (MISR)
Le registre BILBO modifié (BILBOM) est constitué de cellules qui sont présentées sur la
Figure IV.7.b. Parmi les 4 modes de fonctionnements ci-dessus, uniquement le mode
générateur est modifié. En effet, lorsque B1 = 0 et B2 = 1, la cellule BILBOM réalise la fonction
bascule T à partir de l'entrée Xn. Cette entrée est en réalité une des sorties du transcodeur. La
modification du fonctionnement de la cellule BILBO standard est obtenue en ajoutant deux
multiplexeurs.
a)
D Q Qn
CLK
Qn-1
B1
B1+B2
Dn
B1+B2D Q Qn
CLK
Qn-1
B1
Dn
B1.B2
0
1
0 1
Xn
b)
Figure IV.7 : Schéma d'une cellule BILBO a) BILBO standard et b) BILBO modifiée
Afin d'évaluer les coûts en surface, nous avons utilisé la notion de porte équivalente, noté
"PE". Pour un tel procédé d'évaluation, une porte équivalente correspond à 4 transistors. Les
valeurs de surface, pour les portes simples et les bascules, sont donc les suivantes :
! 0,5 x n pour une porte NAND ou NOR,
! 0,75 x n pour une porte AND ou OR,
! 0,5 pour une porte NOT,
! et 2,5 x (n-1) pour une porte XOR.
A partir de ces valeurs, nous obtenons les surfaces suivantes :
! Cellule BILBO :
2 portes NAND à 2 entrées 2 PE
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
107
1 porte XOR à 2 entrées 2,5 PE
1 bascule 5,5 PE
Donc un total de 10 PE pour la cellule BILBO standard.
! Cellule BILBOM :
2 portes NAND à 2 entrées 2 PE
1 porte XOR à 2 entrées 2,5 PE
1 bascule 5,5 PE
2 multiplexeurs 2 entrées avec même commande 2,5 PE
Donc un total de 12,5 PE pour la cellule BILBO modifiée.
Les résultats, en terme d'augmentation en surface, sont reportés dans le Tableau IV.8.
Après le nom des circuits, les deux colonnes suivantes indiquent le nombre d'entrées des
circuits (n) et leurs surfaces en portes équivalentes (Aire circuit). Il est à noter que ces résultats
de surface concernent uniquement la partie combinatoire des circuits étudiés. La colonne S1
indique la surface nécessaire à une génération standard de vecteurs MIC. En d'autres termes,
cette surface correspond au registre BILBO standard en entrée du circuit sous test. Dans les
trois colonnes suivantes, nous avons reporté le nombre d'entrées optimisées (n*), le nombre de
bits utilisé sur le LFSR (m avec m = log2(n*) ) ainsi que la surface nécessaire à l'implantation
de la structure RSIC (S2). Cette surface correspond au registre BILBO modifié, au
transcodeur et au LFSR. Finalement, la dernière colonne présente le coût en surface
engendrée par la structure de génération RSIC par rapport à la génération MIC. Plus
spécialement, ce coût en surface correspond au rapport suivant :
circuit AireS1S1S2
+− (IV.6)
Chapitre IV
108
MIC RSIC
Circuit n Aire circuit S1 n* m S2Coût en
Surface %
s510 25 243,5 256 20 5 506 50,1s526 24 264,5 246 14 4 473,5 44,6s641 54 321 546 27 5 889,5 39,6s713 54 351 546 27 5 889,5 38,3s820 23 446,5 236 21 5 484 36,3s832 23 455,5 236 21 5 484 35,9s953 45 414 456 19 5 753 34,1
s1196 32 614 326 23 5 602,5 29,4s1238 32 643,5 326 23 5 602,5 28,5s1423 91 749 916 59 6 1464,5 32,9s1488 14 968,5 146 14 4 348,5 18,2s1494 14 975,5 146 14 4 348,5 18,1s5378 214 2225,5 2146 61 6 3009 19,7s9234 247 4678,5 2476 87 7 3527 14,7s13207 700 6395,5 7006 212 8 9734,5 20,4s15850 611 7987 6116 183 8 8491,5 16,8s35932 1763 16726,5 17636 16 4 22216 13,3s38417 1664 18230,5 16646 100 7 21291,5 13,3s38584 1464 20446,5 14646 147 7 18979,5 12,3
Tableau IV.8 : Coût en surface de la génération RSIC par rapport
à une génération standard de type MIC dans un environnement BILBO
Les résultats, reportés dans le Tableau IV.8, montrent que le coût en surface ajoutée pour la
génération RSIC est compris, pour les plus grands circuits, entre 12 % et 20 %. Il est à noter
ce pourcentage diminue quand la taille des circuits augmente. Ce coût additionnel en surface
n'est bien sûr pas négligeable. Cependant, il faut mettre en parallèle avec ce coût le fait que la
structure de génération implantée permette de tester efficacement les modèles de panne
temporelle, panne de court-circuit et panne de collage.
VI.2 Environnement C-BILBO
Pour cette deuxième évaluation, nous allons utiliser des cellules C-BILBO [Abra90]. Ce
type de cellule permet d’obtenir à la fois les modes LFSR et MISR, ce qui est nécessaire pour
les circuits utilisés. La Figure IV.8 présente le schéma de cette cellule.
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
109
D Q
CLK
SCAN IN
Retour polynôme MISR
Qn
B2
B1
Zn
1D Q
CLK
2DSEL
1
0
Retour polynôme LFSR
Figure IV.8 : Schéma d'une cellule C-BILBO
Ce type de cellule permet d’obtenir les 3 modes de fonctionnements suivants :
! B1 = X et B2 = 0 : Fonctionnement normal
! B1 = 0 et B2 = 1 : Mode test (LFSR et MISR simultanément)
! B1 = B2 = 1 : Mode SCAN
Comme précédemment, il est nécessaire de modifier la structure C-BILBO pour obtenir un
mode de fonctionnement bascule T dans le cas de la génération RSIC. La Figure IV.9 présente
une telle modification.
Chapitre IV
110
D Q
CLK
SCAN IN
Retour polynôme MISR
Qn
B2
B1
Zn
Q
CLK
1
0
Retour polynôme LFSR
1
0TFF1
1D2D
SEL
Figure IV.9 : Schéma d'une cellule C-BILBO modifiée
A partir des Figures IV.8 et IV.9, nous obtenons les surfaces suivantes :
! Cellule C-BILBO :
1 porte AND à 2 entrées 1,5 PE
1 porte XOR à 2 entrées 2,5 PE
2 bascules 11 PE
1 multiplexeur 2 entrées 1,5 PE
Donc un total de 16,5 PE pour la cellule C-BILBO standard.
! Cellule C-BILBOM :
1 porte AND à 2 entrées 1,5 PE
2 portes XOR à 2 entrées 5 PE
2 bascules 11 PE
2 multiplexeurs 2 entrées 3 PE
Donc un total de 20,5 PE pour la cellule C-BILBO modifiée.
La Figure IV.10 présente les schémas de principe utilisés pour la génération MIC et RSIC.
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
111
RegistreBILBO
RegistreBILBO
RegistreBILBO
Transcodeur
LFSR degré 23
Registre C
-BILBO
a)
CircuitSous Test
Registre C
-BILBOm
odifié
b)
RegistreBILBOmodifié
CircuitSous Test
Figure IV.10 : Exemple de test parallèle utilisant des registres C-BILBO
a) génération classique MIC et b) génération RSIC
Comme précédemment, le Tableau IV.9 présente les résultats obtenus avec l’utilisation de
cellules C-BILBO. Dans ce cas, comme les cellules sont plus importantes en surface mais
aussi comme la modification d’une cellule C-BILBO (mode bascule T) est plus coûteuse, les
augmentations en surface sont plus importantes. Cependant, comme dans le cas précédent, le
générateur implanté dans le système permet de tester efficacement les modèles de faute
considérés.
Chapitre IV
112
MIC RSIC
Circuit n Aire circuit S1' n* m S2'Coût en
Surface %
s510 25 243,5 365,5 20 5 668,5 49,8s526 24 264,5 443 14 4 746 42,8s641 54 321 910 27 5 1326 33,8s713 54 351 900 27 5 1316 33,3s820 23 446,5 459 21 5 758,5 33,1s832 23 455,5 459 21 5 758,5 32,8s953 45 414 875 19 5 1259,5 29,8s1196 32 614 583,5 23 5 931 29,0s1238 32 643,5 583,5 23 5 931 28,3s1423 91 749 1447,5 59 6 2151 32,0s1488 14 968,5 375,5 14 4 631 19,0s1494 14 975,5 375,5 14 4 631 18,9s5378 214 2225,5 3800 61 6 4975,5 19,5s9234 247 4678,5 4178,5 87 7 5615,5 16,2s13207 700 6395,5 12565 212 8 16341 19,9s15850 611 7987 10867 183 8 14182 17,6s35932 1763 16726,5 32068,5 16 4 39284,5 14,8s38417 1664 18230,5 28340,5 100 7 35484 15,3s38584 1464 20446,5 26864,5 147 7 33420 13,9
Tableau IV.9 : Coût en surface de la génération RSIC par rapport
à une génération standard de type MIC dans un environnement C-BILBO
VALIDATIONS ET OPTIMISATIONS DE LA STRUCTURE
113
CONCLUSION
Ce dernier chapitre a consisté à évaluer la structure de génération présentée dans le
Chapitre III. Nous avons ainsi montré qu'il était possible d'obtenir une structure de génération
matérielle produisant des séquences de test ayant les mêmes qualités "aléatoire" que celles
précédemment utilisées qui étaient produites de manière logicielle.
Cette structure a ensuite été analysée en étudiant l'impact des différentes contraintes
nécessaires à une "bonne" génération aléatoire. De cette analyse, nous avons fait ressortir un
ensemble de contraintes permettant de minimiser le coût en surface sans pour autant dégrader
la qualité de détection des fautes.
La suite de ce chapitre a été consacrée à l'optimisation du générateur en fonction des
caractéristiques structurelles du circuit sous test. Nous avons ainsi montré qu'il était possible
de diminuer le coût en surface en transformant les séquences de test SIC en séquences de test
pseudo-SIC.
La dernière partie de ce chapitre a consisté à l'évaluation en surface de cette structure dans
des environnements de test intégré parallèle (BILBO et C-BILBO). Les résultats obtenus
montrent que la structure proposée est tout à fait viable en termes de coût en surface car nous
avons obtenu des surcoûts, pour les circuits de grandes tailles, de l'ordre de 12 %.
Le bilan de ce dernier chapitre nous permet donc de démontrer la faisabilité matérielle des
séquences de test RSIC dans un environnement de test intégré. La structure proposée permet
d'obtenir des qualités de détection de fautes identiques aux séquences de test utilisées jusqu'à
présent (séquences de test générées de manière logicielle dans le Chapitre II). De plus, cette
structure, implantée dans un environnement de parallèle, engendre un surcoût en surface
additionnel raisonnable par rapport aux avantages procurés par l'utilisation de ce type de
séquences de test.
115
CCOONNCCLLUUSSIIOONN GGÉÉNNÉÉRRAALLEE
CONCLUSION GÉNÉRALE
117
CONCLUSION GÉNÉRALE
Avec l'évolution de la complexité et des performances des circuits intégrés actuels, le test
devient de plus en plus difficile et coûteux. En effet, d'une part les performances en vitesse
des équipements externes de test (EATs) n'évoluent pas aussi rapidement que celles des
circuits. D'autre part, la complexité des circuits actuels nécessite l'application d'un très grand
nombre de données de test, ce qui nécessite de grandes capacités en mémoire dans ces EATs.
La solution proposée pour résoudre ces problèmes, appelée test intégré ou BIST, consiste à
intégrer directement dans le circuit les ressources nécessaires à son test, c'est à dire un
générateur de vecteurs de test et un analyseur de signature. Cette solution apparaît comme
étant une solution efficace à la maîtrise des coûts induits par le test [Sia99, Zori99].
Un autre aspect important du test des circuits intégrés réside dans la couverture de défauts
obtenue. Dans ce domaine, de nombreux travaux ont montré les limitations du modèle de
faute de collage classique [Nigh97a, Nigh97b, Nigh99]. Ces travaux sont à l'origine de l'étude
que nous avons menée et qui consiste à développer une architecture de génération produisant
des séquences de vecteurs RSIC (pour "Random Single Input Change") efficaces pour le test
des fautes de délai de chemin, de court-circuit et de collage.
Dans le premier chapitre de ce manuscrit, nous avons, tout d'abord, présenté une analyse
comparative entre la couverture de défaut et les couvertures de faute de certains modèles.
Cette analyse a permis de justifier l'utilisation des modèles de faute de délai et de court-circuit
en complément du modèle de faute de collage. Nous avons ensuite présenté ces différents
modèles et plus particulièrement le modèle de faute de délai et le modèle de faute de court-
circuit.
Le deuxième chapitre a présenté une analyse comparative entre les séquences RSIC et les
séquences de vecteurs plus conventionnelles appelées RMIC ("pour "Random Multiple Input
Change"). Nous avons, dans un premier temps, défini de manière théorique les séquences de
vecteurs de test aléatoires. Ces définitions nous ont conduit à l'utilisation de procédés de
génération logiciel permettant de se rapprocher le plus possible des définitions théoriques.
Ensuite, un ensemble de comparaisons entre les séquences SIC (séquences de vecteurs de test
pseudo-aléatoires générées à l'aide d'un LFSR standard) et les séquences RSIC (séquences de
vecteurs de test aléatoire générées de manière logicielle) nous a permis de montrer l'intérêt du
caractère aléatoire des séquences de test. Ensuite, les comparaisons menées sur les séquences
118
aléatoires nous ont permis, dans un premier temps, de monter l'intérêt des séquences RSIC par
rapport aux séquences RMIC et, par la suite, de conclure sur l'aspect universel de ces
séquences à travers des expérimentations menées sur les trois modèles de faute (délai, court-
circuit et collage).
Après avoir montré l'intérêt d'utiliser une séquence de test RSIC, le chapitre suivant a
montré comment il était possible de réaliser un générateur matériel produisant ce type de
séquences. Dans un premier temps, nous avons présenté les différents aspects du test intégré
ainsi que la génération pseudo-aléatoire à partir d'un LFSR. La deuxième partie de ce chapitre
a été consacrée à la structure de génération de séquences de test RSIC ainsi qu'aux différentes
contraintes nécessaires à une "bonne" génération aléatoire.
Dans le dernier chapitre de ce mémoire, les aspects validation et optimisation de la
structure ont été abordés. Dans un premier temps, un ensemble de comparaisons entre la
séquence logicielle et la séquence générée par la structure proposée nous a permis de valider
l'implantation matérielle ainsi que ses contraintes de réalisation. Nous avons ensuite analysé
les contraintes liées à cette structure dans le but de réduire la surface nécessaire à
l'implantation du générateur, sans toutefois nuire à la qualité des séquences générées.
Finalement, la dernière partie a été consacrée à l'évaluation en surface de ce générateur. Les
résultats obtenus montrent que la structure proposée est tout à fait intéressante car elle
entraîne un surcoût en surface additionnelle d'environ 12 % pour les circuits de grandes
tailles.
Le bilan général de cette étude ainsi que l'ensemble des résultats et expérimentations
effectuées nous permettent de conclure sur l'intérêt des séquences de test RSIC et notamment
sur leur aspect universel. L'utilisation de ce type de séquences est une solution qui peut être
particulièrement intéressante pour certaines applications. En effet, les séquences RSIC
permettent de tester efficacement les fautes de collage, de court-circuit et de délai de chemin
et ce, pour un coût en surface additionnelle acceptable. Ceci permet donc de garantir une
couverture de défaut élevée.
Les perspectives envisageables à partir de l'étude menée peuvent s'orienter sur plusieurs
axes. Nous pourrions, par exemple, diminuer le coût en surface de la structure en réalisant un
compromis entre la génération MIC et la génération SIC. En d'autres termes, il serait
intéressant de proposer une structure de génération produisant des séquences de test dans
lesquelles deux ou trois bits changent entre deux vecteurs consécutifs. Ainsi, en profitant des
CONCLUSION GÉNÉRALE
119
avantages des deux types de séquences de test, le coût en surface nécessaire à la réalisation
d'une telle structure serait plus faible.
Un autre aspect non négligeable à traiter serait de considérer un environnement de test
série. En effet, les techniques de scan sont largement utilisées par les concepteurs de circuits
intégrés bien qu'elles entraînent des temps de test très longs. Afin de s'adapter à cet
environnement, il serait intéressant de modifier la structure de génération de vecteurs RSIC en
prenant en compte la ou les chaînes de scan implantées dans le circuit.
Finalement, l'étude des séquences de test RSIC pourrait être envisagée en considérant la
consommation de puissance durant la phase de test [Guil00]. Ce problème de consommation
est de plus en plus important de part l'avènement des nouvelles technologies. Il a été montré
dans [Zori93] que la puissance dissipée est deux à trois fois plus élevée lors de l'application
du test que lors du fonctionnement normal. En effet, la consommation de puissance est
fortement liée à l'activité de commutation aux entrées du circuit sous test. L'utilisation de
séquences de test RSIC est une solution intéressante car le changement d'une seule entrée par
vecteur entraîne beaucoup moins d'activité de commutation dans le circuit.
121
Annexe IAnnexe IAnnexe IAnnexe I
SSIIMMUULLAATTEEUURR DDEE FFAAUUTTEESSDDEE CCOOUURRTT--CCIIRRCCUUIITT
SIMULATEUR DE FAUTES DE COURT-CIRCUIT
123
Annexe I SIMULATEUR DE FAUTES DE COURT-CIRCUIT
Les différents résultats obtenus sur le test des fautes de court-circuit sont issus d'un
simulateur que nous avons réalisé à partir de l’outil de test Testgen de Synopsys [Test99]. Le
simulateur de fautes de l'outil TESTGEN permet de réaliser une simulation de fautes de court-
circuit avec observation de type IDDQ. En d’autres termes, cet outil permet de savoir si un
court-circuit est sensibilisé, mais pas de savoir si l’effet de ce court-circuit est propagé sur une
sortie primaire du circuit. Par contre, en associant les résultats donnés par ce simulateur à
ceux donnés par un simulateur de fautes de collage, il est tout à fait possible de conclure à la
détection ou à la non-détection d’un court-circuit sur les sorties primaires du circuit. Ces deux
options de TESTGEN permettent d’obtenir une simulation de fautes de court-circuit avec
détection fonctionnelle sur les sorties primaires.
En effet, si on considère une faute de court-circuit entre deux lignes A et B, la faute de
court-circuit est détectée si la faute est sensibilisée et si son effet est propagé sur une sortie du
circuit. Le premier point nécessite deux valeurs logiques opposées sur les lignes A et B. Cette
sensibilisation est équivalente à une détection IDDQ fournie par le simulateur TESTGEN.
L’effet d’une faute de court-circuit peut maintenant être de plusieurs types [Huc95] parmi
lesquels nous n’en retiendrons que deux : comportement ET et comportement OU.
Le principe qui sera utilisé pour réaliser le simulateur de fautes de court-circuit est le
suivant. Pour chaque vecteur, une simulation de fautes de court-circuit (détection IDDQ) et
une simulation de fautes de collage est réalisée.
Pour chaque faute de court-circuit (A, B) sensibilisée (c’est à dire détectée en IDDQ) :
! Si le collage à 0 de A est détecté : Détection de la faute de court-circuit pour un
comportement ET et valeurs de sensibilisations A=1 et B=0.
! Si le collage à 1 de A est détecté : Détection de la faute de court-circuit pour un
comportement OU et valeurs de sensibilisations A=0 et B=1.
! Si le collage à 0 de B est détecté : Détection de la faute de court-circuit pour un
comportement ET et valeurs de sensibilisations A=0 et B=1.
! Si le collage à 1 de B est détecté : Détection de la faute de court-circuit pour un
comportement OU et valeurs de sensibilisations A=1 et B=0.
Annexe I
124
! Sinon, l'effet de la faute de court-circuit n’est pas observé sur une sortie
primaire du circuit sous test.
Il est à noter qu’il n’est pas nécessaire de manipuler les comportements dans le simulateur
car ils sont directement déduits du type de collage détecté.
Remarque AI.1 : Une faute de court-circuit peut être détectée par une
séquence de vecteurs (ou par un seul vecteur : cf. Figure AI.1) à la fois en
comportement ET et en comportement OU. Dans ce cas, la faute de court-
circuit est, en fait, détectée quelle que soit la résistance de court-circuit.
1
0
0
1
A
BSorties
Primaires
Faute decourt-circuit
Collage à 0
Collage à 1
0/1
1/0
0/1
1/0
Figure AI.1 : Test d'une faute de court-circuit pour à la fois le comportement ET et OU
Le schéma de principe du simulateur est présenté sur la Figure AI.2.
Description duCircuit
<ckt>.v
Séquence deVecteurs
<ckt>.vec
Liste de Fautede Court-Circuit
liste_cc
Simulateurde Fautes
de Court-Circuit
Simulation Collage
Simulation IDDQ
Analyse de Fautes
Outil TESTGENSynopsys
Résultats de la simulation en termede couverture de faute pour lescomportements ET et OU.
<ckt>.sim <ckt>.res
Liste des fautes détectées par vecteur. Ilest à noter que la simulation s’effectueen "no-fault dropping".
Figure AI.2 : Schéma de principe du simulateur Sim_Bridge
SIMULATEUR DE FAUTES DE COURT-CIRCUIT
125
Ce simulateur utilise trois fichiers d’entrée qui sont les suivants :
! un fichier de description du circuit au niveau porte (format Verilog : <ckt>.v),
! un fichier de vecteurs (<ckt>.vec),
! et un fichier contenant la liste des fautes de court-circuit (liste_cc).
ainsi que certaines options de TESTGEN qui sont les suivantes :
! simulateur de fautes de collages,
! simulateur IDDQ de fautes de court-circuit,
! et l'Analyse de faute.
Deux fichiers, contenant les résultats de simulation, sont générés par le simulateur de
fautes de court-circuit. Ces fichiers sont les suivants :
! Fichier <ckt>.sim : Ce fichier reporte les résultats en terme de couverture de
fautes, nombre total de fautes et nombre de fautes détectées par la séquence de
test.
! Fichier <ckt>.res : Ce fichier reporte une analyse de chaque vecteur (fautes
détectées) durant la simulation.
A titre d'information, l'Algorithme AI.1 présente en détail le fonctionnement du simulateur.
Pour chaque vecteur VECi de la séquence Simulation IDDQ de la liste de fautes de court-circuit BF ;BFi = Ensemble de fautes court-circuit sensibilisé par VECi ;/* Création d’une liste de fautes de collages */SAi = Ensemble de fautes de collage équivalentes à BFi ;Pour chaque faute de BFi
SAi = SAi + collage à 0 et 1 des deux lignes de BFi ;Simulation Collage de la liste SAi ;DSAi = Ensemble de fautes de collage détectées par VECi dans SAi ;/* Détection des courts-circuits en fonction des comportement ET et OU */Pour chaque faute de DSAi
Si collage à 0 Comportement ET détecté ;
Si collage à 1
Comportement OU détecté ;
Algorithme AI.1 : Simulateur "Sim_Bridge"
127
Annexe IIAnnexe IIAnnexe IIAnnexe II
CCOOMMPPAARRAAIISSOONNSS ""AALLÉÉAATTOOIIRREE"" //PPSSEEUUDDOO--AALLÉÉAATTOOIIRREE
COMPARAISONS "ALÉATOIRE" / PSEUDO-ALÉATOIRE
129
Annexe II COMPARAISONS "ALÉATOIRE" /PSEUDO-ALÉATOIRE
Les résultats et expérimentations, présentés dans cette annexe, viennent en complément des
comparaisons effectuées dans le Chapitre II concernant les séquences SIC et RSIC. Ainsi,
nous compléterons cette comparaison sur les modèles de court-circuit et collage. Nous
présenterons aussi un ensemble de comparaisons entre les séquences MIC (pseudo-aléatoire
de type LFSR standard) et les séquences RMIC (aléatoire).
I COMPARAISONS SIC / RSIC
I.1 Test des Fautes de Court-Circuit
Le Tableau AII.1 résume les expérimentations effectuées sur en ensemble représentatif de
circuits de référence ISCAS'89 [Brgl89]. Après le nom des circuits, les deux colonnes
suivantes indiquent respectivement le nombre de fautes entre paire d'entrées de porte
considéré (#fautes) ainsi que la longueur des séquences de test appliquées (#vecteurs). Les
deux dernières colonnes présentent les résultats, en terme de couverture de fautes (Tc_ET||OU),
obtenus par la séquence SIC et RSIC.
Circuit #fautes #vecteurs SICTc_ET||OU %
RSICTc_ET||OU %
s1238 647 8762 89,95 95,67s1494 969 2168 99,38 100s3330 1297 9158 35 84,58s5378 1924 7323 46,31 88,98
Tableau AII.1 : Comparaisons SIC/RSIC pour le test des fautes de court-circuit
Ces résultats démontrent clairement que le test aléatoire est plus efficace que le test
pseudo-aléatoire, dans le cas de séquences de test SIC, pour le test des fautes de court-circuit.
I.2 Test des Fautes de Collage
Le Tableau AII.2 présente les résultats obtenus par les séquences SIC et RSIC sur le test
des fautes de collage. Après le nom des circuits, la deuxième colonne indique la couverture de
Annexe II
130
fautes obtenue à l'aide d'un ATPG (ATPG Tc % ). Il à noter que cette couverture de fautes a
été obtenue avec une efficacité complète. Si la couverture de fautes n'est pas de 100%, le
circuit possède des redondances combinatoires (par exemple le circuit s1238). La colonne
trois (# vecteurs) indique les longueurs de séquence appliquées aux circuits. Les deux
dernières parties (SIC et RSIC) présentent respectivement les résultats obtenus en terme de
taux de couverture (Tc % ) et d'efficacité (Eff % ). Comme dans le cas du test des fautes de
court-circuit, ces résultats montrent l'intérêt du test aléatoire par rapport au test pseudo-
aléatoire.
SIC RSICCircuit ATPG Tc % #vecteurs Tc % Eff % Tc % Eff %s1238 94,8 8772 85,68 90,38 91,48 96,5s1494 99,19 7903 98,38 99,18 99,19 100s3330 100 9231 38,80 38,8 77,25 77,25s5378 99,13 9990 50,77 51,22 88,27 89,04
Tableau AII.2 : Comparaisons SIC/RSIC pour le test des fautes de collage
II COMPARAISONS MIC / RMIC
Dans le Tableau AII.3, nous avons reporté les résultats, en termes d'efficacité robuste (Eff R
% ) et non-robuste (Eff NR % ), obtenus par les séquences MIC et RMIC.
Dans tous les cas, la séquence RMIC est plus efficace que la séquence MIC pour un test
robuste. De manière similaire, l'efficacité non-robuste, obtenue avec la séquence RMIC, est
meilleure. Ces résultats démontrent bien les avantages d'une génération de vecteurs aléatoires.
COMPARAISONS "ALÉATOIRE" / PSEUDO-ALÉATOIRE
131
MIC RMICCircuit #vecteurs Eff R % Eff NR% Eff R % Eff NR %
s298 68800 30,69 70,05 36,65 100s382 139800 20,88 79,42 33,52 99,86s386 73600 26,33 70,53 40,82 100s420 132200 21,55 61,29 37,24 84,31s510 136600 23,76 71,14 31,78 100s526 139600 20,62 74,03 30,09 100s641 277800 16,88 81,55 18,12 97,11s713 441800 20,72 84,41 20,76 96,74s1238 499200 18,42 70,32 29,35 99,84s1494 351800 23,24 72,62 30,83 99,78s3330 158620 23,18 92,62 23,47 90,71s5378 297300 17,87 65,09 24,51 97,09
Tableau AII.3 : Comparaisons MIC/RMIC pour un test robuste et non-robuste
Dans le cadre de ces comparaisons MIC et RMIC, nous avons aussi utilisé les modèles de
faute de collage et de court-circuit. Dans ce cas, les résultats en terme de couverture de fautes
ou d'efficacité sont très proches quel que soit les type de séquence de test utilisée. Ceci
provient du type de circuit utilisé pour nos expérimentations. En effet, dans les circuits
combinatoires, le test d'une faute de collage ou de court-circuit nécessite l'application d'un
vecteur pour être détectée. L'aspect succession "aléatoire" de vecteurs n'est donc pas
nécessaire pour augmenter la qualité de détection des séquences de test.
III BILAN DES COMPARAISONS ALÉATOIRE / PSEUDO-ALÉATOIRE
Le Tableau AII.4 résume les différentes comparaisons effectuées. A titre d'exemple, une
séquence aléatoire de vecteurs non-adjacents (RMIC) est plus efficace qu'une séquence
pseudo-aléatoire de vecteurs non-adjacents (MIC) pour le test des fautes de délai.
Faute deDélai
Faute deCourt-Circuit
Faute deCollage
Séquence de vecteursnon-adjacents Aléatoire
Pseudo-Aléatoireou
Aléatoire
Pseudo-Aléatoireou
Aléatoire
Séquence de vecteursadjacents Aléatoire Aléatoire Aléatoire
Tableau AII.4 : Bilan des comparaisons pseudo-aléatoire / aléatoire
Annexe II
132
Le bilan général de ces expérimentations montre que l'aspect aléatoire des séquences de
test est très important afin d'obtenir des couvertures de fautes élevées. Il est à noter que dans
le cas du test des fautes de court-circuit ou des fautes de collage, les taux de couverture de
fautes obtenus par les séquences MIC et RMIC sont équivalents. Vu que nous avons traité
uniquement le cas du test des circuits combinatoires, les problèmes liés aux successions de
vecteurs ne se posent pas dans le cas du test de ces deux modèles de faute. Par contre, cette
conclusion n'est plus valable dans le cadre du test des circuits séquentiels car ce type de
circuit nécessite une séquence de vecteurs de test ordonnés pour sensibiliser la faute et
propager son effet vers une sortie primaire. Dans ce cas, l'utilisation d'une séquence RMIC
pour le test des fautes de collage est préférable [Pete00].
133
Annexe IIIAnnexe IIIAnnexe IIIAnnexe III
PPRROOBBAABBIILLIITTÉÉSS DDEE TTRRAANNSSIITTIIOONN EENN
FFOONNCCTTIIOONN DDUU PPAARRAAMMÈÈTTRREE σσσσσσσσ
PROBABILITÉS DE TRANSITION EN FONCTION DU PARAMÈTRE σ
135
Annexe III PROBABILITÉS DE TRANSITION
EN FONCTION DU PARAMÈTRE σ
Dans cette annexe, nous allons présenter les calculs de probabilité de transition. Cette
probabilité correspond au nombre de chances de refaire la même transition à l'instant l+λ que
celle qui a été effectuée à l'instant l. Pour cela, nous avons considéré deux cas qui sont les
suivantes :
! LFSR "aléatoire" σ = m
! et LFSR standard σ = 1.
I CAS D'UN LFSR "ALÉATOIRE"
Dans ce cas, nous allons considérer la structure présentée dans le Chapitre III avec comme
contraintes :
! n = 2m,
! et σ = m.
Afin de calculer la probabilité Pr[t(l+λ)=t(l)], nous avons considéré l'exemple m=2 et n=4.
Nous avons ramené le problème du calcul de cette probabilité sous forme de graphe (Figure
AIII.1). Dans ce graphe, les nœuds représentent les distances de Hamming, notées dh, entre
vecteurs et les arcs représentent les différentes possibilités de passer d'une distance de
Hamming à l'autre. De plus, chaque arc est pondéré en fonction du nombre de possibilités de
passer d'une dh à l'autre.
Annexe III
136
dh = 0
dh = 1
dh = 0 dh = 2
dh = 1 dh = 3
dh = 0 dh = 2 dh = 4
l-1
l
l+1
l+2
l+3
Transition 1
1 3
4 22
1 3 3 1
Figure AIII.1 : Graphe général d’évolution des transitions
A l’aide de ce graphe, nous allons calculer la probabilité de refaire la transition à l’instant
l+2. Dans ce cas, le paramètre λ = 2. Ce calcul entraîne certaines conditions qui sont les
suivantes :
! à l+1 (l+λ-1) dh = 0
! à l+2 (l+λ) dh = 1
Ces deux contraintes confirment que la transition est réalisée entre les instants l+1 et l+2. A
partir de ces deux contraintes, le calcul de la probabilité se ramène à calculer le nombre de
chemins dans le graphe permettant d’obtenir une distance de Hamming de 1 (dh = 1) à
l’instant l+λ-2. Ainsi, pour λ = 2 le graphe de la Figure AIII.1 se ramène à un graphe à deux
nœuds présenté sur la Figure AIII.2.
dh = 0
dh = 1
l-1
l
1
Figure AIII.2 : Calcul de Pr pour λ = 2
PROBABILITÉS DE TRANSITION EN FONCTION DU PARAMÈTRE σ
137
A partir de ce graphe, il faut calculer le nombre de chemins permettant d’obtenir une dh de
1 à l’instant l. Pour cela, nous notons :
Nb_dhi(l)
comme étant le nombre de chemins dans le graphe permettant d’obtenir une dh de i à l’instant
l. Dans notre cas, Nb_dhi(l) = 1. La probabilité de refaire la transition est donc la suivante :
161
n1 t(l)]2)Pr[t(l 2 ===+
Afin de généraliser ce calcul pour λ > 2, considérons le graphe de la Figure AIII.3.
dh = 1 dh = 3 l+4
4 22
dh = 0
dh = 1
dh = 0 dh = 2
dh = 1 dh = 3
dh = 0 dh = 2 dh = 4
l-1
l
l+1
l+2
l+3
1
1 3
4 22
1 3 3 1
4
Figure AIII.3 : Généralisation du calcul de Pr
A l’aide de ce graphe, le calcul de Pr[t(l+λ)=t(l)] se ramène au calcul de :
Nb_dh1(l+λ-2) = Nb_dh1(l+2i)
En réalisant ce calcul de manière récursive nous obtenons les relations suivantes :
Nb_dh1(l+2i) = 4*Nb_dh0(l+2i-1) + 2*Nb_dh2(l+2i-1)
= 10*Nb_dh1(l+2i-2) + 6*Nb_dh3(l+2i-2) (AIII.1)
A partir de cette équation il faut exprimer Nb_dh3(l+2i-2) en fonction de Nb_dh1(l+2i-2).
Nous obtenons donc la relation suivante :
Nb_dh3(l+2i-2) = n2(i-1) - Nb_dh1(l+2i-2) (AIII.2)
Annexe III
138
Finalement, à l’aide des Équations AIII.1 et AIII.2, la formule permettant de calculer Pr est
la suivante :
Nb_dh1(l+2i) = 4*Nb_dh1(l+2i-2) + 6*n2(i-1) (AIII.3)
En appliquant cette formule nous pouvons calculer, de manière récursive, la probabilité de
refaire la transition pour toute valeur de λ. Nous obtenons ainsi les valeurs suivantes :
! λ = 2 Pr[t(l+2)=t(l)] = 2n1
! λ = 4 Pr[t(l+4)=t(l)] = 4n10
! λ = 6 Pr[t(l+6)=t(l)] = 6n136
Cependant, l’Équation AIII.3 n’est valable que pour m=2 et n=4. En généralisant cette
formule, pour toutes valeurs de n, nous obtenons l’équation suivante :
Nb_dh1(l+2i) = (3n-8)*Nb_dh1(l+2i-2) + 6*[n2(i-1)-∑−
=+ −+
1i
2j12j 2)2i(lNb_dh ] (AIII.4)
II CAS D'UN LFSR STANDARD
Après avoir calculé les probabilités de transition dans le cas d’un LFSR "aléatoire", dans
cette partie, nous allons considérer le cas d'un LFSR standard. Dans ce cas, nous allons
considérer la structure présentée dans le Chapitre III avec comme contraintes :
! n = 2m,
! et σ = 1.
De plus, nous avons considéré l'exemple m = 2 et n = 4. Comme précédemment, nous
avons ramené le problème du calcul de cette probabilité sous forme de graphe. Par contre,
dans ce cas, nous avons utilisé le graphe d'états du LFSR présenté sur la Figure AIII.4. Dans ce
graphe, les nœuds représentent les différents états du LFSR et les arcs les différentes
possibilités de passage d'un état à l'autre. Il est à noter que, pour un état donné, uniquement
deux états suivants sont possibles. En effet, dans une structure de LFSR standard, uniquement
le premier bit est recalculé à chaque cycle d'horloge. Les autres bits, constituant le vecteur,
sont obtenus par décalage des bits du vecteur précédent. Ainsi, à partir du vecteur 01, par
exemple, nous pouvons uniquement obtenir les vecteurs 00 et 10. De plus, dans ce graphe, les
PROBABILITÉS DE TRANSITION EN FONCTION DU PARAMÈTRE σ
139
variables xi indiquent l'entrée du circuit qui va changer entre deux vecteurs consécutifs. Dans
la suite, nous appellerons ces variables des contraintes de transition.
1 1
0 1
0 0 1 0
x2
x1
x4
x3
Figure AIII.4 : Graphe d'états d'une LFSR standard
A partir de ce graphe, nous pouvons déduire les propriétés suivantes afin de calculer la
probabilité de refaire la même transition :
1. Pour qu'une même transition se reproduise, il faut que la dernière contrainte
soit identique à la première
2. De plus, il faut que toutes les contraintes apparaissent un nombre de fois paires
afin de revenir au même état initial. Ceci permet donc de refaire la même
transition.
Avec ces deux propriétés, calculons Pr pour λ = 2. Considérons le cas où le vecteur de
départ du LFSR est 11. Dans ce cas, la première contrainte est x3. En parcourant le graphe de
la Figure AIII.4, nous obtenons les quatre suites suivantes :
! x3 x1 x4 : valeur finale x4 ≠ x3
! x3 x1 x2 : valeur finale x2 ≠ x3
! x3 x3 x1 : valeur finale x1 ≠ x3
! x3 x3 x3 : valeur finale égale à la valeur initiale et x3 apparaît deux fois
A l'aide des deux propriétés citées ci-dessus, uniquement la suite x3 x3 x3 permet de
refaire la transition à l'instant l+2. Plus généralement, uniquement les valeurs de départs x3 et
x4 permettent d'obtenir une possibilité de refaire la transition. Ainsi, nous considérerons deux
groupes de valeurs pour effectuer le calcul de la probabilité de transition qui sont les
suivants :
Annexe III
140
! groupe G1 (11,00) ou (x3,x4)
! et le groupe G2 (01,10) ou (x1,x2).
Nous obtenons donc les valeurs suivantes :
! λ = 2 Pr[t(l+2)=t(l)]G1 = 41
et Pr[t(l+2)=t(l)]G2 = 0
! λ = 4 Pr[t(l+4)=t(l)]G1 = 161
et Pr[t(l+2)=t(l)]G2 = 161
! λ = 6 Pr[t(l+6)=t(l)]G1 = 644
et Pr[t(l+2)=t(l)]G2= 646
III BILAN
Afin de mettre en évidence l'influence du paramètre σ sur la qualité de la génération RSIC,
nous avons réuni, dans le Tableau AIII.1, les valeurs de probabilité obtenues en fonction de λ.
L'ensemble des résultats présentés concerne le cas m = 2 et n = 4. De plus, les valeurs du
tableau sont représentées sous forme graphique sur la Figure AIII.5.
σσσσ = 1 σσσσ = mPr[t(l+λλλλ)=t(l)]G1 Pr[t(l+λλλλ)=t(l)]G2 Pr[t(l+λλλλ)=t(l)]
l+1 0 0 0l+2 0,2500 0 0,0625l+3 0 0 0l+4 0,0625 0,0625 0,0391l+5 0 0 0l+6 0,0625 0,0938 0,0332
Tableau AIII.1 : Valeurs des probabilités
Ces calculs de probabilité montrent l'importance du paramètre σ pour la qualité de
génération de la séquence RSIC. En effet, la probabilité de refaire la transition dans le cas ou
σ = 1 est 4 fois plus grande que dans le cas ou σ = m.
PROBABILITÉS DE TRANSITION EN FONCTION DU PARAMÈTRE σ
141
0
0,05
0,1
0,15
0,2
0,25
0,3
l+1 l+2 l+3 l+4 l+5 l+6
Pr[t(l+)=t(l)]G1 sigma = 1
Pr[t(l+)=t(l)]G2 sigma = 1
Pr[t(l+)=t(l)] sigma = mσ = m
σ = 1
Figure AIII.5 : Représentation graphique des valeurs de probabilité
De plus, ces résultats peuvent être étendus à toutes valeurs de m et n pour λ = 2. En effet,
dans ce cas nous obtenons les probabilités suivantes :
! σ = m Pr[t(l+2)=t(l)] = 2n1
! σ = 1 Pr[t(l+2)=t(l)] = 41
Ainsi, il est donc préférable d'utiliser un LFSR "aléatoire" pour la génération RSIC plutôt
qu'un LFSR standard.
143
RRÉÉFFÉÉRREENNCCEESS
RÉFÉRENCES
145
RÉFÉRENCES
[Abra90] M. Abramovici, M. A. Breuer and A. D. Friedman, "Digital Systems Testing andTestable Design", IEEE Press, 1990.
[Aitk99] R.C. Aitken, “Nanometer Technology Effects on Fault Models for IC Testing”,IEEE Computer, Vol. 32, N° 11, pp. 46-51, 1999.
[Al-H85] M.H. Al-Hussein, "Path Delay Computation Algorithms for VLSI Systems",VLSI Design Conf., pp. 86-91, 1985.
[Alin01] M. Aline, "Évaluation et optimisation de performances et Technologie CMOSsubmicronique", Thèse de Doctorat, Laboratoire d’Informatique, de Robotiqueet de Microélectronique de Montpellier, 2001.
[Bard87] P.H. Bardell, W.H. McAnney, and J. Savir, "Built-In Test for VLSI:Pseudorandom Techniques", John Wiley & Sons, 1987.
[Bard90] P.H. Bardell, "Analysis of Cellular Automata Used as Pseudorandom PatternGenerators", Proc. of International Test Conference, pp. 762-767, 1990.
[Barz83] Z. Barzilai and B.K. Rosen, "Comparison of AC Self-Testing Procedures", Proc.of International Test Conference, pp. 89-94, 1983.
[Brgl85] F. Brglez, H. Fujiwara, "A Neutral Netlist of 10 Combinational BenchmarkCircuits and a Target Translator in FORTRAN", Proc. of IEEE InternationalSymposium on Circuits and Systems, pp. 663-698, 1985.
[Brgl89] F. Brglez, D. Bryant and K. Kozminski, "Combinational Profiles of SequentialBenchmark Circuits", IEEE Int. Symp. on Circuits and Systems, pp. 1929-1934,1989.
[Bush00] M.L. Bushnell and V.D. Agrawal, "Essentials of Electronic Testing for Digital,Memory & Mixed-Signal VLSI Circuits", Kluwer Academic Publishers, 2000
[Cava97] P. Cavallera, "Simulation de Pannes Temporelles dans les Circuits Séquentiels",Thèse de Doctorat, Laboratoire d’Informatique, de Robotique et deMicroélectronique de Montpellier, 1997.
[Cart82] W.C. Carter, "Signature Testing with Guaranteed Bounds for Fault Coverage",Proc. of International Test Conference, pp. 75-82, 1982.
[Chak99] K. Chakrabarty, B.T. Murray and V. Iyengar, “Built-In Test Pattern Generationfor High Performance Circuits Using Twisted-Ring Counters”, IEEE VLSI TestSymp., pp. 22-27, 1999.
[Chen96] K.T. Cheng and H.C. Chen, "Classification and Identification of NonrobustUntestable Path Delay Faults", IEEE Transactions on Computer-Aided Designof Integrated Circuits and Systems, Vol. 15, No. 8, pp. 845-853, 1996.
146
[Cho87] C.K. Cho, "Quality programming – Developing and testing software withstatistical quality control", Wiley, 1987
[Crai85] G.L. Craig and C.R. Kime, “Pseudo-Exhaustive Adjacency Testing: A BISTApproach for Stuck-Open Faults”, IEEE Int. Test Conf., pp. 126-137, 1985.
[Crep96] S. Crepaux-Motte, M. Jacomino and R. David, “An Algebraic Method for DelayFault Testing”, IEEE VLSI Test Symposium, pp. 308-315, 1996.
[Daga97] J.M. Daga, "Modélisation des Performances Temporelles des Circuits CMOSSubmicroniques au Niveau Porte Logique", Thèse de Doctorat, Laboratoired’Informatique, de Robotique et de Microélectronique de Montpellier, 1997.
[Dand84] R. Dandapani, J. Patel and J. Abraham, “Design of Test Pattern Generators forBuilt-In Test”, IEEE Int. Test Conf., pp. 315-319, 1984.
[Davi86] R. David, "Signature Analysis for Multiple Output Circuits", Transactions onComputers, Vol. C-35, N° 9, September, pp. 830-837, 1986.
[Davi98] R. David, "Random Testing of Digital Circuits: Theory and Applications",Marcel Dekker, 1998.
[Derv91] B.I. Dervisoglu, G.E. Stong, "Design for Testability Using Scanpath Techniquesfor Path-Delay Test and Measurement", Proc. of International Test Conference,Nashville, TN, USA, pp. 365-374, 1991.
[Edir92] G. Edirisooriya and J.P. Robinson, “Design of Low Cost ROM Based TestGenerators”, IEEE VLSI Test Symp., pp. 61-66, 1992.
[Fago98] C. Fagot, O. Gascuel, P. Girard and C. Landrault, “A Ring Architecture Strategyfor BIST Test Pattern Generation”, IEEE Asian Test Symposium, pp. 418-423,1998.
[Fago99] C. Fagot, O. Gascuel, P. Girard and C. Landrault, “On Calculating EfficientLFSR Seeds for Built-In Self Test”, IEEE European Test Workshop, pp. 7-14,1999.
[Gira92] P. Girard, "Diagnostic de pannes temporelles dans les circuits digitaux", Thèsede Doctorat, Laboratoire d’Informatique, de Robotique et de Microélectroniquede Montpellier, 1992.
[Gira97] P. Girard, C. Landrault, V. Moreda and S. Pravossoudovitch, “An OptimizedBIST Test Pattern Generator for Delay Testing”, IEEE VLSI Test Symposium,pp. 94-99, 1997.
[Golo82] S.W. Golomb, "Shift Register Sequences", Aegean Park Press, 1982.
[Gonç97] F.M. Gonçalves, I.C. Teixeira and J.P. Teixeira, "Realistic Fault Extraction forHigh Quality Design and Test of VLSI Systems", Proc. of the IEEE Int. Symp.on Defect and Fault Tolerance in VLSI Systems, pp. 29-37, 1997.
RÉFÉRENCES
147
[Guil00] L. Guiller, "Réduction de la consommation durant le test des circuits VLSI",Thèse de Doctorat, Université Montpellier II, 2000
[Hass84] S.Z. Hassan and E.J. McCluskey, "Increased Fault Coverage Through MultipleSignatures", Proc. of International Fault-Tolerant Computing Symposium, pp.354-359, 1984.
[Haya84] T. Hayashi, K. Hatamyama, K. Sato and T. Natabe, "A Delay Test Generator forLogic LSI", Proc. of the 14th Fault-Tolerant Comp. Symp., pp. 146-149, 1984.
[Hell95] S. Hellebrand, J. Rajski, S. Tarnick, S. Venkataraman and B. Courtois, “Built-InTest for Circuits with Scan Based on Reseeding of Multiple-Polynomial LinearFeedback Shift Registers”, IEEE Trans. on Computers, Vol. 44, N° 2, pp. 223-233, February 1995.
[Hell98] S. Hellebrand, H.J. Wunderlich and A. Hertwig, “Mixed-Mode BIST UsingEmbedded Processors”, Journal of Electronic Testing: Theory and Applications(JETTA), Vol. 12, N°1/2, pp. 127-138, February/April 1998.
[Hitc82a] R.B. Hithcock, G.L. Smith and D.D. Cheng, "Timing Analysis of ComputerHardware", IBM Journal Research and Development, vol. 26, pp. 100-105,January, 1982.
[Hitc82b] R.B. Hithcock, "Timing Verification and Timing Analysis Program", Proc. Ofthe 19th Design Autom. Conf., pp. 594-604, 1982.
[Hort89] P.D. Hortensius, R.D. McLeod, W. Pries, M. Miller, and H.C. Card, "CellularAutomata Based Pseudorandom Number Generators for Built-In Self-Test",Transactions on Computer-Aided Design, Vol. 8, N° 8, August 1989, pp. 842-858.
[Hort90] P.D. Hortensius, R.D. McLeod and B.W. Podaima, "Cellular Automata Circuitsfor Built-In Self-Test", IBM Journal of Research and Development, Vol. 34,N°2/3, March/May 1990, pp. 389-405.
[Howe81] M.J. Howes and V.D. Morgan, "Reliability and Degradation – SemiconductorDevices and Circuits", Wiley-Interscience, 1981.
[Hsie77] E.P. Hsieh, R.A. Rasmussen, L.J. Vidunas and W.T. Davis, "Delay TestGeneration", Proc. of the 14th Design Automation Conference, pp. 486-491,1977.
[Huc95] P. Huc, "Test en tension des courts-circuits en technologie CMOS", Thèse dedoctorat, Université de Montpellier II, 1995.
[Kief00] G. Kiefer; H. Vranken, E.J. Marinissen and H.J. Wunderlich, “Application ofDeterministic Logic BIST on Industrial Circuits”, IEEE Int. Test Conf., pp. 105-114, 2000.
[Kish86] K. Kishida, F. Shirotori Y. Ikemoto, S. Ishiyama and T. Hayashi, "A Delay TestSystem for High Speed Logic LSI’s", Proc. of the 23th Design Autom. Conf.,pp. 786-790, 1986.
148
[Knut81] D.E. Knuth, "Seminumerical Algorithms", Art of Computer Programming,Tome 2, Reading, 2e Edition, 1981.
[Koep86] S. Koeppe, "Modeling and Simulation of Delay Faults in CMOS LogicCircuits", Proc. of International Test Conference, Washington DC., USA, pp.530-536, 1986.
[Kone80] B. Konemann, J. Mucha, and G. Zwiehoff, "Built-in Test for Complex DigitalIntegrated Circuits", Journal of Solid State Circuits, Vol. SC-15, N° 3, June, pp.315-318 1980.
[Koen91] B. Koenemann, “LFSR-Coded Test Patterns for Scan Designs”, IEEE Euro. TestConf., pp. 237-242, 1991.
[Krst98] A. Krst! and K.-T. Cheng, "Delay Fault Testing for VLSI circuits", KluwerAcademic Publishers, 1998.
[Lavo98] D. Lavo, B. Chess, T. Larrabee and F. Ferguson, "Diagnosing Realistic BridgingFaults with Single Stuck-at Information", IEEE Trans. on CAD, Vol. C-17, N° 3,pp. 255-267, 1998.
[Leve86] Y. Levendel and P.R. Menon, "Transition Faults in Combinational Circuits:Input Transition Test Generation and Fault Simulation", Proc. of 16th Fault-Tolerant Comp. Symp., pp. 278-283, 1986.
[Li89] W.N. Li, S.M. Reddy and S.K. Sahni, "On Path Selection in CombinationalLogic Circuits", IEEE Trans. On Computer-Aided Design, vol. 8, no. 1, pp. 56-63, January1989.
[Lin87] C. Lin, S. M. Reddy, "On Delay Fault Testing in Logic Circuits", IEEE Trans.on Computer-aided Design, vol CAD-6, No.5, pp. 694-703, 1987.
[Ma95] S.C. Ma, P. Franco and E.J. McCluskey, “An Experimental Chip to EvaluateTest Techniques Experiment Results”, IEEE Int. Test Conf., pp. 663-672, 1995.
[Ma99] S. Ma, I. Shaik and R. Fetherston, "A Comparison of Bridging Fault SimulationMethods", IEEE Int. Test Conf., pp. 587-595, 1999.
[Mao89] W. Mao, M.D. Ciletti, "A Simplified Six-Waveform Type Method for DelayFault Testing", Proc. of 26th Design Automation Conference, Las Vegas,Nevada, USA, pp. 730-733, 1989.
[McCl84] E.J. McCluskey, “Verification Testing: A Pseudo-Exhaustive Test Technique”,IEEE Trans. on Computers, Vol. C-33, N° 6, pp. 541-546, 1984.
[Mei74] K. Mei, "Bridging and Stuck-at Faults", IEEE Trans. on Computers, Vol. C-23,N° 7, pp. 720-727, 1974.
[Midk93] S.F. Midkiff, S.W. Bollinger, "Clasification of bridging faults in CMOS circuit :Experimantal results and implications for test", IEEE VLSI on Test Symp., pp.112-115, 1993.
RÉFÉRENCES
149
[More98] V. Moreda, "Test et Test Intégré de Pannes Temporelles", Thèse de Doctorat,Laboratoire d’Informatique, de Robotique et de Microélectronique deMontpellier, 1998.
[Nigh97a] P. Nigh, W. Needham, K. Butler, P. Maxwell and R. Aitken, “An ExperimentalStudy Comparing the Relative Effectiveness of Functional, Scan, Iddq andDelay Fault Testing”, IEEE VLSI Test Symp., pp. 459-464, 1997.
[Nigh97b] P. Nigh, W. Needham, K. Butler, P. Maxwell, R. Aitken and W. Maly, "So Whatis an Optimal Test Mix? A Discussion of the SEMATECH MethodsExperiment", Proc. of International Test Conference, pp.1037-1038, 1997.
[Nigh99] P. Nigh, D. Vallet, A. Patel, J. Wright, F. Motika, D. Forlenza, R. Kurtulik andW. Chong, "Failure Analysis of Timing and IDDq-only Failures from theSEMATECH Test Methods Experiments", Proc. of International TestConference, pp.1152-1161, 1999.
[Park87] E.S. Park, M.R. Mercer, "Robust and Nonrobust Tests for Path Delay Faults in aCombinational Circuit", Proc. of International Test Conference, WashingtonDC., USA, pp. 1027-1034, 1987.
[Pete00] A. Petitqueux, "Test Intégré des Circuits Séquentiels", Thèse de doctorat,Université de Montpellier II, 2000.
[Pila93] S. Pilarski, A. Pierzynska, “BIST and Delay Fault Detection”, IEEE Int. TestConf., pp. 236-241, 1993.
[Prad94] D.K. Pradhan and M. Chatterjee, "GLFSR – A new Test Pattern Generator forBuilt-In-Self-Test", Proc. of International Test Conference, pp. 481-490, 1994.
[Pram88] A.K. Pramarick, S.M. Reddy, "On Detection of Delay Faults", Proc. ofInternational Test Conference, Washington DC., USA, pp. 845-856, 1988.
[Prép97] V. Prépin, "Test Aléatoire de Circuits Combinatoires. Nouvelle Mesure deTestabilité", Thèse de doctorat, INP Grenoble, 1997.
[Rajs87] J. Rajsky and H. Cox, "A Method of Test Generation and Fault Diagnosis inVery Large Combinational Circuits", Proc. of International Test Conference, pp.932-943, 1987.
[Redd87] S.M. Reddy, C.J. Lin and S. Patil, "An Automatic Test Pattern Generator forDetection of Path Delay Faults", Proc. of IEEE/ACM International Conf. onComputer-Aided Design, pp. 284-287, 1987.
[Rodr92] R. Rodriguez-Montanez, E.M.J.G. Bruls, J. Figueras, "Bridging defectsresistance measurements in a CMOS process", Int. Test Conference, pp. 892-899, 1992.
[Savi84] J. Savir and P.H. Bardell, “On Random Pattern Test Length”, IEEE Trans. onComputers, Vol. C-33, N° 6, pp. 467-474, 1984.
150
[Savi85] J. Savir and W.H. McAnney, "On the Masking Probability with Ones Countsand Transition Count", Proc. of International Conference on Computer-AidedDesign, pp. 111-113, 1985
[Savi86] J. Savir, W.H. McAnney, "Random Pattern Testability of Delay Faults", Proc. ofInternational Test Conference, pp. 263-273, 1986.
[Schu87] M.H. Schulz, F. Brglez, "Accelerated Transition Fault Simulation", Proc. of 24thDesign Automation Conference, Miami Beach, Florida, USA, pp. 237-243,1987.
[Serv01] G. Servel, "Effets Parasites dus aux Interconnexions", Thèse de Doctorat,Université Montpellier II, 2001
[Sia99] Semiconductor Industry Association (SIA), "International Technology Roadmapfor Semiconductors (ITRS)", 1999 Edition.
[Smit85] G. L. Smith, "Model for delay faults based upon paths", Proc. of InternationalTest Conference, pp. 342-349, 1985.
[Srin97] M.K. Srinivas, M.L. Bushnell and V.D. Agrawal, "Flags and Algebra forSequential Circuit VNR Path Delay Fault Test Generation", Proc. ofInternational Conf. on VLSI Design, pp. 88-94, 1997.
[Star84] C.W. Starke, “Built-In Test for CMOS Circuits”, IEEE Int. Test Conf., pp. 309-314, 1984.
[Test99] TestGen, version Tg4.1, User Guide, Synopsys Inc., 1999.
[Toub96a] N.A. Touba and E.J. McCluskey, “Altering a Pseudo-Random Bit Sequence forScan-Based BIST”, IEEE Int. Test Conf., pp. 167-175, 1996.
[Toub96b] N.A. Touba and E.J. McCluskey, “Applying Two-Pattern Tests Using Scan-Mapping”, IEEE VLSI Test Symp., pp. 393-397, 1996.
[Turg96] S. Turgis, "Conception Faible Puissance : Définition d’un Macro-Modèle dePuissance Interne dans les Structures CMOS Submicroniques", Thèse deDoctorat, Laboratoire d’Informatique, de Robotique et de Microélectronique deMontpellier, 1996.
[Vuks94] A. Vuksic and K. Fuchs, “A New BIST Approach for Delay Fault Testing”,IEEE VLSI Test Symp., pp. 284-288, 1994.
[Waic86] J.A. Waicukauski, E. Lindbloom, B. Rosen, V. Iyengar, "Transition FaultSimulation by Parallel Pattern Single Fault Propagation", Proc. of InternationalTest Conference, pp. 542-549, 1986.
[Waic87] J.A. Waicukauski, E. Lindbloom, B.K. Rosen, V.S. Iyengar, "Transition FaultSimulation", IEEE Design and Test, pp. 32-38, 1987.
[Wagn87] K.D. Wagner, C.K. Chin and E.J. McCluskey, “Pseudo-Random Testing”, IEEETrans. on Computers, Vol. C-36, N° 3, pp. 332-343, 1987.
RÉFÉRENCES
151
[Wang94] W. Wang and S.K. Gupta, “Weighted Random Robust Path Delay Testing ofSynthesized Multilevel Circuits”, IEEE VLSI Test Symp., pp. 291-297, 1994.
[Will73] M. Williams and J. Angel, "Enhancing Testability of LSI Circuits via TestPoints and Additional Logic", Transactions on Computers, Vol C-22, N° 1, pp.1198-1200, 1973.
[Will85] T. Williams, “Test Length in a Self-Testing Environment”, IEEE Design & Testof Computers, Vol. 2, N° 2, pp. 59-63, 1985.
[Wund87] H.J. Wunderlich, “Self Test Using Unequiprobable Random Patterns”, IEEE Int.Symp. on Fault-Tolerant Computing, pp. 258-263, 1987.
[Yarm88] V.N. Yarmolik and S.N. Demidenko, "Generation and Application ofPseudorandom Sequences for Random Testing", John Wiley and Sons, New-York, 1988.
[Zori93] Y. Zorian, "A Distributed BIST Control Scheme for Complex VLSI Devices",IEEE VLSI Test Symposium, pp. 4-9, 1993.
[Zori99] Y. Zorian, "Testing the Monster Chip", IEEE Spectrum, Vol. 36, N° 7, pp. 54-60, 1999.
152
RÉFÉRENCES RELATIVES À L’ÉTUDE
- Revues Scientifiques avec Comité de Lecture -
[Davi01a] R. David, P. Girard, C. Landrault and S. Pravossoudovitch, A. Virazel,"Hardware Generation of Random Single Input Change Test Sequences ",Journal of Electronic Testing (JETTA), in press, 2001.
[Gira99] P. Girard, C. Landrault, V. Moréda, S. Pravossoudovitch and A. Virazel, "Ascan-BIST structure to test delay faults in sequential circuits", Journal ofElectronic Testing (JETTA), Vol. 14, n° 1/2, pp. 95-102, February/April 1999.
[Vira01a] A. Virazel, R. David, P. Girard, C. Landrault and S. Pravossoudovitch, "Delayfault testing: Choosing between random SIC and random MIC test sequences",Journal of Electronic Testing (JETTA), Vol. 17, n° 3/4, pp. 233-241, June 2001.
- Conférences avec Actes et Comité de Lecture -
[Davi01b] R. David, P. Girard, C. Landrault, S. Pravossoudovitch and A. Virazel, "OnHardware Generation of Random Single Input Change Test Sequences", IEEEEuropean Test Workshop, in press, 2001.
[Davi01c] R. David, P. Girard, C. Landrault, S. Pravossoudovitch and A. Virazel, "RSICGeneration: A Solution for Logic BIST", 11th IFIP International Conference onVLSI, pp. 111-117, 2001.
[Gira98a] P. Girard, C. Landrault, V. Moréda, S. Pravossoudovitch and A. Virazel, "A newscan-BIST structure to test delay faults in sequential circuits", IEEE EuropeanTest Workshop, pp. 44-48, 1998.
[Gira98b] P. Girard, C. Landrault, V. Moréda, S. Pravossoudovitch and A. Virazel, "ABIST structure to test delay faults in a scan environment", IEEE 7th Asian TestSymposium, pp. 435-439, 1998.
[Gira00] P. Girard, C. Landrault, S. Pravossoudovitch and A. Virazel, "Comparisonbetween random and pseudo-random generation for BIST of delay, stuck-at andbridging faults", 6th IEEE International On-Line Testing Workshop, pp. 121-126, 2000.
[Vira00a] A. Virazel, R. David, P. Girard, C. Landrault and S. Pravossoudovitch, "Delayfault testing: Choosing between random SIC and random MIC test sequences",IEEE European Test Workshop, pp. 21-26, 2000.
RÉFÉRENCES RELATIVES À L’ÉTUDE
153
- Colloques sans Actes ou avec Actes à Diffusion Restreinte -
[Vira99a] A. Virazel, P. Girard, C. Landrault and S. Pravossoudovitch, "Analyse descapacités de test de générateurs intégrés produisant des vecteurs adjacents",Colloque CAO de Circuits Intégrés et Systèmes, Aix-en-Provence (Fuveau), pp.88-91, 1999.
[Vira00b] A. Virazel, R. David, P. Girard, C. Landrault and S. Pravossoudovitch, "BISTStructures Generating Universal Test Sequences for Delay, Bridging and Stuck-at Faults", Référence LIRMM n°00401, South European Test Seminar, SaintGervais, France, 2000.
[Vira00c] A. Virazel, R. David, P. Girard, C. Landrault and S. Pravossoudovitch, "TestIntégré de Circuits Digitaux : Etude Comparative de l’Efficacité de deux typesde Séquences de Test", Journées Nationales du Réseau Doctoral deMicroélectronique, pp. 86-87, 2000.
[Vira01b] A. Virazel, R. David, P. Girard, C. Landrault and S. Pravossoudovitch,"Universal Test Sequences: A BIST Application", Référence LIRMM n°01050,South European Test Seminar, Neustift, Austria, 2001.
[Vira01c] A. Virazel, R. David, P. Girard, C. Landrault and S. Pravossoudovitch, "TestIntégré de Circuits Digitaux : Comparaison de deux types de Séquences deTest", Journées des Doctorants, pp. 158-160, 2001.
[Vira01d] A. Virazel, "Effectiveness of Random Adjacent Test Sequences for BIST ofVLSI Circuits", SIGDA Ph.D. Forum at the 38th Design AutomationConference, Las Vegas, 2001.
155
LLIISSTTEESS DDEESS AALLGGOORRIITTHHMMEESS,,CCOOUURRBBEESS,, FFIIGGUURREESS EETT TTAABBLLEEAAUUXX
LISTES DES ALGORITHMES, COURBES, FIGURES ET TABLEAUX
157
LISTES DES ALGORITHMES,COURBES, FIGURES ET TABLEAUX
Algorithme II.1 : Étapes de la génération RMIC .................................................................................. 41Algorithme II.2 : Étapes de la génération RSIC................................................................................... 42Algorithme AI.1 : Simulateur "Sim_Bridge"........................................................................................ 125
Courbe II.1 : Efficacités des séquences RMIC et RSIC pour le circuit s382 ........................................ 47Courbe II.2 : Illustration de l'efficacité réelle ......................................................................................... 50Courbe II.3 : Comparaison des efficacités réelles des séquences RMIC et RSIC pour différentes
valeurs du taux de succès a) SNR = 10 %, b) SNR = 50 % e c) SNR = 90 %............... 52Courbe II.4 : Exemples d'évolutions des taux de couverture de faute obtenues sur le circuit s1494 .. 61Courbe IV.1 : Illustration des résultats robuste a) RSICS et b) RSICH1.............................................. 88Courbe IV.2 : Illustration des résultats non-robuste a) RSICS et b) RSICH1....................................... 91Courbe IV.3 : Évolutions des générations RSICH1 et RSICH2............................................................ 94Courbe IV.4 : Évolutions des générations RSICH1 et RSICH3............................................................ 95Courbe IV.5 : Évolutions des générations RSICH1 et RSICH4............................................................ 97Courbe IV.6 : Comparaisons RSICH4 et RSICH5 pour un test robuste............................................... 99Courbe IV.7 : Comparaisons RSICH4 et RSICH5 pour un test non-robuste ..................................... 100
Figure I.1 : Estimations sur les délais en fonction de la génération technologique [Sia99] ................. 11Figure I.2 : Bilan des tests "pass" et "fail" (source SEMATECH) ........................................................ 13Figure I.3 : Inverseur en technologie CMOS ........................................................................................ 14Figure I.4 : Modélisation des temps de montée et de descente d’une porte NOR............................... 15Figure I.5 : Classification des différents modèles de faute de délai ..................................................... 15Figure I.6 : Schéma de principe du test de délai .................................................................................. 18Figure I.7 : Cas idéal du test d'une faute de délai de chemin............................................................... 20Figure I.8 : Exemples de signaux contenant des aléas a) aléa statique et b) aléa dynamique ........... 20Figure I.9 : Invalidation du test par masquage...................................................................................... 21Figure I.10 : Chronogramme des signaux avec invalidation du test par masquage............................. 21Figure I.11 : Invalidation d’un test par un aléa...................................................................................... 22Figure I.12 : Chronogramme des signaux avec invalidation du test par un aléa.................................. 22Figure I.13 : Cas d’une porte AND en détection robuste a) chemin lent à monter
et b) chemin lent à descendre ........................................................................................ 23Figure I.14 : Exemple de test de délai robuste ..................................................................................... 24Figure I.15 : Chronogramme des signaux pour un test robuste ........................................................... 24Figure I.16 : Cas d’une porte AND en détection non-robuste a) chemin lent à monter
et b) chemin lent à descendre ........................................................................................ 25Figure I.17 : Exemple de test de délai non-robuste.............................................................................. 25Figure I.18 : Chronogramme des signaux pour un test non-robuste a) détection
et b) non-détection de la panne...................................................................................... 26Figure I.19 : Classification des fautes de délai de chemin ................................................................... 27Figure I.20 : Cas d’une porte AND en détection "Strong non-robuste" a) chemin lent à monter
et b) chemin lent à descendre ........................................................................................ 28Figure I.21 : Classement des nœuds.................................................................................................... 29Figure I.22 : Classification des courts-circuits ...................................................................................... 30Figure I.23 : Modèles de faute de court-circuit a) comportement ET ("wire AND")
et b) comportement OU ("wire OR") ............................................................................... 31Figure I.24 : Détection d’une faute de court-circuit a) comportement ET et b) comportement OU...... 32Figure II.1 : Génération logicielle d'une séquence RMIC a) n 15 et b) n > 15.................................. 40Figure II.2 : Génération logicielle d'une séquence RSIC...................................................................... 41Figure III.1 : Architecture classique du test intégré .............................................................................. 66
158
Figure III.2 : Le test intégré série ("test-per-scan") ............................................................................... 67Figure III.3 : Le test intégré parallèle ("test-per-clock") ........................................................................ 68Figure III.4 : Architectures de LFSR a) LFSR à portes XOR externes (type 1)
et b) LFSR à portes XOR internes (type 2) .................................................................... 69Figure III.5 : Exemple d'un LFSR à trois étages ................................................................................... 70Figure III.6 : Principe du générateur RSIC............................................................................................ 72Figure III.7 : Structure d'un LFSR "aléatoire" a) LFSR standard, b) Séquence générée
et c) Réalisation matérielle pour = 2 ........................................................................... 75Figure III.8 : Transcodage de R(l) à V(l) ............................................................................................... 77Figure III.9 : Bascule T.......................................................................................................................... 77Figure III.10 : Représentation sous forme de tableau de Karnaugh du choix des valeurs de Ti.......... 78Figure III.11 : Exemple de décodeur pour n = 3 et m = 4 ..................................................................... 79Figure IV.1 : Comparaison RSICS et RSICH1 en robuste pour deux longueurs
de la séquence de test.................................................................................................... 89Figure IV.2 : Comparaison RSICS et RSICH1 en non-robuste pour deux longueurs
de la séquence de test.................................................................................................... 92Figure IV.3 : Exemple de décodeur pour n = 3 et m = 2....................................................................... 98Figure IV.3 : Exemple de circuit .......................................................................................................... 102Figure IV.4 : Représentation du circuit sous forme de graphe a) graphe de dépendance,
b) graphe d'incompatibilité et c) graphe de compatibilité ............................................. 102Figure IV.5 : Exemple de test robuste a) test du chemin P1, b) test du chemin P2
et c) test des deux chemins simultanément ................................................................. 103Figure IV.6 : Schéma de principe du BIST parallèle a) génération standard MIC
et b) génération RSIC ................................................................................................... 105Figure IV.7 : Schéma d'une cellule BILBO a) BILBO standard et b) BILBO modifiée........................ 106Figure IV.8 : Schéma d'une cellule C-BILBO...................................................................................... 109Figure IV.9 : Schéma d'une cellule C-BILBO modifiée....................................................................... 110Figure IV.10 : Exemple de test parallèle utilisant des registres C-BILBO
a) génération classique MIC et b) génération RSIC .................................................. 111Figure AI.1 : Test d'une faute de court-circuit pour à la fois le comportement ET et OU................... 124Figure AI.2 : Schéma de principe du simulateur Sim_Bridge............................................................. 124Figure AIII.1 : Graphe général d’évolution des transitions ................................................................. 136Figure AIII.2 : Calcul de Pr pour λ = 2................................................................................................ 136Figure AIII.3 : Généralisation du calcul de Pr ..................................................................................... 137Figure AIII.4 : Graphe d'états d'une LFSR standard .......................................................................... 139Figure AIII.5 : Représentation graphique des valeurs de probabilité ................................................. 141
Tableau I.1 : Estimations sur la densité d'intégration et sur la surface des puces [Sia99]................... 11Tableau II.1 : Comparaisons SIC/RSIC pour un test robuste ............................................................... 43Tableau II.2 : Comparaisons SIC/RSIC pour un test non-robuste........................................................ 44Tableau II.3 : Résultats ATPG obtenus sur le circuit s382 ................................................................... 45Tableau II.4 : Efficacités Robustes et Non-Robustes pour les séquences RMIC et RSIC................... 46Tableau II.5 : Efficacités réelles pour le circuit s382 avec différentes valeurs du taux de succès ....... 51Tableau II.6 : Résultats ATPG délai obtenus sur les circuits ISCAS'89 ............................................... 53Tableau II.7 : Efficacités robustes et non-robustes des séquences RMIC et RSIC ............................. 54Tableau II.8 : Efficacités réelles pour avec différentes valeurs du taux de succès .............................. 55Tableau II.9 : Taux de couverture de fautes de court-circuit pour la séquence RMIC ......................... 56Tableau II.10 : Taux de couverture de fautes de court-circuit pour la séquence RSIC........................ 57Tableau II.11 : Taux de couverture de fautes de court-circuit avec des séquences de test
de longueurs compatibles à celles utilisées pour le test des fautes de délai .............. 57Tableau II.12 : Résultats ATPG collage obtenus sur les circuits ISCAS'89 ......................................... 58Tableau II.13 : Comparaisons RMIC et RSIC sur le modèle de faute de collage................................. 59Tableau II.14 : Synthèse des résultats démontrant l'efficacité des séquences de test RSIC
(* résultats obtenus avec des séquences de 10000 vecteurs de test) ........................ 60Tableau III.1 : Exemple de polynômes primitifs .................................................................................... 71Tableau III.2 : Explication de l'implantation du LFSR "aléatoire".......................................................... 75Tableau IV.1 : Validation de la structure pour un test robuste a) RSICS et b) RSICH1....................... 87Tableau IV.2 : Validation de la structure pour un test non-robuste a) RSICS et b) RSICH1................ 90
LISTES DES ALGORITHMES, COURBES, FIGURES ET TABLEAUX
159
Tableau IV.3 : Comparaisons RSICH1 et RSICH2............................................................................... 93Tableau IV.4 : Comparaisons RSICH1 et RSICH3............................................................................... 95Tableau IV.5 : Comparaisons RSICH1 et RSICH4............................................................................... 97Tableau IV.6 : Comparaisons RSICH4 et RSICH5............................................................................... 99Tableau IV.7 : Résultats de l'optimisation structurelle [More98]......................................................... 104Tableau IV.8 : Coût en surface de la génération RSIC par rapport à une génération standard
de type MIC dans un environnement BILBO ............................................................. 108Tableau IV.9 : Coût en surface de la génération RSIC par rapport à une génération standard
de type MIC dans un environnement C-BILBO.......................................................... 112Tableau AII.1 : Comparaisons SIC/RSIC pour le test des fautes de court-circuit .............................. 129Tableau AII.2 : Comparaisons SIC/RSIC pour le test des fautes de collage ..................................... 130Tableau AII.3 : Comparaisons MIC/RMIC pour un test robuste et non-robuste................................. 131Tableau AII.4 : Bilan des comparaisons pseudo-aléatoire / aléatoire ................................................ 131Tableau AIII.1 : Valeurs des probabilités ............................................................................................ 140
TTEESSTT IINNTTÉÉGGRRÉÉ DDEESS CCIIRRCCUUIITTSS DDIIGGIITTAAUUXXAANNAALLYYSSEE EETT GGÉÉNNÉÉRRAATTIIOONN DDEE SSÉÉQQUUEENNCCEESS AALLÉÉAATTOOIIRREESS AADDJJAACCEENNTTEESS
Thèse de Doctorat – 14 Novembre 2001 – Arnaud VIRAZELUniversité de Montpellier II / LIRMM – Discipline : Microélectronique
RÉSUMÉ : Cette thèse s'inscrit dans le cadre du test intégré des circuits digitaux et plusparticulièrement dans la problématique nouvelle induite par les rendements de fabrication etles phénomènes particuliers apparaissant dans les technologies submicroniques. En effet, dansces technologies, l'importance relative de défaillances, non représentées par le modèleclassique de collage, peut devenir prépondérante. Ainsi, pour obtenir des séquences de testayant une couverture de défauts satisfaisante, la prise en compte d'autres modèles de pannestels que les courts-circuits et les délais devient indispensable. L'utilisation de ces modèlesinduit des propriétés particulières de détection liées à la structure même des séquences de test.L'étude présentée dans la première partie de ce manuscrit porte précisément sur l'analysecomparative des qualités de détections de divers types de séquences de test. Nous montronsainsi que les séquences aléatoires adjacentes (séquences dites RSIC pour "Random SingleInput Change") sont particulièrement efficaces lorsque l'on considère, en complément dumodèle de collage, les modèles de court-circuit et délai. La deuxième partie de ce manuscritest quant à elle consacrée à la réalisation matérielle d'un générateur intégré produisant detelles séquences aléatoires adjacentes.
MOTS CLÉS : Test Intégré, Faute de Collage, Faute de Court-circuit, Faute de Délai, TestAléatoire, Séquences de Vecteurs Adjacents, Séquence de Test Universelle.
BBUUIILLTT--IINN SSEELLFF TTEESSTT OOFF DDIIGGIITTAALL CCIIRRCCUUIITTSSAANNAALLYYSSIISS AANNDD GGEENNEERRAATTIIOONN OOFF AADDJJAACCEENNTTSS RRAANNDDOOMM SSEEQQUUEENNCCEESS
Ph.D. Thesis – November 14, 2001 – Arnaud VIRAZELUniversity of Montpellier II / LIRMM – Discipline: Microelectronics
ABSTRACT: This thesis focuses on built-in self test of digital circuits problems and moreespecially on the new problems induced by manufacturing yield optimization and particularemerging phenomena in submicronics technologies. In fact, in these technologies, the relativeimportance of defects not represented by the common stuck-at fault model may becomesignificant. Thus, in order to obtain efficient defect coverage test sequences, it becomesessential to consider other fault models such as bridging and delay fault models. The use ofthese models induces particular detection properties related to the test sequences structure.The first part of this work proposes a comparison of the detection qualities of various types oftest sequences. We show that random adjacent sequences (RSIC sequences for "RandomSingle Input Change") are especially efficient when the bridging and delay fault models areconsidered in addition to the common stuck-at fault model. The second part of this manuscriptis dedicated to the hardware implementation of an integrated generator producing suchadjacent random sequences.
KEYWORDS: Built-In Self Test, Stuck-at Fault, Bridging Fault, Delay Fault, Random Testing,Single Input Change Sequences, Universal Test Sequence.
Université de Montpellier II : Sciences et Techniques du LanguedocLIRMM : Laboratoire d'Informatique de Robotique et de Microélectronique de Montpellier
161 Rue Ada – 34392 Montpellier Cedex 5