exp-half
Transcription
exp-half
Tests du circuit HALF : Cet exemple de circuit est tiré de l'article [BJMY02]. La spécification STG du circuit half décrite sous forme d'un graphe STG, son graphe de marquage et son implémentation sont donnés dans la figure 1. (a) (b) (c) Figure 1 : a) la spécification STG du circuit half. b) l'automate équivalent pour la spécification. c) l'implémentation du circuit. Le code VHDL associé au circuit est donné comme suit : ENTITY half IS PORT ( Ao Ro Ai Ri ); END half; : out BIT; : out BIT; : in BIT; : in BIT ARCHITECTURE RTL OF half IS SIGNAL t1 : BIT; SIGNAL t2 : BIT; SIGNAL t3 : BIT; SIGNAL t4 : BIT; SIGNAL t5 : BIT; BEGIN t1 <= Ro or not t4; t2 <= Ai or not t1; t3 <= not Ro or Ao; t4 <= not Ri or Ao; t5 <= not Ri or not Ao; Ao <= Ro or not t5; Ro <= not t2 or not t3; END; Nous avons effectué différents tests sur ce circuit. Parmi ces tests, nous allons présenter les deux tests effectués avec les deux environnements décrits cidessous. Les délais de traversée des portes du circuit sont tous définis à 27 unités de temps. env1 Ai : 82 down, 245 up; Ri : 82 up, 245 down; env2 Ai : 82 down, 217 up; Ri : 82 up, 245 down; Analyse instanciée avec UPPAAL Nous avons effectué l'analyse en utilisant le modelchecker UPPAAL, pour chaque test, sur le modèle généré avec l'outil VHDL2TA (à partir des descriptions d'entrée) qui est décrit en format d'entrée d'UPPAAL. Le but est de vérifier si les comportements des signaux de sortie du circuit sont conformes à la spécification décrite par le graphe STG de la figure 1. Les descriptions en Uppaal générées pour ces deux tests sont caractérisées par : – – – – – 7 automates associés aux signaux internes et aux signaux de sortie du circuit + les automates d'environnement. 7 horloges locales correspondant aux automates + l'horloge globale. 2+7 variables discrètes associées aux signaux du circuit. 4x7 paramètres associés aux délais des fronts montants et descendants des signaux du circuit. 3 x 7 locations des automates associés aux portes du circuit + les locations associées aux automates d'environnement. La commande employée pour générer la première description est mentionnée cidessous : vhdl2ta half.vhd t delay.tmp 2 e env1.env m ta o half.ta taf upl Les propriétés TCTL que nous avons vérifié, pour chaque test, sur les deux signaux de sortie du circuit Ao et Ro en utilisant le modelchecker d'UPPAAL sont données comme suit : env1: AG((t>190 & t<299 => ro = 1) & (((t>0 & t<190) or t>299) => ro = 0)). AG((t>217 & t<326 => ao = 1) & (((t>0 & t<217) or t>326) => ao = 0)). ro: 190 up, 299 down; ao: 217 up, 326 down; env2: AG((t>190 & t<271 => ro = 1) & (((t>0 & t<190) or t>271) => ro = 0)). AG((t>217 & t<299 => ao = 1) & (((t>0 & t<217) or t>299) => ao = 0)). ro: 190 up, 271 down; ao: 217 up, 299 down; Elles expriment pour chaque environnement testé, respectivement, le comportement attendu des deux signaux Ao et Ro. Pour chaque test, l'analyse avec UPPAAL vérifie bien les deux propriétés TCTL sur le modèle décrit en UPPAAL. Donc, on confirme bien que le comportement de chacun des deux signaux de sortie Ro et Ao est conforme à la spécification STG comme le montre la figure 2, dans les deux tests. Nous avons constaté que le temps de génération des deux descriptions en Uppaal est inférieur à 0,1 sec ; et le temps de la vérification de chacune des deux propriétés TCTL pour chaque test est aussi inférieur à 0,1 sec. (a) (b) Figure 2 : les temps d'apparition des fronts des signaux I/O dans la spécification STG du circuit half. (a) test avec env1. (b) test avec env2. Analyse d'accessibilité avec IMITATOR2 L'analyse d'accessibilité a été bien effectuée sur les deux descriptions en IMITATOR2 générées par l'outil VHDL2TA. Pour chaque test, le graphe d'atteignabilité produit par l'outil IMITATOR2 lors l'analyse d'accessibilité du modèle décrit dans la description est donné dans la figure 3. Comme on peut le voir, les traces sont bien conformes aux comportements attendus des signaux de sortie Ro et Ao. La commande employée pour générer la description en IMITATOR2 dans le premier test est donnée comme suit : vhdl2ta half.vhd t delay.tmp 2 e env1.env m ta o half.imi taf imi2 (a) (b) Figure 3 : le graphe d'atteignabilité construit par IMITATOR2. (a) test avec env1. (b) test avec env2. Bibliographie [BJMY02] M. Bozga, H. Jianmin, O.Maler and S. Yovine, Verification of Asynchronous Circuits Using Timed Automata, In TPTS'02 Workshop, joint with ETAPS'02 Conference, Elsevier (2002).