Brevet FR2531824A1 — publié le 19840217

2531824. La présente invention concerne un circuit et un procédé de contrôle du fonctionnement de circuit logique séquentiel f Un-circuit logique séquentiel est un circuit avec plusieurs états internes distincte et qui change d'état W'une manière prédéterminée en réponse à un ou plusieurs signaux d'entrée de condition. Il est souvent souhaitable de disposer d'un moyen de contrôler le fonctionnement d'un tel circuit, pendant son fonctionnement réel, afin d'assurer qu'il fonctionne correctement Une manière de procéder serait de dupliquer l'ensemble du circuit et de comparer les états du circuit dupliqué à chaque phase de fonctionnement Toute discordance entre les circuits dupliqués indiquerait une erreur Mais l'inconvénient de ce procédé est qu'il est très coûteux en ce qui concerne la quantité des composants nécessaires. Un objet de l'invention est donc de proposer un nouveau moyen de contrôler un circuit logique séquen- 20 tiel ne nécessitant la duplication du circuit. L'invention concerne donc un circuit logique séquentiel comprenant un dispositif de contrôle, et qui comporte: un premier codeur réagissant à l'état actuel du circuit en produisant un premier code qui dépend de cet état; un second codeur réagissant à l'état du circuit avant une transition dans un état différent et également au signal ou aux signaux qui provoquent cette transition, en produisant un second code indiquant une valeur prévue pour le premier code dans l'état suivant; et un dispositif de comparaison du premier code produit dans un état actuel avec le second code produit pour la transition à cet état et indiquant s'il existe une discordance entre eux. Selon un autre aspect, l'invention concerne un procédé de contrôle du fonctionnement d'un circuit logique séquentiel, ce procédé consistant avant une transition d'un état du circuit à un état différent à établir en réponse audit état du circuit et au signal ou aux signaux qui provoquent cette transition, une prévision relative audit état suivant; et, dans ledit état suivant, à déterminer à partir de l'état réel si la prévision est justifiée. De préférence, le premier et le second codes sont des codes à un parmi n, c'est-à-dire comprenant chacun N bits dont un seul a une valeur binaire prédéter- minée, les autres ayant l'autre valeur binaire. De préférence, certains au moins des états du circuit ont le même premier code mais deux états n'ont pas le même premier code si: ( 1) l'un succède à l'autre ou ( 2) ils ont tous deux le même prédécesseur. Il apparaît que cela réduit le nombre des -codes différents et par conséquent, le nombre des compo- sants nécessaires pour produire les codes. D'autres caractéristiques et avantages de l'invention seront mieux compris à la lecture de la des- cription qui va suivre d'un exemple de réalisation et en se référant au dessin annexé sur lequel: La figure 1 est un diagramme d'état du circuit et, La figure 2 est un schéma du dispositif de contrôle. Une caractéristique importante de tout circuit logique;équentiel est son diagramme d'état Dans le but de prendre un exemple concret, il sera supposé que le circuit dont le dispositif de contrôle sera décrit possède un diagramme d'état représenté sur la figure 1. Dans cet exemple particulier, le circuit de la figure 1 comporte huit états Si à 58 Le circuit est synchrone et il est capable d'effectuer un changement d'état à des instants prédéterminés définis par des signaux d'horloge Dans certains états, le circuit effectue automatiquement une transition au signal d'horloge suivant vers un seul successeur prédéterminé (par exemple de 52 à 53) En Variante, un état peut avoir plusieurs successeurs possibles, la transition particulière exécutée dépendant de la valeur d'entrées de conditions particu- lières au moment o apparaît le signal d'horloge Ainsi, si le circuit se trouve dans l'état 51, il passe à 52, 54, 57 suivant celui des trois signaux A, B et C qui est présent Dans le cas de Sl, il est possible qu'aucun des signaux ne soit présent au moment du signal d'horloge. Le circuit reste alors dans l'état Si au lieu d'effectuer une transition vers un état différent De façon similaire, s'il se trouve dans l'état 57, le circuit effectue une transition vers l'état 58 si le signal D est présent, sinon il reste dans le même état. Une réalisation particulière d'un circuit qui conduit au diagramme d'état représenté sur la figure 1 comporte un circuit bistable pour chaque état, seul le circuit bistable correspondant à un état étant au niveau " 1 " pendant cet état Dans ce cas, la figure 1 peut être considérée comme un schéma, chaque casereprésentant un circuit bistable et, comme cela apparaît facilement, les portes nécessaires (non-représentées) sont prévues pour que chaque circuit bistable déclenche le successeur approprié. La figure 2 représente un dispositif pour contrôler le fonctionnement d'un circuit logique séquen- tiel dont le diagramme d'état est celui de la figure 1. Le dispositif de contrôle comporte un codeur constitué par quatre portes OU 10-13 Ces portes codent l'état actuel du circuit (entrée sur l'une des lignes 51 à 58) pour produire un code de sortie à quatre bits X 0-X 3 indiquant cet état Avec la réalisation décrite ci-dessus, chaque entrée 51, peut recevoir comme une entrée directe la sortie " 1 " du circuit bistable correspondant. Le$ codes pour les huit états sont représentés sur la figure 1 Il apparaît par exemple en regard de la figure 2 que dans l'état 51, la porte 13 est ouverte et les portes 10-12 sont fermées Par conséquent, X O =X 1 =X 2 = 0 et X 3 = 1 de sorte que le code pour l'état 51 est 0001. Il faut observer que chaque code consiste en un code à un parmi quatre De plus, les codes des états ne sont pas uniques: par exemple, l'état 55 a le même code 0001 que l'état 51 Mais, la disposition est telle que deux états qui peuvent être atteints directement par un branchement à partir du même état Ic'est-à-dire qui ont le même prédécesseur) ne reçoivent pas la même valeur de code Par exemple, les états 52, 54, 57 qui'peuvent tous être atteints par un branchement à partir de l'état 51 reçoivent différentes valeurs de codes 0010, 0100 et 1000 D'uen façon similaire, lorsque l'état est le suces- seur d'un autre, ils ont des valeurs de codes différentes Le dispositif de contrôle comporte également un second codeur constitué par quatre combinaisons 20 à 23 de portes ET/OU et un registre de quatre circuits bistables 30 à 33 Ce registre est commandé par horloge au moment o une transition a eu lieu pour enregistrer une prévision, et il émet sous forme d'un code à quatre bits Y 0-Y 3 la valeur de code qu'il obtient après chaque instant La prévision est produite par les combinaisons des portes 20 à 23 qui reçoivent l'état existant jusqu'à la transition sur les lignes 51 à 58 et les entrées de conditions A à D avec leurs inverses. Par exemple, si le circuit se trouve dans l'état 51 quand la transitiontpeut se produire et si le signal de condition C est présent, il apparaît sur la figure 2 que la porte 20 est ouverte et que les portes 21-23 sont fermées Par conséquent, YO= 1 et Y 1 =Y 2 =Y 3 = 0. Ainsi, le codeur prévoit correctement que l'état suivant doit être l'état 57 (code 1000) Bien que l'état 53 possède la même valeur de code, il n'y a aucune ambiguité sérieuse car l'état 53 ne peut pas être atteint directe- ment à partir de l'état 51. Le code X 0-X 3 correspondant à l'état actuel du circuit séquentiel est comparé dans un comparateur 40 avec le code prévu YO-Y 3 mémorisé dans les circuits bistablés 30 à 33 Si ces deux codes sont égaux quand le comparateur est commandé par horloge, la sortie de ce comparateur 40 reste au niveau bas indiquant un fonctionnement correct Mais s'il y a une différence entre les codes, la sortie du comparateur 40 passe au niveau haut indiquant une erreur. Il apparaît ainsi que le dispositif de contrôle est capable de détecter que le circuit n'a pas progressé correctement d'un état au suivant, en particulier à cause de l'un des types suivants d'erreur (a) Aucun état (b) Etats "multiples" (c'est-à-dire plus d'un bit X à l'état " 1 ") (c) Branchements incorrects (d) Blocage dans l'état. De pliis,-un mauvais fonctionnement du dispositif de contrôle est détecté car le code X continue correcte- ment mais le code Y prévoit un état suivant erroné. Il faut noter que l'utilisation d'un code à un parmi quatre (ou plus particulièrement un code à un parmi n) pour coder les états est préférable à un code binaire courant dans lequel chaque code peut contenir plus d'un bit " 1 ", car ce dernier pourrait masquer des erreurs d'état multipres. Il est bien entendu que les entrées du circuit de contrôle représentées sur la figure 2 dépendent du diagramme d'état particulier-représenté sur la figure 1 et doivent être adaptées pour un circuit à un diagramme d'état différent pour fonctionner de la manière générale décrite. Le dispositif de contrôle apporte ainsi un moyen puissant pour contrôler le fonctionnement du circuit séquentiel en cours de fonctionnement, dans qu'il soit nécessaire de dupliquer l'ensemble du circuit Le Il nombre des circuits bistables dans le dispositif de contrôle décrit ci-dessus est inférieur au nombre qui serait nécessaire si le circuit séquentiel (dans la réalisation décrite) avait, été dupliqué Cet avantage serait encore plus grand pour des circuits séquentiels plus importants ayant davantage d'états En plus de l'avantage de prix du moindre nombre de composants, le circuit et le dispositif de contrôle conviennent par- ticulièrement pour leur réalisation sur la même pastille de circuit intégré, car le dispositif de contrôle occupe une plus petite surface de la pastille. Le circuit de la figure 1 peut être utilisé par exemple comme un moniteur de séquence. L'invention n'impose pas un circuit bistable séparé pour chaque état, pourvu que l'état soit accessible aux -codeurs ce qui, si l'état n'est pas lui-même fourni comme un code à un parmi n, impose des portes supplémen- taires L'invention peut aussi être appliquée à des circuits séquentiels asyncrhones. Bien entendu, diverses modifications peuvent être apportées par l'homme de l'art au mode de réalisation décrit et illustré sans sortir du cadre de l'invention. REVENDICATIONS 1 Circuit logique séquentiel, caractérisé en ce qu'il comporte un dispositif de contrôle comprenant un premier codeur ( 10-13) réagissant à l'état actuel (Sl- 58) du circuit en produisant un premier code (X 0-X 3) dé- pendant de cet état, un second codeur ( 20-23, 30-33) réagissant à l'état (Sl-58) du circuit avant une transition vers un état différent et également au signal ou aux signaux (A-D, horloge) provoquant cette transition, en produisant un second code'(Y 0-Y 3) indiquant une valeur prévue pour le premier code (XO-X 3) dans l'état suivant et un dispositif ( 40) de comparaison du-premier code (X 0-X 3) produit dans un état actuel, avec le second code (Y 0-Y 3) produit pour la transition à cet état indiquant s'il y a une discordance entre eux. 2 Circuit selon la revendication 1, caractérisé en ce que les premiers codes (X 0-X 3) et les seconds codes (Y 0-Y 3) sont des codes à un parmi no 3 Circuit selon la revendication 1 ou 2, caractérisé en ce qu'au moins certains (p e 51,55)- des états du circuit ont le même premier code, mais deux états n'ont pas le même premier code si l'un est le successeur de l'autre (p e Sl, 52) ou s'ils ont tous deux le même prédécesseur (p e 52, 54, 57). 4 Circuit selon l'une quelconque des revendi- cations l à 3, caractérisé en ce que le circuit comporte plusieurs éléments bistables, un pour chaque état ( 51-58) et dans chaque état, l'un différent desdits éléments bistables se trouve dans un état binaire alors que les autres sont dans l'autre état binaire. Circuit sur l'une quelconque des revendications 1 à 4, caractérisé en ce que le second codeur comporte des circuits logiques ( 20-23) réagissant, à l'instant o une transition peut se produire, à une indication ( 51-58) de - l'état avant ce moment et à un signal ou des signaux de conditions (A-D) pour sélectionner entre plusieurs états possibles différents du circuit après cet instant pour émettre une valeur de code et un dispositif ( 3033) pour-mémoriser la dernière valeur de code citée produite au moment o une transition peut se produire comme ledit second code pour le rendre disponible pendant l'état - suivant. 6 Procédé de contrôle du fonctionnement d'un circuit logique séquentiel, caractérisé en ce qu'il consiste essentiellement, avant une transition d'un état du circuit vers un état différent, à établir ( 20-23, 30-33) en réponse audit état du circuit et au signal ou aux signaux qui provoquent cette transition, une prévision (YO-Y 3) relative audit état suivant,et dans ledit état suivant, à déterminer ( 40) à partir de l'état actuel si la prévision est justifiée. 7 Procédé selon la revendication 6, caracté- risé en ce que l'état actuel est codé ( 10-13) comme un premier code (XOX 3) et ladite prévision est un second, code (YO-Y 3) indiquant une valeur prévue pour le premier code après la transition, les valeurs du premier et du second codes étant comparées ( 40) pour indiquer s'il y a une discordance entre eux. 8 Procédé selon la revendication 7, caractérisé en ce que le premier et le second codes sont des codes à un parmi n - 9 Procédé selon la revendication 7 ou 8, carac- térisé en ce que certains au moins des états du circuit ont le même premier code, mais deux états n'ont pas le même premier code si l'un est le successeur de l'autre ou s'ils ont tous deux le même prédécesseur. Procédé selon l'une quelconque des reven- dications-7 à 9, caractérisé en ce que le circuit comporte plusieurs éléments bistables ( 51-58), un pour chaque état et, dans chaque état, l'un différent desdits plusieurs éléments se trouve dans un état binaire et les autres dans l'autre état binaire. 11 Appareil de contrôle du fonctionnement d'un circuit séquentiel, caractérisé en ce qu'en fonctionnant, il met en oeuvre un procédé selon l'une quelconque des revendications 6 à 10.