Brevet FR2963687A1 — publié le 20120210

B10280 1 ARBRE D'HORLOGE POUR BASCULES COMMANDÉES PAR IMPULSIONS Domaine de l'invention La présente invention concerne un arbre d'horloge et un procédé de conception de circuit d'arbre d'horloge pour fournir un signal en impulsion à plusieurs bascules commandées par impulsions. Arrière plan de l'invention On distinguera ici des bascules, ci-après "bascules" (en anglais flip-flop), qui sont commandées par un front montant ou descendant et des bascules commandées par impulsions, ci- après "bascules commandées par impulsions" (en anglais pulsed latch), qui sont commandées par un signal en impulsion. Pour commander des bascules, un signal de commande, tel qu'un signal d'horloge, est distribué à chacune des bascules par un arbre d'horloge constitué de tampons. Cet arbre est dimensionné pour respecter des critères de synchronisation du signal de commande à l'entrée de chaque bascule. Les bascules commandées par impulsions sont moins complexes que les bascules et permettent ainsi la réalisation de circuits plus compacts et d'une plus faible consommation. Les données sont introduites dans une bascule commandée par impul- sions pendant une impulsion haute d'un signal de synchronisation en impulsions. Le signal de synchronisation en impulsions est B10280 2 produit par un générateur d'impulsions et chacune des impulsions a de façon générale une largeur d'impulsion notablement plus courte que les durées haute ou basse d'un signal d'horloge normal. Bien que les circuits synchrones actuels utilisent généralement des bascules comme éléments de synchronisation, pour les raisons ci-dessus, il serait souhaitable de remplacer des bascules par des bascules commandées par impulsions. Toutefois, lors de l'étape de création de l'arbre d'horloge, les outils d'implémentation physique de circuits numériques sont adaptés à réaliser une analyse temporelle de la propagation de fronts d'horloge plutôt qu'une analyse sur la base d'impulsions, et souvent ils ne permettent pas l'insertion de générateurs d'impulsions. Cela pose donc un problème pour concevoir et vérifier des circuits à base de bascules commandées par impulsions. Résumé Un objet de la présente invention est de traiter au moins partiellement un ou plusieurs des problèmes de l'art antérieur. Selon un aspect d'un mode de réalisation de la présente invention, il est prévu un procédé de conception de circuit d'arbre d'horloge comprenant une pluralité de générateurs d'impulsions dont chacun est couplé à l'entrée d'une ou plusieurs bascules commandées par impulsion, chaque générateur étant agencé pour produire un signal en impulsion ; et un arbre de tampons pour fournir un signal d'horloge aux générateurs d'impulsions, ce procédé comprenant : la conception de l'arbre d'horloge sans générateurs d'impulsions sur la base d'une analyse temporelle de la propagation de fronts d'horloge dans l'arbre d'horloge ; et le remplacement dans l'arbre d'horloge d'au moins un tampon, couplé à l'entrée de chaque bascule commandée par impulsions, par un générateur d'impulsions. B10280 3 Selon un mode de réalisation, le procédé comprend en outre, après ladite étape de remplacement, la réalisation d'une analyse temporelle du circuit d'arbre d'horloge. Selon un autre mode de réalisation, pendant l'analyse temporelle de fronts d'horloge, chacun des tampons de l'arbre d'horloge est mis en oeuvre par un circuit identique aux générateurs d'impulsions sauf que sa fonction de génération d'impulsions est rendue inactive, et l'étape de remplacement d'au moins un tampon par un générateur d'impulsions comprend la réactivation de la fonction de génération d'impulsions de ce tampon. Selon un autre mode de réalisation, pendant l'analyse temporelle de fronts d'horloge, chacun des tampons de l'arbre d'horloge est mis en oeuvre par un circuit comprenant une porte logique ayant une première entrée pour recevoir le signal d'horloge et un bloc de retard pour produire une version retardée et inversée du signal d'horloge, dans lequel une seconde entrée du bloc logique est couplée à une tension de référence. Selon un autre mode de réalisation, l'étape de remplacement de tampon d'au moins un tampon par un générateur d'impulsions comprend, dans chaque tampon, la déconnexion de la seconde entrée de la porte logique de la tension de référence et son couplage à la sortie du bloc de retard. Selon un autre aspect d'un mode de réalisation de la présente invention, il est prévu un arbre d'horloge pour fournir un signal en impulsion à une pluralité de bascules commandées par impulsions, comprenant une pluralité de générateurs d'impulsions dont chacun est couplé pour commander l'une respective des bascules commandées par impulsions ; et un arbre de tampons pour appliquer un signal d'horloge à chacun des générateurs d'impulsions. Selon un mode de réalisation, chaque tampon de l'arbre de tampons comprend un circuit identique au générateur B10280 4 d'impulsions sauf que sa fonction de génération d'impulsions est rendue inactive. Selon un autre mode de réalisation, chaque tampon de l'arbre de tampons comprend une porte logique ayant une première entrée destinée à recevoir le signal d'horloge et un bloc de retard pour produire une version retardée et inversée du signal d'horloge, dans lequel une seconde entrée du bloc logique est couplée à une tension de référence. Selon un autre mode de réalisation, la porte logique 10 est une porte NON ET. Selon un autre aspect d'un mode de réalisation de la présente invention, il est prévu un circuit intégré comprenant un circuit logique synchronisé par une pluralité de bascules commandées par impulsions, et l'arbre d'horloge ci-dessus agencé 15 pour fournir un signal en impulsion à chacune des bascules commandées par impulsions. Brève description des dessins Ces objets, caractéristiques et avantages, ainsi que d'autres seront exposés en détail dans la description suivante 20 de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente un circuit synchrone basé sur des bascules commandées par impulsions selon un mode de réalisation de la présente invention ; 25 la figure 2 représente un arbre d'horloge pour fournir une pluralité de signaux en impulsions selon un mode de réalisation de la présente invention ; la figure 3 est un organigramme illustrant des étapes d'un procédé de conception de circuit de l'arbre d'horloge de la 30 figure 2 selon un mode de réalisation de la présente invention ; la figure 4A représente un circuit de tampon selon un mode de réalisation de la présente invention ; la figure 4B représente un générateur d'impulsions selon un mode de réalisation de la présente invention ; B10280 la figure 5 est un organigramme illustrant des étapes d'un procédé de conception de circuit d'arbre d'horloge selon un autre mode de réalisation de la présente invention ; et la figure 6 représente un circuit intégré comprenant 5 un arbre d'horloge selon des modes de réalisation de la présente invention. Description détaillée Par souci de clarté, de mêmes éléments ont été désignés par de mêmes références aux différentes figures et, de plus, comme cela est habituel dans la représentation des circuits intégrés, les diverses figures ne sont pas tracées à l'échelle. Dans ce qui suit, seuls les caractéristiques et aspects utiles à la compréhension de l'invention seront exposés en détail. D'autres caractéristiques, telles que la structure particulière d'une bascule commandée par impulsions, sont dans le domaine des connaissances normales de l'homme de l'art et ne seront pas décrites en détail. La figure 1 représente un circuit synchrone 100 qui est synchronisé par des bascules commandées par impulsions 102 dont trois sont représentées. Chaque bascule commandée par impulsions comprend une ligne d'entrée 104 pour recevoir un signal en impulsion PS. Pendant chaque impulsion du signal en impulsion PS, chaque bascule commandée par impulsions 102 mémorise les données présentes sur son noeud d'entrée. A la fin de chaque impulsion, les données mémorisées par la bascule commandée par impulsions deviennent valides. Le fonctionnement de blocs logique 106 couplés entre des paires de bascules commandées par impulsions 102 est donc synchronisé. Bien que la figure 1 ne représente que trois bascules commandées par impulsions, un circuit intégré typique peut comprendre des centaines ou des milliers de telles bascules commandées par impulsions. Pour alimenter chacune de ces bascules commandées par impulsions par le signal en impulsion PS, une solution serait de produire un signal en impulsion B10280 6 unique par un générateur d'impulsions, et de répartir le signal en impulsion par l'intermédiaire d'un arbre d'horloge classique formé de circuits tampons. Toutefois, cette approche pose le problème que les largeurs d'impulsions du signal en impulsion sont critiques pour le fonctionnement convenable des bascules commandées par impulsions et l'arbre d'horloge risque de provoquer des variations des largeurs d'impulsion. En outre, les outils de construction d'arbre d'horloge sont basés sur une analyse temporelle de la propagation de fronts d'horloge et ne sont donc pas adaptés à vérifier les largeurs d'impulsions du signal en impulsion fourni à chaque bascule commandée par impulsions. La figure 2 représente un arbre d'horloge 200 pour fournir des signaux en impulsions PS à plusieurs bascules commandées par impulsions, dans cet exemple 8 bascules commandées par impulsions 201. Plutôt que d'utiliser un seul générateur d'impulsions, l'arbre d'horloge 200 comprend une pluralité de générateurs d'impulsions 202. Dans cet exemple, un générateur d'impulsions 202 est prévu pour chaque bascule commandée par impulsions 201 bien que, dans des variantes de réalisation, chaque générateur d'impulsions 202 puisse contrôler plus d'une bascule commandée par impulsions 201. L'arbre d'horloge 200 comprend en outre un arbre de circuits tampons 204 pour fournir un signal CLK sur une ligne d'entrée 206 à chacun des générateurs d'impulsions 202. Dans cet exemple, chaque tampon 204 peut piloter les entrées de deux autres tampons ou générateurs d'impulsions, et donc sept tampons 204 permettent de fournir le signal d'horloge CLK à huit générateurs d'impulsions 202. L'arbre d'horloge 200 ne constitue qu'un exemple et, dans des variantes de réalisation, il pourrait comprendre un nombre quelconque de générateurs d'impulsions 202 alimentés par un nombre convenable de tampons. Un avantage de l'arbre d'horloge 200 est que le signal 35 en impulsion ne se propage pas dans l'arbre d'horloge et donc B10280 7 que les largeurs d'impulsions ne risquent pas d'être distordues. Au lieu de cela, l'arbre de tampons fait se propager un signal d'horloge standard CLK et peut donc être analysé en utilisant des moyens standards comme cela va maintenant être décrit en relation avec la figure 3. Dans certains cas, un ou plusieurs tampons de l'arbre d'horloge peuvent être couplés entre des générateurs d'impulsions 202 et des bascules commandées par impulsions 201, par exemple s'il est déterminé que les impulsions fournies aux bascules commandées par impulsion 201 ne seront pas trop perturbées par ces tampons. La figure 3 est un organigramme illustrant des étapes d'un procédé de conception d'un arbre d'horloge basé sur la structure de circuit de la figure 2. A une étape S1, une conception d'un arbre d'horloge sans générateur d'impulsion est réalisée, sur la base d'une analyse temporelle de fronts d'horloge de l'arbre d'horloge. Par exemple, en relation avec l'arbre d'horloge 200 de la figure 2, l'analyse temporelle de fronts d'horloge est réalisée sur la base d'une conception de circuit dans laquelle un tampon est présent au lieu de chacun des générateurs d'impulsions 202. Selon le résultat de l'analyse temporelle, le dimensionnement d'un ou plusieurs des tampons 204 de l'arbre d'horloge peut être ajusté et/ou des tampons peuvent être ajoutés ou supprimés. De cette façon, on assure que les fronts d'horloge qui se propagent dans l'arbre sont bien synchronisés les uns avec les autres. A une étape suivante S2, au moins un tampon est remplacé par un générateur d'impulsions 202. Par exemple, pour identifier les tampons à remplacer, on recherche le tampon connecté directement à l'entrée de signal en impulsion de chaque bascule commandée par impulsions, ou dans certain cas un tampon connecté à cette entrée par l'intermédiaire d'un ou plusieurs tampons. Dans l'exemple de la figure 2, il en résulte donc la structure illustrée de circuit d'arbre d'horloge 200. Sachant que les signaux d'horloge fournis à chaque générateur d'impulsions 202 sont bien synchronisés, il s'ensuit que les B10280 8 impulsions fournies par les générateurs d'impulsions seront bien synchronisées. En outre, en supposant que les générateurs d'impulsions 202 sont identiques, étant donné que le signal en impulsion ne se propage pas par d'autres tampons, les largeurs d'impulsions seront bien accordées. Une étape suivante optionnelle S3 implique par exemple l'analyse temporelle du fonctionnement de l'arbre d'horloge et du circuit logique piloté par les bascules commandées par impulsions. Les figures 4A et 4B illustrent respectivement des exemples d'un circuit 400 mettant en oeuvre les tampons 204 et d'un circuit 410 mettant en oeuvre les générateurs d'impulsions 202 de la figure 2. Comme cela est représenté en figure 4A, le tampon 204 comprend un circuit qui est très similaire à un générateur d'impulsions. Une ligne d'entrée d'horloge 401 est couplée à une première entrée d'une porte NON ET 402. Une seconde entrée de la porte NON ET 402 est couplée par une ligne d'entrée 403 à une tension à niveau haut VDD. La ligne d'entrée d'horloge 401 est également couplée à un bloc de retard 404 qui comprend un ou plusieurs éléments de retard. Le bloc de retard inverseur 404 comprend par exemple une pluralité d'inverseurs en série (non représentés). Toutefois, la sortie du bloc de retard 404 est maintenue flottante de sorte que cette branche de circuit est non opérationnelle. Ceci signifie que la fonctionnalité de génération d'impulsions du circuit a été rendue inactive et la sortie de la porte NON ET 402 est donc simplement l'inverse du signal d'horloge CLK. La sortie de la porte NON ET 402 est couplée à un inverseur 406 pour fournir, sur une ligne de sortie 408 du tampon, le signal d'horloge initial CLK après passage en tampon. Comme cela est représenté en figure 4B, le générateur d'impulsions 202 a par exemple exactement la même structure que le tampon 204 sauf que, plutôt que d'être couplé à VDD, la deuxième entrée de la porte NON ET 402 est couplée à la sortie B10280 9 du bloc de retard inverseur 404 qui est une version retardée et inversée CLK' du signal d'horloge CLK. Ainsi, plutôt que de fonctionner comme un simple tampon, le circuit 202 agit en générateur d'impulsions. En particulier, quand le signal d'horloge CLK passe au niveau haut, le signal sur la ligne 408 passe au niveau haut. Il passe à nouveau au niveau bas quand la version retardée et inversée CLK' du signal d'horloge passe au niveau bas. Ainsi, le signal en impulsions produit aura des largeurs d'impulsions qui dépendent du retard introduit par un bloc de retard 404. La figure 5 est un organigramme illustrant des étapes d'un procédé de conception basé sur le tampon 400 et le générateur d'impulsions 410 des figures 4A et 4B. Dans une première étape S1, une conception d'arbre d'horloge est réalisée, sur la base d'une analyse temporelle de fronts d'horloge de l'arbre d'horloge avec chacun des générateurs d'impulsions désactivé pour fonctionner en tampon. Par exemple, dans le circuit 410 de la figure 4B, ceci est réalisé en couplant une ligne d'entrée 403 à VDD pour fournir le circuit tampon 400. Chacun des tampons de l'arbre d'horloge est de préférence également mis en oeuvre par le tampon 400 de la figure 4A, afin que n'importe lequel des tampons de l'arbre d'horloge puisse être converti en un générateur d'impulsions lors de l'étape suivante S2. Sur la base de l'analyse tempo- relie, le dimensionnement d'un ou plusieurs des tampons de l'arbre d'horloge peut être ajusté, et/ou des tampons peuvent être ajoutés ou supprimés, pour assurer que les fronts d'horloge qui se propagent dans l'arbre sont bien synchronisés les uns avec les autres. A l'étape suivante S2, au moins un tampon, par exemple celui connecté à l'entrée de chaque bascule commandée par impulsions, est converti en un générateur d'impulsions. Ceci est par exemple réalisé en couplant la seconde ligne d'entrée 403 de la porte logique 402 à la sortie du bloc de retard 404. De façon avantageuse, comme cette étape implique seulement la B10280 10 modification de certaines connexions, la configuration du circuit est très peu affectée. Comme dans le cas de l'étape S3 de la figure 3, une étape additionnelle ultérieure S3 consiste par exemple à réaliser une analyse temporelle de l'arbre d'horloge et du fonctionnement de la logique pilotée par les bascules commandées par impulsions. La figure 6 représente un circuit intégré 600 comprenant un arbre d'horloge 602 qui est par exemple l'arbre d'horloge 200 décrit ci-dessus, bien que les nombres de bascules commandées par impulsions, de générateurs d'impulsions et de tampons soient différents. Chacun des tampons est par exemple mis en oeuvre par le circuit 400 de la figure 4A et chacun des générateurs d'impulsions est par exemple mis en oeuvre par le circuit 410 de la figure 4B. L'arbre d'horloge 602 reçoit un signal d'horloge 604 et fournit plusieurs signaux en impulsions PS sur des lignes de sortie 606 vers une logique synchrone 608 qui utilise des bascules commandées par impulsions comme éléments de synchroni- sation. La logique synchrone fournit des données de sortie sur une ligne de sortie 610 qui est par exemple mémorisée et/ou fournie à partir du circuit intégré. Un avantage des modes de réalisation décrits ici est que les signaux en impulsions peuvent être fournis à plusieurs bascules commandées par impulsions sans risquer de distordre les impulsions transmises dans un arbre d'horloge. En outre, l'analyse temporelle peut être réalisée sur la base des fronts d'horloge de façon rapide et efficace. Bien que divers modes de réalisation particuliers de l'invention aient été décrits en faisant référence aux figures, il sera clair pour l'homme de l'art que de nombreuses modifications et variantes sont possibles. Par exemple, il sera clair pour l'homme de l'art que les réalisations de générateurs d'impulsions et de tampons de la figure 4B ne sont que des exemples et que d'autres circuits sont B10280 11 possibles. Par exemple, les portes NON ET 402 pourraient être remplacées par d'autres portes logiques, telles que des portes NON OU. En outre, il sera clair pour l'homme de l'art que les principes décrits ici s'appliquent à des arbres d'horloge pour fournir un signal en impulsion à un nombre quelconque de bascules commandées par impulsions. Il sera également clair pour l'homme de l'art que les diverses caractéristiques décrites ici en relation avec divers modes de réalisation pourraient être combinées selon toute combinaison dans des variantes de réalisation de l'invention. REVENDICATIONS1. Procédé de conception de circuit d'arbre d'horloge (200) comprenant une pluralité de générateurs d'impulsions (202) dont chacun est couplé à l'entrée d'une ou plusieurs bascules commandées par impulsion, chaque générateur étant agencé pour produire un signal en impulsion (PS) ; et un arbre de tampons (204) pour fournir un signal d'horloge (CLK) aux générateurs d'impulsions, ce procédé comprenant : la conception de l'arbre d'horloge sans générateurs d'impulsions sur la base d'une analyse temporelle de la propagation de fronts d'horloge dans l'arbre d'horloge ; et le remplacement dans l'arbre d'horloge d'au moins un tampon, couplé à l'entrée de chaque bascule commandée par impulsions, par un générateur d'impulsions. 2. Procédé selon la revendication 1 comprenant en 15 outre, après ladite étape de remplacement, la réalisation d'une analyse temporelle du circuit d'arbre d'horloge. 3. Procédé selon la revendication 1 ou 2, dans lequel pendant l'analyse temporelle de fronts d'horloge, chacun des tampons de l'arbre d'horloge est mis en oeuvre par un circuit 20 identique aux générateurs d'impulsions sauf que sa fonction de génération d'impulsions est rendue inactive, et l'étape de remplacement d'au moins un tampon par un générateur d'impulsions comprend la réactivation de la fonction de génération d'impulsions de ce tampon. 25 4. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel, pendant l'analyse temporelle de fronts d'horloge, chacun des tampons de l'arbre d'horloge est mis en oeuvre par un circuit comprenant une porte logique (402) ayant une première entrée pour recevoir le signal d'horloge et un bloc 30 de retard (404) pour produire une version retardée et inversée (CLK') du signal d'horloge, dans lequel une seconde entrée du bloc logique est couplée à une tension de référence. 5. Procédé selon la revendication 4, dans lequel l'étape de remplacement d'au moins un tampon par un générateurB10280 13 d'impulsions comprend, dans chaque tampon, la déconnexion de la seconde entrée de la porte logique de la tension de référence et son couplage à la sortie du bloc de retard. 6. Arbre d'horloge pour fournir un signal en impulsion (PS) à une pluralité de bascules commandées par impulsions, comprenant : une pluralité de générateurs d'impulsions (202) dont chacun est couplé pour commander l'une respective des bascules commandées par impulsions ; et un arbre de tampons pour appliquer un signal d'horloge (CLK) à chacun des générateurs d'impulsions. 7. Arbre d'horloge selon la revendication 6, dans lequel chaque tampon de l'arbre de tampons comprend un circuit identique au générateur d'impulsions sauf que sa fonction de génération d'impulsions est rendue inactive. 8. Arbre d'horloge selon la revendication 6 ou 7, dans lequel chaque tampon de l'arbre de tampons comprend une porte logique (402) ayant une première entrée destinée à recevoir le signal d'horloge (CLK) et un bloc de retard (404) pour produire une version retardée et inversée (CLK') du signal d'horloge, dans lequel une seconde entrée du bloc logique est couplée à une tension de référence. 9. Arbre d'horloge selon la revendication 8, dans lequel la porte logique est une porte NON ET (402). 10. Circuit intégré comprenant un circuit logique synchronisé par une pluralité de bascules commandées par impulsions, et l'arbre d'horloge de l'une quelconque des revendications 6 à 9 agencé pour fournir un signal en impulsion (PS) à chacune des bascules commandées par impulsions.