Reset synchrone vs asynchrone : timing, horloge et relâchement
Ce sont deux mécanismes qui mettent une bascule à une valeur initiale déterminée, mais le moment où le reset agit diffère. Le reset synchrone capture le signal de reset au front d'horloge, comme n'importe quelle autre donnée. Le reset asynchrone utilise directement la broche de reset de la bascule et agit immédiatement, indépendamment de l'horloge. En pratique, on utilise souvent une méthode où l'activation est asynchrone et immédiate, et seul le relâchement est synchronisé sur l'horloge.
| Critère | Reset synchrone | Reset asynchrone |
|---|---|---|
| Moment d'action | Au front d'horloge, lorsque le reset est actif | Dès que le reset devient actif, sans attendre l'horloge |
| Horloge nécessaire ? | Oui. Si l'horloge est arrêtée, le reset est impossible | Non. Agit aussi avant le démarrage de l'horloge ou lorsqu'elle est arrêtée |
| Écriture en Verilog | always @(posedge clk) if (!rst_n) q <= 0; else q <= d; | always @(posedge clk or negedge rst_n) if (!rst_n) q <= 0; else q <= d; |
| Réalisation du circuit | Une logique de reset est placée devant l'entrée de données | Utilise une bascule dotée d'une broche de reset |
| Surface et chemin de données | Des portes s'ajoutent au chemin de données, ce qui peut augmenter d'autant le délai et la surface | La cellule est plus grande à cause de la broche de reset, mais aucune logique ne s'ajoute au chemin de données |
| Tenue aux glitches | Bonne. Les glitches survenant hors de l'instant du front ne sont pas capturés | Faible. Un glitch sur la ligne de reset peut provoquer un reset intempestif |
| Largeur d'impulsion du reset | Doit rester actif au moins une période d'horloge | Agit même avec une impulsion courte |
| Analyse temporelle | Analysable comme une entrée de données ordinaire, en setup et en hold | Le timing du relâchement (temps de recovery et de removal) se vérifie séparément |
| Précautions au relâchement | Synchronisé sur l'horloge : peu de problèmes au sein d'un même domaine d'horloge | Si le relâchement est proche d'un front d'horloge, le cycle de relâchement peut différer d'une bascule à l'autre, ou une métastabilité peut survenir. Un circuit de synchronisation du reset aligne le relâchement sur l'horloge |
| Circuits adaptés | Circuits dont l'horloge tourne en permanence, circuits dont le signal de reset est sujet au bruit | Circuits à initialiser dès la mise sous tension, circuits dont l'horloge peut s'arrêter |
Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.