CH689959A5 - Automate insensible aux délais d'horloge. - Google Patents

Automate insensible aux délais d'horloge. Download PDF

Info

Publication number
CH689959A5
CH689959A5 CH238795A CH238795A CH689959A5 CH 689959 A5 CH689959 A5 CH 689959A5 CH 238795 A CH238795 A CH 238795A CH 238795 A CH238795 A CH 238795A CH 689959 A5 CH689959 A5 CH 689959A5
Authority
CH
Switzerland
Prior art keywords
flip
clock
clock signal
flop
flops
Prior art date
Application number
CH238795A
Other languages
English (en)
Inventor
Jean-Marc Masgonty
Original Assignee
Suisse Electronique Microtech
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suisse Electronique Microtech filed Critical Suisse Electronique Microtech
Publication of CH689959A5 publication Critical patent/CH689959A5/fr

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells

Landscapes

  • Electronic Switches (AREA)
  • Static Random-Access Memory (AREA)

Description


  
 



  La présente invention concerne très généralement les circuits logiques qui sont connus sous le nom d'automates ou sous l'appellation anglaise de "finite state machines" et qui sont les constituants de tous les systèmes logiques intégrés. La présente invention concerne plus particulièrement des automates insensibles aux délais d'horloge. 



  La fig. 1 est le schéma de principe d'un automate. Un automate est prévu pour recevoir un mot binaire par son entrée 3 et pour fournir un autre mot binaire par sa sortie 5. Lorsqu'on parle du comportement d'un automate, on s'intéresse donc, en fait, à la valeur qu'il fournit en sortie en fonction du mot logique qu'il a reçu en entrée. Dans un automate, la valeur fournie en sortie est fonction non-seulement du mot logique fourni en entrée mais également de l'état dans lequel se trouve l'automate à un instant donné. 



  Les éléments formant l'automate de la fig. 1 sont de deux types. Les éléments référencés 7 et 9 sont respectivement un premier et un deuxième modules logique combinatoire alors que l'élément référencé il est un module de mémoire. Un module de combinaison logique est formé d'un assemblage de portes logiques qui peut avoir une configuration tout à fait quelconque. La fonction d'un module de combinaison logique est de fournir un mot logique de sortie en réponse à un mot logique reçu en entrée. Précisons que, dans le cas le plus simple, les modules de combinaison logique peuvent se réduire à des connexions. En particulier, un registre à décalage est un exemple d'automate ne comportant pas de modules de combinaison logique. 



  Le module de mémoire 11 se subdivise en un certain nombre de cellules prévues chacune pour enregistrer la valeur d'une variable binaire. La fonction du module de mémoire d'un automate est de conserver un mot logique d'un  instant donné à un autre. Pour ce faire, chacune des cellules d'un module de mémoire est normalement reliée de manière à recevoir un signal d'horloge 15 pour commander des opérations de lecture et d'écriture dans cette cellule. 



  Le mot logique lu dans la mémoire peut soit être fourni directement comme signal de sortie de l'automate, soit être fourni à l'entrée d'un deuxième module de combinaison logique 9 dont la sortie constitue alors la sortie de l'automate. 



  On voit encore sur la fig. 1 qu'une ligne de rétroaction 13 relie le module de mémoire 11 à l'entrée du module de combinaison logique 7. Il est en effet nécessaire dans les automates que le mot logique lu dans le module de mémoire 11 soit fourni en retour à l'entrée du module de combinaison logique 7 parallèlement au mot logique reçu par l'entrée 3 de l'automate, puisque la valeur fournie en sortie est fonction non seulement du mot logique fourni en entrée mais encore de l'état dans lequel se trouve l'automate à un instant donné.

   On comprendra que dans ces conditions, chaque fois que le signal d'horloge commande une opération d'écriture dans la mémoire, cette dernière enregistre un mot logique qui est fonction d'une part du mot logique reçu en entrée de l'automate et d'autre part d'un mot logique qui avait été enregistré dans la mémoire lors de l'opération d'écriture précédente. 



  Dans les automates connus, les cellules de la mémoire 11 sont constituées par des bascules, les différentes bascules formant ensemble un registre qu'on appelle un registre d'état. On désigne, de plus, l'état de chacune des bascules par l'expression variable d'état. 



  Les bascules sont des éléments mémoire conçus pour enregistrer la valeur du signal binaire qui leur est fourni en entrée chaque fois qu'ils reçoivent un signal de commande à cet effet. La valeur enregistrée par une bascule est disponible en permanence pour être lue en sortie. 



  Le signal d'horloge est fourni aux bascules par un circuit d'horloge qui peut comporter de multiples embranchements. Dans un circuit présentant une certaine complexité, les signaux d'horloge appliqués aux entrées de commande des différentes bascules peuvent présenter, les uns par rapport aux autres, des retards différents qui entraînent une désynchronisation des différentes bascules. Ce phénomène est connu sous l'appellation anglaise de "clock skew". 



  Ce "clock skew" ou délais d'horloge peut engendrer des défauts de fonctionnement de l'automate. Un exemple de désynchronisation des bascules est donné par le graphe temporel de la fig. 2b qui décrit, à titre d'exemple, le comportement d'un automate comportant deux bascules comme celui représenté schématiquement à la fig. 2a. 



  Dans l'exemple de la fig. 2a, l'automate ne comporte qu'un seul module de combinaison logique qui correspond au module 7 de la fig. 1. Le module de mémoire 11 représenté à la fig. 2a est prévu pour enregistrer un mot logique de deux bits, il ne comporte donc que deux bascules référencées respectivement 16 et 17. Les deux bascules représentées dans cet exemple sont des bascules de type D bien connues de l'homme du métier. Les bascules D 16 et 17 sont toutes deux reliées à un circuit d'horloge 15 fournissant un signal périodique rectangulaire. A chaque flanc montant du signal d'horloge, chacune des bascules charge en mémoire la valeur qui est fournie sur son entrée D. La valeur stockée dans la bascule est disponible pour être lue par la sortie Q. Un signal d'horloge émis par l'horloge 15 à un temps to atteindra la bascule 16 après un délai dl et la bascule 17 après un délai d2.

   On voit sur le diagramme que d2 et plus long que d1. La première bascule 16 enregistre donc une nouvelle valeur avant la deuxième bascule 17. Si le "clock skew" ou autrement dit le temps d2-d1 est suffisamment grand pour que le signal Q1 en sortie de la bascule 16 ait le temps de se propager par la boucle 13 à travers tout le  système combinatoire avant que le délai d2 ne soit écoulé, le nouvel état de la bascule 17 sera déterminé en prenant en compte le nouvel état de la bascule 16 au lieu de son ancien état. Dans ces conditions, les valeurs fournies en sortie de l'automate seront bien évidemment inutilisables. 



  Les délais d'horloge peuvent également provoquer d'autres problèmes. En effet, un système logique complexe comprend le plus souvent une pluralité d'automates interconnectés, et en particulier des automates reliés en série. Dans ces conditions, les valeurs fournies aux entrées de certains des automates peuvent être des valeurs qui ont été fournies par d'autres automates connectés en amont. On comprendra, qu'avec une telle configuration, si un décalage existe entre les signaux d'horloge fournis à l'automate qui fournit les valeurs logiques et les signaux d'horloge fournis à l'automate qui reçoit les valeurs logiques, le nouvel état de l'automate qui reçoit les valeurs logiques risque d'être déterminé en prenant en compte le nouvel état de l'automate qui fournit les valeurs logiques au lieu de son ancien état.

   Nous sommes donc en présence d'un problème identique à celui que nous avions déjà décrit en relation avec un seul automate comportant une ligne de rétro-action. 



  Un but de la présente invention est de remédier aux problèmes liés aux délais d'horloge qui viennent d'être décrits. 



  A cet effet, la présente invention a pour objet un automate comportant des moyens de mémoire formés d'une pluralité de cellules de mémoire, chacune desdites cellules de mémoire étant reliée à une branche d'un circuit d'horloge pour recevoir dudit circuit d'horloge un signal d'horloge cyclique pour commander des opérations d'écriture et de lecture dans ladite cellule de mémoire, ledit circuit d'horloge comportant en outre plusieurs branches et les délais de propagation dudit signal d'horloge dans lesdites branches étant inégaux, ledit automate étant caractérisé en ce que lesdites cellules de  mémoire sont prévues pour, après chaque opération d'écriture, n'autoriser une opération de lecture qu'au bout d'un laps de temps prédéterminé,

   ledit laps de temps étant au moins sensiblement égal à la différence entre les délais de propagation dans lesdites branches et inférieur à un cycle d'horloge. 



  Grâce à ces caractéristiques le risque que le nouvel état enregistré par certaines des cellules de mémoire d'un automate soit déterminé en prenant en compte le nouvel état d'une autre cellule de mémoire au lieu de l'ancien état de cette cellule de mémoire est éliminé. 



  D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés dans lesquels: 
 
   la fig. 1 est le schéma de principe d'un automate; 
   la fig. 2a est une représentation schématique d'un exemple particulier d'automate dans lequel les moyens de mémoire sont constitués par deux bascules D; 
   la fig. 2b représente un diagramme temporel de l'état des bascules de l'automate de la fig. 2a; 
   la fig. 3a représente un premier mode de réalisation d'un automate selon la présente invention dans lequel les moyens de mémoire sont constitués par deux bascules D; 
   la fig. 3b représente un diagramme temporel de l'état d'une bascule de l'automate de la fig. 3a ainsi que de l'état de l'interrupteur associé à la sortie de cette bascule;

   
   la fig. 4 représente une première variante d'une cellule de mémoire d'un automate selon la présente invention; 
   la fig. 5 représente une deuxième variante d'une cellule de mémoire d'un automate selon la présente invention. 
 



  La fig. 3a représente de façon très schématique l'automate de la fig. 2a modifié conformément à un mode de réalisation de la présente invention. Selon ce premier mode de réalisation, on a ajouté un interrupteur au niveau de la sortie Q de chacune des bascules D. Ces deux interrupteurs référencés respectivement 19 et 20 sont connectés pour recevoir les signaux d'horloge qui commandent les bascules 16 et 17. Chacun de ces interrupteurs est prévu pour s'ouvrir lorsque le flanc montant du signal d'horloge rectangulaire provoque le chargement d'une nouvelle valeur dans la bascule et pour se refermer au flanc descendant du signal d'horloge. 



  La fig. 3b est un diagramme temporel décrivant, en fonction d'un signal d'horloge CK, l'évolution de l'état de la sortie Q d'une bascule D 16 ou 17 de l'automate de la fig. 3a ainsi que l'état de l'interrupteur 19 ou 20 qui est associé à cette bascule. Grâce à l'interrupteur en sortie de chaque bascule, l'état lu par une autre bascule située en aval de la première bascule ne correspond pas à la trace Q du diagramme temporel de la fig. 3b mais à la trace Q min . Dans ces conditions, il n'est pas possible que le nouvel état enregistré par la première bascule soit lu avant un délai d'une demi-période d'horloge. Le décalage temporel entre deux horloges pouvant facilement être limité à quelque chose de sensiblement inférieur à une demi-période d'horloge, l'automate selon l'invention, qui vient d'être décrit, remédie complètement aux problèmes de l'art antérieur mentionnés plus haut.

   Précisons que, contrairement à ce que l'on pourrait craindre à première vue, le signal Q min  restera en général bien défini après l'ouverture de l'interrupteur. En effet, chaque bascule en aval de l'interrupteur présente une certaine capacité parasite au niveau de son entrée D. Cette capacité parasite suffit pour conserver l'ancien état du signal jusqu'à la prochaine fermeture de l'interrupteur. 



  La fig. 4 décrit à titre d'exemple un mode de réalisation d'un des interrupteurs 19 ou 19 min  de la     fig.  3a. Dans un mode particulier de réalisation de la présente invention, on remplacera chacune des cellules de mémoire d'un automate de l'art antérieur par un élément de circuit comme celui qui est représenté à la fig. 4. 



  Dans l'élément de circuit de la fig. 4, l'interrupteur, référencé 19, qui est disposé sur la sortie Q de la bascule 17 est constitué par une porte inverseuse "tri-state". Une telle porte, connue de l'homme du métier, présente une haute impédance lorsque le signal sur son entrée de commande est à son niveau bas se comporte comme un inverseur lorsque le signal sur son entrée de commande est à son niveau haut. 



  On voit sur la fig. 4 que la porte inverseuse "tristate" 19 est reliée au circuit d'horloge 15 par l'intermédiaire d'un inverseur référencé 21. Grâce à la présence de l'inverseur 21, l'interrupteur formé par la porte "tri-state" s'ouvre à l'instant du flanc montant du signal d'horloge et se ferme sur le flanc descendant du signal d'horloge. 



  On voit encore sur la fig. 4 qu'au lieu de relier directement l'entrée de commande de la bascule D 17 au circuit d'horloge 15, on a intercalé deux inverseurs en série, référencés 21 et 22, entre le circuit d'horloge 15 et la bascule 17. La fonction cette paire d'inverseurs 21 et 22, montés en série, est d'introduire un retard dans le signal d'horloge destiné à la bascule D 17 de manière à assurer que cette bascule ne commute pas avant la porte "tri-state" 19. 



  On voit encore sur la fig. 4 un condensateur référencé 25 connecté entre l'entrée D de la bascule 17 et la masse. La fonction de ce condensateur est de conserver dynamiquement la valeur fournie à l'entrée de la bascule 17 lorsque les interrupteurs des bascules situées en amont de ladite bascule sont ouverts. Comme nous l'avons déjà dit, dans la plupart des cas pratiques la fonction du condensateur 25 pourra être assurée par la capacité parasite au niveau de l'entrée D de la bascule 17. 



  La porte tri-state 19 est du type "inverseuse" et sa réalisation comporte moins de transistors qu'une porte tri-state "non-inverseuse". Néanmoins, il est clair que l'on peut utiliser cette dernière à la place de la porte "tri-state" 19 pour autant que la sortie Q de la bascule 17 soit utilisée au lieu de la sortie Q. 



  La fig. 5 représente un élément de circuit formé de trois registres à verrouillage qui sont connectés de façon à reproduire le comportement d'une bascule D équipée d'un interrupteur comme celle qui est représentée à la fig. 4. Dans un autre mode particulier de réalisation de la présente invention chacune des bascules d'un automate de l'art antérieur sera remplacée par un élément de circuit comme celui qui est représenté à la fig. 5. 



  Les registres à verrouillage sont des composants logiques bien connu de l'homme du métier. Comme les bascules D décrites plus haut, ils comportent une entrée D pour le signal, une entrée de commande et une sortie Q pour le signal. Dans un registre à verrouillage, lorsque le signal de commande est à son niveau haut, état déverrouillé, le signal fourni par la sortie Q est égal au signal reçu par l'entrée D, et lorsque le signal de commande passe à son état bas, état verrouillé, le registre continue de fournir par sa sortie Q la valeur présente sur son entrée au moment du passage au niveau haut du signal de commande. 



  L'élément de circuit de la fig. 5 comporte trois registres à verrouillage référencés respectivement 27, 29 et 31. Comme on peut le voir sur la figure, les trois registres 27, 29 et 31 sont connectés en série et ils ont chacun leur entrée de commande reliée au circuit d'horloge. Les entrées de commande du premier et du troisième registre 27 et 31 sont des entrées inverseuses alors que l'entrée de commande du deuxième registre 29 est une entrée non-inverseuse. Dans ces conditions, les registres 27 et 31 se verrouillent à l'instant du flanc montant du signal d'horloge alors que le registre 29 se  verrouille à l'instant du flanc descendant du signal d'horloge. 



  Sur la base des remarques ci-dessus, on comprendra que puisque, d'une part, le premier et le troisième registre se verrouillent au moment du flanc montant du signal d'horloge et que, d'autre part, le deuxième registre se déverrouille à ce même moment, le premier registre mémorise la nouvelle valeur fournie en entrée alors que le troisième registre mémorisera la valeur enregistrée par le premier registre au cycle précédant. Après une demi-période du signal d'horloge le premier et le troisième registre se déverrouillent alors que le deuxième registre se verrouille. Dans ces conditions la nouvelle valeur qui était enregistrée dans le premier registre est mémorisée dans le deuxième registre et est transmise au troisième registre. La sortie Q du troisième registre mémorise ensuite cette valeur en continu jusqu'à l'instant du flanc descendant du cycle d'horloge suivant. 



  Un avantage de l'élément de circuit qui vient d'être décrit est qu'il combine à la fois la fonction d'interrupteur et celle de mémorisation de l'ancienne valeur de sortie pendant la demi-période où l'interrupteur est ouvert. L'élément de circuit de la fig. 5 peut donc être utilisé même dans le cas où les entrées des registres ne sont pas associées à une capacité parasite. 

