Brevet FR2825490A1 — publié le 20021206

DISPOSITIF DE VALIDATION D'UN CIRCUIT INTEGRE DESCRIPTION Domaine technique L'invention se situe dans le domaine des dispositifs et des procédés destinés à déterminer si un circuit comportant notamment un microprocesseur et éventuellement une ou plusieurs unités spécialisées exerçant des fonctions logiques de traitement de données est, ou non, apte à fonctionner correctement. Elle concerne aussi un appareil, par exemple un décodeur de télévision numérique, incorporant un tel circuit et une mémoire associée. La demande de brevet WO 99/48001, présente une amélioration d'une méthode de validation d'un microprocesseur connue sous le nom de technique de vérification série. Dans un paragraphe de cette demande consacré à la description de l'art antérieur le contrôle de bon fonctionnement est réalisé au moyen d'un logiciel particulier appelé moniteur de détection d'erreurs, qui est exécuté par un microprocesseur à valider, et est chargé dans le microprocesseur à valider pour interfacer un système de détection d'erreurs logé sur un calculateur de détection d'erreurs. Le moniteur de détection d'erreurs exécuté par le microprocesseur à valider est un logiciel d'assistance au système de détection d'erreurs fournissant les fonctions d'accès aux mémoires et registres du microprocesseur à valider. Des ressources du microprocesseur à valider sont utilisées par le moniteur de détection d'erreurs et par le calculateur de détection d'erreurs, telles que des ressources mémoires contenant du logiciel et des données nécessaires pour le moniteur de détection d'erreurs et le système de détection d'erreurs. Le désavantage d'un tel système, signalé dans la demande WO 99/48001, est qu'il mobilise des ressources et de la mémoire au sein du dispositif à valider et que dès lors le coût d'utilisation d'un tel dispositif s'en trouve accru. L'invention vise un dispositif permettant une validation rapide de circuits logiques, avec un débit de l'ordre de plusieurs milliers de circuits par heure, permettant de valider circuit par circuit l'ensemble d'une production et dont la probabilité de bon fonctionnement en cas de validation positive soit quasiment égale à 1. L'invention est relative à un dispositif de validation d'un circuit de traitement d'un flux de données, lequel circuit présentant des entrées/sorties et incluant d'une part au moins un microprocesseur destiné à coopérer avec une mémoire externe au circuit, et d'autre part au moins une unité spécialisée pour effectuer un traitement partiel des données, le microprocesseur ou l'unité comportant des registres (Ri-Rn), dispositif caractérisé en ce qu'il inclut une mémoire de lecture contenant, en plus d'un système d'exploitation nécessaire au fonctionnement du microprocesseur et de l'unité spécialisée : . un ensemble de données apte à fournir un flux connu de données représentatif d'un flux de données qui pourraient être reçues par le circuit en fonctionnement normal, . un ensemble de valeurs théoriques devant figurer en cours de traitement à au moins un instant donné dans au moins un des registres du microprocesseur ou de l'unité spécialisée, . des instructions pour réaliser une validation, qui comportent des instructions pour charger les données à traiter en les organisant en un flux, comparer séquentiellement des valeurs présentes dans des registres aux dites valeurs théoriques, et . des instructions pour fournir une signature représentative de résultats de ces comparaisons. De préférence, afin de diminuer le nombre d'instructions du logiciel de traitement des données consacrées à la validation incluses dans ledit logiciel, un calculateur de validation est couplé à un socle destiné à recevoir le circuit à valider. Ce calculateur fournit l'horloge du circuit à valider, initialise et termine une séquence logique de validation, et reçoit par l'intermédiaire des sorties du circuit à valider une valeur représentant une signature représentative d'un résultat de comparaisons effectuées par le microprocesseur inclus dans le circuit à valider. La comparaison est effectuée entre des valeurs réelles de registre du microprocesseur ou de l'unité spécialisée, ces valeurs figurant à des instants prédéterminés au cours du traitement dans l'un des registres, et des valeurs théoriques stockées dans la mémoire de lecture, pour en déduire un état de fonctionnement ou de non fonctionnement du circuit à valider. Ainsi, dans un dispositif de validation selon l'invention, le circuit à valider est muni d'un logiciel de fonctionnement qui comporte, en plus des instructions strictement nécessaires au fonctionnement du circuit, des instructions destinées à réaliser une auto-validation du circuit. Cependant, cette inclusion d'instructions supplémentaires ne comporte que des instructions destinées à charger des données connues en les organisant en un flux connu, comparer le contenu de certains registres à des valeurs mémorisées et fournir un résultat des comparaisons sous forme d'une signature. Le fonctionnement normal du circuit à valider pour le traitement des données s'en trouve pratiquement inchangé. Ces instructions supplémentaires ne nécessitent qu'une place mémoire minime et ne perturbent pas le fonctionnement dynamique du circuit. De préférence, les données nécessaires à la constitution du flux de données et celles nécessaires aux comparaisons ne figurent que dans le dispositif de validation et ne figurent pas dans la mémoire associée au circuit à valider. L'invention concerne également un appareil, en particulier un décodeur, incorporant un circuit comportant au moins un microprocesseur et des moyens de mémoire associés au circuit, les moyens de mémoire contenant des instructions pour charger, lors d'une phase de test, des données représentatives de données normalement reçues par l'appareil en fonctionnement et pour comparer des données contenues dans les moyens de mémoire à des données contenues dans au moins un registre inclus dans le circuit. Selon l'invention, c'est le circuit qui, lors de l'examen de validation mené à bien par un dispositif de validation, effectue des opérations conformément à ses conditions de fonctionnement et à ses connexions dans l'appareil où le circuit doit être monté. L'invention est également relative à un procédé de validation d'un circuit incorporant au moins une unité spécialisée et au moins un microprocesseur munis de registres, procédé selon lequel le microprocesseur exécute en plus des instructions de traitement des données, des instructions ayant pour objet de fournir des indications sur le fonctionnement du circuit, constituées par des instructions pour importer des données en les organisant en un flux entrant, représentatif d'un flux de données qui pourraient être reçues par le circuit en fonctionnement normal, comparer des valeurs théoriques à des valeurs réelles contenues dans des registres du circuit à valider, et fournir une signature indicative de résultats de ces comparaisons. Avantageusement, un tel procédé comportera une phase préalable au cours de laquelle sont testées des connexions du circuit à valider. Un mode de réalisation de l'invention sera maintenant décrit à l'aide des dessins annexés dans lesquels : - la figure 1 représente schématiquement un exemple de circuit à valider ; - la figure 2 représente schématiquement un exemple de dispositif de validation d'un circuit selon l'invention ; - la figure 3 représente schématiquement un mode particulier du dispositif de validation d'un circuit selon l'invention ; - la figure 4 représente schématiquement le mode particulier du dispositif de validation représenté figure 3 dans une première configuration destinée à tester structurellement le circuit ; - la figure 5 représente schématiquement le mode particulier du dispositif de validation représenté figure 3 dans une seconde configuration destinée à tester fonctionnellement le circuit. La figure 1 représente un exemple de circuit 1 à valider. Le circuit 1 comporte un ou plusieurs interfaces 6 d'entrée sortie pour communiquer avec des mémoires ou d'autres circuits, une arborescence de circuits spécialisés 2 dédiés à effectuer des fonctions, par exemple des fonctions logiques. Le circuit à valider appartient par exemple à un décodeur de télévision numérique recevant sous forme numérique un flux de données éventuellement compressées ou embrouillées représentant des signaux vidéo et traitant ces données pour recréer un signal vidéo non compressé clair, délivré sous forme numérique ou analogique. Dans ce cas les circuits spécialisés 2 pourraient être de façon non limitative, un circuit de traitement de flux MPEG incorporant un circuit de désembrouillage d'émissions vidéo numériques brouillées, des filtres par exemple de sections ou encore sur des en-tête de flux élémentaires empaquetés dans des paquets de transports de flux élémentaires. Les circuits 2 de l'arborescence fonctionnent sous le contrôle d'un microprocesseur 3 comportant des registres R1, R2, R3.... Rn. La figure 2 représente un dispositif 10 de validation d'un circuit 1. Selon l'invention on crée un outillage 10 de validation reproduisant l'environnement de fonctionnement réel du circuit 1 à tester. Dans le cas ici envisagé à titre d'exemple où le circuit fait partie d'un décodeur, il n'a pas été nécessaire de reproduire par exemple un tuner assurant la détection des signaux à recevoir. Cette partie est remplacée par une mémoire 5 par exemple de type ROM contenant des données représentatives de données détectées par le tuner. La quantité de données mémorisée permet de simuler une durée de réception et une diversité de présentations des informations détectées, suffisante à l'exécution de la validation. La mémoire contient un logiciel de fonctionnement du microprocesseur 3 ou de circuits spécialisés 2 pour effectuer des fonctions dédiées sur les données ou sur des données déjà partiellement traitées. La mémoire 5 contient aussi des valeurs correspondant à des valeurs théoriques qui doivent figurer dans des registres du microprocesseur 3 ou des circuits spécialisés 2 lorsque le circuit 1 fonctionne bien et qu'il reçoit le flux particulier de données en provenance de la mémoire. Il est ajouté également un calculateur 20 de gestion du contrôle de validation du circuit 1 à valider. Ce calculateur 20 initialise le contrôle et le termine en donnant une indication sur le résultat de la validation, ce résultat étant délivré par le microprocesseur 3 du circuit 1 à valider. Le résultat est ensuite exploité en affichant par exemple sur un afficheur non représenté un résultat du contrôle. Le dispositif 10 de validation selon l'invention comporte un socle 11 de réception d'un circuit 1 à valider. Les mémoires 4 et 5 font parties du dispositifs 10 et sont connectées de la même façon que sur le circuit de montage réel du circuit 1 à valider. Ces mémoires 4,5 sont liées au circuit 1 par des liaisons 7, de données et 8 d'adresses. La mémoire ROM 5 éventuellement en plusieurs parties, 51-54 comme représenté figures 3-5, contient un logiciel de fonctionnement du microprocesseur 3 (operating system). Comme signalé ci-dessus elle contient aussi des valeurs représentatives de valeurs qui en fonctionnement normal pourraient être reçues par le circuit 1. Dans l'exemple traité où il s'agit d'un décodeur de télévision numérique, les données sont arrangées pour pouvoir être mises sous forme de flux MPEG. La mémoire 5 contient aussi des valeurs correspondant à des valeurs théoriques qui doivent figurer dans des registres du microprocesseur ou des circuits spécialisés lorsque le circuit fonctionne bien et qu'il reçoit le flux particulier de données en provenance de la mémoire. De préférence le dispositif 10 comporte aussi un manipulateur 30. Il s'agit d'un moyen mécanique de manipulation des circuits logique 1 à valider. Le manipulateur 30 saisit les circuits 1 par exemple au moyen d'une ventouse, les installe sur le socle 11, les ressaisit à nouveau en fin de validation et les dépose dans un parcours réservé aux circuits 1 déclarés bons ou dans un panier de rebut. Le manipulateur 30 est piloté par le calculateur de validation 20. Dans le mode préféré de réalisation de l'invention, la validation est de préférence effectuée en deux temps. A cette fin et comme représenté figure 3 un commutateur 22 à deux positions est interposé entre le calculateur de validation 20 et le socle 11. Dans les deux positions des liaisons 12,13, 14 entre le calculateur 20 et le circuit 1, relatives à des fonctions de positionnement des entrées sorties du circuit 1, d'initialisation, et d'horloge respectivement, ne transitent pas par le commutateur 22. Dans une première position du commutateur 22 représentée figure 4, le calculateur 20 et le circuit 1 sont couplées par des liaisons 15,16, 17 de contrôle de lignes, d'adresses et de données respectivement, ces liaisons étant établies au travers du commutateur 22. Dans une seconde position du commutateur 22, représenté figure 5 le fonctionnement normal du circuit 1 est contrôlé. Une liaison de données 7 transitant par le commutateur 22, couple le circuit 1 aux données de la mémoire 5, au travers d'un convertisseur 19 ou à la mémoire 4. Le convertisseur 19 a pour fonction d'adapter le niveau logique des données en provenance de la mémoire 5 à un niveau convenable pour le circuit 1. Une ligne d'adresses 8, et une ligne de contrôle 9 transitant par le commutateur 22, couplent le circuit 1, à la mémoire 4 et au travers d'un tampon 18 aux mémoires 5. Les mémoires 51-54 formant ensemble la mémoire 5, la mémoire 4, le tampon 18, le convertisseur 19 forment ensemble un exemple de réalisation des moyens mémoire 50. Ainsi le circuit 1 est couplé par l'intermédiaire du socle 11 aux moyens mémoires 50. On note que les moyens mémoire 50 sont comparables à des moyens mémoires travaillant avec le circuit 1 à valider. Le contenu des moyens mémoire 50 est cependant plus important en ce sens qu'ils comportent les données pour former le flux et les valeurs de comparaison aux contenu des registres. Dans la première position, une validation structurelle est effectuée afin de valider essentiellement les connexions et le comportement dynamique de quelques fonctions faisant appel à un ou plusieurs circuits spécialisés 2 du circuit 1. Le comportement dynamique des fonctions est réalisé à partir de configurations en provenance du calculateur de validation 20. Dans la seconde position la validation est effectuée à partir des données contenues dans les mémoires 4 et 5 en utilisant le logiciel de fonctionnement du circuit 1. Dans cette seconde configuration, un logiciel auto exécutable du microprocesseur 3 du circuit 1 connecte le circuit 1 sur un système d'exploitation embarqué dans la mémoire 4. Après cette initialisation les instructions de traitement normal de données sont exécutées sur les données contenues dans la mémoire 5 et introduites dans le circuit à valider 1. Le logiciel de fonctionnement du circuit 1 comporte à cet effet des instructions particulières destinées à l'exécution de la validation. Ces instructions organisent des données contenues dans la mémoire 5 en un flux représentatif de flux MPEG dans des conditions variées, par exemple et de façon non limitative, embrouillées ou clair, images statiques ou à mouvements rapides. Le logiciel de fonctionnement du circuit 1 comporte également des instructions pour effectuer des comparaisons entre des valeurs théoriques contenues dans la mémoire et des valeurs réelles contenues dans des registres désignés. Le contrôle du fonctionnement dynamique de l'ensemble du circuit 1 selon cette seconde configuration du dispositif 10 se déroule de la façon suivante : - le calculateur de gestion 20 du contrôle initialise le circuit 1 à valider et commande le commutateur 22 pour le placer dans la seconde position. Le microprocesseur 3 du circuit à valider amorce le chargement d'instructions, et charge le logiciel de fonctionnement présent dans la mémoire ROM 5. Le microprocesseur 3 du circuit à valider importe ensuite les données contenues dans la mémoire ROM en les organisant en un flux de données transmis à la vitesse normale dans laquelle ces données transitent. Il a été vu que le logiciel de fonctionnement du microprocesseur à valider comporte en plus des instructions normales de traitement de ces données des instructions permettant : - de comparer les valeurs théoriques mémorisées dans la mémoire ROM 5 aux valeurs réelles contenues dans les registres du microprocesseur 3 ou des circuits spécialisés 2 à des instants prédéterminés du traitement, - d'envoyer vers le calculateur 20 de gestion une signature indicative de l'état des comparaisons entre valeurs théoriques et valeurs réelles. Si toutes les valeurs réelles sont égales aux valeurs théoriques, ce qui se traduit par une signature ayant une valeur connue du calculateur de gestion 20, alors le microprocesseur est déclaré bon par le calculateur de gestion du contrôle si ce n'est pas le cas le microprocesseur est déclaré mauvais. Le calculateur de validation 20 prononce la fin de la validation et son résultat. Le calculateur 20 commande alors le manipulateur 30 qui ôte le circuit qui vient d'être testé, le verse dans les bons ou dans les mauvais circuits en fonction du résultat de la validation et met en place un nouveau circuit 1 à valider. A titre indicatif le dispositif 10 selon l'invention permet de valider plusieurs milliers de circuits par heure. REVENDICATIONS 1. Dispositif de validation d'un circuit (1) de traitement d'un flux de données, lequel circuit présentant des entrées/sorties (6) et incluant d'une part au moins un microprocesseur (3) destiné à coopérer avec une mémoire externe au circuit, et d'autre part au moins une unité (2) spécialisée pour effectuer un traitement partiel des données, le microprocesseur (3) ou l'unité (2) comportant des registres (Ri-Rn), dispositif caractérisé en ce qu'il inclut une mémoire de lecture (4,5) contenant, en plus d'un système d'exploitation nécessaire au fonctionnement du microprocesseur et de l'unité spécialisée : . un ensemble de données apte à fournir un flux connu de données représentatif d'un flux de données qui pourraient être reçues par le circuit en fonctionnement normal, . un ensemble de valeurs théoriques devant figurer en cours de traitement à au moins un instant donné dans au moins un des registres du microprocesseur ou de l'unité spécialisée, . des instructions pour réaliser une validation, qui comportent des instructions pour charger les données à traiter en les organisant en un flux, comparer séquentiellement des valeurs présentes dans des registres aux dites valeurs théoriques, et . des instructions pour fournir une signature représentative de résultats de ces comparaisons. 2. Dispositif de validation selon la revendication 1, incluant un calculateur (20) de validation couplé à un socle (11) destiné à recevoir le circuit (1) à valider. 3. Dispositif de validation selon la revendication 2, incluant en outre des moyens de commutation (22) commandés par le calculateur (20) de validation, ces moyens (22) autorisant une sélection entre une première configuration dans laquelle le circuit (1) à valider a des entrées/sorties connectées au calculateur de validation, et une deuxième configuration dans laquelle ces mêmes entrées/sorties sont connectées à la mémoire externe. 4. Dispositif de validation selon la revendication 2, incluant en outre un manipulateur (30) de pose et dépose des circuits (1) à valider, ce manipulateur étant commandé par le calculateur (20) de validation. 5. Procédé de validation d'un circuit (1) incorporant au moins une unité spécialisée (2) et au moins un microprocesseur (3) munis de registres, procédé selon lequel le microprocesseur exécute en plus des instructions de traitement des données, des instructions ayant pour objet de fournir des indications sur le fonctionnement du circuit, constituées par des instructions pour importer des données en les organisant en un flux entrant, représentatif d'un flux de données qui pourraient être reçues par le circuit en fonctionnement normal, comparer des valeurs théoriques à des valeurs réelles contenues dans des registres du circuit à valider, et fournir une signature indicative de résultats de ces comparaisons. 6. Procédé selon la revendication 5, caractérisé en ce qu'il comporte une phase préalable au cours de laquelle sont testées des connexions du circuit à valider. 7. Appareil incorporant un circuit comportant au moins un microprocesseur et des moyens de mémoire associés au circuit, les moyens de mémoire contenant des instructions pour charger des données représentatives de données normalement reçues par l'appareil en fonctionnement et pour comparer des données contenues dans les moyens de mémoire à des données contenues dans au moins un registre inclus dans le circuit.