Plan Introduction Méthode Time-Frame Algorithme Essential

Slides:



Advertisements
Présentations similaires
Sintaks : Tentative de guide de mise en œuvre Michel Hassenforder.
Advertisements

La Méthode de Simplexe Standardisation
Soutenance du stage de DEA.
Fabrice Lauri, François Charpillet, Daniel Szer
Machines séquentielles
Licence pro MPCQ : Cours
Distance inter-locuteur
Analyse temps-fréquence
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
Critère d’ordonnancement en temps réel Partie II
GEF 435 Principes des systèmes d’exploitation
Systèmes Experts implémentation en Prolog
Chap. 1 Structures séquentielles : listes linéaires
Ordonnancement des mouvements de deux robots
Recherche heuristique de similitudes dans les séquences dADN École Jeunes Chercheurs en Algorithmique et Calcul Formel Laurent Noé
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Utilisation des tableaux
1 Théorie des Graphes Cycle Eulérien. 2 Rappels de définitions On dit qu'une chaîne est un chemin passant par toutes les arêtes du graphe. On dit qu'un.
Améliorer les performances du chiffrage à flot SYND
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
Plan Évolution Système On Chip Difficultés de la testabilité des SOCs
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Application des algorithmes génétiques
Synchronisation et communication entre processus
Sémantique axiomatique
1. 9 juillet 2009 Portrait du financement des organismes communautaires en santé et services sociaux Année de référence Ministère de la Santé
1.2 COMPOSANTES DES VECTEURS
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
La voyage de Jean Pierre
Tableaux de distributions
Tableaux de distributions
LES NOMBRES PREMIERS ET COMPOSÉS
3.6 Les équations de la cinématique à accélération constante MRUA
Systèmes d’équations du premier degré à deux variables
Réseaux de neurones.
Algorithme de Bellman-Ford
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
IFT Complexité et NP-complétude
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
1.1 LES VECTEURS GÉOMÉTRIQUES
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
ELE6306 : Test de systèmes électroniques Projet de cours Chaîne de scan unique: Reconfiguration = Optimisation Louis-Martin Côté Professeur : A. Khouas.
Plan Introduction DFT d’un additionneur asynchrone
Plan Problématique Fautes de délai Techniques de test « at-speed »
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
1 La détection de gènes impliqués dans les maladies multifactorielles Marie-Pierre Etienne ENGREF Laboratoire GRESE Statistique et Génome.
Ordonnancement de tâches
Résoudre une équation du 1er degré à une inconnue
Programmation dynamique
Programmation non procédurale Le projet ECOLE 2000
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
Programmation linéaire en nombres entiers : les méthodes de troncature
ASI 3 Méthodes numériques pour l’ingénieur
RAPPEL Qu’est ce qu’une structure de contrôle itérative ?
Elaboré par M. NUTH Sothan 1. 2 Soit x, y et z des coordonnées cartésiennes à 3 dimension. G un ensemble de points dans le plan (u, v). Déf. : On appelle.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
Equation différentielle de 2ème ordre
Programmation dynamique
Partie II: Temps et évolution Energie et mouvements des particules
Programmation linéaire en nombres entiers
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Banc d’essai pour un.
Chapitre 5 Test de circuits séquentiels
Recherches locales et méta-heuristiques
Optimisation pour la Conception de Systèmes Embarqués
ELE6306 : Test de systèmes électroniques Adaptation d’une interface de communication pour implants en vue du test Laurent Aubray, Dominique Pâquet-Ferron.
ELE6306 : Test de systèmes électroniques Test intégré et Modèle de faute de délai Etudiante : S. BENCHIKH Professeur : A. Khouas Département de génie électrique.
A. Lebrun. Principe de base Dans la logique combinatoire, les sorties dépendent des différentes entrées et peuvent être calculées par l’algèbre de Boole.
Transcription de la présentation:

Francis St-Pierre ; Olivier-Don Truong ELE6306 : Test de systèmes électroniques Projet de cours Synthèse des algorithmes pour les générateurs automatiques de vecteurs de tests (ATPG) pour les circuits séquentiels Francis St-Pierre ; Olivier-Don Truong Professeur : A. Khouas Département de génie électrique École Polytechnique de Montréal

