Brevet FR2504754A1 — publié le 19821029

DISPOSmF SEQUENCEUR A MEMOIRES MORTES La présente invention se rapporte à un dispositif séquenceur à mémoires mortes. On connaît d'après Parotide "A programmable digital waveform generator" de la page 21 de la revue Electronic Engineering de mars 1978 un générateur séquentiel programmable à compteur et mémoire morte. Dans cet article, l'auteur illustre le cas où la fréquence du signal d'horloge est un multiple entier de la fréquence du signal de synchronisation, et où les fronts actifs de ces deux signaux comcident. Dans le cas plus général où le rapport de ces deux fréquences n'est pas un nombre entier, il faut par exemple inhiber l'action du signal d'horloge pendant deux ou plusieurs de ses périodes dans le laps de temps pendant lequel peut survenir un front actif du signal de synchronisation, étant donné que la position de ce front actif du signal de synchronisation est alors variable par rapport à la position des fronts actifs du signal d'horloge. Cette inhibition entraîne une réduction du nombre de périodes utiles du signal d'horloge pour chaque période~ du signal de synchronisation, ce qui peut être gênant et même rédhibitoire dans certains cas où l'on veut obtenir un nombre de périodes utiles égal, ou inférieur de une ou deux unités, à la partie entière du rapport des fréquences des deux signaux précités. La présente invention a pour objet un dispositif séquenceur permettant d'obtenir le maximum possible de périodes utiles du signal d'horloge, qui soit simple et peu encombrant. Le dispositif séquenceur conforme à la présente invention est relié à un générateur de signaux d'horloge et à un générateur de signaux de synchronisation, la fréquence des signaux de ce dernier étant inférieure à celle des signaux du générateur de signaux horloge, et ce dispositif séquenceur comporte une mémoire morte maître et une ou plusieurs mémoires mortes esclaves, ces mémoires comportant chacune un registre de sortie, les entrées d'adressage de toutes les mémoires étant reliées en parallèle à des sorties correspondantes du registre de sortie de la mémoire maître, une autre entrée d'adressage de la mémoire maître étant reliée, par l'intermédiaire d'au moins une bascule bistable, à la sortie du générateur de signaux de synchronisation, L'entrée de signaux d'horloge de la(des) bascule(s) bistable(s) étant reliée(s) à une autre sortie du registre de sortie de la mémoire maître, les entrées de signaux d'horloge de tous les registres de sortie précités étant toutes reliées à la sortie du générateur de signaux d'horloge, les différentes sorties des registres de sortie des mémoires esclaves constituant les sorties du dispositif séquenceur. L'invention sera mieux comprise à la lecture de la description détaillée d'un mode de réalisation pris comme exemple non limitatif et illustré par le dessin annexé dont la figure unique est un bloc-diagramme de ce mode de réalisation. Le dispositif séquenceur 1 représenté sur le dessin est par exemple destiné à produire les signaux séquentiels de commande nécessaires au fonctionnement d'un récepteur multifréquences de central téléphonique numérique, mais il est bien entendu que ce dispositif peut être utilisé dans de nombreuses autres applications. Le dispositif séquenceur 1 comporte une mémoire morte "maître" 2 chargée d'assurer la gestion d'un certain nombre de phases du séquenceur, et plusieurs mémoires mortes "esclaves" 3, pour produire des signaux séquentiels différents. Ces mémoires peuvent être toutes identiques, ou bien différentes. Dans le cas représenté, toutes les mémoires sont identiques, à registre de sortie incorporé, et c'est pourquoi les registres de sortie de toutes les mémoires ont été représentés à l'intérieur du bloc fonctionnel de mémoire correspondant. Plusieurs sorties du registre de sortie 4 de la mémoire 5 par exemple six sorties pour l'application précitée, sont reliées par un bus d'adressage 5 à des entrées d'adressage correspondantes de toutes les mémoires maître et esclaves. Les entrées CK de signaux d'horloge du registre de sortie 4 de la mémoire 2 et des registres de sortie 6 de toutes les mémoires 3 sont reliées ensemble à une borne 7 qui est elle-même reliée à un générateur de signaux d'horloge (non représenté). Un générateur de signaux de synchronisation (non représente9 est relié à une borne 8. La borne 8 est reliée à l'entrée d'une première bascule bistable 9 dont la sortie est reliée à l'entrée d'une deuxième bascule bistable 10. La sortie de la bascule 10 est reliée à une entrée d'adressage inutilisée 11 de la mémoire 5 par exemple l'entrée de poids le plus élevé. Une sortie inutilisée 12 du registre de sortie 4 de la mémoire 2 est reliée aux entrées de signaux d'horloge CK des deux bascules 9 et 10. Les sorties des registres de sortie 6 des mémoires 3 constituent les sorties du dispositif séquenceur 1 et sont reliées aux différents dispositifs utilisateurs (non représentés). On va maintenant expliquer le fonctionnement du dispositif séquenceur décrit å-dessus. La partie entière du rapport entre la fréquence du signal d'horloge arrivant sur la borne 7 et la fréquence du signal de synchronisation arrivant sur la borne 8 est égale au nombre maximal de transitions actives du signal d'horloge agissant en particulier sur le registre de sortie 4 de la mémoire 2. Or ces transitions actives déterminent un nombre correspondant d'adresses transmises par le bus 5 à toutes les mémoires 2 et 3 pendant une période du signal de synchronisation. A chacune de ces adresses un ou plusieurs signaux de sortie des mémoires 3 peuvent changer d'état pour fournir divers signaux de commande ayant des formes dans le genre de celles représentees sur la figure 2 du susdit article.Par conséquent, ladite partie entière du rapport des fréquences est égale au nombre maximal de pas du programme de commande de ltensemble des signaux de commande produits par le dispositif séquenceur 1. Les adresses correspondant aux pas de programme réellement utilisés seront appelées adresses utiles, par opposition aux adresses inutilisées dont le nombre est égal à la différence entre le nombre total d'adresses existant dans le circuit intégré de mémoire employé, et le nombre d'adresses utiles. La mémoire maître 2 est programmée d'une part pour fournir sur ses sorties reliées au bus 5, à partir d'une adresse déterminée par le bus d'adressage S, L'adresse immédiatement suivante. Ainsi, par exemple si la configuration d'adressage des entrées de la mémoire 2 est AD, la mémoire 2 fournit en sortie l'adresse AD+1. De cette façon, on a réalisé un compteur qui s'incrémente d'une unité à chaque front actif du signal arrivant par la borne 7 sur l'entrée de signal d'horloge du registre 4 de la mémoire 2.La mémoire 2 est d'autre part programmée pour fournir sur sa sortie 12, reliée par l'intermédiaire du registre 4, aux entrées CK des bascules 9 et 10, un second signal d'ordre généré en même temps ou avant le dernier pas de programme d'adressage de toutes les mémoires défini cidessous, et un premier signal d'ordre précédant ledit second signal d'ordre d'un temps supérieur ou égal à T. Ce temps T est le temps au bout duquel il n'y a pratiquement plus aucun risque d'état instable à la sortie de la bascule 9 lorsque le front actif du signal de synchronisation apparaît en même temps que le front actif du signal appliqué sur l'entrée CK de cette bascule (ce phénomène est bien connu sous le nom anglais de "glitch'). Pour les bascules utilisées actuellement, en technologie Schottky, des expériences ont montré que ce phénomène d'instabilité ne durait pratiquement jamais plus de 20 ns. Toutefois, afin d'exclure avec une certitude quasi absolue l'éventualité de rapparition d'un tel phénomène, on peut choisir le temps T supérieur d'au moins un ordre de grandeur à cette durée déterminée expérimentalement et théoriquement (voir par exemple l'article de IVOR CATT dans IEEE Transactions on electronic computers de février 1965, pages 108 à 110), par exemple 200 à 400 ns.Ainsi, si ledit premier signal d'ordre arrive à l'entrée CK de la bascule 9 simultanément avec l'application d1un front actif du signal de synchronisation à l'entrée de données de la bascule 9, le "glitch" à la sortie de la bascule 9 s'achève avant l'arrivée dudit second signal d'ordre qui trarsfère donc un état stable (s'il n'y a pas eu de "glitch') ou déjà stabilisé (s'il y a eu "glitch') de - la sortie de la bascule 9 à la sortie de la bascule 10, et donc à l'entrée d'adressage 1 1 de la mémoire 2. En outre, la mémoire 2 est programmée de façon à fournir une séquence de pas de programmée, sur ses sorties reliées par l'intermédiaire du registre 4 au bus 5, cette séquence se présentant sous forme d'une suite d'adresses. Cette programmation est simplement réalisée en mémorisant à chaque adresse de la mémoire une donnée égale à la valeur de l'adresse immédiatement suivante : à l'adresse AD, on mémorise la valeur AD+I.La remise à zéro de la séquence, à l'adresse zéro par exemple, se fait soit lorsque le signal à la sortie de la bascule 10 a une valeur déterminée et lorsque simultanément la dernière adresse utile de'la séquence se présente à l'entrée de la mémoire 2, soit, si le signal à la sortie de la bascule 10 n'a pas ladite valeur déterminée, après incrémentation d'une adresse supplé- mentaire après ladite dernière adresse utile. Le reste de la séquence se déroule dans l'ordre croissant des adresses, chaque front actif du signal d'horloge appliqué sur la borne 7 transférant, par le bus S, à l'entrée de toutes les mémoires, et en particulier de la mémoire 5 une adresse supérieure d'une unité à l'adresse précédente.En plus, on mémorise dans la mémoire 2 à deux adresses apparaissant, au cours du déroulement normal de la séquence, à des instants séparés par un laps de temps au moins égal audit temps T, une valeur déterminée d'une donnée supplé- mentaire qui est transmise par la sortie 12 du registre 4 aux entrées CK des bascules 9 et 10. A toutes les autres adresses utiles, cette donnée supplémentaire a la valeur complémentaire. Ainsi, par exemple si le signal appliqué en 8 a une fréquence de 256 kHz et si celui appliqué en 7 a une fréquence de 12 MHZ, le rapport de ces fréquences est de 46,87S. La partie entière de ce rapport est égale à 46. On peut donc réaliser un dispositif séquenceur à 46 pas de programme au maximum. Si l'on utilise tous ces 46 pas, les adresses du programme seront numérotées de l'adresse zéro à l'adresse 45. On suppose en outre que l'on doit avoir un zéro à la sortie de la bascule 10 pour effectuer la remise à zéro de la séquence et que les bascules 9 et 10 changent d'état sur un front montant de signal d'horloge.En plus des 46 adresses utiles, on a besoin d'une adresse supplémentaire pour commander la remise à zéro de la séquence lorsque le signal à la sortie de la bascule 10 n'a pas ladite valeur déterminée, comme précisé ci-dessus. Pour obtenir 47 adresses, il faut utiliser une mémoire à six fils d'adresses (26 = 64, alors que 2S = 32 ne suffit pas) et on utilisera un fil d'adresse de plus pour la donnée disponible à la sortie de la bascule 10, ce qui fait que l'on utilise en réalité 94 positions d'adresses. De préférence, on utilise une mémoire standard à huit fils d'adresse. Bien entendu, toutes les positions d'adresses de cette mémoire ne seront pas occupées, mais cela importe peu étant donné le prix très faible d'une telle mémoire. A chaque position d'adresse, on mémorise l'adresse suivante en utilisant six données, et on mémorise à la dernière adresse utile, c'est-à-dire à l'adresse 45 dans le cas présent, ainsi qu'à l'adresse immédiatement suivante, c'est-à-dire à l'adresse 46, les données correspondant à l'adresse zéro.En outre, on utilise une septième donnée pour fournir des signaux d'horloge aux bascules 9 et 10. Dans le cas présent, la septième donnée est égale à "1" à l'adresse 45 (c'est-à-dire à la dernière adresse utile) et à l'adresse 41 par exemple. En effet, l'adresse 45 est atteinte 333 ns après l'adresse 41 (la période du signal d'horloge étant de 83,3 ns), ce qui est nettement supérieur audit temps T, et il n'y a donc pas de risque de transfert de faux état de la bascule 9 à la bascule 10 par suite du "glitch" éventuel à la sortie de la bascule 9, et donc aucun risque de faux adressage de la mémoire 2. A toutes les autres adresses, la septième donnée est égale à "0". A la mise sous tension du dispositif de l'invention, ou après toute interruption parasite l'adressage de la mémoire 2 est quelconque et n'est pas forcément en "synchronisme" avec le signal de synchronisation appliqué sur la borne 8, c'esta'-dire que si l'on extrapolait la séquence d'adressage jusqu'à la dernière adresse utile, celle-ci n'arriverait pas forcément juste avant ou juste après le passage à zéro du signal à la sortie de la bascule 10, dans les limites d'une zone de fluctuation définie cidessous. S'il y a synchronisme, la séquence entamée à la mise sous tension se poursuit jusqu'à la remise à zéro que s'effectue dans une certaine zone de fluctuation autour d'une certaine position d'équilibre, de la façon expliquée ci-dessous, et le fonctionnement normal du dispositif séquenceur est aussitôt engagé. S'il n'y a pas synchronisme, deux cas peuvent se produire: la dernière adresse utile est atteinte, au cours de la séquence initiale engagée à la mise sous tension, soit avant le passage à zéro du signal à la sortie de la bascule 10, soit plus d'un pas entier après ce passage à zéro. Dans le premier cas, un "1" est présent à la sortie de la bascule 10 lorsque l'adresse 45 est fournie par le bus 5. Dans ce cas, la mémoire 2 fournit sur ses sorties l'adresse 46. Dès que l'adresse 46 est présentée par le bus 5, la mémoire 2 fournit sur ses sorties l'adresse zéro. A partir de cette adresse zéro, la séquence d'adressage se poursuit normalement. Si à la fin de cette séquence l'adresse 45 est atteinte sans qu'il y ait un "0" à la sortie de la bascule 10, la mémoire 2 fournit encore l'adresse 46 sur ses sorties.Ainsi, la séquence comporte 47 adresses, ctest-à-dire qu'elle dure un peu plus longtemps qu'une période du signal de synchronisation, et il y a donc décalage de la séquence par rapport à ce signal de synchronisation dans le sens d'une diminution de l'avance du début de cette séquence par rapport à la transition "1" vers "0" de ce signal d'horloge.A chaque période du signal de synchronisation, cette avance se réduit d'un pas jusqu'à ce qu'un "0" soit présent à la sortie de la bascule 10 lorsque l'adresse 45 se présente à l'entrée de la mémoire 2. I1 y â alors remise à zéro tout de suite après l'adresse 45,et la séquence à la fin de laquelle il y aura eu cette remise à zéro aura eu 46 pas, c'esta'-dire qu'elle aura duré un peu moins longtemps que la période du signal de synchronisation (qui dure 46,875 fois la valeur du pas de la séquence, comme précisé ci-dessus).Le début de la séquence suivante se déplacera donc dans le sens contraire du sens des décalages précédents, c'est-à-dire dans le sens d'une tendance à l'augmentation de l'avance du début de la séquence par rapport à ladite transition "I" vers "0". Le dispositif séquenceur entamera alors un processus de fluctuations autour d'une position d'équilibre, processus décrit ci-dessous, dans la discussion du second cas. Dans le second cas précité, c'est-à-dire lorsque la dernière adresse utile est atteinte plus d'un pas entier après le passage à "0" du signal à la sortie de la bascule 10, à la fin de la partie de séquence ou séquence entière initiale engagée à la mise sous tension du dispositif séquenceur, la séquence initiale se poursuit normalement, et lorsque l'adresse 45 se présente à l'entrée de la mémoire 5 un "0" est présent, par hypothèse, à la sortie de la bascule 10, donc la mémoire 2 présente aussit8t sur ses sorties l'adresse zéro, et une seconde séquence se déroule. Cependant, étant donné que ladite séquence initiale a 46 pas, sa durée est légèrement inférieure à la période du signal de synchronisation.Par conséquent, la fin de cette séquence initiale se produit un peu plus près du passage à "O" du signal de synchronisation que son début (réel si l'adresse zéro s'est présentée juste à la mise sous tension, ou théorique dans le cas contraire). A la fin de la deuxième séquence, si un "Q" est toujours présent à la sortie de la bascule 10, la remise à zéro se produit juste après l'adresse 45, et la fin de cette deuxième séquence se rapproche encore un peu du passage à "O" du signal de synchronisation. Ce processus de décalage de la séquence se poursuit jusqu'à ce qu'un "1" se présente à la sortie de la bascule 10 pour une séquence (S). La remise à zéro ne se fait alors qu'après l'adresse 46, et la séquence (S) a alors 47 pas, c'est-à-dire qu'elle dure un peu plus longtemps que la période du signal de synchronisation. Par conséquent, la fin de cette séquence (S) se décale en sens contraire des fins de séquences précédentes, ce qui fait qu'à la fin de la séquence suivante (S+1) un 0" est présent à la sortie de la bascule 10 à l'apparition de son adresse 45.Cette séquence (S+1) dure donc un peu moins longtemps que la période du signal de synchronisation, et sa fin se décale dans le même sens que les fins des séquences précédant la séquence (S). La fin de la séquence (S+2), et éventuellement d'une ou de deux autres séquences suivantes se décalent également dans le même sens que la fin de la séquence (S+1) jusqu'à ce que pour une des séquences suivantes, par exemple la séquence (S+4), un "1" soit présent à la sortie de la bascule 10 à l'apparition de l'adresse 45, ce qui fait que le sens du décalage de la fin des séquences s inverse, et. ainsi de suite on observe des inversions successives du sens du décalage des fins de séquences. L'instant de remise à zéro des séquences fluctue donc autour d'une position d'équilibre située, dans le cas pris en exemple, un temps T après le passage à "O" du signal de synchronisation, l'amplitude maximum crête à crête des fluctuations étant d'une période du signal d'horloge. Bien entendu, ladite position d'équilibre peut être déplacée, par sauts égaux à une période du signal d'horloge, au gré de l'utilisateur en changeant dans la mémoire 2 la programmation de ladite septième donnée de manière correspondante. il est également bien entendu que si le rapport des fréquences des signaux d'horloge et de synchronisation est un nombre entier, la synchronisation est atteinte, à la mise sous tension du dispositif séquenceur, soit aussitôt si un "0" est disponible à la sortie de la bascule 10 à la présentation de la dernière adresse utile sur le bus 5 soit après une ou plusieurs séquences comportant un pas supplémentaire dès que cette condition est remplie. La position de l'instant de remise à zéro par rapport à la transition vers "0" du signal de synchronisation est en général différente pour ces deux cas. Dès que la synchronisation est atteinte, l'instant de remise à zéro occupe une position fixe par rapport au signal e synchronisation. Le fonctionnement des mémoires 3 est connu en soi d'après le susdit article de la revue Electronic Engineering, ces mémoires étant adressées par les adresses se présentent sur le bus 5, et présentant sur leurs différentes sorties différents signaux de commande tels que ceux- représentés dans cet article. En Conclusion, le dispositif séquenceur conforme à l'invention est autosynchronisant et permet d'obtenir un nombre maximal de pas de séquence. REVENDICATIONS 1. Dispositif séquençeur à mémoires mortes, relié à un générateur de signaux d'horloge et à un générateur de signaux de synchronisation, la fréquence des signaux de ce dernier étant inférieure à celle des signaux du générateur de signaux d'horloge, caractérisé par le fait qu'il comporte une mémoire morte maître (2) et une ou plusieurs mémoires mortes esclaves (3), ces mémoires comportant chacune un registre de sortie (4, 6), les entrées d'adressage de toutes les mémoires étant reliées en parallèle (5) à des sorties correspondantes du registre de sortie de la mémoire maître (4), une autre entrée d'adressage (11) de la mémoire maître étant reliée, par l'intermédiaire d'au moins une bascule bistable (9,10), à la sortie du générateur de signaux de synchronisation (3), l'entrée de signaux d'horloge de la(des) bascules bistable(s) étant reliée(s) à une autre sortie (12) de la mémoire maître, les entrées de signaux d'horloge de tous les registres de sortie précités étant toutes reliées à la sortie du générateur de signaux d'horloge (7), les différentes sorties des registres de sortie des mémoires esclaves constituant les sorties du dispositif séquenceur. 2. Dispositif séquenceur selon la revendication 1, caractérisé par le fait que dans la mémoire maître, à chaque adresse utile, on mémorise une donnée égale à l'adresse immédiatement suivante, cette adresse suivante étant l'adresse zéro lorsque l'adresse utile en question est la dernière adresse utile ainsi que l'adresse qui la suit immédiatement dans l'ordre des adresses. 3. Dispositif séquenceur selon la revendication 2 et comportant une seule bascule bistable reliée à la sortie du générateur de signaux de synchronisation, caractérisé par le fait que dans la mémoire maître on mémorise une donnée supplémentaire qui a une valeur déterminée pour une adresse utile, et la valeur complémentaire pour toutes les autres adresses utiles. 4. Dispositif séquenceur selon la revendication 5 et comportant deux bascules bistables reliées en cascade à la sortie du générateur de signaux de synchronisation, caractérisé par le fait que dans la mémoire maître on mémorise une donnée supplémentaire qui a une valeur déterminée pour deux adresses utiles, et la valeur complémentaire pour toutes les autres adresses utiles. 5. Dispositif séquenceur selon la revendication 4, caractérisé par le fait que lesdites deux adresses utiles sont distantes, dans la séquence de signaux produite par le dispositif séquenceur, d'un temps T au moins égal au temps au bout duquel il n'y a pratiquement plus aucun risque d'état instable à la sortie de la première bascule bistable lorsque celle-ci reçoit simultanément une transition active sur son entrée de signaux d'horloge et une transition active dudit signal de synchronisation. 6. Dispositif séquenceur selon la revendication 5, caractérisé par le fait que ledit temps T est de 200 à 400 ns pour des bascules bistables en technologie Schottky.