Bascule (circuit logique)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Bascule.

Une bascule est un circuit logique capable, dans certaines circonstances, de maintenir les valeurs de ses sorties malgré les changements de valeurs d'entrées.

On appellera plus loin verrous les bascules asynchrones (en anglais latch), et bascules les bascules synchrones (en anglais flip-flop).

Description[modifier | modifier le code]

Une bascule, ou verrou, est un circuit logique doté :

  • d'une ou plusieurs entrées ;
  • d'une ou deux sorties.

Les changements d'état de la sortie sont déterminés par les signaux appliqués aux entrées et le type d'opérateur.

Ce qui différencie les bascules des circuits logiques combinatoires (portes ET, OU, OU Exclusif, etc.), c'est que la sortie maintient son état même après disparition du signal de commande. Comme l'état précédent et la mémorisation interviennent, on parle de logique séquentielle.

La bascule est l'élément de base de la logique séquentielle. En effet, en assemblant des bascules, on peut réaliser des compteurs, des registres, des registres à décalage, des mémoires.

Certaines bascules, appelées à fonctionner dans des systèmes synchrones, possèdent une entrée d'horloge de synchronisation. Il existe donc des bascules asynchrones et des bascules synchrones.

Citons également la bascule de Schmitt, qui est commandée par une tension analogique appliquée à son entrée, mais on sort du domaine des opérateurs logiques séquentiels.

Bascules asynchrones, ou verrous (désigné en anglais par le terme latch ou latched)[modifier | modifier le code]

Ce sont des bascules dont la sortie ou l'état de mémorisation dépend à tout instant de l'état simultané des entrées. Cette évolution ne dépend que de la succession des combinaisons appliquées, et n'est limitée que par la vitesse de commutation de la bascule et de ses entrées, tandis qu'une bascule synchrone évolue au rythme du signal d'horloge. Si les entrées ont des oscillations imprévisibles avant de se stabiliser, la sortie d'une bascule asynchrone pourra être modifiée selon cette combinaison, alors qu'une bascule synchrone ne tiendra compte que des valeurs à la réception du signal d'horloge. La porte C de Muller est un exemple de bascule asynchrone.

Bascules synchrones[modifier | modifier le code]

Principe

Ici, l'action des entrées sur l'état de mémorisation ne sera effective qu'à la réception d'un front d'horloge, lorsqu'elle passe de l'état haut à l'état bas, ou inversement (parfois un seul des deux). La sortie est dite synchrone (à H) car directement liée à l'horloge H. De plus, ces bascules peuvent disposer d'entrées asynchrones (Set,Reset) pour prépositionner l'état de sortie à la mise sous tension.

Avantage de l'horloge[modifier | modifier le code]

Le fait de synchroniser la bascule sur les pulsations d'une horloge permet de s'assurer que sa sortie est bien stabilisée : ce qui se passe entre deux fronts d'horloge ne compte pas. Les pulsations de l'horloge doivent simplement être suffisamment lentes pour que les entrées aient également atteint leur configuration finale.

Métastabilité[modifier | modifier le code]

Les bascules peuvent entrer dans des états métastables lorsque plusieurs entrées changent simultanément, c'est-à-dire qu'elles peuvent n'offrir une sortie stable qu'au bout d'un temps arbitrairement long. Ce peut être le cas pour le verrou RS si les deux entrées passent ensemble de 1 à 0, ou pour une bascule où un changement de donnée d'entrée est trop proche d'un front d'horloge. On cherche à les éviter, mais ce n'est pas toujours possible, par exemple pour des éléments arbitrant entre deux signaux asynchrones.

Types de bascules et de verrous[modifier | modifier le code]

Verrous et bascules sont en fait très proches. Dans le cas de verrous, il est possible de réaliser une bascule synchrone en ajoutant une entrée d'horloge CLK, la sortie ne pouvant changer qu'après un front de l'horloge. On ne citera pas alors la bascule ainsi créée, d'implémentation plus complexe.

Verrou RS avec porte OU-NON[modifier | modifier le code]

R1, R2 = 1 kΩ R3, R4 = 10 kΩ.
Symbole du verrou RS.
L'implémentation utilisant des portes OU-NON.
  • Mise à 1 de S (Set) : la sortie Q passe à 1.
  • Mise à 1 de R (Reset) : la sortie Q passe à 0.
  • R = S = 0 : maintien de l'état précédent des sorties.
  • q est l'état avant le basculement
  • Q est la sortie, Q est la sortie complémentée
Table de vérité
S R Q Q remarque
0 0 q q mémorisation
0 1 0 1 mise à 0
1 0 1 0 mise à 1
1 1 0 0 État Interdit

Verrou R S avec porte ET-NON[modifier | modifier le code]

L'implémentation utilisant des portes ET-NON.
  • Mise à 0 de S (Set) : la sortie Q passe à 1.
  • Mise à 0 de R (Reset) : la sortie Q passe à 0.
  • R = S = 1 : maintien de l'état précédent des sorties.
  • q est l'état avant le basculement
  • Q est la sortie, Q est la sortie complémentée