Plan Introduction Méthode Time-Frame Algorithme Essential Algorithme Hitec Algorithme Atoms Méthode Séquence d’initialisation simulation séquentielle basée Algorithme CONTEST Algorithme GENTEST Algorithme ALT-TEST Comparaison des méthode Algorithme pour TETRAX MAX ET FAST SCAN Conclusion

Introduction Utilisation des ATPG pour les circuits séquentiels Différence des ATPG pour les circuits combinatoire et les circuits séquentiels. Procédure de test différente Différence et avantage face à la méthode de chaîne de Scan Il y a deux méthodes utilisées pour les ATPG séquentiels : Les Time Frames et la simulation séquentielle basée

Expension en Time-Frame Dérouler le circuit dans le temps Chaque fenêtre (frame) représente le circuit à un moment différent dans le temps Faute présente pour chaque fenêtre Application d’algorithmes combinatoires au circuits séquentiels Expension en Time-Frame

Raisons 5 valeurs logiques ne prenaient pas en compte la répétition des effets d’une faute dans un circuit séquentiel Propagation faute jusqu’à une sortie primaire, celle-ci sera présente pour chaque time frame. Cette façon d’attribuer des valeurs fera représenter le circuit comme deux machines qui seront simulées simultanément par l’ATPG Besoin d’exécuter cette opération une seule fois vue qu’elle est effectuée en même temps dans un time frame Nine-valued logic

Exemple

Étapes Sortie d’une flip-flop devient l’entrée d’une autre, vice-versa Implications: attribuera aux signaux les 9 valeurs logiques et les attributions faciliterons l’identification de fautes non détectables Affectons valeur 1/0 pour un sock-at-0 0/1 pour un stock-at-1

Étapes suite Justifier la valeur de sortie provenant des entrées primaires, en considérant les chemins et rajoutant les time frames précédents Si justification impossible => utiliser le potentiel de sortie d’un autre PO et justifier de nouveau Si toutes PO non atteintes pour la faute => alors la faute n’est pas testable Dernier recours => Changer stuck-at 1/1 ou 0/1 par 1/X ou 0/X. L’erreur sera identifiée comme étant potentiellement détectable.

Algorithme Essential Reprend technique ATPG combinatoire Prend avantage des implications globales pour la convergence successive de sorties et de time frames Utilise le concept du chemin de propagation Combine traitement de time frames précédent et futur CTF et PTF N’utilise pas concept des 9 nine-valued logic 1- Étape de prétraitement 2- Étape de génération de vecteurs 

Étape de prétraitement Apprentissage et analyse de la structure du circuit => détecter fautes non testable Déterminera la dominance entre signaux Établira la structure (dataflow) et emplacement des boucles de rétroaction. Affecte une valeur 0 ou 1 et effectue implication pour CTF et PTF Alterne CTF et PTF dépendamment de la direction

Vérification des fautes Implication d’un signal, mais dépend d’un autre => Dilemme destructif => un ne peut arriver sans l’autre Signaux ne peut pas être forcés à 0 ou 1 Signal dépend d’une flip-flop dans un état indéterminé => Flip-flop influence incapacité de vérifier S@0 ou S@1 porte subséquente Vérification des fautes

Étape de génération de vecteurs Partie 1 Apprentissage des informations en lien avec fautes Informations sur les interconnexions => Trouver signaux structurellement atteignables pour l’évaluation des effets d’une faute Utilisera la notion de distance d’une faute pour un signal

Étape de génération de vecteurs (suite) Partie 2 Notion de frontière D Utilise relations de dominance Deux instructions de synthétisation basées sur la structure potentiel de propagation et des signaux dynamiquement dominants Partie 3 Vérifier implications sont toujours valable avant de les effectuer La règle de la propagation pour portes ET permet d’éviter la propagation vers les boucles de rétroactions

Algorithme HITEC Développé à Université Illinois Possède un haut taux de couverture et identifie les fautes indétectables 3 méthodes sont utilisées 1- Il utilise une meilleure technique frontière D 2- Justification d’un état 3- Apprend des fautes abandonnée