Claims (5)

1. Automate comportant des moyens de mémoire formés d'une pluralité de cellules de mémoire, chacune desdites cellules de mémoire étant reliée à une branche d'un circuit d'horloge pour recevoir dudit circuit d'horloge un signal d'horloge cyclique pour commander des opérations d'écriture et de lecture dans ladite cellule de mémoire, ledit circuit d'horloge comportant en outre plusieurs branches et les délais de propagation dudit signal d'horloge dans lesdites branches étant inégaux, ledit automate étant caractérisé en ce que lesdites cellules de mémoire sont prévues pour, après chaque opération d'écriture, n'autoriser une opération de lecture qu'au bout d'un laps de temps prédéterminé, ledit laps de temps étant au moins sensiblement égal à la différence entre les délais de propagation dans lesdites branches et inférieur à un cycle d'horloge.
2.
Automate selon la revendication 1, caractérisée en ce que chacune desdites cellules de mémoire est formée par des bascules et par un interrupteur connecté à la sortie de ladite bascule, ledit interrupteur étant prévu pour être ouvert lorsque le signal d'horloge commande le chargement d'un nouvel état dans la bascule et pour se refermer après ledit laps de temps prédéterminé.
3. Automate selon la revendication 2, caractérisé en ce que lesdites bascules sont des bascules D qui se chargent sur le flanc montant du signal d'horloge, et en ce que lesdits interrupteurs sont prévus pour s'ouvrir lors du flanc montant de chaque signal d'horloge et pour se refermer lors du flanc descendant de chaque signal d'horloge.
4.
Automate selon la revendication 2, caractérisé en ce que ledit interrupteur est constitué par une porte tristate présentant une sortie à haute impédance lorsque ladite bascule est chargée et une sortie à basse impédance après ledit laps de temps déterminé.
5. Automate selon la revendication 1, caractérisé en ce que lesdites cellules de mémoire sont constituées, chacune, par trois registres à verrouillage connectés en série et prévus de manière que les premier et troisième registres à verrouillage soient verrouillés sur un premier flanc du signal d'horloge et que le deuxième registre à verrouillage soit verrouillé, respectivement déverrouillé, sur ledit deuxième flanc, respectivement sur ledit premier flanc dudit signal d'horloge.
CH238795A 1994-09-14 1995-08-22 Automate insensible aux délais d'horloge. CH689959A5 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9410975A FR2724472B1 (fr) 1994-09-14 1994-09-14 Automate insensible aux delais d'horloge