Table de vérité
S R Q Q Remarque
0 0 1 1 cas particulier
0 1 1 0 mise à 1
1 0 0 1 mise à 0
1 1 q q mémorisation

Verrou D[modifier | modifier le code]

Ce circuit ressemble au verrou RS, dans la mesure où il possède deux entrées, notées D et H, et une sortie Q. Mais le fonctionnement est différent :

  • quand H est à 0, la sortie maintient son état, quel que soit le niveau appliqué à D ;
  • quand H est à 1, la sortie Q recopie l'état de D ;
  • la sortie Q recopie l'entrée D pour l'état actif de l'horloge H (CLK) ;
  • Q est la sortie, Q est la sortie complémentée ;
  • q est l'état avant le basculement ;
  • d est l'état appliqué en entrée (optimisation de la table de vérité) ;
  • X est un état quelconque, 0 ou 1.
Table de vérité (optimisée)
D H (CLK) Q Q remarque
d 1 d d Q recopie D
X 0 q q mémorisation

Bascule RSH - RST[modifier | modifier le code]

Un verrou RSH (aussi appelé RST) est un verrou RS auquel on a ajouté une troisième entrée, généralement notée H (ou CLK pour horloge). Cette troisième entrée a la fonction suivante :

  • si H est au niveau logique 0, la sortie maintient son état, quels que soient les niveaux appliqués aux entrées R et S ;
  • si H est à 1, la bascule RS répond normalement aux commandes appliquées à ses entrées.