Justification d’un état Frontière D Si le chemin est sans issues, frontière recule jusqu’au moment où elle trouve un meilleur chemin Prochaine étape, l’état initial de la faute testée sera justifié Justification d’un état >Un conflit est repéré => la faute rend l’état non valide >Objectifs d’un état sont atteints => un test est trouvé donc pas besoin d’appliquer de nouveau vecteurs >Utilisation des données trouvées non fructueuse => traitement à reculons pour un time frame

Justification d’un état (suite) Assignations pour justifier => Classées du plus difficile vers le plus facile Justification d’un état en évaluation non réussie => État sera classé comme étant non atteignable pour la faute en cours d’évaluation Déterminer états injustifiables => une série d’états illégaux associés pour chaque faute 3 critères déterminent si illégaux (non justifiable<=/illégal=>perte temps présentement) 1- Pseudo entrée primaire avec contrôlabilité SCOAP infinie =>Flip-Flop ne pourra pas être initialisée 2- Aucune répétition d’un état Ex: Un état a déjà été visité, donc le générateur a trouvé une boucle 3- Identification des états anciennement déclarés injustifiable Justification d’un état (suite)

Apprentissage par simulation de fautes À la première génération du test, les fautes redondantes ou non testables ne se sont pas identifiées Utilise informations du simulateur de fautes pour celles ayant réussi leur propagation jusqu’à PO Chaque faute n’ayant pas réussi, le simulateur note les time frame vers lesquelles elles se sont rendues Au besoin, plus de time frame seront utilisés pour la réussite de la propagation

Algorithme ATOMS a ATOMS est l’évolution de ATOM Nouvelles méthodes pour réduction de l’espace des états et l’identification des états injustifiables Apporte des notions pouvant être utilisé pour simulation based et déterminatrice Le générateur de test utilisé est HITEC et PODEM pour le traitement de chaque time frame. a

1. Sensibilisation unique améliorée Utilisé seulement durant la propagation des fautes pour trouver les assignations nécessaires aux lignes en prenant l'intersection des implications logiques des dominateurs dynamiques pour les portes de la frontière D 2. Backtrace avec X-path et vérification de conflit Utilisé pour propagation des fautes et la phase de justification des états Aide le générateur à déterminer les conflits possibles avant d’affecter une valeur à une entrée primaire ou une flip-flop Empêche le générateur de test d'entrer dans une situation sans issue => perte de temps

4. Identification des états injustifiables (sauver temps) 3. Lookback Préconise la traversée des transitions d’états avec l’utilisation combinée de la volonté de profondeur et de largeur. Limite locale et globale de retour arrière des états est établie Un état Si et une limite locale de retour arrière n, aucune solution n’est trouvée après avoir traversé n prédécesseur. Va retourner à son successeur dans le graphique et continue à traverser les prédécesseurs de cet état en utilisant la règle. 4. Identification des états injustifiables (sauver temps) Générateur ne tombe pas dans un état de recherche pour une situation ne pouvant pas être résolue État injustifiable Su peut être atteint par un état Sk, donc ce dernier est injustifiable => Passe par graphique de transition des états précédents et états rencontrés lors du chemin arrière seront identifiés injustifiables

5. Région de support Partie du circuit affectant la génération d’un test pour une faute Les portes hors de la région de support ne sont pas en connexion vers certains flip-flops, elles n’affecteront pas la justification Ne sera pas nécessaire de faire des implications hors de cette région Évite calculs inutiles

Séquence d’initialisation Ce n’est pas tous les circuits qui possède une séquence d’initialisation Le but est d’avoir aucune séquence homogène La séquence d’initialisation comporte 3 étapes séquence de synchronisation (SS) ou séquence homing (HS) séquence distinguée (DS) séquence de transition (TS)

séquence de synchronisation (SS) Permet d’avoir un état connu à partir d’une séquence d’entrée sans se préoccuper de l’état initial au départ Vecteur obtenu 01010 de la séquence de synchronisation

séquence homing (HS) Permet de connaître l’état final du circuit avec la séquence de sortie indépendamment de l’état initial Une séquence 010 nous permet de déterminer l’état final sans se soucier de l’état initial par la réponse de la sortie