Publications (1)

Publication Number Publication Date
CH689959A5 true CH689959A5 (fr) 2000-02-15

Family

ID=9466935

Family Applications (1)

Application Number Title Priority Date Filing Date
CH238795A CH689959A5 (fr) 1994-09-14 1995-08-22 Automate insensible aux délais d'horloge.

Country Status (2)

Country Link
CH (1) CH689959A5 (fr)
FR (1) FR2724472B1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6462585B1 (en) 2001-02-20 2002-10-08 International Business Machines Corporation High performance CPL double-gate latch

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4692633A (en) * 1984-07-02 1987-09-08 International Business Machines Corporation Edge sensitive single clock latch apparatus with a skew compensated scan function
JPH03257949A (ja) * 1990-03-06 1991-11-18 Advanced Micro Devices Inc 遅延回路
EP0453171A3 (en) * 1990-04-18 1992-11-19 Quickturn Systems Inc Method for substantially eliminating hold time violations in implementing high speed logic circuits or the like
WO1992008230A1 (fr) * 1990-10-26 1992-05-14 Micron Technology, Inc. Fichier de registre rapide a cinq points d'acces capable de lire et d'ecrire simultanement et tolerant un dephasage des impulsions d'horloge
JPH05110391A (ja) * 1991-10-18 1993-04-30 Sharp Corp Dフリツプフロツプ回路

