La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

E. André, E. Encrenaz, L. Fribourg

Présentations similaires


Présentation au sujet: "E. André, E. Encrenaz, L. Fribourg"— Transcription de la présentation:

1 E. André, E. Encrenaz, L. Fribourg
AVANCEMENT TACHE 3 Construction des automates temporisés Génération automatique de contraintes E. André, E. Encrenaz, L. Fribourg E. Encrenaz – Réunion VALMEM – /06/2008

2 Traduction du modèle VHDL en automates temporisés
Hytech var x_abs_d0, x_abs_csn, x_abs_net13, x_reg_10 : clock automaton abs_d0 synclabs: down_D, up_D, inputs down_v18_E_data_delay_H, up_v18_E_data_delay_H; -- outputs initially init_abs_d0; loc init_abs_d0 : while True wait {} when True sync up_D do {x_abs_d0'=0} goto A_abs_d0; when True sync down_D do {x_abs_d0'=0} goto B_abs_d0; loc A_abs_d0 : while x_abs_d0 <= d_abs_d0 wait {} when x_abs_d0 = d_abs_d0 sync up_v18_E_data_delay_H do {} goto init_abs_d0; loc B_abs_d0 : while x_abs_d0 <= d_abs_d0 wait {} when x_abs_d0 = d_abs_d0 sync down_v18_E_data_delay_H do {} goto init_abs_d0; Temps E. Encrenaz – Réunion VALMEM – /06/2008

3 Principes de traduction
Parser VHDL Affectations concurrentes Processus représentant des points mémoire ou registres Pour chaque affectation concurrente ou processus : Représenter la table de vérité associée à l’affectation Construire le TA correspondant Associer le délai max (ou l’intervalle [min,max]) pour front montant et descendant Réalisé pour les affectations concurrentes E. Encrenaz – Réunion VALMEM – /06/2008

4 Génération automatique de contraintes
En entrée Un fichier HyTech Des valeurs de tous les paramêtres donnant une « bonne » exécution : N'allant pas dans le mauvais état (« bad ») En sortie Un ensemble de contraintes garantissant une trace identique à celle des valeurs en entrée. Implantation - Script Python avec appels à HyTech E. Encrenaz – Réunion VALMEM – /06/2008

5 Algorithme d’extraction des contraintes
Input : parameter instantiation 0 Output : constraint C U  Init, S  Init, C  True do do until Post(S) = S or U has a 0-incompatible trace. S  Post(S); U  succ(U) od if Post(S) = S and U has no 0-incompatible trace then return ("success", C). select an avoidable 0-incompatible trace in U and an avoidable atom J of the associated P-constraint. C := C  J ; S := {Init  C} ; U := {init  C}. od E. Encrenaz – Réunion VALMEM – /06/2008

6 Exemple – bascule D Des valeurs initiales garantissant une bonne trace déterministe pHI = 30 pLO = 20 pSetup = 10 pHold = 15 pu_g1 = 6 pl_g1 = 5 pu_g3 = 5 pl_g3 = 4 pu_g2 = 4 pl_g2 = 3 Pu_g4 = 4 pl_g4 = 3 E. Encrenaz – Réunion VALMEM – /06/2008

7 Contraintes obtenues Contraintes :
pLO > pSetup pSetup > pu_g1 pHold > pu_g3 pHold > pu_g4 + pu_g3 Trace obtenue à partir de ces contraintes (en noir) identique (par construction) à la trace de référence E. Encrenaz – Réunion VALMEM – /06/2008

8 Portion de SPSMALL analysée
E. Encrenaz – Réunion VALMEM – /06/2008

9 Propriété vérifiée D est bien écrite dans la latch REG12
E. Encrenaz – Réunion VALMEM – /06/2008

10 Instanciation initiale (0 )
falling () raising() d_abs_d d_abs_csn d_abs_net d_reg_ d_reg_ d_or_net d_not_v18_E tHI = 45 tLO = 90 d_setup_D < THI + tLO d_setup_CSN < d_setup_D d_hold_D < d_or_net13  d_hold_CSN < d_or_net13  -- d_setup_D = d_hold_D = 1 // utilisées pour la 0 compatibilité -- d_setup_CSN = 50 d_hold_CSN = 2 Optimisation de d_setup_D, d_hold_D d_setup_CSN, d_hold_CSN E. Encrenaz – Réunion VALMEM – /06/2008

11 Contraintes obtenues (26 itérations / 2 mn) d_setup_CSN < 83
d_setup_D < d_setup_CSN + 104 d_setup_D > 104 d_setup_D < d_setup_CSN + 90 d_setup_CSN > 24 E. Encrenaz – Réunion VALMEM – /06/2008

12 Générateur d’impulsions
Instanciation initiale dClockHigh = & dClockLow = 1000 & dNot1Down_l = dNot1Down_u & dNot1Down_l = 147 & dNot1Up_l = dNot1Up_u & dNot1Up_l= 219 & dNot2Down_l = dNot2Down_u & dNot2Down_l = 163 & dNot2Up_l = dNot2Up_u & dNot2Up_l = 155 & dXorUp2Up_u = dXorUp2Up_l & dXorUp2Up_l = 147 & dXorDown1Up_u = dXorDown1Up_l & dXorDown1Up_l = 416 & dAndUp2_u = dAndUp2_l & dAndUp2_l = 80 & dAndDown1_u = dAndDown1_l & dAndDown1_l = & dAndDown1_l>0 & dLatchUp_l = dLatchUp_u & dLatchUp_l = & dHold = & dSetup = 1 E. Encrenaz – Réunion VALMEM – /06/2008

13 Générateur d’impulsions
Contraintes obtenues (50 sec) : dNot1Down_u < dLatchUp_u + dAndUp2_l & dSetup < dClockLow & dAndUp2_l < dNot1Down_u & dXorUp2Up_l < dHold & dHold < dNot2Up_l + dNot1Down_u + dXorDown1Up_u & dAndUp2_l < dXorUp2Up_l & dNot2Up_l + dNot1Down_l < dHold & dLatchUp_l + dAndUp2_l < dHold & dLatchUp_l + dAndUp2_l < dNot2Up_l + dNot1Down_u + dXorDown1Up_u & dNot1Down_u < dHold & dNot2Up_l + dNot1Down_l < dLatchUp_l + dAndUp2_l E. Encrenaz – Réunion VALMEM – /06/2008

14 Conclusion Automatiser la traduction des processus VHDL
Appliquer l’extraction automatique de contraintes pour une portion plus large de SPSMALL (réduite à 1 mot de 1 bit) Améliorations Traiter un ensemble de traces : ordre partiel Intégration de l’algorithme d’extraction dans l’outil Hytech (ou Phaver) plutôt que de rester extérieur à Hytech E. Encrenaz – Réunion VALMEM – /06/2008


Télécharger ppt "E. André, E. Encrenaz, L. Fribourg"

Présentations similaires


Annonces Google