séquence distinguée (DS) Cette séquence implique d’avoir une séquence d’entrée qui procure une séquence de sortie avec un état M différent pour chaque état initial. Ex: Avec un graphique du même style que dans la séquence homing. Avec des états initiaux ABCD et une séquence d’entrée 111, il faudrait avoir (A)101(B)110(C)111(D)011 Toutes les DS sont des HS mais le contraire n’est pas toujours valable. Tous les circuits possède une HS, mais ce n’est pas tous les circuits qui possède une DS car on peut trouver des séquences homogène comme (DD)10.

La séquence de transition (TS) Permet de passer d’un état S1 à un état S2 par la plus petite séquence d’entrée. Cette séquence permet de pouvoir tester d’autres fautes dans un circuit séquentiel à partir d’un autre état.

Simulation basée séquentielle Comparativement au Time Frame, cette méthode part du début du circuit jusqu’à la fin. Elle teste les faute de façon directe Se base sur le principe de simulation de fautes concurrentes (CFS) Ce principe consiste à insérer plusieurs vecteurs dans un état de départ, de retenir les vecteurs qui détectent le plus de fautes et de les inscrire dans une liste. Par la suite on testera les circuits avec cette liste de vecteurs Pour les circuits séquentiels, on cherchera à insérer une série de vecteurs.

Algorithme CONTEST Algorithme qui se base sur le principe des fautes concurrentes (CFS). Utilise une fonction appelé cost dans chaque phase Comporte 3 phases: 1- Initialisation pour un état connu de départ 2- Détection de fautes concurrentes 3- Détection des fautes uniques   

Initialisation dans un état connu de départ Le cost est défini par le nombre de bascule étant dans un état inconnu. Au départ, le cost est égale au nombre de bascule et le but est d’avoir un cost égale à 0. Il faut pas plus de 10% non initialisé. Pendant cette phase, on prend un vecteur courant qui sera le vecteur de référence. Ce vecteur aura un certain cost. On prend un vecteur d’essai et on le compare au vecteur courant. Si son cost est plus petit, on remplace le vecteur courant par le vecteur d’essaie sinon on essaie un nouveau vecteur d’essai. L’initialisation est finie lorsque cost = 0

Détection de fautes concurrentes Vecteurs d’initialisation ont déjà détecté certaines fautes Ici le cost détermine la distance d’une porte à une sortie primaire. Le cost est calculé en porte logique et plus il est petit, plus la faute est possible à être détectée. Quand le cost = 0 , la faute a été propagé à une sortie primaire. Si la faute n’est pas activée, le cost sera égale à infini.

Détection de fautes concurrentes (suite) Lorsqu’il y a trop de fautes indétectables, on calcul le cost(C) totale de toutes les fautes. Après on calculera le nouveau cost (C’)avec un vecteur d’essaie. Si C’ < C on garde le vecteur d’essai et on recommence jusqu’à un cost le plus petit possible. Si C’ > C on rejette le vecteur. Les fautes plus isolées seront traitées dans la phase 3.

Détection des fautes uniques La fonction cost sera fondée sur la mesure de testabilité SCOAP. Le cost est déterminé par l’effort pour activer et propager une fautes vers une sortie primaire Pour savoir quel faute il fera, il évaluera toutes les fautes dans la liste de fautes non détecté et testera les fautes avec le plus bas cost. Cette phase est finie si on a un taux de couverture satisfaisant ou qu’il n’y plus aucune faute à tester. Résumé CONTEST L’algorithme CONTEST est considéré évolutif, car il accepte ou rejette des vecteurs selon leur efficacité à trouver les fautes. En utilisant sa fonction cost.

Algorithme GENETIC Basé sur l’algorithme CONTEST pour ces 3 phases. Il génère des types de vecteurs qui ont étés efficace dans le passé. Ici on utilisera une fonction appelé fitness qui cherche, comparative à cost, à être le plus élevé possible. Prend une série de vecteurs qu’on appellera Population qui subira par la suite des itérations appelé nouvelle génération. Les vecteurs d’une nouvelle génération sont fait à partir des opérations suivante: crossover, mutation et sélection sur la génération actuelle. Ceci est l’itération Le fitness est évalué selon l’étape dans la quel on est. Si le fitness de la nouvelle génération est plus élevé que celle de la génération présente, on remplace la génération présente par la nouvelle génération. Utilise l’algorithme GENETIC dans le programme GATEST