Also Published As

Publication number Publication date
FR2724472B1 (fr) 1996-11-15
FR2724472A1 (fr) 1996-03-15

Similar Documents

Publication Publication Date Title
FR2792105A1 (fr) Systeme de modules de memoire pour commander l'entree et la sortie de donnees en connectant des modules de memoire selectionnes a une ligne de donnees
EP0631240A1 (fr) Circuit de transmission de données
EP0517335A1 (fr) Circuit diviseur de fréquences
FR2473814A1 (fr) Circuit mos dynamique ne dependant pas d'un rapport de resistances destine a constituer des circuits logiques divers
EP0268513B1 (fr) Dispositif de commande de bus constitué par plusieurs segments isolables
EP1107259A1 (fr) Dispositif de lecture pour mémoire en circuit intégré
EP1900096A2 (fr) Cellule de memorisation durcie
EP0875830B1 (fr) Circuit testable à faible nombre de broches
EP0863512B1 (fr) Mémoire à double accès
FR2632092A1 (fr) Circuit de conditionnement d'ecriture d'antememoire retarde pour un systeme de microcalculateur a bus double comprenant une unite 80386 et une unite 82385
FR2914481A1 (fr) Dispositif de memoire avec prise en compte des courants de fuite pour l'activation des amplificateurs de lecture
FR2801419A1 (fr) Procede et dispositif de lecture pour memoire en circuit integre
EP2073212B1 (fr) Dispositif de lecture d'une mémoire non volatile à basse consommation, et son procédé de mise en action
CH689959A5 (fr) Automate insensible aux délais d'horloge.
EP2146433B1 (fr) Dispositif de sauvegarde de la configuration de terminaux d'un circuit intègre, et procédé de mise en action du dispositif
EP0488893B1 (fr) Procédé et dispositif de transfert de signaux binaires différentiels et application aux additionneurs à sélection de retenue
FR2756120A1 (fr) Dispositif de conversion serie/parallele d'un signal haute frequence de faible amplitude
EP0889481B1 (fr) Perfectionnement aux mémoires à accès séquentiels.
FR2607955A1 (fr) Dispositif d'autosynchronisation des circuits de sortie d'une memoire
EP0537083A1 (fr) Dispositif pour détecter le contenu de cellules au sein d'une mémoire, notamment une mémoire EPROM, procédé mis en oeuvre dans ce dispositif, et mémoire munie de ce dispositif
EP0174220B1 (fr) Système de test de la défaillance ou du bon fonctionnement d'un circuit à composants logiques
EP0648018B1 (fr) Circuit d'indication de relation de phase entre plusieurs signaux de même fréquence et son application à un circuit d'ajustage des déphasages entre ces signaux
EP0733973B1 (fr) Détecteur de cohérence d'informations contenues dans un circuit intégré
EP2743835B1 (fr) Circuit d'échange de données bidirectionnel
EP0883134A1 (fr) Circuit intégré à mémoire non volatile électriquement programmable avec registre de configuration d'options

Legal Events

Date Code Title Description
PL Patent ceased