Latch vs bascule : les différences expliquées

Tous deux stockent un bit, mais leur déclenchement diffère. Un latch est sensible au niveau : tant que son signal d'activation est actif, il est transparent et transmet directement l'entrée à la sortie ; lorsque l'activation devient inactive, il conserve la valeur. Une bascule (flip-flop) est déclenchée sur front : elle ne capture l'entrée qu'au front d'horloge et ignore les changements entre deux fronts. Une bascule est constituée de deux latchs fonctionnant en phases opposées.

CritèreLatchBascule (flip-flop)
DéclenchementSensible au niveau : agit tant que l'activation est activeDéclenchée sur front : agit uniquement au front montant ou descendant de l'horloge
Comportement de la sortieSuit l'entrée tant qu'il est transparent, puis la conserveNe change qu'au front d'horloge, stable le reste du temps
ConstructionUn seul étage de mémorisationDeux latchs en série, fonctionnant en phases opposées (maître-esclave)
Taille et consommationPlus petit, avec une consommation plus faiblePlus grande, environ deux fois plus de transistors
Analyse temporellePlus complexe : emprunt de temps (time borrowing) pendant la phase transparenteSimple : temps de setup et de hold autour du front d'horloge
Sensibilité aux glitchesLes glitches et les courses traversent le latch lorsqu'il est transparentInsensible aux changements de l'entrée entre les fronts d'horloge
Usages typiquesConceptions rapides sur mesure avec emprunt de temps, cellules de clock gatingRegistres, compteurs et machines à états en conception synchrone

Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.

Quand choisir l'un ou l'autre ?

Latch
Lorsque la surface, la consommation ou la vitesse justifient une analyse temporelle plus difficile, typiquement dans les circuits sur mesure ou haute performance.
Bascule (flip-flop)
L'élément de base par défaut en conception synchrone, car l'analyse temporelle est simple et robuste.
Conseil HDL
En Verilog ou en VHDL, une instruction if ou case incomplète dans une logique combinatoire crée un latch non désiré. Affectez une valeur dans chaque branche pour l'éviter.

Questions fréquentes

Quelle est la différence entre un latch et une bascule en une phrase ?

Un latch est sensible au niveau et transparent tant que son activation est active, tandis qu'une bascule est déclenchée sur front et ne capture son entrée qu'au front d'horloge.

Une bascule est-elle constituée de latchs ?

Oui. Une bascule maître-esclave est formée de deux latchs en série, fonctionnant en phases opposées.

Pourquoi les concepteurs préfèrent-ils les bascules ?

L'analyse temporelle est simple, avec des temps de setup et de hold autour d'un seul front d'horloge, et les glitches entre les fronts n'ont pas d'importance.

Comment un latch non désiré apparaît-il dans le code HDL ?

Lorsqu'un bloc always ou un process combinatoire n'affecte pas une sortie dans chaque branche (if ou case incomplet), la synthèse conserve l'ancienne valeur et infère un latch.

Vérifier vos connaissances

Quelle description du fonctionnement d'un verrou D (latch D) est correcte ?

  1. AIl ne capture l'entrée qu'à l'instant du front montant de l'horloge
  2. BIl produit toujours l'inverse de son entrée
  3. CTant que le signal de validation est actif, l'entrée est transmise telle quelle à la sortie ; lorsqu'il devient inactif, la valeur est maintenue
Afficher la réponse et l'explication

Réponse : C. Tant que le signal de validation est actif, l'entrée est transmise telle quelle à la sortie ; lorsqu'il devient inactif, la valeur est maintenue

Le verrou D est un élément de mémorisation sensible au niveau : tant que la validation est active, l'entrée apparaît telle quelle en sortie (transparence), et la valeur présente à l'instant où elle devient inactive est maintenue. Il comporte moins d'éléments qu'une bascule et sert parfois à accélérer les circuits par une conception temporelle à verrous (time borrowing), mais les signaux traversant le verrou pendant la transparence compliquent l'analyse temporelle. La bascule D, qui ne capture qu'à l'instant du front, est réalisée en reliant deux verrous en opposition de phase.

Quel est le fonctionnement correct d'une bascule D (flip-flop D) ?

  1. AElle transmet en permanence les variations de l'entrée telles quelles à la sortie
  2. BElle produit le OU exclusif de deux entrées
  3. CElle capture la valeur de l'entrée D au front d'horloge et la maintient jusqu'au front suivant
Afficher la réponse et l'explication

Réponse : C. Elle capture la valeur de l'entrée D au front d'horloge et la maintient jusqu'au front suivant

La bascule D capture la valeur de l'entrée D au front montant (ou descendant) de l'horloge et la maintient jusqu'au front suivant. Ne regardant que l'instant du front, sa sortie ne change pas si l'entrée varie entre deux fronts. Elle est à la base des circuits séquentiels : registres des CPU, séparation des étages de pipeline, compteurs ; elle est constituée en interne de deux verrous montés en maître-esclave. Pour une capture correcte, les temps de setup et de hold doivent être respectés.

Quelle description du temps de setup (temps d'établissement) d'une bascule est correcte ?

  1. ALe temps minimal pendant lequel la donnée doit être maintenue après le front d'horloge
  2. BLe temps minimal pendant lequel l'entrée de données doit être stable avant le front d'horloge
  3. CLe temps entre la mise sous tension et le début du fonctionnement
Afficher la réponse et l'explication

Réponse : B. Le temps minimal pendant lequel l'entrée de données doit être stable avant le front d'horloge

Pour qu'une bascule capture correctement, la donnée doit être stable depuis un certain temps avant le front d'horloge : c'est le temps de setup. Si le délai du chemin de données dépasse la période d'horloge moins le temps de setup, il y a violation, que l'on résout en ralentissant l'horloge. Le temps pendant lequel la donnée doit être maintenue après le front est le temps de hold ; le non-respect de l'un ou de l'autre provoque la capture d'une valeur erronée ou la métastabilité.

  1. Comment appelle-t-on l'état dans lequel, lorsqu'une bascule reçoit un signal asynchrone sans que les temps de setup ou de hold soient respectés, la sortie n'est temporairement ni 0 ni 1 ?
  2. Quel est l'avantage d'un circuit synchrone, où toutes les bascules fonctionnent avec une horloge commune ?
  3. Quelle combinaison de cause et de remède explique l'apparition d'un verrou dans la description ci-dessus ?

Questions d'entraînement sur Circuits logiques

Termes clés expliqués

Bascule (flip-flop)
Élément de base des circuits séquentiels qui mémorise un bit d'information. La bascule D capture son entrée sur un front d'horloge.
Latch involontaire
Latch mémorisant une valeur, créé par la synthèse logique dans une description censée être combinatoire, parce que la sortie n'est pas affectée dans certaines conditions.

Comparatifs associés