FR 2933774 A1 20100115 FR 0803970 A 20080711 -'- Description L'invention concerne le domaine de la mesure électronique du temps, plus particulièrement la mesure d'un intervalle de temps entre deux événements ou d'une 5 période pour un signal répétitif Cette mesure peut être mono coup ou répétitive. Dans les réalisations courantes, lorsqu'une faible précision de mesure ou qu'une moyenne de l'élément à mesurer (cas d'un signal périodique) sont suffisantes, une horloge de référence associée à un ou plusieurs compteurs permettent d'acquérir 10 la valeur de temps. Dans les cas ou la précision de mesure demandée est meilleure que la période d'horloge, que la valeur moyenne de la période n'est pas suffisante ou que le signal n'est pas périodique, des systèmes d'acquisition plus complexes sont mis en place. Ils vont décomposer cet intervalle en deux composantes: ^ T_coarse, représentant la majeure partie de l'intervalle mesuré, se 15 mesure en nombre entier de période d'une horloge de référence, ^ Tvernier, fraction de la période de référence, va être estimée grâce à des procédés analogiques comme charge à courant constant d'une capacité, suivit d'une mesure de tension ou interpolation. Si la mesure de T_coarse peut être réalisée de façon simple à l'aide de 20 compteurs, la valeur de T_vernier met en oeuvre des systèmes plus complexes qui nécessitent de nombreux composants précis et stables ainsi que des temps d'interpolation ou d'acquisition incompatibles avec des mesures rapides. En règle générale, ces systèmes sont coûteux, nécessitent une surface importante ou ne peuvent acquérir plusieurs intervalles de temps proches. 25 La présente invention vient améliorer la situation. Elle propose à cet effet un dispositif de mesure temporelle utilisant un circuit logique programmable ou FPGA (Field Programmable Gate Array en anglais et dans la suite du document) couplé à un oscillateur de référence (appelé horloge dans la 30 suite du document). Ces éléments vont s'attacher à obtenir un temps absolu pour chaque événement présent à l'entrée du système (par temps absolu, on signifie l'écart entre l'événement considéré et une référence commune à tous les événements). Le dispositif comprend un ou plusieurs modules de mesure grossier (Tcoarse), un ou plusieurs modules de mesure précise (T_vernier) ainsi que des modules de contrôle, 2 mémorisation et calcul. Tous ces modules ainsi que fonctionnalités annexes sont inclus dans le FPGA. Selon une caractéristique générale de l'invention, les 3 premiers modules du dispositifs comprennent respectivement : ^ Un ou plusieurs compteurs, capables de comptabiliser le nombre de cycles d'horloge de référence jusqu'à l'événement à acquérir. La valeur acquise par ce module est appelée par la suite ou dans les figures T_coarse, T_coarse_start ou T_coarse_stop. ^ Un ou plusieurs systèmes d'échantillonnage capables de déterminer le to reste de la division entière entre l'élément à mesurer et la période d'horloge. La valeur acquise par cet ou ces échantillonneurs est appelée Tvernier, T_vernier _start ou T vernier stop ^ Un système de détection, capable de détecter la présence d'une transition dans le signal ou les signaux à observer. 15 Avantageusement, le système d'échantillonnage utilise des lignes à retard de faible durée associées à des éléments de mémorisation (Flip-Flop en anglais- ou FF). Ces éléments de base -ligne à retard + Flip Flop- disposés en série permettent de déterminer la valeur fractionnaire de l'intervalle de temps considéré. 20 Préférentiellement, ces lignes à retard et leur élément de mémorisation utilisent les éléments d'interconnections et portes logiques rapides présents dans ces FPGAs. Les systèmes inclus dans les FPGAs et normalement dédiés à la propagation de retenues (ou Carry Chain en anglais) seront préférentiellement utilisés comme ligne à retard. Selon une des mises en oeuvre, les éléments de mémorisation des échantillonneurs 25 sont mémorisés temporairement pour être analysés par le module de détection. Dans chaque cycle d'horloge, le compteur de transition va déterminer avantageusement si un ou plusieurs évènements sont intervenus. Lorsque c'est le cas, le dispositif va éventuellement mémoriser la valeur du compteur T_coarse associée à ce cycle d'horloge ainsi que les valeurs des Flips Flops mis en oeuvre dans les 30 échantillonneurs. Ces valeurs d'échantillonnage sont affinées avant d'être utilisées comme valeur fractionnaire (T vernier). Profitablement, cette détection puis la mémorisation se font en un nombre très limité de cycle d'horloge, permettant donc d'effectuer les mesures à la volée, et de comptabiliser tous les événements. L'analyse des informations mémorisées (Tcoarse, T_vernier) permet 15 3 d'associer un temps absolu à chaque événement. Dans une des mises en oeuvre du dispositif, une unité de calcul relit ces valeurs et en déduit -de façon précise- la durée entre les événements présents à l'entrée du dispositif. Dans le cas d'un signal périodique ou pseudo périodique, une version du dispositif extrait également certains paramètres caractéristiques tel que : gigue cycle à cycle (Cycle to Cycle Jitter en anglais), période minimale, période maximale, période moyenne. D'autres avantages et caractéristiques de l'invention apparaîtront à la lecture de la description détaillée ci-après et à l'examen des dessins sur lesquels : ^ La figure 2 représente à haut niveau une des mises en oeuvre du dispositif, ^ La figure 3 représente une décomposition temporelle d'un intervalle de temps telle qu'analysée par une des mise en oeuvre du dispositif, ^ La figure 4 représente une vue logique d'un des échantillonneurs, ^ La figure 5 représente une des mises en oeuvre de ces mêmes échantillonneurs dans le FPGA utilisé par le dispositif, ^ La figure 6 représente une des mise en oeuvre d'un compteur de transition utilisé dans ce dispositif. La description détaillée ci-après ainsi que les dessins annexes contiennent pour 20 l'essentiel des éléments de caractère certain. Ils pourront non seulement servir à mieux comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. Sur la figure 2, on voit différents sous ensembles du dispositif dans une de ses 25 mises en oeuvre comprenant deux modules : (Module_start) et (Module_ stop). Les deux modules ayant un fonctionnement quasi identique, seul (Module_start) est explicité. Après une mise en forme éventuelle -non représentée sur cette figure-(inversion par exemple) le signal Sig_start est aiguillé vers (ECH_start), un 30 échantillonneur qui évalue la valeur 0 ou 1 du signal avec une pseudo fréquence beaucoup plus rapide que l'horloge de référence. Le résultat de cette évaluation est éventuellement corrigé par un ensemble (COR start) qui linéarise l'échantillonnage et filtre le bruit d'acquisition. La sortie du filtre est elle-même envoyée vers : -4- ^ (FCPT_start) : un compteur de transition qui énumère les transitions montantes présentes dans le mot (FLT_start), associé à un gestionnaire d'écriture mémoire contrôlant l'écriture des mots (Smp_start), (T coarse) et du nombre de transitions observées pendant ce cycle ^ Une ligne à retard qui permet à (FCPT_start) de traiter les informations. En parallèle des opérations citées ci-dessus, (T_coarse_start) compte en permanence les fronts d'horloge. La valeur instantanée de ce compteur est mémorisée lorsque le gestionnaire de mémoire détecte une condition d'écriture. Le calculateur utilise les données mémorisées pour représenter une position 1 o absolue pour chaque transition et en déduire alors la valeur des intervalles de temps entre les différentes transitions présentes sur (Sig_Start) et (Sig_Stop) En fonction de sa configuration, le gestionnaire de mémoire peut masquer certaines transitions observées -par exemple les n premières- ceci à la discrétion de l'utilisateur. 15 Certaines mises en oeuvre peuvent différer de celle présentée sur cette figure selon le type de mesure désirée ou la configuration du dispositif. Elles ont cependant toutes un ensemble (échantillonneur + détecteur + compteur) afin d'être à même d'acquérir la position absolue d'un d'événement présent sur une de ses entrées. Le calcul de la position des événements peut aussi être laissé à la charge d'un 20 calculateur déporté. Dans ce cas là, les mémoires sont accessibles en lecture par ce même calculateur. On se réfère maintenant à la figure 3 pour décrire la décomposition d'un intervalle de temps lorsqu'un utilisateur désire mesurer un intervalle de temps entre 25 deux événements présents sur les entrées Sig_Start et Sig_Stop du système. Lors de la détection par le dispositif des transitions sur les entrées Sig_Start et Sig_Stop représentées sur la figure 2, les éléments suivants vont être mémorisés : ^ La valeur du compteur T_coarse_start correspondant au numéro de cycle d'horloge dans lequel la transition est détectée par le détecteur 30 (FCPTstart), ^ La valeur de cet échantillonneur dans ce même cycle, ^ La valeur du compteur T_coarse_stop correspondant au numéro de cycle d'horloge dans lequel la transition est détectée par le détecteur (FCPT_stop), ^ La valeur de l'échantillonneur dans ce même cycle, Ces valeurs sont alors relues par l'unité de calcul qui : Convertit les valeurs des échantillonneurs en des fractions de période d'horloge. Ces valeurs fractionnaires sont T_vernier_start 5 (respectivement T_vernier stop) pour l'échantillonneur (ECH_Start) (respectivement (ECH_Stop)), ^ En déduit l'intervalle de temps entre les événements START et STOP, qui est égal à : (Delta_T) = période * (T_coarse_stop ù T coarse_start) + T_vernier start ù T_vernier_start 10 La figure 4 détaille maintenant le fonctionnement de l'échantillonneur. En tête, (Mux) permet éventuellement d'inverser la polarité du signal d'entrée. La sortie du multiplexeur est ensuite aiguillée vers une suite de lignes à retard (Dly) montées en série, qui vont chacune retarder le signal Sin d'une valeur faible devant la période 15 d'horloge de référence -par exemple 1/200eme-. Chaque sortie de ligne à retard est connectée à un registre (Reg). De façon simultanée, les registres mémorisent la valeur 0 ou 1 présente à leur entrée à chaque cycle d'horloge, ceci grâce à un arbre d'horloge (CTree) ayant une dispersion très faible. L'effet de la dispersion de l'arbre (Ctree) est partiellement 20 corrigé par le filtre (COR_start) ou (COR stop) mentionné dans la figure 2 La figure 5 propose une représentation partielle de l'état de l'art en matière de FPGA. Pour la plupart, ceux-ci sont organisés en blocs (BLOC), chacun des blocs contenant : un ou plusieurs registres (Reg), une ou plusieurs unité logique (LOG) 25 permettant de réaliser des opérations combinatoires sur ces entrées. Des canaux de routage avec leurs matrices de connexion sont régulièrement répartis entre les blocs, permettant les connexions d'un bloc à l'autre. Le temps de transfert minimum lorsqu'un signal transite par ces connexions est trop important pour réaliser un échantillonneur tel que décrit précédemment. 30 Parallèlement à ces canaux de routage, les FPGAs proposent un chemin privilégié pour transmettre la retenue (appelée Carry Chain en anglais) lors de la construction de certaines fonctions logiques (telles qu'additionneur, soustracteur...). Le dispositif utilise de façon avantageuse ce chemin et permet grâce à cela de réaliser un échantillonneur suffisamment précis pour le dispositif. La figure 6 décrit un compteur de transitions nécessaire au dispositif. Par nature, le temps de propagation à l'intérieur du système d'échantillonnage n'est pas constant d'un composant à l'autre et varie selon certains paramètres (alimentation, température, grade de vitesse...). La chaîne d'échantillonnage est donc construite avec une plage d'observation supérieure à la période de l'horloge de référence. Des compteurs de transitions sont utilisés tout au long de cette plage. Les compteurs de transitions n'ayant qu'un nombre limité d'entrées, on en utilise plusieurs. Un masque programmable ainsi que des portes OU (OR) permettent d'ajuster la plage valide de l0 l'échantillonneur en fonction de la vitesse du FPGA. On limite alors cette plage à très exactement la période d'horloge de référence. Les sorties de compteurs inclus dans cette plage sont ensuite cumulées pour obtenir le nombre de transitions à chaque cycle d'horloge. 15 Dans ce qui précède, la présente invention est décrite dans le cadre d'un instrument servant à mesurer des intervalles de temps ainsi que les caractéristiques d'un signal périodique. Cependant, d'autres applications peuvent être envisagées, notamment des dispositifs de test de composants ou sous ensembles électroniques, dans lesquels ce dispositif serait incorporé. 20 Revendications1) Dispositif électronique de mesure temporelle entre une référence interne au dispositif et un événement présent sur une de ces entrées, caractérisé en ce qu'il comporte une horloge de référence de période (PERR) et un circuit logique programmable mettent en oeuvre : un compteur (T_coarse_start), un échantillonneur (ECH_start), un détecteur de transition (FCPT_start), un contrôleur (CTRL_start), un ensemble de mémorisation (MEM _start) et une unité de calcul (CALC). 2) Dispositif selon la revendication 1, caractérisée en ce que : Io ^ Le compteur (T_coarse_start) est capable de comptabiliser le nombre entier de périodes (PERR) comprises entre une référence et l'événement START, 1' échantillonneur (ECH_start) est capable d'évaluer le temps (T_vernier) entre START et le début de la période suivant ou précédant 5 START, ^ la mémoire (MEM) est capable de mémoriser les valeurs du compteur (T_coarse_start), de l'échantillonneur et du nombre de transitions lorsqu'au moins une transition est détectée dans l'échantillonneur, ^ (CALC) est capable de déterminer l'intervalle de temps entre START et 20 une référence interne grâce aux valeurs mémorisées dans (MEM). 5) Dispositif selon la revendication 1 caractérisé en ce que le détecteur de transition (FCPT_start) est capable d'énumérer les transitions présentes dans (ECH_start). 6) Dispositif selon les revendications 1 ou 3 caractérisé en ce que (FCPT_start) 25 est capable de limiter le comptage des transitions à une zone égale à une période de l'horloge de référence. 7) Dispositif selon les revendications 1 et 2 caractérisé en ce que l'échantillonneur est construit à l'aide d'un ensemble de n lignes à retard utilisant la chaîne de retenue du circuit programmable comme élément de délai. 30 6) Dispositif selon l'une des revendications précédentes caractérisé en ce que le dispositif est capable d'acquérir et mémoriser de façon continue la position de tout les événements présents sur son entrée. 7) Dispositif selon l'une des revendications précédentes caractérisé en ce que (CALC) est à même d'extraire la gigue cycle à cycle, les valeurs minimale, 2933774 -2 maximale et moyenne de la période lorsqu'un signal pseudo périodique est appliqué à son entrée. 8) Dispositif selon l'une des revendications 1, 2, 3, 4, 5 ou 6 caractérisé en ce qu'un second ensemble comprenant un compteur (T_coarse_stop), un 5 échantillonneur (ECH_stop), un compteur de transition (FCPT_stop), un système de mémorisation (MEM_stop) et son contrôleur (CTRL_stop) est éventuellement mis en oeuvre dans le dispositif et permet alors d'acquérir le temps entre une référence interne du dispositif et une événement présent sur une de ces entrées. 9) Dispositif selon l'une des revendications 1, 2, 3, 4, 5, 7 ou 8 caractérisé en ce que (CALC) est capable de calculer le temps entre un événement START en un événement STOP présents sur une quelconque des entrées SIG_START ou SIG_STOP du dispositif.