• Aucun résultat trouvé

CHAPITRE 4 NULL CONVENTION LOGIC SIMPLIFIÉE : SHF-NCL

4.2 Idée Générale

4.3.2 Analyse des aléas

4.3.2.2 Parades du NCL

Nous cherchons ici à mettre en exergue les parades proposées par le NCL visant à se prémunir de ces aléas. Le but étant de savoir comment la simplification pourra ou devra adopter des parades si celles-ci ne sont pas conservées.

Cas 1 : L’utilisation de la logique positive4 et l’observabilité empêchent ce cas de se produire. En effet, raisonnons par l’absurde et supposons que ce cas puisse survenir. Pour cela il faudrait qu’une combinaison des signaux d’entrées puisse activer puis interdire indéfiniment un signal de sortie. La logique positive empêche que l’effet direct de l’activation d’un signal d’entrée soit la désactivation d’un autre. Autrement dit on ne peut pas avoir x↑ → y↓. L’observabilité assure que toute transition interne des entrées devrait êtres vue sur les sorties. Manifestement ici, après stabilisation des sorties, aucun des rails n’est actif. Ce qui est en contradiction avec cette règle d’observabilité.

Cas 2 : Ce cas respecte la propriété d’observabilité, car après stabilisation, la sortie si.1 prend la valeur 1. Le fait que la sortie se désactive ne peut pas être du à une combinaison des entrées car on utilise de la logique positive comme mentionné plus haut. Néanmoins cet aléa peut-être dû à un délai comme montré dans l’exemple de la Figure 4-9.

Figure 4-9. Exemple de circuit n°1

Dans cet exemple, on suppose que d1 >> d2 et que d1 >2 tack’. Un chronogramme dans le cas considéré pourrait alors être celui de la Figure 4-10.

4 On appellera logique positive toute combinaison de portes telle que pour chacune de ces portes l’activation

(passage de 0 à 1) d’une entrée puisse avoir comme effet sur la sortie soit une activation soit aucun effet. Cette logique est utilisée lorsque l’on utilise une représentation complète. Réciproquement, la désactivation des entrées ne peut que désactiver les sorties ou les laisser inchangées.

Figure 4-10. Chronogramme du circuit n°1

Néanmoins en écrivant les équations de s0 et s1 on se rend compte que l’ensemble n’est pas complet par rapport aux entrées de type DATA. En effet, on a :

Une façon de le rendre complet par rapport aux entrées est, par définition, d’empêcher que la sortie soit valide si l’ensemble des entrées n’est pas valide. Or on constate que s0 peut s’activer si l’une ou l’autre des entrées a0 ou b0 est active. On peut alors réécrire l’équation complète en rajoutant les termes suivants :

Ici cela revient à énumérer tous les mintermes, ce qui n’est évidemment pas toujours le cas, notamment pour des modules à plusieurs sorties. Dans ce cas-ci, la sortie ne pourra pas prendre de valeur valide avant que l’ensemble des signaux traités ne soit valide. Par conséquent, le chronogramme devient celui de la Figure 4-11.

Le circuit attend donc que tous les signaux soient valides avant de fournir un ensemble, ici réduit à un élément, de sorties valide. On remarque que pour la suite du traitement, c’est la capacité de

state-holding qui permet de s’assurer que le signal délayé ad est bien repassé à 0 avant de redemander un nouveau front de données. D’où la remarque suivante.

Remarque importante : La complétude par rapport à NULL est induite par la mémorisation au niveau des portes. Dans la simplification proposée on cherchera à supprimer cette mémorisation ce qui rendra le système plus fragile notamment au genre d’aléas mentionné dans l’exemple précédent.

Cas 3 : En reprenant le cas de la figure 2 et en changeant les vecteurs d’entrées appliqués pour {(N, N), (0, 0), (N, N), (1, 1)}, on se retrouverait exactement dans le cas 3. Or la même remarque pourrait être faite en soulignant le fait que, lorsque l’on rend le circuit complet par rapport aux entrées alors ce genre de cas ne peut plus survenir toujours en faisant l’hypothèse de fourche isochrone.

Cas 4 : On se retrouve essentiellement dans la même situation que le cas précédent en modifiant la dépendance par rapport au délai d1.

Cas 5 : C’est le cas normal de fonctionnement.

Cas 6 : En utilisant ce qui a été souligné dans la remarque, on sait que pour que l’ensemble des sorties passe à NULL il faut que l’ensemble des entrées soit NULL. Par conséquent, pour que le signal Si1 repasse à une valeur active ceci ne peut pas être le résultat de la combinaison des entrées car celles-ci sont toutes nulles et que l’on utilise de la logique positive. Par conséquent, cela doit être induit par un retard sur une des branches. Une fois de plus, la complétude permet de se prémunir de ce genre d’aléas dans la majorité des cas. Néanmoins, comme nous l’avons vu en introduction de cette sous- partie avec le cas du circuit OU-Exclusif non-optimal, ce cas pourrait survenir s’il on ne faisait pas l’hypothèse de fourche isochrone.

Cas 7, 8 et 9 : Comme précédemment, la combinaison d’une logique incomplète par rapport aux entrées et des délais différents sur les différents chemins peut mener à ce

genre d’aléas. En revanche, en rendant la logique complète ceux-ci ne subsistent plus sauf dans des cas pour lesquels l’hypothèse de fourche isochrone n’est pas respectée.

Cas 10 : C’est le cas normal de fonctionnement.

Remarque importante 2 : Il est important de noter que la mémorisation réalisée au niveau local par chaque porte, celle-là même qui donne la caractéristiques de complétude par rapport aux entrées sur front NULL, prévient le système de tomber dans des états invalides. En effet, sans cela, on pourrait imaginer le cas où une entrée reste valide alors qu’une autre devient « invalidante », comme dans le cas de la porte ET standard, ce qui entraînerait un ensemble de sortie NULL alors qu’au moins une des entrées n’est pas de type NULL. C’est notamment cette remarque qui nous a conduit à ajouter le signal e pour maintenir les règles de conception qui se trouvent être directement dictées par des considérations utiles pour empêcher les aléas.