Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND ELECTRONIC DEVICE FOR GENERATING A VARIABLE CLOCK SIGNAL
Document Type and Number:
WIPO Patent Application WO/2013/121149
Kind Code:
A1
Abstract:
According to this method, a carry generation command (M) is applied repetitively to a command input (G) of a carry-propagation logic circuit (1), the application of said command (M) to said input (G) is timed by means of a reference clock signal (CLKR), the application to said input (G) of a command to erase the last carry applied to said input is timed by means of said reference clock signal (CLKR), said logic circuit (1) is commanded to propagate said carry generated and the consecutive erasure of said carry generated up to a carry output (C) of said logic circuit (1), the command (M) is modified from one cycle to another of said reference clock signal (CLKR) so as to vary the duration of propagation of said carry in said logic circuit (1), and said variable clock signal (CLKV) is generated on the basis of the logic state present on said carry output (C).

Inventors:
BOUVIER LIONEL (FR)
Application Number:
FR2013/050298
Publication Date:
August 22, 2013
Filing Date:
February 14, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BULL SAS (Rue Jean Jaurès, Les Clayes Sous Bois, F-78340, FR)
International Classes:
H03K23/58; H03L7/18
Foreign References:
US6127863A
US20070296465A1
US20040125948A1
US6127863A
Attorney, Agent or Firm:
SANTARELLI (BP 237, 14 avenue de la Grande Armée, Paris Cedex 17, F-75822, FR)
Download PDF:
Claims:
REVENDICATIONS

Procédé de génération d'un signal d'horloge variable caractérisé en ce qu'il comprend les étapes suivantes:

- application répétitive, cadencée au moyen d'un signal d'horloge de référence (CLKR) de période fixe (TCLKR), d'une commande (M) de génération de retenue à une entrée de commande (G) d'un circuit logique (1) à propagation de retenue,

- application répétitive, cadencée au moyen dudit signal d'horloge de référence (CLKR), à ladite entrée (G) d'une commande d'effacement de la dernière retenue appliquée audit circuit logique (1),

- commande dudit circuit logique (1 ) pour propager ladite retenue générée et l'effacement consécutif de ladite retenue générée jusqu'à une sortie de retenue (C) dudit circuit logique (1 ),

- modification, d'un cycle à un autre dudit signal d'horloge de référence (CLKR), de la commande (M) appliquée audit circuit logique (1) pour faire varier la durée de propagation de ladite retenue dans ledit circuit logique (1), et

- génération dudit signal d'horloge variable (CLKV) à partir de l'état logique présent sur ladite sortie de retenue (C).

Procédé selon la revendication 1 , caractérisé en ce que lesdites commandes de génération de retenue et d'effacement de la dernière retenue sont appliquées audit circuit logique (1 ) respectivement sur un premier front et sur le front suivant d'un même cycle dudit signal d'horloge de référence (CLKR).

Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que ledit circuit logique (1 ) à propagation de retenue comporte plusieurs cellules (U) de poids différents appartenant chacune au groupe comprenant les additionneurs et les soustracteurs, chaque cellule (U) comprenant au moins deux entrées de commande (P, G) dont l'une reçoit ladite commande (M) de génération de retenue, une entrée de retenue (Cl) et une sortie de retenue (CO) connectée à l'entrée de retenue (Cl) de la cellule adjacente de poids plus élevé, la sortie de retenue de la cellule (Ui) de poids le plus fort constituant ladite sortie de retenue dudit circuit logique (1 ).

4. Procédé selon la revendication 3, caractérisé en ce que ladite commande (M) est adaptée pour susciter la génération d'une retenue par une seule desdites cellules (U).

5. Procédé selon la revendication 4, caractérisé en ce qu'une retenue différente de celle générée au cycle précédent est générée par une cellule (U) de poids plus faible que celui de la cellule ayant généré la retenue précédente

6. Procédé selon la revendication 5, caractérisé en ce qu'il comprend au moins un cycle de repos, dépourvu d'application d'une commande de génération de retenue audit circuit logique (1), entre une commande de génération de retenue appliquée à une cellule (U) et une commande de génération de retenue appliquée à une cellule (U) de poids plus fort.

7. Procédé selon l'une quelconque des revendications 3 à 6, caractérisé en ce que lesdits additionneurs et soustracteurs sont du type à fonctionnement en base deux.

8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que ledit signal d'horloge variable (CLKV) est généré en inversant son niveau logique sur chacun des fronts actifs du signal à la sortie de retenue (C) dudit circuit logique, un front actif étant constitué par l'un des deux fronts d'un cycle dudit signal à la sortie de retenue (C).

9. Dispositif électronique pour la mise en œuvre du procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce qu'il comprend :

- une horloge pour la génération d'un signal d'horloge de référence (CLKR) de période fixe (TCLKR),

- un circuit logique (1 ) à propagation de retenue comportant des cellules (U) de poids différents appartenant chacune au groupe comprenant les additionneurs et les soustracteurs, chaque cellule (U) comprenant au moins deux entrées de commande (P, G), une entrée de retenue (Cl) et une sortie de retenue (CO) connectée à l'entrée de retenue (Cl) de la cellule adjacente de poids plus élevé,

- un circuit de commande (2, 4, 9) cadencé par ledit signal d'horloge de référence (CLKR) pour :

- appliquer audit circuit logique (1 ) à propagation de retenue une commande de génération de retenue et une commande d'effacement de ladite retenue consécutivement à sa génération,

- commander la propagation par lesdites cellules (U), jusqu'à la sortie de retenue (C) de la cellule (U-i) de poids le plus fort, d'une retenue générée et de l'effacement de ladite retenue,

- modifier d'un cycle à un autre dudit signal d'horloge de référence (CLKR) ladite commande (M) pour faire varier la durée de propagation de ladite retenue par ledit circuit logique (1 ), et

- un circuit de sortie (3) pour générer ledit signal d'horloge variable (CLKV) à partir de l'état logique présent à ladite sortie de retenue

(C) de la cellule (U-i) de poids le plus fort.

10. Dispositif selon la revendication 9, caractérisé en ce que ledit circuit de commande (2, 4, 9) est adapté pour interdire, pendant au moins un cycle dudit signal d'horloge de référence (CLKR), l'application d'une commande de génération de retenue audit circuit logique (1 ) à propagation de retenue entre une commande de génération de retenue appliquée à une cellule (U) et une commande de génération de retenue appliquée à une cellule (U) de poids plus fort.

11. Dispositif selon l'une quelconque des revendications 9 et 10, caractérisé en ce que ledit circuit de commande (2, 4, 9) est adapté pour appliquer audit circuit logique (1 ) une commande (M) pour la génération de ladite retenue par une seule desdites cellules (U).

12. Dispositif selon l'une quelconque des revendications 9 à 11 , caractérisé en ce que ledit circuit de commande comprend un premier registre (2) dont les sorties sont connectées respectivement à l'une des entrées d'opérande (G) de chacune desdites cellules (U).

