Brevet FR3096796A1 — publié le 20201204

Description Titre de l'invention : Dispositif à plusieurs domaines d'horloge Domaine technique [0001] La présente description concerne de façon générale les dispositifs électroniques, et plus particulièrement les dispositifs comprenant plusieurs circuits ayant des domaines d'horloge différents et recevant des signaux comprenant des nombres successifs, séparés deux à deux par une même valeur, issus d'une source commune (compteur). Technique antérieure [0002] Les dispositifs électroniques comprennent souvent des circuits fonctionnant dans des domaines d'horloges différents, c'est-à-dire avec des signaux d'horloge dc fréquences différentes. [0003] 11 est connu pour certains circuits de recevoir des signaux comprenant des nombres successifs séparés deux à deux par une même valeur. Par exemple, chaque circuit peut recevoir un signal d'horodatage, c'est-à-dire un signal permettant d'associer une date et une heure à un événement, une information ou une donnée informatique. Résumé de l'invention [0004] Il existe un besoin d'un dispositif permettant de s'assurer que les signaux à nombres successifs reçus comprennent bien les nombres envoyés. [0005] Un mode de réalisation pallie tout ou partie des inconvénients des dispositifs à plusieurs domaines d'horloges connus. 100061 Un mode de réalisation prévoit un dispositif comprenant un premier circuit configuré pour envoyer, à au moins un deuxième circuit, un signal comprenant des nombres séparés successivement d'une valeur constante, chaque deuxième circuit étant dans un domaine d'horloge différent du domaine d'horloge du premier circuit, le signal étant envoyé, dans chacun des domaines d'horloge différents du domaine d'horloge du premier circuit, à un troisième circuit configuré pour déterminer si les nombres successifs du signal reçu par le deuxième circuit sont séparés de la valeur constante. 100071 Selon un mode de réalisation, chaque nombre est un nombre binaire. 100081 Selon un mode de réalisation, chaque nombre comprend 64 bits. 100091 Selon un mode de réalisation, les premier et troisième circuits sont reliés par un quatrième circuit configuré pour faire passer un signal du domaine d'horloge du premier circuit aux domaines d'horloge du ou des deuxièmes circuits. 100101 Selon un mode de réalisation, le dispositif comprend au moins deux deuxièmes circuits dans des domaines d'horloge différents. 100111 Selon un mode de réalisation, le premier circuit est un circuit d'horodatage. 100121 Selon un mode de réalisation, la valeur constante est égale à 1. 2 100131 Selon un mode de réalisation, chaque troisième circuit comprend un circuit de com- paraison configuré pour comparer un nombre d'un signal d'entrée avec un nombre d'un signal correspondant. au signal d'entrée retardé. [0014] Selon un mode de réalisation, chaque troisième circuit comprend un circuit re- tardateur relié entre l'entrée du troisième circuit et une entrée du circuit de comparaison. [0015] Un mode de réalisation prévoit un procédé de vérification du dispositif décrit, comprenant le transfert d'au moins un nombre prédéterminé du premier circuit au troisième circuit, le nombre reçu par le troisième circuit étant comparé avec le nombre prédéterminé. [0016] Selon un mode de réalisation, au moins deux nombres prédéterminés sont transférés, les deux nombres prédéterminés étant choisis de telle manière que chaque bit formant un nombre est égal à 0 dans au moins un des nombres prédéterminés et est égal à 1 dans au moins un autre des nombres prédéterminés. [0017] Selon un mode de réalisation, un circuit est configuré pour vérifier que le signal change de valeur dans une fenêtre de temps prédéterminée. Brève description des dessins [0018] Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : [0019] [fig.1] la figure 1 représente, schématiquement et sous forme de blocs, un dispositif comprenant plusieurs circuits d'horloge de fréquences différentes, et recevant des signaux comprenant des nombres successifs, séparés deux à deux par une même valeur, issus d'une source commune (compteur) ; [0020] W8.21 la figure 2 représente, schématiquement et sous forme de blocs, une partie du dispositif de la figure 1 ; [0021] [fig.31 la figure 3 représente, schématiquement et sous forme de blocs, une autre partie du dispositif de la figure 1 ; et [0022] [fig.4] la figure 4 représente un exemple de fonctionnement du dispositif de la figure 1. Description des modes de réalisation 100231 De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. 100241 Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. 3 [0025] Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés ou couplés entre cux, cela signifie que ces deux éléments peuvent être connectés ou être reliés ou couplés par l'intermédiaire d'un ou plusieurs autres éléments. [0026] Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures. [0027] Sauf précision contraire, les expressions "environ", "approximativement", "sen- siblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près. [0028] Par domaine d'horloge, on entend un ou plusieurs circuits recevant et fonctionnant avec un même signal d'horloge de manière synchrone. [0029] La figure 1 représente, schématiquement et sous forme de blocs, un dispositif 100 comprenant plusieurs circuits de domaines d'horloge différents, c'est-à-dire à horloges de fréquences différentes, et recevant des signaux comprenant des nombres successifs, séparés deux à deux par une même valeur, issus d'une source commune (compteur). [0030] Le dispositif 100 comprend un circuit générateur 102 fournissant un signal H. Le signal H est un signal comprenant des nombres successifs séparés deux à deux par unc même valeur constante C. La valeur constante C est par exemple la valeur 1 Ainsi, le signal H comprend par exemple les valeurs suivantes, dans cet ordre : 1 2 3 4 5 6 7 8 9 10 etc. Le signal peut alors être un signal d'horodatage. [0031] Le signal H est par exemple un signal binaire comprenant des nombres codés en hexadécimal, sur 64 bits. [0032] A titre de variante, la valeur constante C peut être toute autre valeur, par exemple la valeur 10, le signal pouvant par exemple comprendre les nombres suivants : 2 12 22 32 42 etc., ou la valeur 5, le signal pouvant par exemple comprendre les nombres suivants : 5 10 15 20 etc. [0033] Le circuit 102 reçoit un signal d'horloge CLK ayant une fréquence E Le circuit gé- nérateur 102 comprend par exemple un compteur incrémentant le signal H de la valeur constante C, par exemple à chaque fi-ont montant du signal d'horloge CLK. [0034] Le signal d'horloge CLK peut éventuellement être aussi fourni à une unité de sur- veillance du signal d'horloge (CMU - Clock Monitoring Unit en anglais), non représentée. Cette unité permet de vérifier que la fréquence de l'horloge est dans une gamme de valeur voulue, par exemple une gamme centrée sur la fréquence E [0035] Le circuit 102 reçoit un signal comprenant un nombre initial INIT. Le nombre INIT correspond au nombre à partir duquel le circuit 102 incrémente la valeur du signal H. [0036] Dans le cas d'un signal d'horodatage, le nombre initial INIT est par exemple O. [0037] Le dispositif 100 comprend, de plus, au moins un circuit 104 situé dans un domaine d'horloge différent de celui du circuit 102, c'est-à-dire ayant un signal d'horloge de fréquence différente de la fréquence du signal CLK. La figure 1 représente trois circuits 104a, 104b et 104e recevant respectivement des signaux d'horloge CLK1, CLK2 et CLK3, de fréquences respectives fl, f2 et f3. Dans cette exemple, les fréquences fl, f2 et f3 sont toutes différentes les unes les autres et de la fréquence f. De préférence, les fréquences fl, f2 et f3 sont plus élevées que la fréquence f. [0038] Bien que la figure 1 ne représente que trois circuits 104 et donc trois fréquences fl, f2 et f3, de manière plus générale le dispositif 100 comprend au moins un circuit 104, de préférence au moins deux circuits 104, par exemple entre 1 et 10 circuits 104. [0039] Les circuits 104 sont par exemple des circuits comprenant des unités de traitement de données (CPU), ou des circuits comprenant au moins un périphérique. [0040] Certains circuits 104 peuvent être dans un même domaine d'horloge. De préférence, au moins deux circuits 104 sont dans des domaines d'horloge différents, c'est-à-dire fonctionnent avec des signaux d'horloge ayant des fréquences différentes. [0041] Le dispositif 100 comprend, de plus, un circuit 106. Une entrée du circuit 106 est reliée à la sortie du circuit 102 fournissant le signal H. Le circuit 106 est configuré pour faire passer le signal du domaine d'horloge du circuit 102 aux domaines d'horloge des circuits 104. Le circuit 106 est configuré pour fournir en sortie des signaux correspondant au signal H, chacun de ces signaux étant synchronisé à un signal d'horloge de fréquence différente de la fréquence f du circuit 102. Ainsi, les signaux HI, H2 et H3 représentés en figure 1 comprennent les nombres du signal H dans le même ordre, mais à des fréquences différentes. Plus précisément, le circuit 106 est configuré pour fournir des signaux HI, H2 et H3 synchronisés aux fréquences fl, f2 et f3 des circuits 104a, 104b et 104e. [0042] Un exemple d'un circuit 106 est décrit plus en détails en relation avec la figure 2. [0043] Une erreur peut apparaître sur le signal H ou un des signaux HI, H2 et H3, dans le circuit 102 lors de la génération du signal, dans le circuit 106 ou sur un des bus de données qui transmettent les signaux entre les circuits du dispositif 100. Ces erreurs correspondent par exemple au changement d'une valeur d'un bit d'un nombre du signal. Ces erreurs sont par exemple causées par les circuits eux-mêmes, un bit étant par exemple bloqué à une valeur, ou par modification spontanée, par exemple causée par du rayonnement. [0044] Chaque circuit 104 est relié, par une entrée, à une sortie du circuit 106. Plus pré- cisément, le circuit 104a est relié à la sortie du circuit 106 fournissant le signal HI. Le circuit 104b est relié à la sortie du circuit 106 fournissant le signal H2. Le circuit 104c est relié à la sortie du circuit 106 fournissant le signal H3. [0045] Des circuits 108 (108a, 108h et 108c) sont reliés, de préférence connectés, par leurs entrées, aux sorties du circuit 106. Chaque circuit 108 est relié, de préférence connecté, à la même sortie qu'un des circuits 104. Plus précisément, l'entrée du circuit 108a est reliée à la même sortie que celle reliée au circuit 104a, et le circuit 108a reçoit donc le signal Hl. L'entrée du circuit 108h est reliée à la même sortie que celle reliée au circuit 104h, et le circuit 108b reçoit donc le signal H2. L'entrée du circuit 108c est reliée à la même sortie que celle reliée au circuit 104c, et le circuit 108c reçoit donc le signal H3. [0046] Le dispositif 100 comprend donc autant de circuits 108 que de circuits 104 pour lesquels on souhaite vérifier l'intégrité du signal H. [0047] Les circuits 108 sont configurés pour vérifier que les nombres successifs des signaux en sortie du circuit 106 sont séparés de la valeur constante C. [0048] Chaque circuit 108 fournit, à une sortie, un signal ER (ER1, ER2, ER3) prenant une première valeur lorsque les nombres successifs du signal H1, H2 ou H3 sont séparés de la valeur constante C et une deuxième valeur lorsqu'ils sont séparés d'une autre valeur que la valeur constante C. [0049] Un exemple d'un circuit 108 est décrit plus en détails en relation avec la figure 3. [0050] Le circuit 102 reçoit, de plus, un signal de réinitialisation RESET. Ainsi, le circuit 102 recommence par exemple à compter depuis le nombre initial INIT à un instant déterminé par le signal RESET, par exemple par un front montant du signal RESET. [0051] Lors du démarrage du dispositif 100 et/ou lors de la réinitialisation du dispositif 100 à un instant déterminé par le signal RESET, le dispositif 100 peut mettre en oeuvre des étapes de vérification du fonctionnement du dispositif 100. [0052] Au cours des étapes de vérification, un nombre prédéterminé est programmé dans le circuit 102, par exemple par une entrée non représentée. Ce nombre est ensuite fourni au circuit 106, puis aux circuits 108. Le circuit 108 peut transmettre le nombre reçu à un circuit pouvant le comparer au nombre programmé dans le circuit 102. Il est alors possible de déterminer si des erreurs sont causées par le dispositif 100 lui-même. De préférence, au moins deux nombres prédéterminés sont envoyés, les deux nombres étant choisis de telle manière que chaque bit formant un nombre du signal est égal à 0 dans au moins un des nombres envoyés et est égal à 1 dans au moins un autre des nombres envoyés. Par exemple, les deux nombres suivants (sous forme hexadécimale) sont envoyés durant les étapes d'initialisation : AAAAAAAA et 55555555. [0053] A titre de variante, le dispositif peut comprendre, pour chaque circuit 104, une unité de surveillance du signal d'horloge (CMU - Clock Monitoring Unit en anglais), non représentée. Chaque unité permet de vérifier que le signal ne reste pas constant dans une fenêtre de temps donnée. L'unité vérifie donc que le signal H change de valeur dans la fenêtre de temps prédéterminée. La fenêtre de temps est par exemple choisie pour être supérieure à la durée entre deux changements de valeur du signal H. L'unité de sur- 6 vcillance peut ainsi détecter un arrêt du circuit 102, par exemple dû à une défaillance. [0054] La figure 2 représente, schématiquement et sous forme de blocs, un exemple d'une partie du dispositif 100 de la figure 1. Plus précisément, la figure 2 représente un exemple d'implémentation du circuit 106. [0055] Le circuit 106 comprend un circuit 200 recevant en entrée le signal H. Le circuit 200 comprend par exemple un encodeur et un démultiplexeur. Ainsi, le signal H est encodé, par exemple en 9 bits, dont 7 bits de données et 2 bits de synchronisation. Le signal encodé est envoyé, par le &multiplexeur, vers plusieurs sorties du circuit 200. [0056] Le circuit 106 comprend des circuits 202. L'exemple de la figure 2 comprend trois circuits 202. Plus généralement, il y a par exemple autant de circuits 202 que de circuits 108 dans le dispositif 100 (figure 1). Chaque sortie du circuit 200 sur laquelle est envoyé le signal H encodé est reliée, de préférence connectée, à l'entrée d'un circuit 202. [0057] Chaque circuit 202 est un translateur asynchrone, ou un circuit de resynchronisation. Chaque circuit 202 est configuré pour faire passer un signal d'un domaine d'horloge à un autre. Chaque circuit 202 est configuré pour faire passer le signal H encodé du domaine d'horloge du circuit 102 (fréquence f) au domaine d'horloge du circuit 104 correspondant (fréquence fl, f2 ou f3). [0058] Le circuit 106 comprend des circuits 204. L'exemple de la figure 2 comprend trois circuits 204. Plus généralement, il y a autant de circuits 204 que de circuits 202. [0059] Une entrée de chaque circuit 204 est reliée, de préférence connectée, à une sortie d'un des circuits 202. En figure 2, une entrée du circuit 204a est reliée à une sortie du circuit 202a, une entrée du circuit 204b est reliée à une sortie du circuit 202b et une entrée du circuit 204c est reliée à une sortie du circuit 202c. [0060] Chaque circuit 204 comprend un décodeur de manière à obtenir, en sortie, des nombres ayant la même taille (le même nombre de bits) que dans le signal H, synchronisé sur le domaine d'horloge correspondant. [0061] La sortie du circuit 204a transmet le signal Hl, synchronisé à la fréquence fl, la sortie du circuit 204b transmet le signal H2, synchronisé à la fréquence f2, et la sortie du circuit 204c transmet le signal H3, synchronisé à la fréquence f3. [0062] La figure 3 représente, schématiquement et sous forme de blocs, une autre partie du dispositif 100 de la figure 1. Plus précisément, la figure 3 comprend un exemple d'implémentation du circuit 108. L'exemple de la figure 3 est décrit dans le cas du circuit 108a, recevant en entrée le signal Hl. Cependant, les autres circuits 108 sont identiques au circuit décrit en relation avec la figure 3. [0063] Le circuit 108 comprend un circuit de comparaison 300. Le circuit 108 comprend de plus un circuit retardateur 302. Le signal H1 est fourni en entrée du circuit 302 et à une entrée du circuit 300. La sortie du circuit 302 est reliée, de préférence connectée, à une 7 autre entrée du circuit 300. Le signal H1 est aussi fourni en sortie du circuit 108 par une connexion 306. [0064] Le circuit retardateur 302 reçoit en entrée le signal d'horloge CLK1, c'est-à-dire le signal d'horloge du domaine d'horloge du circuit 104a auquel est relié le circuit 108a, et fournit en sortie un signal Hl t. Le circuit 302 retarde le signal Hl d'une valeur égale à la période du signal d'horloge CLK1. [0065] Le circuit 300 compare chaque valeur du signal Hl à la valeur précédente du signal Hl, cette valeur précédente étant fournie en sortie du circuit 302, de manière à obtenir la différence entre ces valeurs. Par différence, on entend de préférence une différence en valeur absolue, c'est-à-dire une valeur positive. Si cette différence est égale à 0 ou C (la valeur d'incrémentation du circuit 102, ou tout incrément induit par le circuit 106), c'est-à-dire si les deux valeurs sont identiques ou successives, le signal de sortie ER est égal à la première valeur. Si cette différence est égale à toute autre valeur, le signal de sortie est égal à la deuxième valeur. [0066] A titre de variante, le signal de sortie prend la première valeur si la différence est comprise entre 0 et la valeur C et la deuxième valeur si cela n'est pas le cas. [0067] A titre de variante, le signal de sortie prend la première valeur si la différence est comprise entre 0 et une valeur C' et la deuxième valeur si cela n'est pas le cas, la valeur C' étant égale à la valeur C plus une marge de tolérance. [0068] Le circuit 108 comprend en outre un circuit 304. Le circuit 304 reçoit le signal Hl en entrée. Le circuit 304 est configuré pour recevoir le ou les nombres envoyés durant les étapes de vérification décrites en relation avec la figure 1. Le circuit 304 compare le nombre reçu et le nombre envoyé lors des étapes de vérification ou transmet la valeur reçue en utilisant la connexion 306 pour que la comparaison soit faite par un circuit externe non représenté. [0069] La figure 4 est un chronogramme représentant un exemple de fonctionnement du dispositif 100, par exemple le fonctionnement du circuit 108 de la figure 3. [0070] Le chronogramme représente le signal H, le signal d'horloge CLK1 du domaine d'horloge du circuit 104a, le signal Hl, le signal Hlt et un signal D de différence entre les signaux H1 et Hlt obtenu par le circuit 300. [0071] Les nombres du signal H sont, dans cette partie, successivement 125, 126, 127, 128, 257. On considère en effet dans cet exemple qu'une erreur est apparue, sur le signal H, dans le circuit de génération 102, ou dans le circuit 106 avant la génération du nombre 129 et après la génération du nombre 128. [0072] Le signal H1 correspond au signal H dans un domaine d'horloge différent, ici de fréquence fl supérieure à f. Ainsi, chaque nombre transmis par le signal H est transmis plusieurs fois successivement par le signal HI. Dans l'exemple de la figure 4, chaque nombre est répété trois fois. En pratique, le nombre de répétition dépend de la 8 fréquence du circuit 102 et la fréquence du circuit 104 correspondant. Pour un même signal, le signal Hl par exemple, certains nombres peuvent être répétés un nombre de fois différents des autres. [0073] Ainsi, la différence, en l'absence d'erreur, entre un nombre transmis par Hl et le nombre précédent est égale à 0 ou à C (ici C est égal à 1). [0074] Le signal Hlt est égal au signal Hl retardé d'un temps T correspondant à une période du signal d'horloge CLK1. Ainsi, à chaque instant et lorsqu'il n'y a pas d'erreurs, le nombre transmis par le signal Hl t est égal au nombre transmis par le signal Hl durant la période précédente du signal d'horloge CLK1. [0075] Le signal D est égal à la différence entre les signaux Hl et Hl t. Ainsi, lorsqu'il n'y a pas d'erreurs, c'est-à-dire avant le nombre 257, le signal D transmet les nombres 0 et 1. [0076] Lorsqu'une erreur apparaît, le nombre transmis par Hl devient 257 dans cet exemple. La différence entre le nombre 257 du signal Hl et le nombre précédent (128) du signal Hl t est égale à 129. Ainsi, le signal D prend la valeur 129. L'erreur peut donc être détectée. [0077] Divers modes de réalisation et variantes ont été décrits. L'homme de l'art comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d'autres variantes apparaîtront à l'homme de l'art. En particulier, d'autres implémentations du circuit 106 sont possibles. [0078] Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de l'homme du métier à partir des indications fonctionnelles données ci-dessus. 9 REVENDICATIONS[Revendication 1] Dispositif comprenant un premier circuit (102) configuré pour envoyer, à au moins un deuxième circuit (104), un signal comprenant des nombres séparés successivement d'une valeur constante (C), chaque deuxième circuit (104) étant dans un domaine d'horloge différent du domaine d'horloge du premier circuit (102), le signal étant envoyé, dans chacun des domaines d'horloge différents du domaine d'horloge du premier circuit (102), à un troisième circuit (108) configuré pour déterminer si les nombres successifs du signal reçu par le deuxième circuit (104) sont séparés de la valeur constante (C). [Revendication 2] Dispositif selon la revendication 1, dans lequel chaque nombre est un nombre binaire. [Revendication 3] Dispositif selon la revendication 2, dans lequel chaque nombre comprend 64 bits. [Revendication 4] Dispositif selon l'une quelconque des revendications 1 à 3, dans lequel les premier (102) et troisième (108) circuits sont reliés par un quatrième circuit (106) configuré pour faire passer un signal du domaine d'horloge du premier circuit (102) aux domaines d'horloge du ou des deuxièmes circuits (104). [Revendication 5] Dispositif selon l'une quelconque des revendications 1 à 4, comprenant au moins deux deuxièmes circuits (104) dans des domaines d'horloge différents. [Revendication 6] Dispositif selon l'une quelconque des revendications 1 à 5, dans lequel le premier circuit (102) est un circuit d'horodatage. [Revendication 7] Dispositif selon l'une quelconque des revendications 1 à 6, dans lequel la valeur constante (C) est égale à 1. [Revendication 8] Dispositif selon l'une quelconque des revendications 1 à 7, dans lequel chaque troisième circuit (108) comprend un circuit de comparaison (300) configuré pour comparer un nombre d'un signal d'entrée (Hl) avec un nombre d'un signal correspondant au signal d'entrée retardé (H lt). [Revendication 9] Dispositif selon la revendication 8, dans lequel chaque troisième circuit (108) comprend un circuit retardateur (302) relié entre l'entrée du troisième circuit (108) et une entrée du circuit de comparaison (300). [Revendication 10] Procédé de vérification du dispositif selon l'une quelconque des reven- dications 1 à 9, comprenant le transfert d'au moins un nombre prédéterminé du premier circuit (102) au troisième circuit (108), le nombre reçu par le troisième circuit (108) étant comparé avec le nombre pré- 10 [Revendication 11] déterminé. [Revendication 12] Procédé selon la revendication 10, dans lequel au moins deux nombres prédéterminés sont transférés, les deux nombres prédéterminés étant choisis de telle manière que chaque bit formant un nombre est 'égal à 0 dans au moins un des nombres prédéterminés et est 'égal à 1 dans au moins un autre des nombres prédéterminés. Procédé selon la revendication 10 ou 11, dans lequel un circuit est configuré pour vérifier que le signal change de valeur dans une fenêtre de temps prédéterminée.