Brevet FR2771564A1 — publié le 19990528

DISPOSITIF POUR L'INITIALISATION A LA MISE SOUS TENSION D'UN CIRCUIT INTEGRE DIGITAL La présente invention concerne l'initialisation d'un circuit intégré digital à chaque mise sous tension que celle-ci soit consécutive à une coupure volontaire ou involontaire de la tension d'alimentation. Dans de nombreux cas, notamment dans celui des applications embarquées, il est fondamental de maîtriser le comportement d'un circuit intégré digital dès l'instant de sa mise sous tension. Ce problème de maîtrise du comportement d'un circuit intégré digital présente deux aspects selon que la mise sous tension se produit après une coupure volontaire ou involontaire de la tension d'alimentation. Lors d'une mise sous tension après une coupure volontaire, le dispositif n'est pas considéré comme opérationnel avant d'avoir été initialisé par logiciel de sorte que l'incertitude sur son comportement est sans impact sur la fonctionnalité. II faut cependant garder en mémoire le fait qu'un comportement erratique avant réinitialisation peut avoir une incidence néfaste sur la fiabilité à long terme. Lors d'une remise sous tension après une coupure involontaire et alors que le dispositif est considéré comme opérationnel, il ne faut pas que le dispositif ait un comportement erratique même s'il n'est pas immédiatement apte à réaliser sa fonction. A l'heure actuelle, ce problème de la maîtrise du comportement d'un circuit intégré digital lors de sa mise sous tension après une coupure volontaire ou involontaire de tension d'alimentation est résolu au moyen d'un circuit analogique de surveillance de la tension d'alimentation mettant en oeuvre un comparateur à seuil, à effet d'hystérésis, recevant, sur son entrée de mesure, la tension d'alimentation plus ou moins filtrée et déclenchant une bascule monostable engendrant un signal de remise à zéro de durée calibrée. Un tel circuit de surveillance de tension d'alimentation a pour inconvénient d'être analogique et par conséquent de ne pas être portable, de façon rigoureuse, d'une technologie d'intégration à une autre et d'être difficilement certifiable vis à vis de l'ensemble des scénarios et formes d'ondes correspondant aux coupures intempestives de tension d'alimentation. II existe en effet des coupures brèves au cours desquelles la tension d'alimentation chute suffisamment pour provoquer un dysfonctionnement momentané d'un circuit intégré digital mais pas assez pour être détectée par un circuit analogique de surveillance de tension. La présente invention a pour but de lutter contre ces inconvénients. Elle a pour objet un dispositif pour l'initialisation à la mise sous tension d'un circuit intégré digital comportant, intégré sur la puce même du circuit intégré digital -au moins une machine d'état dédiée à l'initialisation, la ou lesdites machines d'état dédiées à l'initialisation participant ou non à la fonctionnalité du circuit intégré digital, étant réalisées en logique combinatoire et séquentielle avec des éléments disséminés à la surface de la puce du circuit intégré digital, étant cadencées par un signal d'horloge, et présentant des états illicites ou des combinaisons illicites d'états, - un circuit logique de détection des états illicites ou des combinaisons illicites d'états de la ou des machines d'état dédiées à l'initialisation, et - un circuit logique de génération d'un signal d'initialisation à destination du circuit intégré digital et de la ou des machines d'état dédiées à l'initialisation déclenché par le circuit logique de détection des états illicites ou des combinaisons illicites d'états à chaque apparition d'un état illicite dans une machine d'état dédiée à l'initialisation ou d'une combinaison illicite d'états entre des machines d'états dédiées à l'initialisation. Avantageusement, le dispositif pour l'initialisation à la mise sous tension d'un circuit intégré digital comporte une machine d'état dédiée à l'initialisation qui est sans autre influence sur le fonctionnement du circuit intégré digital que sa contribution à la génération du signal d'initialisation et qui ne présente qu'un seul état licite et plusieurs états illicites, le circuit logique de détection des états illicites de la machine d'état dédiée à l'initialisation opérant la détection d'un état illicite de la machine d'état dédiée à l'initialisation par une absence de constatation de l'état licite. Avantageusement, le dispositif pour l'initialisation à la mise sous tension d'un circuit intégré digital comporte au moins une machine d'état dédiée à l'initialisation, qui participe au fonctionnement du circuit intégré digital et qui présente plusieurs états licites et au moins un état illicite, et un circuit de filtrage de transitoire placé entre le circuit logique de détection des états illicites et le circuit logique de génération d'un signal d'initialisation. Avantageusement, le dispositif pour l'initialisation à la mise sous-tension d'un circuit intégré digital comporte plusieurs machines d'états dédiées à l'initialisation qui participent au fonctionnement du circuit intégré digital et qui présentent entre elles des combinaisons illicites d'états, et un circuit de filtrage de transitoire placé entre le circuit logique de détection des états illicites ou des combinaisons illicites d'états et le circuit logique de génération d'un signal d'initialisation. Avec un tel dispositif pour l'initialisation à la mise sous tension d'un circuit intégré digital, on ne détecte plus une coupure de tension d'alimentation par elle-même mais par ses conséquences sur le fonctionnement du circuit intégré digital lui-même testé à partir du comportement d'un ou plusieurs dispositifs logiques séquentiels et combinatoires en faisant partie ou intégrés dans le même environnement. En n'utilisant que des dispositifs logiques séquentiels et combinatoires dont les éléments sont répertoriés dans des bibliothèques de cellules, on donne, à la réalisation du dispositif pour l'initialisation à la mise sous tension, le caractère de portabilité d'une technologie d'intégration à une autre qui lui manquait jusqu'à présent. D'autres caractéristiques et avantages de l'invention ressortiront de la description ci-après d'un mode de réalisation donné à titre d'exemple. Cette description sera faite en regard du dessin dans lequel - une figure 1 représente le schéma d'un dispositif selon l'invention pour l'initialisation à la mise sous tension d'un circuit intégré digital, -une figure 2 montre le schéma synoptique d'une machine d'état participant à la fonctionnalité d'un circuit intégré digital, modifiée pour permettre la détection d'un dysfonctionnement dû à une coupure de tension d'alimentation, - des figures 3 et 4 représentent des schémas de circuits de filtrage de transitoire mis en oeuvre dans certains dispositifs selon l'invention pour l'initialisation à la mise sous tension d'un circuit intégré digital, et -une figure 5 montre un schéma synoptique général d'un autre dispositif selon l'invention pour l'initialisation d'un circuit intégré digital. Le principe général consiste à se baser, pour la détection d'une coupure de tension d'alimentation, sur la détection d'un dysfonctionnement d'un dispositif du circuit intégré digital lui-même choisi pour être particulièrement sensible aux coupures de tension d'alimentation. Un circuit intégré digital étant une combinaison de dispositifs de logique combinatoire et séquentielle peut toujours être interprété comme renfermant une ou plusieurs machines d'état et son dysfonctionnement par un état illicite pris par l'une au moins de ses machines d'état ou par une combinaison illicite des états pris par plusieurs de ses machines d'état. On assimile donc le dysfonctionnement d'un circuit intégré digital dû à une coupure transitoire de tension d'alimentation à un état illicite ou à une combinaison illicite d'états prise par ses machines d'état. La génération d'un signal de réinitialisation (reset en langage anglo-saxon) intervient alors à chaque détection d'un état illicite ou d'une combinaison illicite d'états en dehors des instants de changement d'états. Pour faciliter la détection de la prise d'un état illicite par une machine d'état du circuit intégré digital, on code, par un codage redondant, les états pris par cette machine d'état tout en cherchant à assurer pour les digits des codes identifiant les états licites une proportion aussi équitable que possible de niveaux logiques à "O" et à "1". Les codes dérivés des codes "un parmi N" (one hot encoding en langage anglo-saxon) sont de bons candidats pour ce type d'encodage. La détection des coupures transitoires de tension d'alimentation dépend de la sensibilité des machines d'état considérées à ces coupures. Pour avoir une détection correcte, il faut donc, soit faire appel à toutes les machines d'état du circuit intégré digital, soit faire appel à la plus sensible, ce qui peut conduire à un choix délicat. Pour éviter d'avoir à faire ce choix, on peut équiper le circuit intégré digital d'une machine d'état spécifique, non fonctionnelle, qui soit spécialement sensible à une coupure transitoire d'alimentation mais qui ne contribue pas à son fonctionnement. Pour obtenir une machine d'état spécialement sensible à une coupure transitoire de tension d'alimentation, on choisit une machine d'état non fonctionnelle ne présentant qu'un seul état licite et de nombreux états illicites, et ayant une structure minimale dégénérée réduite à un registre d'état formé d'un banc de bascules logiques de type D chacune étant cadencée par un signal d'horloge et ayant son entrée donnée D rebouclée sur sa sortie donnée Q par l'intermédiaire d'un multiplexeur à deux voies : une voie de rebouclage et une voie de réinitialisation. Les états pris par une machine d'état sont identifiés par un vecteur d'état constitué par les niveaux logiques pris en sortie des bascules logiques de son registre d'état. Pour assurer une grande sensibilité aux coupures transitoires de tension d'alimentation, on affecte au registre d'état de cette machine d'état dégénérée un nombre aussi élevé que possible de bascules de type D réparties de la façon la plus homogène possible à la surface du circuit intégré digital. En outre, pour avoir la meilleure probabilité de détection possible des états illicites, on affecte au vecteur de son unique état licite une proportion aussi équitable que possible de niveaux logiques "0" et "1" La figure 1 représente un dispositif pour l'initialisation à la mise sous tension d'un circuit intégré digital mettant en oeuvre une telle machine d'état dégénérée. On y distingue la machine d'état proprement dite 1 suivie d'un circuit logique numérique 2 de comparaison de mots binaires et d'un circuit logique numérique 3 réalisant la fonction d'une bascule astable. La machine d'état dégénérée 1 comporte essentiellement un registre d'état 10 formé d'un banc de bascules logiques de type D et un banc de multiplexeurs à deux voies 11, 12, 13, 14. Chaque bascule du registre d'état 10 est cadencée par un signal d'horloge H de manière à pouvoir changer périodiquement d'état. Sa sortie de donnée Q est rebouclée sur son entrée de données D par l'intermédiaire de l'un des multiplexeurs à deux voies 11, 12, 13, 14 donnant la possibilité de la réinitialiser à un niveau logique "1" ou "0" choisi de manière à avoir à l'état licite des nombres équivalents de bascules du registre d'état à l'état logique "1" et à l'état logique "0". Le circuit logique numérique 2 de comparaison de mots binaires est un circuit de logique combinatoire. II présente deux entrées parallèles sur lesquels il reçoit les mots binaires à comparer. Sur l'une de ses entrées connectée aux sorties données des bascules du registre d'état 10, il reçoit, en parallèle, les digits du vecteur d'état de la machine d'état 1. Sur l'autre entrée, il reçoit en parallèle les digits d'un mot binaire de référence correspondant à la valeur prise par le vecteur d'état de la machine d'état 1 pour le seul état licite. II émet en sortie un signal de déclenchement de la bascule astable 3 dés qu'il détecte une différence entre les deux mots binaires appliqués à ses entrées. La bascule astable 3 réalisée sous forme d'un circuit logique numérique à base de compteurs et de comparateurs de niveaux logiques engendre une impulsion de réinitialisation de durée calibrée à chaque fois qu'elle est déclenchée par le circuit logique numérique de comparaison 2. Cette impulsion de réinitialisation est utilisée comme commande de "reset" pour le circuit intégré digital et pour la machine d'état 1. Elle intervient sur la machine d'état 1, au niveau de la commande des multiplexeurs à deux voies 11, 12, 13, 14 pour interrompre le bouclage entre entrée et sortie de chacune des bascules du registre 10 et le remplacer par une mise à des niveaux logiques imposés des entrées de donnée des bascules. Lors d'une application de la tension d'alimentation au circuit intégré digital après une coupure volontaire, la machine d'état 1 prend un état, a priori, quelconque qui a peu de chance d'être l'unique état licite étant donné le grand nombre d'états illicites possibles. Il y a donc toutes les chances pour que le dispositif pour l'initialisation à la mise sous tension engendre un signal d'initialisation de manière quasi certaine. Mais, même si ce n'est pas le cas, une éventuelle absence de signal d'initialisation est sans importance car couverte par l'initialisation logicielle normale du dispositif numérique auquel appartient le circuit intégré digital. On aura, au passage fait tomber de plusieurs ordres de grandeur la probabilité de situations défiabilisantes. L'impact de l'application volontaire de la tension d'alimentation sur la fiabilité à long terme devient alors négligeable. Les coupures ou variations intempestives de la tension d'alimentation au delà du domaine de fonctionnement normal du circuit intégré digital influencent au premier chef le fonctionnement des bascules du registre 10 de la machine d'état 1 excitées à la cadence de leur signal d'horloge et réparties sur toutes la surface du circuit intégré digital. II y a donc toutes les chances pour que des coupures ou variations intempestives de la tension d'alimentation au delà du domaine de fonctionnement normal du circuit intégré digital entraînent un dysfonctionnement d'une ou plusieurs de ces bascules provoquant un passage de la machine d'état 1 dans un état illicite et la production d'un ordre de réinitialisation. A contrario, si aucun dysfonctionnement des bascules du registre 10 de la machine d'état 1 n'est constaté, on peut considérer le fonctionnement du circuit intégré digital comme sain car il n'y a pas lieu de penser que d'autres bascules soient concernées par un dysfonctionnement. Eventuellement, le passage de la machine d'état 1 dans un état illicite traduisant un dysfonctionnement de bascule pourra aussi être utilisé pour détecter un dysfonctionnement ayant une autre cause que les variations intempestives de la tension d'alimentation. Au lieu d'ajouter une machine d'état non fonctionnelle pour la détection des coupures ou variations intempestives de tension d'alimentation du circuit intégré digital, on peut utiliser une machine d'état appartenant au circuit intégré digital lui-même et participant à son fonctionnement. Celle-ci sera de préférence adaptée pour permettre la génération d'un signal d'erreur primaire fiable à chaque fois qu'elle prend un état illicite. Cette adaptation consiste à l'équiper d'un circuit de détection des états illicites et à adopter pour son vecteur d'état un nombre de bits permettant de rendre le codage des états largement redondant, par exemple un codage "1 parmi N" donnant au registre un nombre de bits égal au nombre d'états. En outre, on privilégiera un codage affectant aux états licites un nombre de niveaux logiques "1" et "O" dans une proportion voisine de 50%. Un tel codage peut être obtenu à partir du code 1 parmi N classique, par inversion systématique de la moitié des bits. La figure 2 montre un schéma synoptique d'une telle machine d'état modifiée et complétée par un détecteur d'états illicites 4. On y distingue les principaux éléments d'une machine d'état fonctionnelle avec un réseau de logique combinatoire d'évaluation de l'état suivant 5 attaqué par les signaux d'entrée et bouclé sur un registre d'état 6, et avec un réseau de logique combinatoire d'évaluation des sorties 7 connecté en sortie du registre d'état 6, attaqué par les signaux d'entrée et complété par un éventuel registre de sortie 8 délivrant les sorties fonctionnelles. Le détecteur d'états illicites 4 est, en général, un circuit de logique combinatoire. II engendre un signal d'erreur qui doit être filtré pour éviter de prendre en compte des états transitoires par lesquels une machine d'état fonctionnelle peut passer en basculant d'un état licite à un autre. Ce filtrage peut être réalisé à l'aide d'un dispositif logique dynamique purement combinatoire ou à l'aide d'un dispositif logique séquentiel. La figure 3 montre un filtre de transitoire constitué d'un dispositif logique dynamique purement combinatoire. Celui-ci se compose d'une porte logique de type "et" 20 à deux entrées recevant le signal d'erreur primaire directement sur l'une de ses entrées et par l'intermédiaire d'un circuit à retard combinatoire 21 sur l'autre de ses entrées. le circuit à retard combinatoire 21 peut être constitué d'une échelle de portes logiques de type "et" à deux entrées connectées en parallèle par l'une de leurs entrées et en série par leur autre entrée. La figure 4 montre un filtre de transitoire constitué d'un dispositif logique séquentiel. Celui-ci se compose d'une bascule logique 22 de type D cadencée par l'inverse du signal d'horloge H délivré par un inverseur 23 connecté devant son entrée d'horloge. Le filtre de transitoire de la figure 3 à base d'un dispositif logique purement combinatoire est un peu plus difficile à réaliser de part la complexité de son circuit à retard. II a en revanche l'intérêt de permettre de baser la génération d'un signal de réinitialisation sur une ou des machines d'état fonctionnelles préexistantes dans le circuit intégré digital sans rajouter de dispositif logique séquentiel. La figure 5 illustre un dispositif pour l'initialisation à la mise sous tension d'un circuit intégré digital faisant appel à la fois à une machine d'état non fonctionnelle dégénérée comme dans le cas du dispositif de la figure 1, et à des machines d'état fonctionnelles. On y distingue plusieurs machines d'état fonctionnelles 30, 31, 32, 33, 34 équipées individuellement de détecteurs d'états illicites, une machine d'état non fonctionnelle dégénérée 35 à un seul état licite équipée d'un détecteurs d'états illicites, un détecteur de combinaisons illicites d'états 36 surveillant les machines d'état fonctionnelles 30, 31, 32, 32, 34, un circuit de regroupement et de filtrage 37 regroupant et filtrant vis à vis des transitoires les signaux d'erreur délivrés par le détecteur de combinaisons illicites d'états 36 et par les détecteurs d'états illicites des machines d'états fonctionnelles 30, 31, 32, 33, 34, et une porte logique de type "ou" 38 connectée en sortie d'erreur du détecteur d'états illicites de la machine d'état non fonctionnelle 35 et en sortie du circuit de regroupement et de filtrage 37, et délivrant un signal global d'erreur à destination d'une bascule astable engendrant un signal de réinitialisation de durée calibrée. REVENDICATIONS 1. Dispositif pour l'initialisation à la mise sous tension d'un circuit intégré digital caractérisé en ce qu'il comporte, intégré sur la puce même du circuit intégré digital - au moins une machine d'état (1) dédiée à l'initialisation, la ou lesdites machines d'état dédiées à l'initialisation participant ou non à la fonctionnalité du circuit intégré digital, étant réalisées en logique combinatoire et séquentielle avec des éléments disséminés à la surface de la puce du circuit intégré digital, étant cadencées par un signal d'horloge, et présentant des états illicites ou des combinaisons illicites d'états, -un circuit logique (2) de détection des états illicites ou des combinaisons illicites d'états de la ou des machines d'état (1) dédiées à l'initialisation, et - un circuit logique (3) de génération d'un signal d'initialisation à destination du circuit intégré digital et de la ou des machines d'état (1) dédiées à l'initialisation déclenché par le circuit logique (2) de détection des états illicites ou des combinaisons illicites d'états à chaque apparition d'un état illicite dans une machine d'état (1) dédiée à l'initialisation ou d'une combinaison illicite d'états entre des machines d'états dédiées à l'initialisation. 2. Dispositif selon la revendication 1, caractérisé en ce qu'il comporte une machine d'état (1) dédiée à l'initialisation, qui est non fonctionnelle, c'est-à-dire sans autre influence sur le fonctionnement du circuit intégré digital que sa contribution à la génération d'un signal d'initialisation, et dégénérée avec un seul état licite et plusieurs états illicites 3. Dispositif selon la revendication 2, caractérisé en ce que la machine d'état (1) dédiée à l'initialisation, qui est non fonctionnelle et dégénérée, comporte un registre d'état (10) et un banc de multiplexeurs à deux voies (11, 12, 13, 14), ledit registre d'état (10) étant formé d'un banc de bascules logiques de type D en nombre égal aux multiplexeurs à deux voies (11, 12, 13, 14), chaque bascule logique de type D du registre d'état (10) ayant une entrée de donnée D soit rebouclée à sa sortie de donnée Q soit portée à un niveau logique d'initialisation par l'intermédiaire de l'un des multiplexeurs à deux voies (11, 12, 13, 14). 4. Dispositif selon la revendication 3, caractérisé en ce que la machine d'état (1) non fonctionnelle et dégénérée, dédiée à l'initialisation comporte un registre d'état (10) dont les bascules prennent dans l'unique état licite des états logiques "1" et "O" en nombres équivalents. 5. Dispositif selon la revendication 1, caractérisé en ce qu'il comporte au moins une machine d'état (30, 31, 32, 33, 34) dédiée à l'initialisation, qui participe au fonctionnement du circuit intégré digital et qui présente un registre d'état à plusieurs bits utilisant pour le codage des états un code 1 parmi N. 6. Dispositif selon la revendication 1, ayant au moins une machine d'état (30, 31, 32, 33, 34) dédiée à l'initialisation, qui présente plusieurs états licites et au moins un état illicite, caractérisé en ce qu'il comporte en outre un circuit de filtrage de transitoire (37) placé entre le circuit logique de détection des états illicites ou des combinaisons illicites d'états et le circuit logique de génération d'un signal d'initialisation. 7. Dispositif selon la revendication 6, caractérisé en ce que ledit circuit de filtrage de transitoire comporte, entre son entrée et sa sortie, une porte logique de type "et" (20) à deux entrées connectées à son entrée, l'une directement et l'autre par l'intermédiaire d'un circuit à retard (21) en logique combinatoire. 8. Dispositif selon la revendication 6, caractérisé en ce que ledit circuit de filtrage de transitoire comporte, entre son entrée et sa sortie, une bascule logique de type D connectée par une entrée donnée D à l'entrée du circuit de filtrage de transitoire, par une sortie donnée Q à la sortie du circuit de filtrage, et par une entrée d'horloge CK à la sortie d'un circuit inverseur (23) recevant en entrée un signal d'horloge utilisé par ailleurs par la ou lesdites machines d'état 9. Dispositif selon la revendication 1, caractérisé en ce qu'il comporte -une machine d'état non fonctionnelle (35) qui possède un seul état licite et au moins un état illicite et qui est équipée d'un détecteur d'états illicites, plusieurs machines d'états fonctionnelles (30, 31, 32, 33, 34) qui possèdent des états licites et illicites et des combinaisons illicites d'état et qui sont équipées de détecteurs d'états illicites, - un détecteur de combinaisons illicites d'états (36) surveillant les machines d'état fonctionnelles (30, 31, 32, 32, 34), - un circuit de regroupement et de filtrage (37) regroupant et filtrant vis à vis des transitoires les signaux d'erreur délivrés par le détecteur de combinaisons illicites d'états (36) et par les détecteurs d'états illicites des machines d'états fonctionnelles (30, 31, 32, 33, 34), et - une porte logique de type "ou" (38) connectée en sortie du détecteur d'états illicites de la machine d'état non fonctionnelle (35) et en sortie du circuit de regroupement et de filtrage (37), et délivrant un signal global d'erreur à destination du circuit logique de génération du signal de réinitialisation de durée calibrée.