13. Dispositif selon les revendications 11 et 12, caractérisé en ce que ledit circuit de commande comprend un deuxième registre (4) commandant le contenu du premier registre (2) pour assurer, d'un cycle à un autre dudit signal d'horloge de référence (CLKR), un décalage de ladite commande (M) tel que ladite retenue est générée par une cellule (U) de poids au plus égal à celui de la cellule ayant généré la retenue précédenteT

14. Dispositif selon l'une quelconque des revendications 12 et 13, caractérisé en ce que ledit circuit de commande (2, 4, 9) commande l'effacement du contenu dudit premier registre (2) dans le même cycle dudit signal d'horloge de référence (CLKR) que celui dans lequel une commande (M) a été chargée dans ledit premier registre (2).

15. Dispositif selon l'une quelconque des revendications 9 à 14, caractérisé en ce que ledit circuit de commande (2, 4, 9) applique à l'autre entrée d'opérande (P) de chacune desdites cellules (U) le même niveau logique que celui de ladite retenue.

16. Dispositif selon l'une quelconque des revendications 9 à 15, caractérisé en ce que ledit circuit de commande (2, 4, 9) applique un niveau logique constant à l'entrée de retenue (Cl) de la cellule (UK) de poids le plus faible dudit circuit logique (1 ).

17. Dispositif selon l'une quelconque des revendications 9 à 16, caractérisé en ce que ledit circuit de sortie comprend une bascule (3) de type T connectée à ladite sortie de retenue (C) dudit circuit logique (1 ) pour inverser à sa sortie (Q) le niveau logique dudit signal d'horloge variable (CLKV) sur chacun des fronts actifs du signal à la sortie de retenue (C) dudit circuit logique, un front actif étant constitué par l'un des deux fronts d'un cycle dudit signal à la sortie de retenue (C).

Description:
Procédé et dispositif électronique de génération d'un signal d'horloge variable

La présente invention concerne un procédé et un dispositif électronique de génération d'un signal d'horloge variable.

Dans un circuit électronique logique, il peut être souhaitable de faire varier la fréquence d'une horloge qui cadence un ou plusieurs blocs ionclionnels.

Plusieurs raisons, qui peuvent être cumulatives, peuvent dicter un tel recours à une fréquence d'horloge variable de façon commandée :

- assurer une contre-mesure au piratage par canaux cachés de type DPA (en anglais « Differential Power Analysis »), ce type d'attaque effectuant une analyse statistique sur une collection d'échantillons capturés de manière synchronisée par rapport au fonctionnement interne du circuit. Diminuer la possibilité de synchronisation diminue l'efficacité de l'analyse statistique pour un nombre donné d'échantillons;

- réduction de l'intensité des rayonnements électromagnétiques émis à fréquence donnée, par dispersion de la fréquence principale et de ses harmoniques ;

- faciliter le découplage électrique du circuit par dispersion des pics de consommation de courant.

Les trois raisons exposées conduisent à utiliser des horloges de fréquences variables, mais la contre mesure au piratage nécessite en outre une variation aléatoire de la fréquence.

De plus, dans ce dernier cas, aucune connexion électrique qui serait susceptible de véhiculer directement ou indirectement un tel signal d'horloge à fréquence variable ne doit être accessible de manière simple à l'extérieur du circuit électronique qui l'utilise, afin de ne pas fournir d'aide à la synchronisation des captures d'une attaque. Un dispositif électronique générateur d'un signal d'horloge de fréquence/période variable se présentera donc de préférence sous forme d'un bloc fonctionnel de circuit intégré, car dans un circuit intégré il est possible d'enfouir complètement une architecture logique.

Par ailleurs, un besoin existe de pouvoir générer des signaux d'horloge à fréquence variable de 100MHz et plus dans des circuits intégrés logiques programmables de type FPGA (en anglais « Field-programmable gâte array »).

Pour ce type de composants et à ces fréquences, il n'y a pas de solution connue fiable et facilement réalisable permettant de faire varier au cycle près la période et le rapport cyclique d'un signal d'horloge de fréquence élevée, c'est à dire à la limite haute des possibilités de vitesse du composant, sans passer par des broches du composant connectées à un circuit électronique de déphasage.

Un spécialiste de la conception d'architectures basées sur des composants FPGA a à sa disposition, pour la génération de signaux d'horloges, certains blocs fonctionnels dédiés de type PLL (en anglais « Phase-locked loop ») ou DLL (en anglais « Delay-locked loop »). Cependant, ces blocs sont prévus pour fournir des fréquences globalement fixes, tout au plus reprogrammables pendant le fonctionnement du composant, et le pas des fréquences possibles n'est pas très fin. Les blocs PLL peuvent parfois faire varier légèrement la fréquence générée autour de sa valeur de base (technique d'étalement de spectre, « spread spectrum » en anglais), mais la variation des fréquences produites n'est pas aléatoire ou susceptible d'être commandée au cycle près pour la rendre aléatoire.

Une solution est de créer un oscillateur à base d'éléments logiques. Dans un tel cas les durées de propagation des signaux dans les éléments logiques et les pistes conductrices définissent la période de l'oscillateur. Cette solution n'offrant pas une grande stabilité en tension et température, elle nécessite un calibrage régulier à priori complexe à réaliser et qui rend régulièrement indisponible l'oscillateur. Une autre solution est de sélectionner comme signal d'horloge un signal parmi plusieurs générés de manière stable dans le circuit intégré, mais cela pose au moins un problème qui est lié au changement de signal sélectionné. Les signaux étant continuellement déphasés mais pas d'une valeur précisément connue puisqu'ils passent par des chemins différents, passer d'un signal à un autre entraine une pénalité de performance et/ou une complexité de conception pour garantir que la durée à l'état haut ou à l'état bas du signal d'horloge généré, ainsi que sa période, ne descendent pas sous la valeur limite autorisée par l'ensemble logique cadencé par cette horloge.

En pratique, cette autre solution n'est pas exploitable car elle est trop compliquée à mettre en œuvre pour essayer de garantir les durées de parcours des signaux les uns par rapport aux autres. Si les durées de parcours ne sont pas correctement maîtrisées, il en résulte une pénalité de performance du fait des temps morts obligatoires pour passer proprement d'un signal à l'autre sans violation des temps minimaux nécessaires du signal d'horloge généré.

Le document US 6,127,863 décrit un oscillateur commandé numériquement pour fournir un signal dont la fréquence peut être dans un rapport M/(2 N +K) avec celle d'un signal d'horloge. Cet oscillateur fait appel à un diviseur de fréquence basé sur des circuits à propagation de retenue et destiné, en s'affranchissant du délai de propagation de retenue de ces circuits, à fournir une fréquence qui est, non pas variable, mais fixe puisque celle-ci est une fraction définie de la fréquence d'horloge.

