Brevet FR2964478A1 — publié le 20120309

B10-2823FR 1 Dispositif de génération d'un signal d'horloge commuté en particulier destiné à un composant utilisant les fronts montants et les fronts descendants, et procédé correspondant L'invention concerne, de façon générale, les circuits électroniques, et plus particulièrement l'optimisation de leur consommation. L'invention s'applique avantageusement mais non limitativement aux circuits intégrés munis d'une horloge. Il est connu de l'homme du métier une technique dite de commutation d'horloge ou « dock gating » selon un terme anglo-saxon bien connu de l'homme du métier selon laquelle on envoie des signaux d'horloge à un composant uniquement lorsque cela est utile en fonction de son activité. En effet, la fourniture de l'horloge consomme de l'énergie à cause de l'envoi du signal d'horloge et des mémoires tampon (ou « buffers » selon un terme anglo-saxon bien connu de l'homme du métier) qui doivent être alimentées pour contrôler ce signal d'horloge. Il est également connu de l'homme du métier une technique dite « dual edge design » selon laquelle on utilise les fronts d'horloge montants et également les fronts d'horloge descendants pour générer des événements. Ainsi, il est possible avec deux fois moins de fronts d'horloge de générer le même nombre d'événements. En outre, étant donné que la consommation d'énergie d'une horloge dépend du nombre de fronts émis, pour un même nombre d'événement la consommation d'énergie de l'horloge et de l'arbre horloge est divisée par deux. En général, dans un système électronique on considère que les consommations d'énergie dues à l'horloge et l'arbre horloge (« dock tree » selon un terme anglo-saxon bien connu de l'homme du métier) représentent 30% de la consommation totale du système. Ainsi en divisant par deux la consommation due à l'horloge et l'arbre horloge on obtient une baisse de 15% de la consommation totale du système. I1 n'est pas simple de mettre en place la commutation d'horloge (« dock gating ») dans le cas d'une conception utilisant les fronts montants et descendants. En effet, dans ce cas il est alors nécessaire que les fronts montants et les fronts descendants soient synchronisés avec les battements d'horloge. Ceci est montré sur un exemple illustré sur les figures 1 à 3. Sur la figure 1, est représenté un système classique comprenant un multiplexeur MUX1 contrôlé par une valeur E avec deux entrées et une sortie, un composant C l ayant une entrée horloge, une entrée donnée et une sortie donnée d_out. La première entrée du multiplexeur MUX1 est branchée sur une valeur d'entrée d in et la deuxième entrée est branchée via une boucle de recirculation sur la sortie d out du composant Cl. Lorsque le signal E est à 1, la sortie du multiplexeur MUX1 prend la valeur d_in et lorsque le signal E est 0, la sortie du multiplexeur MUX1 conserve la valeur d_out, la valeur de sortie précédente. L'entrée donnée du composant Cl est branchée sur la sortie du multiplexeur MUX1, l'entrée horloge du composant Cl est branchée sur le signal d'horloge Cp. Le composant Cl réagit uniquement lorsqu'un front montant est appliqué sur son entrée horloge. A titre d'exemple de réalisation, le composant Cl est un registre qui recopie en sortie d out la valeur de son entrée donnée à chaque front montant de l'horloge Cp. Ainsi, lorsque la valeur E est à 1, d_in est recopié dans d_out à chaque front montant et lorsque la valeur du signal de commutation E est à 0, d_out est recopié dans d_out à chaque front montant. I1 apparaît que ce système n'est pas optimum du point de vue de sa consommation. En effet, il est inutile d'envoyer des fronts d'horloge lorsque la valeur de sortie du composant Cl d_out est inchangée (quand E est à 0 d_out est recopié dans d_out). De plus la boucle de recirculation renvoyant la sortie d_out en entrée du multiplexeur MUX1 consomme de l'énergie. Sur la figure 2, est représenté un système classique utilisant le même composant Cl et ayant les mêmes valeurs en sortie d_out en fonction des entrées d_in, E et Cp que le système de la figure 1. Cela étant ce système est plus optimisé du point de sa consommation. Pour cela, on utilise le procédé de commutation d'horloge (« dock gating » selon un terme anglo-saxon bien connu de l'homme du métier). A cet effet, une horloge commutée Ckout est envoyée sur l'entrée horloge du composant Cl. La commutation d'horloge est réalisée en tenant compte des instants pendant lesquels il est inutile d'envoyer une horloge sur le composant Cl. C'est-à-dire par exemple lorsque la sortie d_out est inchangée. En d'autres termes, sur l'entrée horloge du composant Cl est envoyé le résultat d'une porte ET avec deux entrées : l'horloge Cp et un signal de commutation dépendant de l'activité du composant. Par exemple, le signal de commutation correspond au signal de contrôle E du multiplexeur de la figure 1. Ainsi, lorsque le signal de commutation E est égal à 1 le composant recopie l'entrée d_in sur d_out et lorsque le signal de commutation E est égal à 0, il n'y a pas d'horloge envoyée sur l'entrée horloge du composant Cl. Ainsi, le signal d'horloge Cp est envoyé sur le composant Cl que lorsque le composant doit recopier l'entrée d_in sur d_out. Sur la figure 3, est représenté un diagramme temporel du système de la figure 2. Sur la première ligne est représentée la valeur de l'horloge Cp, sur la deuxième ligne la valeur du signal de commutation de l'horloge E et sur la troisième ligne l'horloge commutée Ckout qui est envoyée sur l'entrée horloge du composant Cl. Comme on peut le voir l'horloge commutée Ckout prend la valeur 1 lorsque E et Cp ont la valeur 1, puis dès que la valeur E ou Cp est à 0 alors la valeur de l'horloge commutée revient à O. Ainsi, si E revient à 0 avant Cp alors on obtient un front descendant de Ckout avant le front descendant de Cp. Dans le cas d'un composant Cl dont les événements ne sont déclenchés que par les fronts montants, ce front descendant de l'horloge commutée ne déclenche aucun événement, il n'a donc aucune incidence. Cela étant, la réalisation d'horloge commutée à partir d'une simple porte ET comme cela est décrit dans la figure 2 ne conviendrait pas dans le cas d'un composant réagissant aux fronts montants et descendants. En effet dans ce cas, un front descendant de l'horloge commutée Ckout avant le front descendant de l'horloge Cp entraîne un événement avant le front descendant de l'horloge Cp. Cet événement est qualifié de commutation parasite ou « dock glitch » selon un terme anglo-saxon bien connu de l'homme du métier. Ceci est gênant et c'est la raison pour laquelle il est nécessaire que les montants et descendants soient synchronisés avec les battements du signal d'horloge. I1 est connu de la demande brevet US 10/947,869, un système mettant en oeuvre la technique de commutation d'horloge (dock gating) pour un composant utilisant les fronts montants et descendants pour générer des événements. Cela étant, dans cette demande de brevet une partie des fonctionnalités sont trop complexes pour des outils de CAO (Conception Assistée par Ordinateur) standards. D'autre part, comme on peut le voir figure 4 de la demande brevet US 10/947,869, le front descendant B de l'horloge (Clk) n'est pas présent dans le signal d'horloge commuté (Clkout) alors que le signal de commutation (Gating Signal) est inactif. I1 est nécessaire d'attendre que l'horloge (Clk) repasse au niveau bas pour que l'horloge commutée (Clkout) puisse de nouveau avoir des fronts montants et descendants. Cette solution n'est donc pas optimum car une attente est nécessaire et une partie des fronts descendants n'est pas utilisée pour générer des événements, cela diminue d'autant la fréquence de travail. Selon un mode de mise en oeuvre et de réalisation, il est proposé un dispositif de génération d'un signal d'horloge commuté, en particulier pour un composant utilisant des fronts montants et des fronts descendants d'horloge, délivrant des fronts synchronisés avec le signal d'horloge et simple à réaliser. Selon un mode de mise en oeuvre et de réalisation, il est proposé un dispositif de génération d'un signal d'horloge commuté pour un composant utilisant les fronts montants et les fronts descendants, dont les fonctionnalités sont simples et peuvent être mises en oeuvre par des outils de CAO standards ; par ailleurs lorsque le signal de commutation est inactif le front descendant de l'horloge est systématiquement et immédiatement répercuté dans le signal d'horloge commuté. Selon un aspect, il est proposé un dispositif électronique, comprenant une première entrée pour recevoir un signal d'horloge, une deuxième entrée pour recevoir un signal de commutation, des moyens d'élaboration couplés à la première entrée et la deuxième entrée et configurés pour élaborer un signal d'horloge commuté, et une sortie apte à délivrer le signal d'horloge commuté. Selon une caractéristique générale de ce mode de réalisation, les moyens d'élaboration comprennent : -un registre ayant une entrée de type horloge couplée à ladite première entrée, une entrée de type donnée et une sortie de type donnée couplée à ladite sortie du dispositif, -une porte « OU exclusif » ayant une entrée couplée à la sortie de type donnée du registre, une autre entrée couplée à la deuxième entrée et une sortie couplée à l'entrée de type donnée du registre. Ainsi, il apparaît que si le signal de commutation est égal à 1 alors le signal d'horloge commuté s'inverse à chaque fois qu'il y a un front montant ou un front descendant de l'horloge. Par ailleurs, si le signal de commutation est égal à 0 alors la valeur du signal d'horloge commuté reste constante. On peut donc transmettre l'horloge que lorsque cela est nécessaire sans pour autant avoir un front descendant avant le front descendant de l'horloge tout en répercutant systématiquement et immédiatement les fronts descendants de l'horloge dans le signal d'horloge commuté. I1 est ainsi possible de générer à la demande un signal d'horloge commuté dans lequel les fronts montants et les fronts descendants sont synchronisés avec les fronts de l'horloge. Selon un mode de réalisation, le dispositif comprend en outre une entrée de contrôle pour recevoir un signal de contrôle et une porte OU ayant deux entrées couplées respectivement à ladite deuxième entrée et à l'entrée de contrôle et une sortie couplée à l'entrée de type donnée du registre. Ainsi, il est possible d'activer la sortie du système d'élaboration sans tenir compte de la valeur de commutation simplement en ajoutant une porte OR. La porte OR ne va pas augmenter sensiblement la surface du circuit électronique du dispositif. Ce contrôle de la valeur de sortie est particulièrement utile pour les tests. Selon un autre mode de réalisation, le dispositif comprend en outre une entrée de contrôle pour recevoir un signal de contrôle et un multiplexeur ayant deux entrées couplées respectivement à la sortie de type donnée du registre et à ladite première entrée, une entrée de commande couplée à ladite entrée de contrôle et une sortie couplée à la sortie du dispositif. Ainsi, il est possible d'activer la sortie du dispositif sans tenir compte de la valeur de commutation. Le contrôle de la valeur de sortie est particulièrement utile pour les tests. L'utilisation du multiplexeur qui sélectionne pour la sortie du dispositif l'horloge ou la sortie permet d'initialiser le système avec une valeur connue. Selon un autre aspect, il est proposé un circuit électronique comprenant un dispositif tel que décrit précédemment et un composant muni d'une entrée horloge connectée à la sortie du dispositif et configuré pour réagir aux fronts montants et descendants du signal d'horloge commuté. Selon un autre aspect, il est proposé un procédé d'élaboration d'un signal d'horloge commuté à partir d'un signal d'horloge et d'un signal de commutation. Selon une caractéristique générale de ce mode de mise en oeuvre : - si le signal de commutation est inactif, on maintient constante la valeur du signal d'horloge commuté, - si le signal de commutation est actif, on inverse la valeur du signal d'horloge commuté à chaque front du signal d'horloge. Selon un mode de mise en oeuvre, on inverse également la valeur du signal d'horloge commuté à chaque front du signal d'horloge si un signal de contrôle est actif. Selon un mode de mise en oeuvre, la valeur du signal d'horloge commuté prend la valeur du signal d'horloge si un signal de contrôle est actif. Selon un autre mode de mise en oeuvre, le procédé comprend une délivrance du signal d'horloge commuté à un composant configuré pour réagir aux fronts montants et descendants du signal d'horloge commuté. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée de modes de mise en oeuvre et de réalisation, nullement limitatifs, et des dessins annexés sur lesquels : - les figures 1 à 3 déjà décrites illustrent schématiquement l'état de la technique ; et - les figures 4 à 13 illustrent différents modes de réalisation et de mise en oeuvre de l'invention. Sur la figure 4 est représenté un schéma d'un mode de réalisation d'un dispositif de commutation d'horloge selon l'invention pour un composant C2 réagissant aux fronts montants et descendants. La porte ET de la figure 2 est remplacée par un dispositif de génération d'un signal d'horloge commuté SEHC. Le composant C2 est à titre d'exemple de réalisation, un registre qui copie en sortie d_out la valeur d'entrée d_in pour un front d'horloge (montant ou descendant) dans son entrée horloge branchée sur un signal d'horloge commuté Ckout. Le dispositif SEHC comprend une première entrée El pour recevoir un signal d'horloge Cp, une deuxième entrée E2 pour recevoir un signal de commutation E et une entrée de contrôle EC pour recevoir un signal de contrôle TE. Le dispositif comprend également une sortie Q apte à délivrer le signal d'horloge commuté Ckout. L'entrée d'horloge du composant C2 est connectée à la sortie Q. Le signal E correspond à un signal de commutation d'horloge, ce signal est déterminé en fonction de l'activité du composant C2. Par exemple il peut être égal à 0 lorsque la sortie du composant C2 reste constante. Le signal Cp correspond à l'horloge du dispositif. Le signal de contrôle TE est par exemple utilisé, comme on le verra plus en détail ci après dans une procédure de test pour forcer la sortie d'horloge commutée, indépendamment de la valeur du signal de commande E. Le dispositif est apte à élaborer un signal d'horloge commuté Ckout. Les moyens d'élaboration du dispositif SEHC comprennent une porte OU ayant deux entrées (E51, E52) et une sortie S51 : la première entrée E51 est couplée à la deuxième entrée de SEHC E2, la deuxième entrée E52 est couplée à l'entrée de contrôle EC de SEHC et la sortie S51 est couplée à une des entrées E41 d'une porte XOR réalisant la fonction « OU exclusif ». La porte XOR a d'une part deux entrées (E42, E41) respectivement couplée à une sortie de type donnée reg_out d'un registre REG et à la sortie S51 de la porte OU et d'autre part une sortie S41 couplée à une entrée donnée reg_in du registre REG. Le registre REG a en plus des entrées sorties données reg_in et reg_out, une entrée d'horloge clockin qui est couplée à l'entrée El recevant le signal d'horloge Cp. La sortie donnée reg_out du registre REG est également couplée à la sortie Q du dispositif SEHC, elle est apte à délivrer le signal d'horloge commuté Ckout. Sur la figure 5 est représenté un schéma d'un autre mode de réalisation du dispositif de génération d'une horloge commutée selon l'invention pour un composant C2 identique. Comme on peut le voir, le dispositif SEHC de la figure 5 est identique à celui de la figure 4 excepté la suppression de la porte OU et l'ajout après le registre d'un multiplexeur MUX contrôlé par le signal TE. Le multiplexeur MUX comporte trois entrées (E31, E32, E33) dont une entrée de commande E33 et une sortie S31. La première entrée E31 est couplée à la première entrée Cp du dispositif SEHC, la deuxième entrée E32 est couplée à la sortie donnée reg_out du registre REG et la troisième entrée E33 est couplée à l'entrée de contrôle EC recevant le signal de contrôle TE. Enfin, la sortie S31 du multiplexeur MUX est couplée à la sortie Q du dispositif SEHC apte à délivrer le signal d'horloge commuté Ckout. Ainsi, avec le multiplexeur MUX, lorsque la valeur du signal de contrôle TE est égale à 0, le signal d'horloge commuté Ckout prend la valeur reg out du registre REG et lorsque la valeur du signal de contrôle TE est égale à 1 alors le signal d'horloge commuté Ckout prend la valeur du signal d'horloge Cp. Pour les dispositifs des figures 4 et 5, il apparaît que lorsque la valeur du signal de contrôle TE est égale à 0, si le signal E est égal à 1 alors la valeur du signal d'horloge commuté Ckout s'inverse à chaque fois qu'il y a un front montant ou un front descendant de l'horloge Cp et si le signal E est égal à 0 alors la valeur le signal d'horloge commuté Ckout reste constante. On peut donc transmettre l'horloge Cp lorsque cela est nécessaire sans pour autant avoir des fronts descendant avant le front descendant de l'horloge. Par ailleurs, il est en général peu important que les fronts de l'horloge commutée soient inversés par rapport au signal d'horloge car les événements générés produisent des effets identiques avec un front montant et un front descendant. Dans le cas du dispositif SEHC de la figure 4, une valeur à 1 du signal de contrôle TE correspond à un signal de commutation E égal à 1. Donc avec une valeur du signal de contrôle TE égale à 1, la valeur de sortie Ckout s'inverse à chaque fois qu'il y a un front montant ou un front descendant du signal d'horloge Cp. Dans le cas du dispositif SEHC de la figure 5, une valeur à 1 du signal de contrôle TE entraîne avec le multiplexeur MUX une valeur de la sortie Ckout égale au signal d'horloge Cp. Pour les dispositifs de la figure 4 ou la figure 5, il existe un test automatique (ATPG signifiant « Automatic Test Pattern Generation » selon un terme anglo-saxon bien connu de l'homme du métier) qui permet de tester leur fonctionnement. Ce test nécessite de pouvoir contrôler la valeur en sortie Q du dispositif SEHC indépendamment de la valeur du signal de commutation E. Le signal de contrôle TE permet ce contrôle indépendamment du signal E et permet donc à Ckout d'avoir la valeur Cp ou une valeur inverse par rapport à Cp. Les figures 6, 7, 8, 9 représentent les diagrammes temporels du signal d'horloge commuté Ckout dans les dispositifs SEHC des figures 4 et 5 lorsque le signal de contrôle TE vaut 0. Chacune des figures correspond à un positionnement différent du signal de commutation E par rapport aux fronts montants et descendants du signal d'horloge Cp. On peut vérifier que dans tous les cas de figures, si le signal de commutation E est égal à 1 alors la valeur du signal d'horloge commuté Ckout s'inverse à chaque fois qu'il y a un front montant ou un front descendant du signal d'horloge Cp et si le signal de commutation E est égal à 0 alors la valeur du signal d'horloge commuté Ckout reste constante. Les figures 10 et 11 d'une part et 12 et 13 d'autre part représentent les diagrammes temporels du signal d'horloge commuté Ckout pour respectivement le dispositif SEHC de la figure 4 et le dispositif de la figure 5 lorsque le signal de contrôle TE passe de la valeur 0 à 1. La figure 10 correspond au passage de la valeur 0 à 1 du signal TE lorsque E est égal à 0 et la figure 11 correspond au passage de la valeur 0 à 1 du signal TE lorsque E est égal à 1. Comme on peut le voir sur la figure 10, pour le dispositif SEHC de la figure 4, une valeur à 1 du signal de contrôle TE a le même effet qu'un signal de commutation E égal à 1 : avec une valeur du signal de contrôle TE égale à 1, la valeur de sortie Ckout s'inverse à chaque fois qu'il y a un front montant ou un front descendant du signal d'horloge Cp. Par la suite, la valeur du signal de commutation E n'a pas d'effet sur le signal de sortie Ckout lorsque le signal de contrôle TE a la valeur 1. Comme on peut le voir sur la figure 11, il suffit qu'une des deux valeurs TE ou E ait la valeur 1 pour que le signal de sortie Ckout s'inverse à chaque fois qu'il y a un front montant ou un front descendant du signal d'horloge Cp. La figure 12 correspond au passage de la valeur 0 à 1 du signal TE lorsque E est égal à 0 et la figure 13 correspond au passage de la valeur 0 à 1 du signal TE lorsque E est égal à 1. Comme on peut le voir sur la figure 12, pour le dispositif SEHC avec le multiplexeur, lorsque la valeur du signal de contrôle TE est égale à 1, le signal d'horloge commuté Ckout prend la valeur du signal d'horloge Cp. Par la suite, la valeur du signal de commutation E n'a pas d'effet sur le signal de sortie Ckout lorsque le signal de contrôle TE a la valeur 1. Comme on peut le voir sur la figure 13, il suffit que le signal de contrôle TE prenne la valeur 1 pour que le signal de sortie Ckout prenne la valeur du signal d'horloge Cp. REVENDICATIONS1. Dispositif électronique (SEHC), comprenant une première (El) entrée pour recevoir un signal d'horloge (Cp), une deuxième entrée (E2) pour recevoir un signal de commutation (E), des moyens d'élaboration couplés à la première entrée (El) et la deuxième entrée (E2) et configurés pour élaborer un signal d'horloge commuté (Ckout), et une sortie (Q) apte à délivrer le signal d'horloge commuté (Ckout) caractérisé en ce que les moyens d'élaboration comprennent : - un registre (REG) ayant une entrée de type horloge (Clockin) couplée à ladite première entrée (El), une entrée de type donnée (reg_in) et une sortie de type donnée (reg_out) couplée à ladite sortie du dispositif (Q), - une porte « OU exclusif » (XOR) ayant une entrée (E41) couplée à la sortie de type donnée (reg_out) du registre (REG), une autre entrée (E42) couplée à la deuxième entrée (E) et une sortie (S41) couplée à l'entrée de type donnée (reg_in) du registre (REG). 2. Dispositif selon la revendication 1, comprenant en outre une entrée de contrôle (EC) pour recevoir un signal de contrôle (TE) et une porte OU ayant deux entrées couplées respectivement à ladite deuxième entrée (E2) et à l'entrée de contrôle (EC) et une sortie couplée à l'entrée de type donnée (reg_in) du registre (REG). 3. Dispositif selon la revendication 1, comprenant en outre une entrée de contrôle (EC) pour recevoir un signal de contrôle (TE) et un multiplexeur (MUX) ayant deux entrées (E31, E32) couplées respectivement à la sortie de type donnée (reg_out) du registre (REG) et à ladite première entrée (El), une entrée de commande (E33) couplée à ladite entrée de contrôle (EC) et une sortie (S31) couplée à la sortie du dispositif (Q). 4. Circuit électronique comprenant un dispositif selon l'une quelconque des revendications 1 à 3 et un composant (C2) muni d'une entrée horloge connectée à la sortie du dispositif (Q) et configuré pour réagir aux fronts montants et descendants du signal d'horloge commuté (Ckout). 5. Procédé d'élaboration d'un signal d'horloge commuté (Ckout) à partir d'un signal d'horloge (Cp) et d'un signal de commutation (E), caractérisé en ce que -si le signal de commutation (E) est inactif, on maintient constante la valeur du signal d'horloge commuté (Ckout), -si le signal de commutation (E) est actif, on inverse la valeur du signal d'horloge commuté (Ckout) à chaque front du signal d'horloge (Cp). 6. Procédé selon la revendication 5, dans lequel on inverse également la valeur du signal d'horloge commuté (Ckout) à chaque front du signal d'horloge (Cp) si un signal de contrôle (TE) est actif. 7. Procédé selon la revendication 5, dans lequel la valeur du signal d'horloge commuté (Ckout) prend la valeur du signal d'horloge (Cp) si un signal de contrôle (TE) est actif. 8. Procédé selon l'une des revendications précédentes comprenant en outre une délivrance du signal d'horloge commuté (Ckout) à un composant (C2) configuré pour réagir aux fronts montants et descendants du signal d'horloge commuté (Ckout).