Brevet FR2990313A1 — publié le 20131108

TEST DE CONVERTISSEUR ANALOGIQUE- NUMERIQUE EMBARQUE Domaine technique de l'invention L'invention est relative au test de circuits intégrés en production, et plus 5 particulièrement au test d'un convertisseur analogique-numérique embarqué dans un système-sur-puce. État de la technique La figure 1 illustre une méthodologie classique utilisée pour tester un convertisseur analogique-numérique ADC. On applique sur l'entrée analogique Va du convertisseur 10 une rampe linéaire, relativement lente par rapport à la fréquence d'échantillonnage du convertisseur, de sorte que plusieurs échantillons successifs puissent être pris pour chaque code numérique Vd du convertisseur. Les occurrences N de chaque code sont comptées et classées dans un histogramme H. Idéalement, lorsque la rampe a balayé la dynamique d'entrée du convertisseur ADC, les 15 classes de l'histogramme contiennent toutes le même compte. Des écarts entre les comptes traduisent des défauts de linéarité du convertisseur (ou de la rampe). Le convertisseur pourra être déclaré défaillant si on relève un écart trop important. En pratique, l'échantillonnage de la rampe est entaché de bruit, et la rampe n'est pas parfaitement linéaire. Il en résulte qu'on effectue une mesure sur un grand nombre 20 d'échantillons pour atténuer le bruit par effet de moyenne. Les non-linéarités des rampes visibles sur la pleine échelle du convertisseur ADC sont compensées en effectuant la mesure sur un grand nombre de petites rampes successives. Dans un test en production de circuits intégrés, on utilise traditionnellement un équipement de test générique capable de produire divers signaux de test et de recueillir 25 les données, par exemple à l'aide d'une interface JTAG. Pour tester un convertisseur analogique-numérique, l'équipement de test produit les rampes et recueille les codes produits par le convertisseur pour les stocker. Ces codes sont ensuite transférés sur un poste de travail capable de les analyser plus rapidement que l'équipement de test. Le temps de transfert de l'équipement de test vers le poste de travail constitue une part 30 non négligeable du temps total de test du convertisseur ADC. Si pour des convertisseurs jusqu'à 10 bits, le temps de transfert restait acceptable, ce temps devient prépondérant pour des convertisseurs 12 bits et plus. Le nombre d'échantillons à capturer pour obtenir une précision de mesure statistique acceptable augmente exponentiellement avec le nombre de bits du convertisseur. Il faut, par exemple, pour un convertisseur 12 bits, travailler sur une série d'au moins 512 k échantillons. Le transfert d'un tel nombre d'échantillons représente près de 90 % du temps de test. Pour diminuer le temps de test lié au transfert des échantillons, on propose des dispositifs de test embarqués, couramment appelés BIST (de l'anglais « Built-In Self-Test »), qui permettent de générer les rampes en interne et de faire le traitement des échantillons au vol. La demande de brevet US2011/0231153 décrit un tel dispositif II permet de programmer le nombre nominal d'échantillons à capturer par code, et donc la pente et le nombre des rampes en fonction de la fréquence d'échantillonnage. Une fois le nombre correspondant d'échantillons capturés et classés dans un histogramme, le dispositif établit notamment l'écart entre le compte maximal et le compte minimal des classes de l'histogramme. L'utilisateur peut programmer un seuil pour cet écart, au-dessus duquel le convertisseur sera considéré comme défaillant. La durée de test d'un tel dispositif BIST est proportionnelle au nombre d'échantillons à capturer par code. L'utilisateur doit donc choisir un compromis entre précision et durée de test. Les rampes sont générées par des composants analogiques configurés pour atteindre une linéarité maximale. Il s'avère que la partie analogique occupe la majeure partie de la surface du dispositif BIST. Un tel dispositif est ainsi relativement grand et est donc à réserver aux systèmes-sur-puce les plus grands pour que l'influence sur le coût de fabrication soit minimale. Le comportement des composants analogiques dépend par ailleurs de la technologie de fabrication du système-sur-puce. La moindre modification de la technologie nécessite une réadaptation de la partie analogique du dispositif BIST. Le dispositif n'est pas portable tel quel d'une technologie à l'autre et nécessite un cycle complet de requalification, assez long. Résumé de l'invention On souhaite disposer d'un dispositif BIST pour tester un convertisseur analogique-numérique, qui soit capable d'évaluer le bon fonctionnement du convertisseur en un temps minimal. On souhaite accessoirement que le dispositif BIST occupe peu de surface et qu'il soit portable d'une technologie à l'autre. On tend à satisfaire ce besoin en prévoyant un procédé de test d'un convertisseur analogique-numérique comprenant les étapes consistant à appliquer des rampes à l'entrée du convertisseur, et à classer les codes numériques produits par le convertisseur selon un histogramme. Le convertisseur est déclaré opérationnel dès que toutes les classes de l'histogramme ont atteint un compte minimal. Le compte minimal peut valoir 1 en pratique. Le convertisseur peut être déclaré défaillant si une classe n'atteint pas le compte minimal avant l'expiration d'un intervalle de temps. Selon un mode de mise en oeuvre, les rampes sont produites à partir d'un signal de modulation de largeur d'impulsion filtré. On prévoit en outre un dispositif de test d'un convertisseur analogique-numérique comprenant un générateur de rampes connecté à l'entrée du convertisseur, et un module de test configure pour classer dans une mémoire les codes numériques produits par le convertisseur selon un histogramme. Le module de test est configure pour activer un signal de validation dès que toutes les classes de l'histogramme ont atteint un compte minimal. Selon un mode de réalisation, le générateur de rampes comprend un modulateur de largeur d'impulsion suivi d'un filtre. Selon un mode de réalisation, le dispositif comprend un décodeur d'adresses recevant la sortie du convertisseur comme adresse ; une bascule par sortie du décodeur d'adresses, connectée pour mémoriser le passage par un état actif de la sortie du décodeur ; et le module de test configure pour activer un signal de validation lorsque toutes les bascules ont basculé. Selon un mode de réalisation, le dispositif comprend un minuteur démarré au début d'une phase de test ; et le module de test est configure pour activer un signal de défaillance si toutes les bascules n'ont pas basculé lorsque le minuteur atteint sa durée. Selon un mode de réalisation, le convertisseur analogique-numérique, le modulateur de largeur d'impulsion, le module de test, et la mémoire sont tous intégrés dans un même 30 système-sur-puce. Selon un mode de réalisation, le convertisseur analogique-numérique, le modulateur de largeur d'impulsion, le module de test, et les bascules sont tous intégrés dans un même système-sur-puce, et les bascules ont un mode de fonctionnement de test où elles sont connectées aux sorties du décodeur d'adresses, et un mode de fonctionnement normal où elles sont utilisées par d'autres fonctions du système-sur-puce. Description sommaire des dessins Des modes de réalisation seront exposés dans la description suivante, faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : - la figure 1, précédemment décrite, illustre une méthodologie de test classique d'un convertisseur analogique-numérique ; - la figure 2 représente schématiquement un mode de réalisation de dispositif BIST autoadaptatif ; et - la figure 3 représente schématiquement un système-sur-puce intégrant un dispositif BIST et un générateur de rampe numérique. Description d'un mode de réalisation préféré de l'invention Un dispositif BIST du type décrit dans la demande de brevet US2011/0231153 permet d'effectuer des mesures particulièrement précises et de déceler des faibles écarts de linéarité du convertisseur analogique-numérique. Cela est utile pour détecter les causes de défaillance et pour effectuer de la caractérisation de prototypes. Dans un environnement de production de grande série, on cherche un critère de rejet ou d'acceptation unique, qu'on ne souhaite pas programmer au cas par cas. En pratique, lorsqu'un circuit est conçu de manière robuste, c'est-à-dire pour être opérationnel dans une situation pire cas de variabilité du procédé de fabrication, de la tension d'alimentation, et de la température, une défaillance se traduit généralement par 25 un défaut de linéarité si important qu'il est inutile de le mesurer de manière précise. De façon générale, au lieu de chercher à mesurer des écarts entre classes d'histogramme, on cherche simplement à détecter que chaque code numérique est produit par le convertisseur en réponse à une rampe qui parcourt toute la dynamique d'entrée du convertisseur. En d'autres termes, on cherche à atteindre une valeur minimale dans chaque classe de l'histogramme, cette valeur minimale pouvant être 1 en pratique. En théorie, il suffirait d'utiliser une seule rampe configurée pour qu'un seul échantillon soit capturé pour chaque code. Toutefois, compte tenu de l'influence du bruit, il est 5 probable que tous les codes ne soient pas produits sur une seule tentative. Néanmoins, le fait qu'un code soit effectivement produit est représentatif d'un bon fonctionnement du convertisseur pour ce code - soit la rampe correspondait à la valeur du code, soit le bruit a décalé la valeur de la rampe pour la faire correspondre au code. Dans le cadre d'une conception robuste, si un code est produit, on peut être certain que la linéarité est 10 acceptable. Une défaillance entraînera plutôt une absence de code, quelle que soit la valeur du signal appliqué à l'entrée du convertisseur. Compte tenu de ces observations, on constate que la linéarité de la rampe n'a aucune importance. Ce qui importe est de balayer toutes les valeurs de la dynamique d'entrée du convertisseur de manière suffisamment lente, et de constater que tous les codes sont 15 produits. Si tous les codes n'ont pas été produits, cela peut être dû au bruit - on réitère des balayages jusqu'à ce qu'on constate la production de tous les codes. S'il manque des codes au bout d'un nombre de balayages statistiquement suffisant pour lisser le bruit, on déclare que le convertisseur est défaillant. La figure 2 représente schématiquement un mode de réalisation de dispositif BIST, 20 notamment d'un module de test prévu pour analyser les échantillons, permettant une mise en oeuvre particulièrement simple de cette procédure. La sortie du convertisseur analogique-numérique ADC est fournie à un décodeur d'adresses DEC. Pour chaque code numérique Vd du convertisseur, le décodeur d'adresses active une ligne de sortie différente. Chacune de ces lignes de sortie et connectée à l'entrée de validation d'une 25 bascule FF respective. Les entrées de donnée de toutes ces bascules reçoivent la valeur « 1 ». Une porte ET 4 combine les sorties des bascules FF et produit un signal de validation PASS, actif lorsque toutes les bascules FF sont passées à « 1». Une porte NON-ET 6 combine le signal PASS et la sortie d'un minuteur TMOUT. Une porte ET 8 combine la sortie de la porte 6 et du minuteur TMOUT - elle produit un 30 signal de défaillance FAIL, actif lorsque le minuteur TMOUT a fini de compter sa durée et que le signal PASS n'a pas été activé. Au début d'une phase de test, les bascules FF sont mises à « 0 ». Le minuteur TMOUT est démarré et on commence l'application d'une succession de rampes sur l'entrée du convertisseur. Au fur et à mesure que les codes sont produits, les bascules FF passent à « 1». Dès que toutes les bascules FF sont à « 1», ce qui peut se produire dès la fin de la première rampe, le signal PASS est activé et le test s'arrête. Si le minuteur TMOUT atteint sa durée alors que le signal PASS n'a pas été activé, 5 c'est le signal FAIL qui est activé, indiquant la défaillance du convertisseur ADC. Avec cette procédure de test, un convertisseur opérationnel peut être détecté dès la première rampe. Ce n'est que si le convertisseur est défectueux que le temps de test est plus long, égal à la durée du minuteur. En règle générale, en production, comme le nombre de circuits opérationnels est majoritaire, le temps de test moyen est 10 significativement réduit par rapport à une solution où le nombre d'échantillons à capturer est constant et déterminé par le pire cas à détecter, qui correspondrait à la durée du minuteur TMOUT. Avec la procédure de test qui vient d'être décrite, on peut le cas échéant envisager de déclarer le convertisseur opérationnel si chaque code a été produit deux fois ou plus, au 15 lieu d'une seule. Dans ce cas, les bascules FF de la figure 2 sont remplacées par des registres à décalage, dont la taille correspond à la valeur minimale souhaitée du nombre d'occurrences des codes. La procédure de test reste identique. Comme on l'a précédemment indiqué, les rampes à appliquer à l'entrée analogique du convertisseur ADC n'ont pas besoin d'avoir une linéarité précise. Ainsi, on propose de 20 générer une rampe en interne en utilisant des dispositifs numériques que l'on peut trouver dans la plupart des systèmes-sur-puce. Le générateur de rampe devient alors portable d'une technologie à une autre sans aucune adaptation. Sa surface sera en outre notablement plus petite que celle d'un générateur analogique. La figure 3 illustre schématiquement un système-sur-puce intégrant un dispositif BIST 25 et un mode de réalisation de générateur de rampe numérique. Le générateur de rampe comprend un modulateur de largeur d'impulsion PWM numérique. La largeur d'impulsion est programmée par un compteur CNT. Le signal de sortie du modulateur PWM est fourni à un filtre passe-bas 10 qui produit la rampe souhaitée. Les différents éléments du dispositif BIST sont gérés par un automate FSM, qui met notamment en 30 oeuvre les différentes phases de test décrites ici. Le filtre 10 n'a pas de contraintes sévères - il peut être aussi simple que le type R-C. Par contre, la fréquence de la rampe pouvant être relativement faible, le condensateur du filtre peut être d'une valeur incompatible avec une intégration dans le système-sur-puce. Alors, comme cela est représenté, on le prévoit à l'extérieur, monté sur le support de test du circuit intégré. Ce filtre, passif, ne nécessite aucun réglage ni alimentation électrique - sa présence est donc transparente en cours de test. La résolution du modulateur PWM n'a pas besoin d'être égale à celle du convertisseur analogique-numérique. C'est le filtre 10 qui se charge de produire une variation continue entre deux valeurs consécutives discrètes du modulateur PWM. Pour une résolution du convertisseur de 12 bits, on peut prévoir une résolution de 9 bits, par exemple, pour le modulateur PWM et le compteur CNT. Le modulateur PWM travaille alors sur 512 cycles d'horloge. Si N est le contenu du compteur CNT, le modulateur PWM place sa sortie à « 1» pendant N cycles d'horloge, et à « 0 » pendant 512-N cycles. La dynamique de 9 bits du modulateur est ainsi parcourue en 512 phases de 512 cycles. Une rampe dure ainsi 512x512 = 262144 cycles d'horloge. Si on suppose que la fréquence du modulateur PWM est égale à la fréquence d'échantillonnage, la pente de la rampe est telle qu'on capture en moyenne 262144/4096 = 64 échantillons par code de 12 bits. On peut diminuer le nombre d'échantillons par code en diminuant la résolution du modulateur PWM ou en diminuant la fréquence d'échantillonnage par rapport à la fréquence du modulateur PWM. De préférence, comme cela est illustré à la figure 3, on génère un signal triangulaire plutôt qu'une succession de rampes. Cela est effectué en utilisant le compteur CNT alternativement en mode comptage et en mode décomptage. Un signal triangulaire est particulièrement bien adapté à des convertisseurs ADC utilisant des capacités commutées. En effet, l'alternance de variations positives et de variations négatives a un effet compensateur dans de telles structures. En pratique, la dynamique de la rampe est celle de la tension d'alimentation du modulateur PWM, par exemple 3,3 V. La dynamique d'entrée du convertisseur ADC est souvent inférieure, par exemple de 1 V. Dans ce cas, la dynamique de la rampe est de préférence adaptée à celle du convertisseur ADC. Pour cela, on peut procéder de la manière suivante. Lors d'une phase initiale du test, l'automate FSM provoque la génération d'une rampe « pleine échelle », en démarrant le compteur CNT à 0 et en le faisant compter jusqu'à sa valeur maximale. L'automate FSM mémorise les deux comptes pour lesquels on observe respectivement le code minimal (000...) et le code maximal (111...) produits par le convertisseur ADC. Au cours du test, le compteur CNT n'est alors utilisé qu'entre les deux comptes ainsi trouvés. La durée des rampes est réduite proportionnellement - dans l'exemple numérique ci-dessus, les rampes ne durent plus que 30 % de la durée des rampes pleine échelle, et on ne capture plus que 0,3 x 64 = 19,2 échantillons par code du convertisseur ABC. Pour gagner du temps au cours des tests, les comptes définissant la dynamique peuvent être établis pendant la phase de qualification du produit (analyse avant production), puis programmés dans une mémoire non volatile des circuits en production, pour être utilisés immédiatement par l'automate F SM. Tous les éléments du dispositif BIST sont numériques et de faible complexité - ils occupent une surface notablement plus faible qu'une structure BIST incorporant un générateur de rampes analogique précis. L'élément occupant la surface la plus importante pourrait être le jeu de bascules FF, au nombre de 4096 pour un convertisseur 12 bits. Toutefois, ces bascules peuvent êtres des bascules réutilisées du système-sur- puce. Le système-sur-puce est susceptible d'incorporer de nombreuses bascules. Dans une phase de test des circuits numériques du système, les bascules sont configurées en « scan-chain », c'est-à-dire en registre à décalage permettant d'introduire des vecteurs de test et d'extraire les résultats. Cette configuration des bascules est sélectionnée par des multiplexeurs. Il suffit de modifier certains de ces multiplexeurs pour permettre une troisième configuration, celle des bascules FF de la figure 2, sélectionnée dans la phase de test du convertisseur ABC. On peut envisager d'autres moyens de génération de rampe de structure simple. Par exemple, les transistors complémentaires normalement prévus sur une borne de sortie peuvent être configurés pour fonctionner en générateurs de courant constant, et être commandés par un signal carré. Le filtre 10 est alors remplacé par un condensateur d'intégration. Lorsque le signal de commande est à l'état haut, le condensateur se charge à courant constant, donc selon une rampe linéaire croissante. Lorsque le signal de commande est à l'état bas, le condensateur se décharge à courant constant. Dans ce cas on utilise néanmoins des propriétés analogiques des transistors de sortie, qui ne sont pas forcément portables d'une technologie à l'autre. Pour éviter cela, on peut prévoir à l'extérieur du circuit, à la place du filtre 10, un intégrateur recevant du dispositif BIST un signal de tension carré. L'intégrateur, étant un dispositif actif, devrait disposer d'une source d'alimentation. En outre, il faudrait prévoir des moyens pour régler la dynamique des rampes en fonction de la dynamique d'entrée réduite du convertisseur ADC, par exemple en réglant la fréquence du signal carré. On en revient à un système embarqué d'ajustement des propriétés d'un signal rectangulaire, similaire à un modulateur PWM. REVENDICATIONS1. Procédé de test d'un convertisseur analogique-numérique (ADC) comprenant les étapes suivantes : - appliquer des rampes (Va) à l'entrée du convertisseur ; et - classer les codes numériques (Vd) produits par le convertisseur selon un histogramme (H) ; caractérisé en ce que le convertisseur est déclaré opérationnel dès que toutes les classes (FF) de l'histogramme ont atteint un compte minimal. 2. Procédé selon la revendication 1, dans lequel le compte minimal est 1. 3. Procédé selon la revendication 1, dans lequel le convertisseur est déclaré défaillant (FAIL) si une classe n'atteint pas le compte minimal avant l'expiration d'un intervalle de temps (TMOUT). 4. Procédé selon la revendication 1, dans lequel les rampes sont produites à partir d'un signal de modulation de largeur d'impulsion filtré (PWM, 10). 5. Dispositif de test d'un convertisseur analogique-numérique (ADC) comprenant : - un générateur de rampes (PWM, 10) connecté à l'entrée du convertisseur ; et - un module de test (TEST) configure pour classer dans une mémoire (FF) les codes numériques produits par le convertisseur selon un histogramme ; caractérisé en ce que le module de test est configure pour activer un signal de validation (PASS) dès que toutes les classes (FF) de l'histogramme ont atteint un compte minimal. 6. Dispositif selon la revendication 5, dans lequel le générateur de rampes comprend un modulateur de largeur d'impulsion (PWM) suivi d'un filtre (10). 7. Dispositif selon la revendication 5, comprenant : - un décodeur d'adresses (DEC) recevant la sortie (Vd) du convertisseur comme adresse ;- une bascule (FF) par sortie du décodeur d'adresses, connectée pour mémoriser le passage par un état actif de la sortie du décodeur ; et - le module de test configure pour activer un signal de validation (PAS S) lorsque toutes les bascules ont basculé. 8. Dispositif selon la revendication 5, comprenant : - un minuteur (TMOUT) démarré au début d'une phase de test ; et - le module de test configure pour activer un signal de défaillance (FAIL) si toutes les bascules n'ont pas basculé lorsque le minuteur atteint sa durée. 9. Dispositif selon la revendication 5, dans lequel le convertisseur analogique- numérique (ADC), le modulateur de largeur d'impulsion (PWM), le module de test, et la mémoire (MEM) sont tous intégrés dans un même système-sur-puce. 10. Dispositif selon la revendication 7, dans lequel le convertisseur analogique-numérique (ADC), le modulateur de largeur d'impulsion (PWM), le module de test, et les bascules (FF) sont tous intégrés dans un même système-sur-puce, et les bascules ont un mode de fonctionnement de test où elles sont connectées aux sorties du décodeur d'adresses, et un mode de fonctionnement normal où elles sont utilisées par d'autres fonctions du système-sur-puce.