L'invention vise à fournir un procédé et un dispositif électronique qui permettent de générer un signal d'horloge dont on peut faire varier la fréquence, mais sans trop éloigner cette fréquence de sa valeur maximale afin de pénaliser le moins possible les circuits logiques qui dépendent du signal d'horloge généré. En effet, plus la moyenne des fréquences du signal d'horloge est basse et plus la performance des circuits cadencés par ce signal d'horloge diminue. Les temps morts trop fréquents sont néfastes pour la performance.

L'invention vise également à fournir un procédé et un dispositif électronique qui permettent de générer un signal d'horloge dont la période et le rapport cyclique peuvent être commandés au cycle près de manière telle que la période du signal d'horloge ne soit pas inférieure à une valeur minimale souhaitée.

L'invention vise également à fournir un procédé et un dispositif électronique qui permettent de générer un signal d'horloge dont, en outre, la période et le rapport cyclique sont variables de manière aléatoire ou pseudoaléatoire ou déterministe, selon la qualité de la commande.

A cet effet, l'invention a pour objet un procédé de génération d'un signal d'horloge variable comprenant les étapes suivantes :

- application répétitive, cadencée au moyen d'un signal d'horloge de référence de période fixe, d'une commande de génération de retenue à une entrée de commande d'un circuit logique à propagation de retenue,

- application répétitive, cadencée au moyen dudit signal d'horloge de référence, à ladite entrée d'une commande d'effacement de la dernière retenue appliquée audit circuit logique,

- commande dudit circuit logique pour propager ladite retenue générée et l'effacement consécutif de ladite retenue générée jusqu'à une sortie de retenue dudit circuit logique,

- modification, d'un cycle à un autre dudit signal d'horloge de référence, de la commande appliquée audit circuit logique pour faire varier la durée de propagation de ladite retenue dans ledit circuit logique, et

- génération dudit signal d'horloge variable à partir de l'état logique présent sur ladite sortie de retenue.

Ce procédé permet de manière très simple de générer un signal d'horloge dont on peut faire varier la fréquence sans trop éloigner cette fréquence de sa valeur maximale. Il doit être compris que la modification d'un cycle à un autre de la commande appliquée au circuit logique ne signifie pas que cette commande est nécessairement modifiée à chaque cycle. La commande peut rester la même pendant plusieurs cycles consécutifs et le signal d'horloge variable n'être pas modifié sur ces cycles consécutifs, jusqu'à ce qu'une modification de la commande, donc de la retenue, et par conséquent des caractéristiques temporelles du signal d'horloge intervienne.

Suivant une caractéristique possible de l'invention, lesdites commandes de génération de retenue et d'effacement de la dernière retenue sont appliquées audit circuit logique respectivement sur un premier front et sur le front suivant d'un même cycle dudit signal d'horloge de référence. Le cadencement de la génération et de l'effacement d'une retenue sont donc particulièrement simples à mettre en œuvre.

Suivant une autre caractéristique possible de l'invention, ledit circuit logique à propagation de retenue comporte plusieurs cellules de poids différents appartenant chacune au groupe comprenant les additionneurs et les soustracteurs, chaque cellule comprenant au moins deux entrées de commande dont l'une reçoit ladite commande de génération de retenue, une entrée de retenue et une sortie de retenue connectée à l'entrée de retenue de la cellule adjacente de poids plus élevé, la sortie de retenue de la cellule de poids le plus fort constituant ladite sortie de retenue dudit circuit logique. Le procédé peut être mis en oeuvre par l'utilisation de composants peu coûteux et très largement disponibles.

Suivant une autre caractéristique possible de l'invention, ladite commande est adaptée pour susciter la génération d'une retenue par une seule desdites cellules. La génération d'une retenue est ainsi particulièrement simple. Le fait de ne générer qu'une seule retenue conduit à un système simple et dont l'effort de mise au point est minimal lors de la réalisation.

Suivant une autre caractéristique possible de l'invention, une retenue différente de celle générée au cycle précédent est générée par une cellule de poids plus faible que celui de la cellule ayant généré la retenue précédente. Cela permet d'assurer que la durée de l'état haut et la durée de l'état bas de chacune des périodes du signal d'horloge variable ne descendent jamais en- dessous d'une valeur prédéterminée.

Suivant une autre caractéristique possible de l'invention, ledit procédé comprend au moins un cycle de repos, dépourvu d'application d'une commande de génération de retenue audit circuit logique, entre une commande de génération de retenue appliquée à une cellule et une commande de génération de retenue appliquée à une cellule de poids plus fort. Ces cycles de repos permettent d'éviter qu'une inversion de l'ordre de sortie des retenues se produise par rapport à leur ordre de création, ou que la période du signal d'horloge variable ne descende en dessous de la valeur minimale permise.

Suivant une autre caractéristique possible de l'invention, lesdits additionneurs et soustracteurs sont du type à fonctionnement en base deux. Ce mode de fonctionnement en base deux facilite la mise en œuvre du procédé dans et/ou avec les circuits intégrés logiques les plus courants.

Suivant une autre caractéristique possible de l'invention, ledit signal d'horloge variable est généré en inversant son niveau logique sur chacun des fronts actifs du signal à la sortie de retenue dudit circuit logique, un front actif étant constitué par l'un des deux fronts d'un cycle dudit signal à la sortie de retenue. On génère ainsi un signal d'horloge variable dont la période est au moins égale à deux fois celle du signal d'horloge de référence CLKR, et dont le rapport cyclique est de 50% à la fréquence maximale mais peut être différent de 50% aux autres fréquences.

L'invention a également pour objet un dispositif électronique pour la mise en œuvre du procédé défini ci-dessus, ce dispositif comprenant :

- une horloge pour la génération d'un signal d'horloge de référence de période fixe,

- un circuit logique à propagation de retenue comportant des cellules de poids différents appartenant chacune au groupe comprenant les additionneurs et les soustracteurs, chaque cellule comprenant au moins deux entrées de commande, une entrée de retenue et une sortie de retenue connectée à l'entrée de retenue de la cellule adjacente de poids plus élevé,

- un circuit de commande cadencé par ledit signal d'horloge de référence pour :

appliquer audit circuit logique à propagation de retenue une commande de génération de retenue et une commande d'effacement de ladite retenue consécutivement à sa génération,

- commander la propagation par lesdites cellules, jusqu'à la sortie de retenue de la cellule de poids le plus fort, d'une retenue générée et de l'effacement de ladite retenue,

- modifier d'un cycle à un autre dudit signal d'horloge de référence ladite commande pour faire varier la durée de propagation de ladite retenue par ledit circuit logique, et

- un circuit de sortie pour générer ledit signal d'horloge variable à partir de l'état logique présent à ladite sortie de retenue de la cellule de poids le plus fort.

