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