• Aucun résultat trouvé

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

4.2 Idée Générale

4.3.4 Validité de l’approche

L’ajout du signal e peut rendre complexe la vérification d’un tel circuit et on peut craindre que certains problèmes de course se manifestent. Ici on propose d’étudier les différents cas qui peuvent survenir pour s’assurer de la validité de notre approche. Pour cela, on représentera sous forme de schémas ces différents cas en utilisant la couleur bleu pour les signaux de type NULL ou 0 et la couleur rouge pour les signaux de type DATA ou 1. Les différents cas sont représentés sur les Figure 4-17 et Figure 4-18.

Figure 4-18. Exemple de protocole SHF-NCL cas n°2

De plus, il convient de traiter le cas d’un circuit séquentiel. Dans ce type de circuit, la partie combinatoire est suivie de trois ou quatre registres qui servent à la mémorisation de l’état précédent tout en respectant l’alternance des fronts DATA et NULL. L’utilisation de quatre registres plutôt que trois permet notamment d’augmenter le débit traité. Dans notre cas, ce qui importe est la communication entre ces registres par conséquent, on peut étudier indifféremment l’un ou l’autre des montages. Nous choisissons alors d’étudier le cas à trois registres comme

représenté sur la Figure 4-19. Le code de couleurs utilisé est le suivant : les données sont représentées en bleu, les signaux de type Ki/Ko en noir et les signaux de type e en rouge.

Figure 4-19. Schéma typique d'un circuit séquentiel SHF-NCL

Dans ce schéma, les données passent d’un registre à l’autre puis passent au travers de la logique. Pour un fonctionnement correct, il faut que le registre du centre soit initialisé à une donnée de type DATA et que les deux autres soient initialisés à NULL. On constate alors qu’une nouvelle donnée est calculée seulement si l’étage suivant (non représenté dans la Figure 4-19) requiert une nouvelle donnée. Pour faire l’analyse de ce circuit on utilisera le chronogramme de la Figure 4-20 sur lequel certains événements numérotés seront détaillés subséquemment. On adopte la convention selon laquelle tous les signaux propres aux registres seront indexés avec le numéro du registre correspondant et les signaux qui ne sont pas numérotés sont des signaux qui communiquent directement avec l’extérieur.

1 : À cet instant, le signal de reset est relâché. L’entrée In aurait pu passer à DATA. Ceci n’aurait rien changé car la logique étant complète par rapport aux entrées In et S3, l’entrée I1 serait restée

NULL.

2 : À cet instant, le système et stable et attend que l’environnement extérieur fournisse une donnée In de type DATA.

3 : Le système est stable et attend qu’au travers du signal Ki, l’environnement extérieur signal que

la donnée Out a bien été prise en compte.

4 : Quand Ki se désactive, le processus continue et bloque tant que les données en entrée, In, ne

sont pas remises à NULL. On voit ici l’intérêt du signal e. En effet, la logique étant de la logique standard, on a supposé être dans un cas où la présence de données de type NULL à la sortie du registre R3 a fait en sorte que la sortie de la logique, I1, soit devenue NULL alors que l’entrée In est encore de type DATA. Mais, étant donné que l’étage précédent (non représenté) n’a pas encore validé le fait que In est de type NULL (au moyen du signal ein), le registre R1 ne peut pas

encore considérer son signal d’entrée comme étant NULL. Ceci découle directement des formules de A et C fournies plus haut dans ce chapitre.

5 : Lorsque le signal In passe finalement à NULL et que ceci est confirmé par l’activation du signal ein, alors le registre R1 peut propager ce front NULL.

6 : Puis le système se stabilise jusqu’à ce que l’étage suivant (non représenté) signale la prise en compte de l’état NULL du signal Out. Si cela était arrivé entre temps, le système serait alors directement passé à l’étape 7 (moyennant les temps de propagation et le respect du protocole). 7 : Le processus se stabilise et attend un nouveau front DATA sur l’entrée In.

Dans cet exemple, on constate que le protocole est stable et que chaque front de données est attendu et son intégrité est préservée. On constate de plus que l’ordre d’arrivée ainsi que le temps d’arrivé des signaux de conditions (Ki et e) n’importe pas.

Enfin, pour parfaire l’étude de conservation de l’intégrité des données, il convient de revenir sur le cas de délais excessif entre le registre d’entrée et le premier rang de portes de la logique comme présenté sur la Figure 4-7a. Dans ce cas, nous avons vu que le bon fonctionnement du circuit pouvait être mis à mal. Mais un tel cas est-il envisageable physiquement? Dans la pratique, pour avoir un délai considérable sur un fil, il faudrait que le sous-ensemble du registre d’entrée correspondant au fil considéré soit situé suffisamment loin sur le FPGA par rapport au reste de la logique. Si tel était le cas, le signal e serait alors lui aussi retardé d’un délai comparable à celui noté d1. Par la suite, les délais relatifs peuvent être négligés par rapport aux délais dans la logique interne et dans le chemin de rétroaction. En d’autres termes, mêmes si des délais importants apparaissent sur certains fils, les signaux e et K feront en sorte que les signaux retardataires soient toujours attendus. De plus, l’observabilité nous permet de nous prémunir des

éventuels effets des retards sur les signaux situés après le premier rang de logique. Dans le Chapitre 5, nous reviendrons plus en détails sur les délais dans les fils pour un environnement FPGA.

Figure 4-20. Chronogramme typique d'un circuit séquentiel SHF-NCL