Le dispositif suivant l'invention ne requiert qu'un minimum de composants peu sophistiqués et peu coûteux pour réaliser un générateur d'horloge à fréquence variable. Comme indiqué précédemment, le circuit de commande ne modifie pas nécessairement à chaque cycle du signal d'horloge de référence la commande qu'il applique au circuit logique de propagation de retenue. La commande peut rester la même pendant plusieurs cycles consécutifs et le signal d'horloge variable n'être pas modifié sur ces cycles consécutifs, jusqu'à ce qu'une modification de la commande, donc de la retenue, et par conséquent des caractéristiques temporelles du signal d'horloge intervienne.

Suivant une caractéristique possible de l'invention, ledit circuit de commande est adapté pour interdire, pendant au moins un cycle dudit signal d'horloge de référence, l'application d'une commande de génération de retenue audit circuit logique à propagation de retenue entre une commande de génération de retenue appliquée à une cellule et une commande de génération de retenue appliquée à une cellule de poids plus fort . Cet agencement permet d'assurer que les périodes du signal d'horloge variable ne descendent jamais en-dessous d'une valeur prédéterminée.

Suivant une autre caractéristique possible de l'invention, ledit circuit de commande est adapté pour appliquer audit circuit logique une commande pour la génération de ladite retenue par une seule desdites cellules. La structure du dispositif pour mettre en œuvre une telle fonctionnalité est particulièrement simple à mettre en œuvre.

Suivant une autre caractéristique possible de l'invention, chacune desdites cellules comprend deux entrées d'opérande et ledit circuit de commande comprend un premier registre dont les sorties parallèles sont connectées à l'une des deux entrées d'opérande desdites cellules respectivement. La structure du dispositif pour mettre en œuvre une telle fonctionnalité est particulièrement simple à mettre en œuvre.

Suivant une autre caractéristique possible de l'invention, ledit circuit de commande comprend un deuxième registre commandant le contenu du premier registre pour assurer, d'un cycle à un autre dudit signal d'horloge de référence, un décalage de ladite commande tel que ladite retenue est générée par une cellule de poids au plus égal à celui de la cellule ayant généré la retenue précédente. La structure du dispositif pour mettre en œuvre une telle fonctionnalité est particulièrement simple à mettre en œuvre.

Suivant une autre caractéristique possible de l'invention, ledit circuit de commande commande l'effacement du contenu dudit premier registre dans le même cycle dudit signal d'horloge de référence que celui dans lequel une commande a été chargée dans ledit premier registre. La commande du dispositif est ainsi particulièrement simple.

Suivant une autre caractéristique possible de l'invention, ledit circuit de commande applique à l'autre entrée d'opérande de chacune desdites cellules le même niveau logique que celui de ladite retenue. Une telle commande très simple permet d'assurer la propagation d'une retenue appliquée à une cellule quelconque quand cette dernière ne génère pas elle- même de retenue.

Suivant une autre caractéristique possible de l'invention, ledit circuit de commande applique un niveau logique constant à l'entrée de retenue de la cellule de poids le plus faible dudit circuit logique. Une telle commande très simple permet d'assurer la propagation d'une retenue appliquée à une cellule quelconque. Suivant une autre caractéristique possible de l'invention, ledit circuit de sortie comprend une bascule de type T connectée à ladite sortie de retenue dudit circuit logique pour inverser à sa sortie le niveau logique dudit signal d'horloge variable sur chacun des fronts actifs du signal à la sortie de retenue dudit circuit logique, un front actif étant constitué par l'un des deux fronts d'un cycle dudit signal à la sortie de retenue. Une telle bascule de type T permet de manière très simple de générer le signal d'horloge variable à partir de la sortie C de l'additionneur 1. De plus quand l'entrée d'horloge de la bascule de type T est la seule entrée du circuit qui est câblée à la sortie C de l'additionneur 1 , cela présente le grand avantage d'éviter tout problème de concurrence d'horloge puisque la connexion est sans ramification.

D'autres caractéristiques et avantages de l'invention ressortiront de la description qui va suivre d'un mode de réalisation donné uniquement à titre d'exemple et illustré par les dessins annexés sur lesquels :

- la figure 1 est un schéma bloc illustrant un additionneur à propagation de retenue utilisé dans un dispositif électronique suivant l'invention de génération d'un signal d'horloge à période et rapport cyclique variables de manière commandée;

- la figure 2 est un schéma simplifié montrant des composants de base d'un dispositif électronique générateur de signal d'horloge suivant l'invention utilisant l'additionneur à propagation de retenue de la figure 1 ;

- la figure 3 est une vue plus détaillée d'un dispositif électronique générateur de signal d'horloge suivant l'invention basé sur un additionneur binaire à propagation de retenue;

- la figure 4 est une table de vérité illustrant le fonctionnement d'une cellule de l'additionneur binaire à propagation de retenue de la figure 3 ;

- la figure 5 est un chronogramme illustrant le fonctionnement du dispositif électronique générateur de signal d'horloge suivant l'invention ;

- la figure 6 est un chronogramme illustrant dans différents cas de figure les cycles de repos générés par le dispositif électronique selon l'invention ; - la figure 7 est un schéma de circuit selon un exemple de réalisation du registre à décalage 4 rebouclé sur lui-même de la figure 3 ;

- la figure 8 est un schéma de circuit selon un exemple de réalisation du circuit logique de commande 9 de la figure 3 ; et

- la figure 9 est une table de vérité illustrant le fonctionnement d'un convertisseur de code 3 bits vers 2 bits présent dans le circuit de la figure 8.

En se reportant aux figures 1 et 2, un dispositif électronique de génération d'un signal d'horloge à période et rapport cyclique variables de manière commandée comprend une ligne à retard constituée d'un additionneur 1 à propagation de retenue comportant K cellules U dont les cellules U-i ,

U 2 U K -i , U K ont été représentées à la figure 1.

L'additionneur 1 est connecté par certaines de ses entrées (directement comme représenté ou, en variante, indirectement par l'intermédiaire d'une logique combinatoire) aux sorties d'un registre 2 cadencé par un signal d'horloge de référence CLKR de période TCLKR et de rapport cyclique convenable. Les valeurs acceptables du rapport cyclique dépendent des contraintes technologiques d'implémentation du dispositif.

La sortie C de l'additionneur 1 , qui est sa sortie de retenue, est connectée (directement comme représenté au dessin ou, en variante, via une logique combinatoire), à l'entrée d'une bascule 3 de type T (ou circuit équivalent d'un point de vue fonctionnel) qui, comme cela sera décrit dans la suite, génère à sa sortie un signal d'horloge CLKV de période et rapport cycliques variables ci-après désigné signal d'horloge variable.