En chainant 2 verrous RSH (un maître, l'autre esclave), on réalise une bascule JK (maître-esclave). Équation du verrou : Q_{n+1} = S + \overline RQ_{n}

Bascule JK[modifier | modifier le code]

Symbole de la bascule JK à front montant.
  • Pour J = K = 0, le signal d'horloge est sans effet, il y a conservation du dernier état logique pris par Q et Q : il n'y a jamais de basculement.
  • Pour J = K = 1, le système bascule à chaque front d'horloge (montant ou descendant selon les modèles).
  • Pour J différent de K, la sortie Q recopie l'entrée J et la sortie Q recopie l'entrée K à chaque front d'horloge.
  • On utilise cette bascule pour faire des compteurs. On compte jusqu'à 2n avec n bascules à la suite et on compte dans l'ordre croissant avec des bascules à front descendant et dans l'ordre décroissant avec des bascules à front montant.
Table de vérité
J K Qn+1
0 0 Qn
0 1 0
1 0 1
1 1 Qn
Table de vérité alternative
Qn Qn+1 J K remarque
0 0 0 X pour que la sortie reste à 0, il faut que J soit à 0, peu importe K.
0 1 1 X pour que la sortie passe de 0 à 1, il faut que J soit à 1, peu importe K.
1 0 X 1 pour que la sortie passe de 1 à 0, il faut que K soit à 1, peu importe J.
1 1 X 0 pour que la sortie reste à 1, il faut que K soit à 0, peu importe J.

Équation de la bascule : Q_{n+1} = J\overline Q_{n} + \overline KQ_{n}

Chronogramme.

Origine du nom de la bascule JK[modifier | modifier le code]

L'origine du nom de la bascule JK est détaillée par P. L. Lindley, un ingénieur de JPL, dans un article du magazine de conception électronique EDN. L'article est daté du et a été publié dans l'édition d'Août. Dans cet article, M. Lindley explique que c'est le docteur Eldred Nelson, un scientifique de Hughes Aircraft qui a inventé le terme de bascule JK.

Les bascules qui étaient utilisées à cette époque à Hughes étaient toutes du même type, celui de la future bascule J-K. Durant la conception d'un système logique le docteur Nelson a assigné des lettres à chaque entrée des bascules de la façon suivante :

  • bascule 1, les lettres A et B,
  • bascule 2, les lettres C et D,
  • bascule 5, les lettres J et K,

Étant donné la taille du système sur lequel travaillait le docteur Nelson, il s'est rendu compte qu'il allait être à court de lettres. Puisque les lettres J et K était peu utilisées dans les systèmes électroniques il a donc décidé d'utiliser ces lettres comme entrées "set" et "reset" pour toutes les bascules de son système (avec des indices pour les distinguer les unes des autres).

Le docteur Montgomery Phister, un membre de l'équipe du docteur Nelson à Hughes, a repris dans son livre Logical Design of Digital Computers (Wiley, 1958) l'idée que les entrées "set" et "reset" des bascules utilisées à Hughes Aircraft étaient nommées J et K. De ce fait il est alors amené à les désigner sous le terme de bascule JK. Dans ce même livre il a aussi défini les bascules R-S, T, D et R-S-T et a montré qu'en utilisant l'algèbre de Boole il était possible de les combiner afin de réaliser des fonctions complexes.

Bascule D[modifier | modifier le code]

Symbole de la bascule D.

La bascule D (pour Data) est une bascule JK à laquelle on a ajouté un inverseur entre les entrées J et K. Il y a donc une seule entrée, qui est notée D (pour Donnée ou Data). La table de vérité est la table de vérité d'une JK, limitée aux deux lignes J = 0, K = 1 et J = 1, K = 0.

  • La bascule D la plus simple possède 2 entrées (entrée D et l'horloge) et une sortie Q. À chaque front (ici montant) d'horloge, Q recopie l'entrée D.
  • Parfois, un signal reset existe afin de pouvoir initialiser la valeur initiale de la bascule lors de la mise sous tension.
  • Il existe des versions où les changements d'état ont lieu au moment des fronts descendants de l'horloge. Elles se signalent par une barre supplémentaire (en dessous à 45°) sous l'entrée Clock.

Sa fonction est donc "mémoire" puisque l'information en entrée se retrouve en sortie après un "coup d'horloge" (un front).

Table de vérité
D Ck Qn+1 Qn+1
0 \nearrow 0 1
1 \nearrow 1 0
X 0 Qn Qn
Table de vérité (optimisée)
D CLK Q Q remarque
d \nearrow d d Q recopie D
X 1,0,front descendant q q mémorisation

Équation de la bascule : Q_{n+1} = D

Bascule T[modifier | modifier le code]

La bascule T tire son nom du terme anglais 'toggle'. Si son entrée T est active, elle bascule à chaque impulsion d'horloge d'où son nom. Si son entrée T est inactive, elle conserve son état.
Elle n'existe pas intégrée sauf dans des PLD, FPGA… mais on peut la fabriquer avec une bascule D en reliant la sortie Q à l'entrée D (toutefois on ne réalise ainsi qu'une bascule T avec T=1), ou à l'aide d'une bascule JK en reliant J et K pour faire l'entrée T.
Comme la bascule T a la propriété de basculer à chaque impulsion d'horloge, elle réalise donc une division de fréquence par 2 ; elle servira aussi de base à la réalisation de compteurs (association simple si actives au front descendant de l'horloge).

  • Q est la sortie, Q est la sortie complémenté
  • q est l'état avant le basculement
  • si T=1, on bascule à chaque impulsion d'horloge
  • si T=0, la sortie ne change pas (mémorisation)
  • intégrée dans un circuit, elle est souvent active sur un front descendant
  • francisation
Table de vérité (optimisée)
T CLK Q Q remarque
1 \nearrow Q q basculement
1 0,1,\searrow q Q mémorisation
0 0,1,\nearrow,\searrow q Q mémorisation

Bascule de Schmitt[modifier | modifier le code]

Article détaillé : Bascule de Schmitt.

On l'appelle aussi Trigger de Schmitt ou bascule à seuil.

Symbole.

C'est une bascule à trois entrées V, SB et SH et une sortie Q. Contrairement aux bascules citées ci-dessus, qui sont commandées en appliquant des signaux logiques à leurs entrées, la bascule de Schmitt est conçue pour être pilotée par une tension analogique, c'est-à-dire qui peut prendre n'importe quelle valeur (dans l'intervalle 0 - Vcc afin de ne pas dégrader le circuit).

Les entrées SB et SH (seuil bas, seuil haut, ce dernier étant à un potentiel supérieur à SB) sont maintenues à des potentiels fixes ; ceci peut se faire par exemple grâce à un diviseur de tension composé de 3 résistances placées en série entre Vcc et la masse ; SH et SB sont reliés aux points intermédiaires du diviseur.

Chronogramme.

Le fonctionnement est le suivant :

  • supposons qu'au départ, V soit à 0 ; Q est alors à 0 ;
  • quand V augmente, Q reste à 0 jusqu'à ce que V dépasse SH ; à ce moment, Q passe à 1 ;
  • Q reste à 1 jusqu'au moment où V devient inférieur à SB ; à ce moment, Q passe à 0 ;
  • Q reste à 0 jusqu'à ce que V repasse au-dessus de SH.

La principale application de la bascule de Schmitt est la mise en forme de signaux analogiques pour les appliquer à des circuits logiques (par exemple une entrée de compteur).

La bascule de Schmitt peut aussi être utilisée pour :

  • débarrasser un signal du bruit ; il suffit que l'écart entre SH et SB soit supérieur à l'amplitude crête-à-crête du bruit ;
  • réaliser des circuits de contrôle avec hystérésis : thermostats, interrupteurs crépusculaires, maintien du niveau dans une cuve...
  • le trigger de Schmitt est l'ancêtre des générateurs de musique, miniaturisé dans les sonneries des montres électroniques, les sonneries des téléphones portables, les Game-Boy et autres jeux électroniques, les alarmes électroniques, les cartes de vœux parlantes, les boîtes à musique et horloges électroniques, etc. Le fameux bip des premiers ordinateurs dans les années 1980 était un signal rectangulaire.

Voir aussi[modifier | modifier le code]

Sur les autres projets Wikimedia :