Algorithme ALT-TEST (hybride) Intéressante et pas souvent utilisée Méthode génétique simulation-based et déterminatrice Avantage des deux méthodes Il existe aussi CRIS-hybrid et GA-HITEC Alt-Test est différent de ces prédécesseurs par certains points. Étapes Plupart du traitement sera effectué par la partie génétique (GA) HITEC servira principalement à guider GA vers de nouveaux états du circuit GA identifiera les fautes difficiles pour HITEC La population est initialisée avec des séries aléatoires, séquences suggérées par HITEC ou bien d’autres déjà été déterminées par une évaluation précédente de GA.

GA est utilisé en premier jusqu’aux résultats stagnant Composé de trois étapes pointant sur trois objectifs différents 1-Consistera à détecter les fautes provenant de la liste des fautes 2-Maximisera le nombre d’état visité et propagera l’effet de ces fautes vers les flip-flops 3-S’efforcera de détecter les dernières fautes restantes et visitera de nouveaux états Dans chaque étape, GA sélectionnera 31 fautes de sa liste de fautes Maximiser la vitesse d’exécution Les meilleurs vecteurs seront ajoutés et les séquences ayant une étroitesse plus grande ou égale aux meilleurs résultats seront gardées pour les individus faisant partie de la population pour la prochaine utilisation de GA

3 étapes ont des buts différents =>Rapport d’Étroitesse n’est pas le même P1 Nombre de fautes détectées faisant partie du groupe de fautes P2 Nombre de Flip-flops comportant des fautes à la fin d’une simulation P3 nouveaux états visités P4 flip-flops difficiles à contrôler pour leurs valeurs. Étape 1 : Étroitesse = 0,8P1 + 0,1P2 + 0,1(P3 + P4) =>détecter le plus de fautes possibles en peu de temps Étape 2 : Étroitesse = 0,1P1 + 0,45P2 + 0,45(P3 + P4) Étape 3 : Étroitesse = 0,41P1 + 0,2P2 + 0,4(P3 + P4) =>retour pour l’évaluation de fautes difficiles n’étant pas résolut par les étapes précédentes de HITEC et GA

Comparaison des méthodes Avantages et désavantages de Time frame: Avantages: Identifie les fautes redondantes et les fautes non détectables Extension directe d’une approche combinatoire qui permet de réutiliser des algorithmes combinatoires performants. Désavantages: Utilise beaucoup de mémoire et de temps de CPU car cette méthode nécessite de copier X fois la partie combinatoire du circuit dans la mémoire. Cette méthode aura de la misère à tester les gros circuits asynchrones à cause des problèmes de timing.

Comparaison des méthodes (suite) Avantages et désavantages de Simulation séquentielle basée: Avantages: Détecte plusieurs fautes avec un vecteur de test Test pas mal toutes les sortes de circuits (sauf rétroaction) Moins de temps de CPU Désavantages: Incapable d’identifier les fautes redondantes N’est pas capable de déterminer le taux d’efficacité à cause de son ignorance face à la détection de fautes non détectées Génère beaucoup de vecteurs de test Inefficace pour les circuits avec rétroactions complexes

Comparaison des méthodes(suite) Explication du choix d’une méthode plus qu’une autre Dépend des caractéristiques du circuit utilisé (asynchrone, rétroaction,…) Coût actuelle du temps de CPU comparativement à celui des vecteurs de test. Existe méthode Hybride, comme ALT-TEST, qui tire les avantages de chaque méthode.

TETRAMAX et FASTSCAN Impossible de trouver les algorithmes utilisés dans ces programmes car: Coût des licences de programmes en millier de dollars Mais il est sûr que les algorithmes utilisés sont des améliorations des algorithmes que nous avons énoncés dans cette synthèse. Ces améliorations restes secrètes.

Conclusion Passé à travers plusieurs algorithme et nombreuse étapes Remarqué notions importante pouvant être réutilisées Existe d’autre algorithme très développé: Wavexpress: DFT et applique un algorithme modifié =>observe améliorations Basé sur partitionnement d’un clock et l’arrêt de celui-ci. Permet d’arrêter global feedback loop dans le circuit et générer clock waves pour le circuit résultant, applique algo.

Questions