L'additionneur 1 à propagation de retenue (aussi appelé additionneur séquentiel, et « carry propagate adder » ou encore « ripple carry adder » en anglais) permet d'additionner deux nombres dont les chiffres sont exprimés dans une certaine base selon le type des cellules de l'additionneur. Dans l'exemple de l'additionneur 1 de la figure 3, les chiffres sont exprimés en base 2. Chaque cellule d'addition U de l'additionneur 1 comprend des entrées P et G auxquelles sont appliquées les nombres à additionner, une entrée de retenue Cl et une sortie de retenue CO. Les K cellules d'addition U de l'additionneur 1 sont reliées entre elles deux à deux par le chemin de retenue: la retenue sortante sur la sortie de retenue CO d'une cellule U est en même temps la retenue entrante sur l'entrée de retenue Cl de la cellule voisine de poids plus fort. Dans l'exemple représenté, la cellule U ! est de poids plus fort que la cellule U 2 , qui est elle- même de poids plus fort que la cellule U 3 , etc.

Chaque cellule U additionne les valeurs de ses deux entrées P et G avec la valeur de son entrée de retenue Cl, et fournit la somme résultante sur sa sortie S (non représentée car elle n'est pas utilisée dans le contexte de la présente invention) et la retenue sortante sur sa sortie CO.

Dans le contexte de la présente invention, l'additionneur 1 désigne aussi bien un additionneur proprement dit qu'un soustracteur ou un additionneur-soustracteur combiné, à propagation de retenue, considérant qu'un soustracteur est une forme spéciale d'additionneur, à savoir un additionneur dont l'un des opérandes voit sa valeur opposée par rapport à zéro.

L'additionneur 1 comporte une entrée de retenue CN qui est l'entrée de retenue Cl de la cellule U K de poids le plus faible. Cette entrée CN est câblée à une valeur logique fixe 0 ou 1 qui permet la propagation de retenue dans l'additionneur 1 sans que cette entrée elle-même ne fasse générer de retenue.

Par ailleurs, chaque cellule U a son entrée P câblée de telle sorte que la cellule propage dans sa sortie CO la valeur de son entrée Cl.

En variante, l'additionneur 1 peut aussi être constitué et câblé de telle sorte qu'une cellule U propage dans sa sortie CO la valeur complémentaire de son entrée Cl, afin de rendre constante la durée de propagation d'une retenue circulant sur une même distance dans 1 , qu'elle vaille à l'origine 0 ou 1. En effet, selon la technologie employée, la durée de propagation d'un niveau logique 1 dans une cellule peut être différente de celle d'un niveau logique 0.

La retenue sortant en C de l'additionneur 1 est utilisée pour la génération du signal d'horloge CLKV à période et rapport cyclique variables.

L'additionneur 1 est utilisé en ligne à retard par le fait qu'une retenue est générée dans l'une des cellules U, par l'établissement d'une valeur adéquate sur l'entrée G de ladite cellule U, et se propage le long de l'additionneur 1 jusqu'à sortir en C. Ainsi, la durée de propagation totale de la retenue créée dépend du nombre de cellules traversées, donc de la position de la cellule de génération.

Dans le cas où plusieurs entrées G sont commandées simultanément pour que les cellules U respectives génèrent chacune une retenue, alors c'est la retenue générée par la cellule de poids le plus fort qui est celle propagée jusqu'à C, car une retenue créée est absorbée par une cellule de poids plus élevé qui génère sa propre retenue.

Les entrées G de l'additionneur 1 sont alimentées par le registre 2 cadencé par le signal d'horloge de référence CLKR. Ce registre 2 stocke en même temps K valeurs dont l'ensemble est appelé commande M. Ces K valeurs (K bits dans le cas d'un additionneur en base 2) sont chacune la valeur fournie à l'entrée G d'une cellule U, et le dispositif est agencé physiquement de telle sorte que le délai entre l'apparition d'une commande M dans le registre 2 et son arrivée dans la cellule U correspondante est le même pour les K couples commande-cellule.

Lorsque le registre 2 ne contient aucune commande permettant de générer une retenue dans l'additionneur 1 , alors aucune retenue n'est générée dans l'additionneur 1 qui peut néanmoins être encore en train de propager une retenue précédemment créée, et/ou en train de propager l'effacement de la retenue.

L'effacement d'une retenue est en fait la propagation dans l'additionneur 1 d'une retenue de niveau logique complémentaire de celui de la retenue qui circulait auparavant. Par exemple, si une retenue de niveau logique 1 a été commandée par le registre 2 puis générée et propagée par l'additionneur 1 , alors l'effacement de la retenue consiste en l'effacement du contenu du registre 2 et la propagation qui s'ensuit d'une retenue de niveau logique 0. Les polarités de fonctionnement de l'additionneur 1 peuvent tout à fait être adaptées de telle sorte que la retenue générée soit de niveau logique 0 et celle d'effacement de niveau logique 1. Comme décrit précédemment, les retenues peuvent aussi être de niveaux logiques alternés le long de l'additionneur 1 , en faisant réaliser l'inversion du niveau logique par certaines cellules U du chemin de propagation.

La retenue C sortant de l'additionneur 1 est utilisée comme signal d'horloge de la bascule 3 qui inverse l'état de sa sortie Q sur chaque front actif de ce signal d'horloge. Le front actif peut être le front montant ou bien le front descendant, selon Pimplémentation choisie pour le dispositif et en particulier le niveau logique de la retenue générée sortant en C. La sortie de la bascule 3 est le signal d'horloge CLKV de période TCLKV variable et rapport cyclique variable.

Un des fronts du signal d'horloge de référence CLKR, montant ou descendant, sert à enregistrer dans le registre 2 la commande de génération de retenue présentée sur son entrée D, tandis que le front suivant, descendant ou montant, déclenche l'effacement du contenu du registre 2, donc l'effacement de la retenue. L'effacement du contenu du registre 2 est commandé par l'entrée R de remise à zéro, qui est asynchrone, parce que à effet immédiat indépendant de l'entrée d'horloge. Par conséquent, par cycle du signal d'horloge de référence CLKR, il peut être généré dans l'additionneur 1 une retenue puis son effacement.

Sur le chronogramme de la figure 5, il est supposé que les retenues de niveau « 1 » et « 0 »se propagent à la même vitesse car à la sortie C de l'additionneur 1 l'état « 1 » dure le même temps que l'état « 1 » du signal d'horloge de référence CLKR.

Sur ce chronogramme, les délais de propagation sont tels que Δ2>Δ1 , Δ3>Δ2 et Δ4>Δ3. Le cas général qui doit être respecté est Δ2>Δ1 , Δ3>Δ2 et Δ4>Δ3, etc. Si la retenue dans l'additionneur 1 est toujours générée dans la même cellule Uj, c'est-à-dire si le délai Δ est constant d'un cycle à l'autre du signal d'horloge de référence CLKR, alors la valeur de la période TCLKV est simplement le double de celle de TCLKR, et le rapport cyclique du signal d'horloge variable CLKV est de 50%.

Au temps t c i un front d'un cycle du signal d'horloge de référence

