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. Encrenaz – Réunion VALMEM – 02/06/20081 AVANCEMENT TACHE 3 Construction des automates temporisés Génération automatique de contraintes E. André, E.

Présentations similaires


Présentation au sujet: "E. Encrenaz – Réunion VALMEM – 02/06/20081 AVANCEMENT TACHE 3 Construction des automates temporisés Génération automatique de contraintes E. André, E."— Transcription de la présentation:

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

2 E. Encrenaz – Réunion VALMEM – 02/06/20082 Traduction du modèle VHDL en automates temporisés 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 True sync down_D do {x_abs_d0'=0} goto B_abs_d0; 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 True sync up_D do {x_abs_d0'=0} goto A_abs_d0; when x_abs_d0 = d_abs_d0 sync down_v18_E_data_delay_H do {} goto init_abs_d0; VHDL Temps Hytech

3 E. Encrenaz – Réunion VALMEM – 02/06/20083 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 à laffectation Construire le TA correspondant Associer le délai max (ou lintervalle [min,max]) pour front montant et descendant Réalisé pour les affectations concurrentes

4 E. Encrenaz – Réunion VALMEM – 02/06/20084 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

5 E. Encrenaz – Réunion VALMEM – 02/06/20085 Algorithme dextraction 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

6 E. Encrenaz – Réunion VALMEM – 02/06/20086 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

7 E. Encrenaz – Réunion VALMEM – 02/06/20087 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

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

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

10 E. Encrenaz – Réunion VALMEM – 02/06/ Instanciation initiale ( 0 ) falling ( )raising( ) d_abs_d d_abs_csn 1412 d_abs_net d_reg_ d_reg_ d_or_net d_not_v18_E 1012 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 = 130 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

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

12 E. Encrenaz – Réunion VALMEM – 02/06/ Générateur dimpulsions 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 = 155 & dAndDown1_l>0 & dLatchUp_l = dLatchUp_u -- & dLatchUp_l = & dHold = & dSetup = 1

13 E. Encrenaz – Réunion VALMEM – 02/06/ Générateur dimpulsions 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

14 E. Encrenaz – Réunion VALMEM – 02/06/ Conclusion Automatiser la traduction des processus VHDL Appliquer lextraction 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 lalgorithme dextraction dans loutil Hytech (ou Phaver) plutôt que de rester extérieur à Hytech


Télécharger ppt "E. Encrenaz – Réunion VALMEM – 02/06/20081 AVANCEMENT TACHE 3 Construction des automates temporisés Génération automatique de contraintes E. André, E."

Présentations similaires


Annonces Google