3.3.3.3 Algorithme pour mettre à jour la surface de
la configuration en cours,
lire la vitesse et la puissance d'une instance
donnée: surface_vitesse_puissance ( variable : ptr11 :
pointeur sur la structure INSTANCE ;
type_operation : chaine de caractères)
Variable : fp : Fichier ;
s, t, p : réel ;
DEBUT
pour ( ; ptr11 ? 0 ; ptr11:= ptr11-)next)
Faire {
ouvrir en mode de lecture le fichier ptr11-)nom_fichier et
pointé par fp ; lire à partir de ce fichier s, t et p ;
surface := surface + s ;
//Faire appel a la fonction reporter_t_p()
reporter_t_p ( type_operation, ptr11-)nom_fichier) ;
fermer le fichier pointé par fp ;
}
Ffaire
FIN
3.3.3.4 Algorithme pour la fonction reportertp () :
Cet algorithme consiste à remplacer dans un fichier
DPi le type d'opération (exemple ADD) par l'instance en
cours (exemple ADD6). Une fois que DPi est totalement
constitué, l'affectation des instances d'une bibliothèque aux
unités fonctionnelles du circuit sera totalement définie.
DPi servira aussi de déterminer pour la trace i, les
caractéristiques (surface, temps et puissance) de la configuration
obtenue.
reporter_t_p (variable : type_operation : chaine de
caractère,
nom_fichier : chaine de caractère)
Variable : fp : Fichier ;
i, num_cycle : entier ;
fich_dp[20], ch_temp[4], mot[20] : chaine de caractère ; c
: caractère ;
position : long ;
DEBUT
Afficher (`'DEBUT REPORTER NOM FICHIER: `', nom_fichier) ;
Pour( i:=1 jusqu'à nb_traces)
Faire {
Ouvrir en mode de lecture le fichier DPi // ce fichier sera
pointé par fp Tant que non fin de ce fichier
Faire {
Lire enregistrement par enregistrement toutes les chaines de
caractères. Dès qu'une chaîne de caractères
correspond au type d'opération indiqué par la variable
type_operation, remplacer cette chaîne par le contenu de la chaîne
de caractères indiquée par nom_fichier, et passer à
l'enregistrement suivant ;
}
Ffaire
}
Ffaire
FIN
3.3.3.5 Algorithme pour la fonction maj2dp () :
Cette fonction qui fait appel à la fonction maj_dp ()
consiste à reconstituer les fichiers DPi à leur
état initial (types d'opérations au lieu des instances)
après avoir étudié les caractéristiques d'une
configuration donnée. Par exemple, il s'agira de remplacer l'instance
ADD7 par le type d'opération ADD. Ceci permettra ultérieurement
d'explorer d'autres configurations en remplaçant ADD par ADD4, MULT par
MULT2, ...etc.
maj2_dp (variable : ptr : pointeur sur la structure OPERATEURS)
;
Variable : ptr1 : pointeur sur la structure COMB_TYP_OP ;
DEBUT
Si (ptr ? 0)
alors pour ( ; ptr ; ptr=ptr->next)
faire pour (ptr1=ptr->head; ptr1; ptr1=ptr1->next)
faire maj_dp(ptr, ptr1);
ffaire
ffaire
fsi
FIN
3.3.3.6 Algorithme pour la fonction majdp () :
maj_dp (variable : ptr : pointeur sur la structure OPERATEURS
,
ptr1 : pointeur sur la structure COMB_TYP_OP) ;
Variables : ptr11 : pointeur sur la structure INSTANCE ;
fp : Fichier ;
type_operation [10], nom_fichier [10] : chaine de
caractère ;
i, num_cycle : entier ;
fich_dp [20], mot [20], ch_temp [4] : chaine de caractère
;
c : caractère ; position : long ;
DEBUT
Tant que non fin de fichier DPi
Faire remplacer dans ce fichier une instance d'un
opérateur par le nom de l'opérateur
// Exemple Remplacer ADD6 par ADD, MULT7 par MULT, etc....
/* Le nom de l'instance est déterminé grâce
à ptr11 et le type d'opération grâce à ptr1*/
Ffaire
FIN
|