CLKR crée au temps ti , avec un retard Δ1 , un front actif du signal d'horloge présent à la sortie C de l'additionneur 1 et au temps t C 2 un front homologue d'un deuxième cycle du signal d'horloge de référence CLKR est nécessaire pour créer à la sortie C de l'additionneur 1 au temps t 2 , avec un retard Δ2, un deuxième front actif du signal d'horloge agissant sur la bascule 3. La sortie CLKV de la bascule 3 passe à l'état haut sur le premier des deux fronts actifs précités et repasse à l'état bas sur le deuxième des fronts actifs précités. Deux périodes du signal d'horloge de référence CLKR créent donc à la sortie Q de la bascule 3 une période complète du signal d'horloge variable CLKV. De même, au temps t C 3 un front homologue d'un troisième cycle du signal d'horloge de référence CLKR crée à la sortie C de l'additionneur 1 au temps t 3) avec un retard Δ3, un troisième front actif du signal d'horloge agissant sur la bascule 3.

Au temps tes, un délai de repos correspondant à cinq cycles du signal d'horloge de référence CLKR sans commande appliquée à l'additionneur 1 est généré car on suppose ici qu'avec Δ4 l'extrémité de la ligne à retard constituée par l'additionneur 1 est atteinte. Ce délai de repos est terminé au temps t c io avec la soumission à l'additionneur 1 d'une nouvelle commande de génération de retenue. Le temps tf pr marque la fin de propagation des retenues durant le délai de repos.

Au temps t c io la génération de retenue ayant repris se traduit par l'apparition d'un front actif du signal d'horloge à la sortie C au temps t 5 , avec un retard Δ10, et ainsi de suite.

Chaque fois qu'une retenue de niveau logique 1 est appliquée par la sortie C de l'additionneur 1 à l'entrée d'horloge de la bascule 3 aux temps ti=tci+A1 , t 2 =t c2+ A2, t 3 =t C 3 + A3, t 4 =t c4+ A4, t 5 =t c io + Al O, t 6 =t c i i + AH , t 7 =t c12+ Al 2 cela déclenche le basculement de la bascule 3, donc l'inversion de l'état logique à sa sortie Q qui constitue le signal d'horloge variable CLKV.

La longueur de l'additionneur 1 , en nombre de cellules U, est choisie en fonction de la technologie des circuits utilisés en s'assurant qu'une retenue générée par le registre 2 ne peut être rattrapée, et donc effacée, par la retenue suivante (commandée ou bien d'effacement) générée par le registre 2 avant d'avoir atteint la sortie C. Dans un additionneur de longueur suffisamment grande, un tel rattrapage peut se produire si une retenue se propage plus vite à un niveau logique qu'à un autre. De préférence, pour la plus grande simplicité de conception, la longueur de l'additionneur 1 est choisie telle que la durée maximale de propagation de la retenue dans l'additionneur 1 , quel que soit le niveau de la retenue, soit inférieure à la demi-valeur de la période du signal d'horloge de référence TCLKR. Pour la clarté du dessin, ce n'est pas la solution qui a été retenue dans l'exemple illustré par le chronogramme de la figure 5. Avec un rapport cyclique du signal d'horloge de référence CLKR de 50%, alors aucun rattrapage ne peut se produire puisque la retenue d'effacement est générée lorsque la retenue précédente, celle commandée, est déjà sortie en C. De même, dans ce cas, la retenue commandée est générée lorsque la retenue précédente, celle d'effacement, est déjà sortie en C. Toutefois en variante, comme par exemple dans le cas de la figure 5, la longueur de l'additionneur 1 peut être choisie telle que plusieurs retenues circulent en même temps à la condition qu'une retenue ne puisse jamais rattraper la précédente.

Le dispositif décrit est adapté pour que le signal d'horloge CLKV puisse être produit de période et rapport cycliques variables, avec chacun des deux niveaux logiques du signal d'horloge CLKV de durée au moins égale à la valeur de la période TCLKR. Ainsi la période TCLKV ne sera jamais inférieure au double de la période TCLKR.

Pour ce faire le registre 2 reçoit un contenu qui est tel que dans un cycle de signal d'horloge de référence CLKR, par rapport au cycle précédent, la cellule U de génération de retenue soit la même ou bien une cellule de poids inférieur. Ainsi, le délai de propagation de la retenue dans la ligne à retard formée par l'additionneur 1 est identique ou croissant d'un cycle à l'autre.

D'un cycle à l'autre du signal d'horloge de référence CLKR, la commande du registre 2 permet de choisir le nombre de cellules U de l'additionneur 1 à rajouter dans le parcours de la retenue générée. Ce nombre de cellules U à rajouter dans le parcours est appelé décalage.

Lorsque le décalage souhaité fait que la nouvelle position de génération de retenue dépasse l'extrémité de l'additionneur 1 , c'est-à-dire se trouve au-delà de la cellule U de poids le plus faible, le registre 2 n'est pas autorisé à charger la nouvelle commande. Au moins un cycle de repos de l'additionneur 1 est alors imposé durant lequel aucune retenue nouvelle n'est créée ni propagée. Un tel cycle de repos est illustré sur le chronogramme de la figure 5, où le registre 2 ne contient aucune commande et ainsi ne fait générer par l'additionneur 1 aucune retenue entre les temps t c5 e t t c io- Dans le cycle du signal d'horloge de référence CLKR qui suit le repos, le registre 2 est de nouveau autorisé à charger une commande M. Cette nouvelle commande M indique une position de génération de la retenue dans n'importe laquelle des cellules Ui , U 2 UK-I , UK puisque, du fait du ou des cycles de repos, la durée minimale souhaitée pour le niveau logique courant du signal d'horloge variable CLKV est garantie.

Le nombre minimum requis de cycles de repos cadencés par le signal d'horloge de référence CLKR en cas de dépassement de l'extrémité de l'additionneur 1 dépend de la durée maximale de propagation des retenues dans toute la longueur de l'additionneur 1 et de la valeur de TCLKR. En effet, avant de pouvoir commander à nouveau la génération d'une nouvelle retenue dans la cellule Ui ou l'une de ses voisines proches, il faut impérativement que plus aucune retenue ne soit en circulation dans l'additionneur. Il faut également garantir que le délai entre les fronts du signal à la sortie C de l'additionneur 1 soit acceptable pour la bascule 3 ou tout autre circuit logique de sortie alimenté par la sortie C.

Autant de cycles de repos qu'il y a de fois la valeur de TCLKR dans la durée de propagation maximale dans l'additionneur 1 doivent être imposés. La valeur entière majorante du résultat est prise en compte. Par exemple si l'additionneur 1 a une durée de propagation maximale de 70ns tandis que TCLKR=50ns, alors au moins deux cycles de CLKR de repos doivent être imposés car 70/50=1 ,4.

Le chronogramme de la figure 6 illustre différents exemples de temps de repos en fonction de la valeur relative du délai maximal de propagation d'une retenue dans l'additionneur 1 et de la période TCLKR du signal d'horloge de référence CLKR.

