Test par scan vs BIST : les principales différences
Le test par scan relie les bascules de la puce en registres à décalage (chaînes de scan) : un testeur externe y injecte des vecteurs de test, récupère la réponse du circuit et la compare aux valeurs attendues. Les vecteurs sont générés à partir de la netlist par des outils d’ATPG. Le BIST intègre dans la puce un circuit qui génère les vecteurs et un circuit qui évalue le résultat, de sorte que la puce se teste elle-même. En test de production, la combinaison courante est le test par scan pour la logique et le BIST mémoire pour les mémoires intégrées ; le BIST peut aussi servir à l’autodiagnostic après livraison.
| Critère | Test par scan | BIST (autotest intégré) |
|---|---|---|
| Principe | Les bascules sont reliées en chaînes de scan ; les vecteurs sont chargés par décalage, le circuit fonctionne une fois, puis le résultat est extrait par décalage et comparé | Un circuit générant les vecteurs et un circuit évaluant la réponse sont intégrés à la puce, qui se teste elle-même et rend un verdict bon/mauvais |
| Génération des vecteurs de test | L’ATPG produit à partir de la netlist des vecteurs déterministes ciblant les fautes de collage et les fautes de retard de transition | Le BIST logique produit des vecteurs pseudo-aléatoires avec un LFSR. Le BIST mémoire produit adresses et données selon des procédures fixes comme les tests March |
| Évaluation de la réponse | Le testeur compare aux valeurs attendues (avec la compression de test, ce sont des réponses compressées dans la puce qui sont comparées) | Le BIST logique compresse la réponse avec un MISR et compare la signature à la valeur attendue. Le BIST mémoire vérifie directement les valeurs lues avec un comparateur |
| Dépendance au testeur | Vecteurs et valeurs attendues stockés dans la mémoire du testeur. Il faut des broches de scan ainsi qu’un testeur suffisamment performant et doté de mémoire | Il suffit de lancer le test et de lire le résultat (par JTAG, par exemple) ; un testeur simple convient |
| Cible principale | Circuits logiques (logique combinatoire et bascules) | BIST mémoire : mémoires intégrées comme la SRAM. BIST logique : circuits logiques |
| Couverture de fautes | Facile à rendre élevée, car les vecteurs sont générés pour cibler des fautes précises | Avec le BIST logique, des fautes difficiles à détecter par des vecteurs pseudo-aléatoires subsistent souvent, ce que l’on compense par l’insertion de points de test. Le BIST mémoire atteint une couverture élevée grâce à des procédures adaptées aux modèles de fautes des mémoires |
| Circuits ajoutés | Les bascules sont remplacées par des bascules de scan (avec multiplexeur de sélection) et le câblage des chaînes est ajouté | Générateur de vecteurs, compresseur de réponses et circuit de contrôle nécessaires. Le BIST logique impose en outre d’adapter le circuit pour qu’aucune valeur indéterminée (X) n’apparaisse |
| Durée de test | Des chaînes longues allongent le décalage, et la vitesse du testeur est une limite. La compression de test la réduit | L’horloge interne permet d’appliquer rapidement de nombreux vecteurs. Le BIST logique nécessite toutefois beaucoup de vecteurs |
| Moment d’utilisation | Principalement le test sur wafer et le test final en production. Sert aussi au diagnostic des puces défectueuses | En plus du test de production, contrôle après montage sur carte et autodiagnostic après livraison, par exemple à la mise sous tension |
Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.