De la valeur du décalage commandé par cycle du signal d'horloge de référence CLKR découlent à la fois le rapport cyclique du signal d'horloge variable CLKV et sa période TCLKV. Le dispositif décrit présente l'avantage que le décalage est programmé, de manière synchrone et au moyen d'un seul signal d'horloge CLKR, dans chaque cycle du signal d'horloge de référence CLKR, hors cycle de repos.

Les nombres successifs chargés dans le registre 2 représentent la position de génération d'une retenue dans ce registre. Si cette position varie vers une (des) cellule de poids plus faibles par rapport au cycle précédent, alors il y a décalage. Les nombres représentatifs de la valeur du décalage, qui induisent des variations de la période TCLKV et du rapport cyclique du signal d'horloge variable CLKV, peuvent être des valeurs déterministes, aléatoires, ou pseudo-aléatoires.

L'indisponibilité durant les cycles de repos de la ligne à retard que constitue l'additionneur 1 fait que le dispositif générateur de signal d'horloge variable décrit présente le plus d'intérêt lorsque le signal d'horloge variable CLKV produit doit varier le plus possible au voisinage et dans la limite d'une fréquence maximale 1/(2xTCLKR), sans besoin d'autres caractéristiques temporelles précises. Le dispositif est dans ce cas d'autant plus intéressant que la dispersion des durées de propagation de la retenue dans et entre les cellules U est importante.

Un autre intérêt important du dispositif est l'absence de besoin de calibration. En effet, la longueur de l'additionneur 1 peut être déterminée sans expérimentation aucune, simplement en se référant à la fiche technique du ou des composants électroniques choisis. Les performances indiquées d'un additionneur permettent d'en déduire sa durée de propagation maximale par cellule. La longueur de l'additionneur 1 est alors choisie en fonction de la période du signal d'horloge de référence CLKR, cette période étant elle-même choisie d'après les performances en fréquence du bloc logique à cadencer.

Du fait du principe de fonctionnement du dispositif, tout bloc logique pouvant être cadencé par une horloge de période TCLKR x 2 peut être cadencé par le signal d'horloge variable CLKV produit, dans la mesure où ce bloc n'a pas de contrainte de signal d'horloge autre que la fréquence maximale de cette dernière et qu'il ne nécessite pas un rapport cyclique différent de 50% à cette fréquence maximale.

Le dispositif représenté à la figure 3 est bâti autour d'un additionneur 1 binaire. Dans ce dernier, chaque cellule U est un additionneur complet de trois bits (« Full Adder » en anglais) qui effectue l'addition de trois valeurs chacune sur 1 bit. Cet additionneur est celui que l'on trouve couramment dans les circuits intégrés FPGA.

L'entrée CN de l'additionneur 1 est alimentée par la valeur constante 0' ; afin de ne pas générer de retenue par cette entrée.

L'entrée P de l'additionneur 1 a ses K bits mis à Ί ', ce qui permet ainsi à chacune des cellules U de propager sur sa sortie de retenue CO la retenue entrante reçue sur son entrée Cl ou de générer une retenue sur cette sortie de retenue CO, selon la valeur de l'entrée G, comme cela ressort de la table de la figure 4.

L'entrée G de l'additionneur 1 est alimentée directement par le registre 2 de largeur K bits. Le registre 2 présente à l'additionneur 1 soit tous ses bits à Ό', soit un bit à Ί ' et tous les autres à Ό'. Le bit à '1 ' est celui qui commande une génération de retenue dans la cellule U de 1 qu'il alimente.

Le registre 2 est alimenté par un registre 4 de largeur K bits. Le registre 4 est un registre à décalage rebouclé sur lui-même et qui contient un seul bit de valeur Ί', tous les autres étant à Ό'. Le registre 4 permet de décaler son contenu d'un certain nombre de bits par cycle du signal d'horloge de référence CLKR, ce nombre de bits étant le décalage souhaité de la position de génération de la retenue dans le cycle suivant du signal d'horloge de référence CLKR (c'est à dire une fois que le registre 2 a capturé le contenu du registre 4).

L'entrée de remise à zéro du registre 2 est connectée à la sortie d'une porte NOR 5. L'une des entrées de la porte NOR 5 reçoit le signal d'horloge de référence CLKR, tandis que son autre entrée est connectée à la sortie d'une bascule 6 de type D. L'entrée d'horloge de la bascule 6 est connectée à la sortie d'une porte inverseuse (NON) 7 à laquelle le signal d ' horloge de référence CLKR est appliqué en entrée, tandis que son entrée de donnée est à un niveau logique Ί '. L'entrée de remise à zéro asynchrone R de la bascule 6 est connectée à la sortie d'une porte ET 8 dont l'une des entrées reçoit le signal d'horloge de référence CLKR tandis que son autre entrée est connectée à la sortie de la bascule 6.

Le registre 2 charge le contenu qui lui est appliqué par le registre 4 sur le front montant du signal d'horloge de référence CLKR qui est appliqué à son entrée d'horloge, puis est remis à zéro sur son entrée R par la porte NOR 5 dont la sortie passe à Ί ' consécutivement au front descendant du signal d'horloge de référence CLKR.

Le signal d'effacement du registre 2 généré par la porte NOR 5 est alors désactivé par la sortie de la bascule 6 qui est passée à Ύ suite au front descendant du signal d'horloge de référence CLKR (transformé en front montant par la porte 7).

Pour le front montant suivant du signal d'horloge de référence CLKR, le registre 2 est alors de nouveau prêt à capturer le contenu du registre 4. En effet, la bascule 6 est effacée (sa sortie est remise à zéro) par la sortie de la porte ET 8, suite au front montant du signal d'horloge de référence CLKR. La bascule D 6 applique donc un niveau Ό' à l'une des entrées de la bascule NOR 5, tandis que l'autre entrée de celle-ci, qui reçoit le signal d'horloge de référence CLKR, est au niveau T. Le rôle de la bascule 6 est simplement de désactiver le signal d'effacement du registre 2 produit par la porte NOR 5, afin que le registre 2 puisse enregistrer un nouveau contenu au front montant suivant du signal d'horloge de référence CLKR.

Un circuit logique 9 de commande synchrone par rapport au signal d'horloge de référence CLKR vérifie à chaque cycle du signal d'horloge de référence CLKR la position du bit à Ί ' dans le registre 4, et commande l'amplitude du décalage. Ce même circuit de commande impose aussi le(s) cycle(s) de repos aux registres 4 et 2 lorsque le décalage souhaité fait que le bit à Ύ passe par le rebouclage du registre 4 sur lui-même. Le repos des registres 4 et 2 est commandé passivement par la non-activation de leur entrée CE représentée sur le schéma, c'est à dire par l'absence de niveau logique 1. L'entrée CE est l'entrée classique d'autorisation de chargement par l'horloge (« Clock Enable » en anglais). L'amplitude du décalage appliqué à chaque cycle dépend du type de variation du signal d'horloge souhaité. Le circuit de commande 9 reçoit ou crée des valeurs selon le résultat souhaité pour le signal d'horloge variable CLKV. Le circuit logique 9 de commande synchrone permet, par exemple, d'assurer un interfaçage avec un microprocesseur ou avec un générateur de nombres aléatoires afin de faire varier la période TCLKV et le rapport cyclique du signal d'horloge variable CLKV de façon aléatoire.

La figure 7 représente un circuit constituant un exemple de réalisation du registre à décalage 4 de la figure 3. Le circuit 4 comprend K multiplexeurs MUX, avec 1 < i < K, dont trois seulement MUX-i , MUX, et MUXK ont été représentés sur le dessin.

Chaque multiplexeur MUX, a, dans l'exemple spécifique de la figure 7, quatre entrées reliées à certains bits de la sortie Q de K bits d'un registre 10. L'entrée de sélection SEL des multiplexeurs MUX, est codée sur deux bits. La valeur de sélection SEL est appliquée aux multiplexeurs MUX par le circuit de commande 9 de la figure 8. Le registre 0 est alimenté par les sorties Di des K multiplexeurs MUXi.

La valeur de sélection 0 de SEL permet de sélectionner le bit Q, de la sortie Q, la valeur de sélection 1 permet de sélectionner le bit Qi -1 ; la valeur de sélection 2 permet de sélectionner le bit Qi-2, la valeur de sélection 3 permet de sélectionner le bit Qi -3 .

Dans cet exemple, la valeur de SEL correspond directement au décalage souhaité pour la prochaine position de génération de retenue dans l'additionneur 1.

L'entrée SEL est commune à tous les multiplexeurs MUX,. Ceci est permis par le fait qu'un seul bit de la sortie Q du registre 10 a la valeur « 1 ». Ce bit sera donc décalé de zéro à trois positions dans le registre 10, et tous les autres bits du registre 10 seront aussi décalés du même nombre de positions, mais il s'agit de bits ayant la valeur Ό'. Après chaque cycle de l'horloge CLKR, donc chaque décalage global du registre 10, il n'y a toujours qu'un seul bit à Ύ dans le registre 10. Le registre 10 s'auto-initialise à la mise en route du dispositif avec à sa sortie Q l'un des bits et un seul à la valeur « 1 », et tous les autres bits à la valeur logique « 0 ». Grâce à cet agencement, le circuit 4 n'a pas besoin d'entrées de données.

La figure 8 représente un circuit constituant un exemple de réalisation du circuit logique de commande synchrone 9 de la figure 3.

Le circuit 9 comprend un registre 11 dont l'entrée ST est connectée à la sortie Q d'un générateur 12 de nombres de deux bits. L'entrée ST indique le décalage souhaité en nombre de cellules U de l'additionneur 1. La sortie Q du registre 1 est connectée à l'entrée SEL du registre à décalage 4, c'est-à-dire à l'entrée SEL de chacun des multiplexeurs MUX-i à MUXK.

La sortie Q du registre 11 est également connectée à l'une des entrées OP1 d'un additionneur binaire 13 dont la sortie C est appliquée à l'entrée d'une porte ET 14. L'autre entrée de la porte ET 14 est connectée à la sortie d'une bascule D 15. La bascule D 15 reçoit en entrée, d'une part le signal d'horloge CLKR, et d'autre part la sortie de l'additionneur 13 inversée par un inverseur 16. La sortie de la porte ET 14 est connectée aux entrées CE du registre 1 et du registre 4, tandis que l'entrée CE du registre 2 est connectée à la sortie de la bascule D 15.

Le circuit 9 est complété par un convertisseur 17 qui convertit un code trois bits en un code deux bits selon une logique combinatoire dont la table de vérité est représentée à la figure 9. Le convertisseur 15 reçoit sur son entrée IN une valeur MPFA qui représente les bits de poids faibles M K- 2, M K- i , M K de la commande M appliquée par le registre 2 à l'additionneur 1. La sortie du convertisseur 17 est connectée à la deuxième entrée OP2 de l'additionneur 13. L'additionneur 13 a pour effet que, lorsque sa sortie de retenue C vaut « 1 », un cycle de repos est imposé au dispositif. Dans le présent exemple de réalisation, l'additionneur 13 est dimensionné pour ne nécessiter qu'un cycle de repos en cas de dépassement de l'extrémité de l'additionneur 1.

Dans l'exemple de la figure 8, le générateur 12 de nombre de deux bits et un compteur binaire. Il comprend un additionneur binaire deux bits 18 dont la sortie est connectée à l'entrée D d'un registre 19 dont la sortie Q codée sur deux bits constitue l'entrée du registre 11. La sortie Q du registre 19 est également connectée à l'une des entrées OP1 de l'additionneur 18 dont l'autre entrée a sa valeur fixée à « 01 ». La sortie Q du générateur 12 est synchronisée sur l'horloge CKR dont le signal est appliqué à l'entrée d'horloge du registre 19. Dans chaque cycle d'horloge, le contenu du registre 19 est incrémenté de la valeur « 1 » qui est la valeur fixe présente sur l'entrée OP2 de l'additionneur 18.

Le circuit 12 générateur de nombres de deux bits peut également être un générateur de nombres aléatoires, un générateur de nombres pseudoaléatoires, une table de correspondance reliée à un compteur pour générer une séquence déterminée de nombres de décalages, un registre commandé par un microprocesseur, etc.

De nombreuses variantes sont possibles par rapport au mode de réalisation de l'invention décrit ci-dessus à titre exemple. C'est ainsi que :

- l'utilisation des fronts du signal d'horloge de référence CLKR peut être inversée dans tout le dispositif, c'est à dire que les fronts descendants sont utilisés en lieu et place des fronts montants, et vice-versa ;

- la ligne à retard peut être constituée par un soustracteur ou un ensemble additionneur-soustracteur combiné, tant que le principe de propagation de retenue est conservé ;

- la ligne à retard peut être d'un autre type, fonctionnant en propageant Ό" comme retenue puis Ί' pour l'effacement de cette retenue ; dans ce cas la bascule 3 utilise le front descendant de la retenue C ;

- la ligne à retard peut être d'un autre type dans lequel la retenue propagée prend la forme d'une succession de '1 ' et '0' ; - la ligne à retard peut fonctionner dans une base différente de 2 ;

- la ligne à retard peut être d'un type propageant une retenue composée de plusieurs bits ;

- les cellules U composant la ligne à retard peuvent ne pas être toutes logiquement identiques ;

- la bascule 3 peut être remplacée par un ensemble de plusieurs bascules et/ou de la logique combinatoire, le tout réalisant la même fonction de basculement de l'état de sortie pour produire le signal d'horloge CLKV ;

- le chemin entre la sortie C de la ligne à retard et la bascule 3 peut inclure de la logique combinatoire ;

- le chemin du registre 2 à la ligne à retard peut inclure de la logique combinatoire.