TP 2 : Modélisation de la consommation d`un bloc - ETIS

publicité
Master 2 ESA :
Vers des systèmes reconfigurables
efficaces en énergie…
TP 2 : Modélisation de la consommation d’un bloc matériel via
des mesures réelles
J. Lorandel
Lors de ce TP, l’objectif est de développer un modèle analytique permettant
d’estimer la consommation énergétique d’un bloc matériel. Ce type de modèle
est très pratique car il permet d’estimer directement à haut-niveau, la
consommation d’un bloc matériel en fonctions de paramètres d’intérêt.
fréquence
quantification
Taille du filtre
…
Bloc matériel
Puissance consommée
= f(freq,quantif,taille de
filtre, …)
Pour développer ce modèle analytique, nous allons devoir réaliser plusieurs
implémentations (i.e. génération de fichiers de configuration du FPGA) de
filtres, où nous allons faire varier la taille et sa fréquence d’horloge. Des
informations supplémentaires seront données par la suite.
Contrairement au TP1 où vous avez utilisé VIVADO, l’environnement de
développement est ISE de Xilinx. Le flot de conception sous ISE comporte les
mêmes étapes mais dans un environnement graphique différent.
Introduction
• Objectifs du TP
-Familiarisation avec l’environnement ISE de Xilinx
-Compréhension des étapes du flot de conception Xilinx
-Développement de modèle analytique via des mesures réelles sur
plateformes à l’aide de ChipScope Pro Analyzer
• Récupération des sources
-Les sources nécessaires au TP sont disponibles ici :
http://perso-etis.ensea.fr/lorandel/M2_ESA.php
Récupérer l’archive (TP_Modelling_Student.zip)
ressources dans un répertoire en local1.
et
extraire
les
• Matériel à disposition
-1 Plateforme FPGA ML605
Synthèse,
Implémentation et
génération du
bitstream
Configuration
du filtre
Création du
modèle
Mesures de
consommation
• Déroulement du TP
Sur la figure précédente est décrit les grandes étapes du TP que vous
allez devoir réaliser.
1) Configuration du filtre
Le bloc matériel en question est un filtre FIR. Ce bloc est très utilisé et
on le retrouve dans de nombreux domaines d’application (traitements
d’images, du signal, télécommunications, …). On rappelle l’architecture d’un
tel filtre sur la figure suivante :
Figure : architecture parallèle d’un filtre FIR
1
Attention du chemin du répertoire, il ne doit contenir ni espace ni autres caractères spéciaux !!!
L’architecture peut se décomposer sous la forme de TAP successif dont le
nombre indique la taille du filtre. Pour modifier la taille du filtre, on modifiera
donc le paramètre générique du code VHDL : TAP.
Lors des présentations des intervenants dans l’UE, vous avez pu remarquer
que les données appliquées en entrée d’un circuit pouvait avoir un impact
important sur la consommation. Dans le code VHDL fournit, nous avons
encapsulé le filtre FIR dans une entité supérieure appelée TOP, avec une
mémoire et une PLL. La mémoire est initialisée avec des données à appliquer
en entrée du filtre. L’avantage est de pouvoir appliquer les mêmes données en
entrée du filtre pour les différentes configurations. De cette manière, on peut
s’affranchir de l’impact de la nature des données appliquées. Sur la figure
suivante est illustrée le schéma de principe du système :
ROM
(génération
des stimuli)
Switches
Filtre
FIR
LEDs
Gestion d’horloge
La plateforme ML605 dispose de plusieurs périphériques utilisateurs comme
des boutons poussoirs, des switches, des LEDs, …
Nous utiliserons les suivantes pour contrôler le système :
SW8 -> Clock enable (Activation de la prise en compte de l’horloge)
SW1 à SW5 -> sélection de la fréquence d’horloge :
SW1 -> Fréquence de 10 MHz
SW2 -> Fréquence de 30 MHz
SW3 -> Fréquence de 50 MHz
SW4 -> Fréquence de 70 MHz
SW5 -> Fréquence de 100 MHz
Attention, un seul de ces 5 switches ne devra être à 1, les autres à 0.
La plateforme dispose aussi de LEDs permettant de s’assurer du bon
fonctionnement.
LED_0 (DS12) -> Données écrites en entrée du FIR,
LED_1 (DS11) -> RST
LED_2 (DS9) -> Clock enable
LED_6 et 7 (DS22 et DS21) -> debug
2) Configuration des paramètres du filtre
Dans le dossier fourni, aller dans le répertoire project et double cliquer sur le
fichier project.xise. L’environnement ouvre le projet et vous pouvez observer
l’arborescence du projet via la fenêtre Design. On y retrouve le fichier
TOP.vhd contenant les autres modules VHDL (stimuli_source…).
Ouvrir le fichier TOP.vhd (double clique). Repérer ensuite l’entité du module
TOP. Il possède plusieurs paramètres génériques permettant de modifier la
taille des données (stimuli) d’entrée et de sortie du filtre, le nombre de TAP et
le nom du fichier d’initialisation de la ROM (contenant les stimuli).
Lors de ce TP, on ne modifiera que le paramètre générique TAP
permettant de faire évoluer la taille du filtre. Laisser pour le moment la
valeur 100 par défaut.
• Réalisation du flot de conception
Pour lancer le déroulement du flot de conception, cliquer sur TOP dans la
fenêtre Hierarchy, puis dans la fenêtre Design, double cliquer sur Generate
Programming File. Toutes les étapes du flot de conception allant de la
synthèse à la génération du bitstream vont être réalisées, ce qui peut s’avérer
assez long.
Une fois que toutes les étapes ont été réalisées, le fichier de configuration du
FPGA (TOP.bit) est disponible dans le répertoire du projet. Copier le et
déplacer le dans le dossier Library. Renommer le TOP_100TAPs.bit car le
filtre possède 100 TAPs (cf. fichier TOP.vhdl)
3) Mesure de Consommation
La carte ML605 possède des résistances de shunt en série sur les différents
rails d’alimentation du FPGA (cœur, I/Os, …). Dans notre cas, nous nous
intéresserons à la résistance de shunt placée sur le rail d’alimentation
(VCCINT) du FPGA. Les variations de tension aux bornes de cette résistance
sont directement proportionnelles au courant consommé par le circuit.
Au final, si l’on connaît la valeur de la tension d’alimentation du cœur FPGA,
ainsi que le courant consommé, alors il est possible de déterminer la puissance
consommée par le circuit implanté sur le FPGA.
Afin de faciliter l’évaluation de la consommation, Xilinx a développé un outil
permettant de venir monitorer automatiquement la tension aux bornes de ces
résistances. Cet outil est aussi utilisé pour le debug.
L’outil s’appelle ChipScope Pro Analyzer. Double cliquer sur Analyze Design
Using ChipScope …
Une fois l’outil lancé, vous devez obtenir l’interface suivante :
A ce stade, allumer la plateforme. Cliquer ensuite sur
Le monitoring du circuit s’effectue à travers le lien JTAG. C’est d’ailleurs à
travers ce lien que l’on effectue la configuration du FPGA ainsi que du debug.
La fenêtre suivante s’ouvre :
Cette fenêtre indique tous les éléments qui sont connectés via le lien JTAG.
Dans notre cas, deux ‘devices’ sont présents sur le lien. On y trouve le
System_ACE_CF, permettant la configuration de la carte Compact Flash et le
FPGA XC6VLX240T. Cliquer sur OK.
Vous arrivez ensuite sur l’écran principal de l’outil Chipscope. Vous retrouvez
les informations précédentes dans la fenêtre située en haut à gauche.
Le FPGA doit à présent être programmé avec le bitstreams que l’on a généré
précédemment.
Pour cela, faire un clic droit sur DEV1 :MyDevice1(…) puis configure :
La fenêtre suivante s’ouvre :
Cliquer sur Select New File et aller chercher le fichier de configuration
(TOP_100TAPs.bit) présent dans le répertoire (Library). Puis OK. Cette étape
lance le téléchargement du bistream sur le FPGA et donc sa configuration
(NB : vous pouvez observer la progression de la programmation en bas à droite
de l’outil).
Dans le répertoire Library, vous avez pu remarquer que d’autres bistreams
sont déjà générés. Vous les utiliserez par la suite pour évaluer la
consommation de nouvelles configurations du filtre.
Une fois le FPGA configuré, double clic sur System Monitor Console et
étendre les on-chip Sensors comme indiqué :
La fenêtre centrale s’ouvre. Qu’observe-t-on à travers la console du System
Monitor?
-La température du diélectrique (Die Temperature)
-La tension d’alimentation du FPGA (VCCINT)
-La tension d’alimentation auxiliaire (VCCAUX)
Il faut maintenant indiquer à l’outil, de monitorer la tension aux bornes de la
résistance de shunt. Cette tension est disponible sur une entrée externe.
Sélectionner V_P/V_N. (Pour ceux qui sont intéressés par le ‘pourquoi’,
l’information est disponible dans le user guide UG534 p71-72).
La fenêtre suivante apparaît, cliquer sur Oui.
Une nouvelle fenêtre de monitoring a été rajoutée (en plus de la température
du die, VCCINT et VCCAUX).
Pour afficher la puissance et non la tension, il est nécessaire de spécifier la
valeur de la résistance de shunt.
Clic droit sur V_P/V_N dans la fenêtre Sensor, et sélectionner VCCINT
Power Measurement.
Dans la fenêtre suivante, préciser la valeur de la résistance de shunt :
5mOhm et une précision de 4 digits puis OK.
Vérifier que la fenêtre V_P/V_N affiche désormais automatiquement la
puissance consommée par le cœur FPGA.
Question :
-La puissance n’est pas nulle alors que le design n’est pas actif (SW8 à
0), pourquoi ?
-A quoi correspond cette puissance ?
• Procédure de mesures
Vous prendrez soin de relever la valeur moyenne (approximative) de cette
tension à chaque nouvelle programmation du FPGA (téléchargement d’un
nouveau bitstream).
On souhaite faire varier la fréquence de fonctionnement du filtre. Ceci sera
possible via les switches SW1.1 à SW1.5. Vérifier que tous les switches sont
d’abord à 0. La prise en compte du signal d’horloge sera effective lorsque le
swicth SW8 sera à 1. L’horloge sera désactivée si SW8 = 0.
1) Activer le switch SW1 (10MHz d’horloge). Activer ensuite le
SW8 (clock enable afin d’autoriser la prise en compte de
l’horloge et donc permettre l’activation du circuit implanté).
Ø Relever la puissance moyenne.
2) Sélection d’une autre fréquence d’horloge. Désactiver SW1 puis
activer le switch SW2 (30MHz). Puis relever à nouveau la
puissance moyenne.
3) Faire de même pour SW3 (50MHz), SW4 (70MHz) et enfin SW5
(100MHz).
Attention, il ne doit y avoir qu’un seul switch à 1 parmi les
switches SW1 à SW5.
Question : A quoi correspond la puissance moyenne mesurée ?
Finalement, on aura relevé la puissance totale moyenne consommée pour
différentes fréquences et pour une taille de filtre donnée.
• Modifications de la taille et filtre et nouvelles mesures.
Une fois les mesures effectuées, il faudrait refaire l’ensemble de la procédure
pour pouvoir évaluer la consommation d’un filtre avec nouvelle taille
(modification du paramètre générique de la taille du filtre, réalisation du flot de
conception, puis mesures réelles).
Afin de gagner du temps, vous avez pu observer qu’un certain nombre de
bitstreams étaient déjà présents dans le répertoire Library.
Charger donc directement une nouvelle configuration du filtre et effectuer de
nouveau les mesures de consommation.
Sous Chipscope, on peut reprogrammer le FPGA directement en faisant
comme précédemment. :
Clic droit sur DEV1:… puis Configure, puis Select New file …
Remarque : une fois le FPGA configuré, il est possible que la puissance
indiquée dans la fenêtre V_P/V_N indique constamment 0. Il est alors
nécessaire d’indiquer de nouveau la valeur de la résistance de shunt…
-Faire alors un clic droit sur V_P/V_N, sélectionner Unsigned Decimal.
-Refaire un clic droit et indiquer de nouveau VCCINT Power
Measurement.
Compléter alors le tableau suivant :
TAP
Puissance
statique (W)
100
Fréquence
(MHz)
Puissance Totale (W)
Puissance dynamique (W)
10
30
50
70
100
200
10
30
50
70
100
300
10
30
50
70
100
500
10
30
50
70
100
Une fois le tableau complété, on passera à la création du modèle analytique
sous Matlab.
4) Création du modèle analytique
A ce stade, on a donc fait varier la taille du filtre et sa fréquence d’horloge.
Nous avons aussi relevé les consommations correspondantes.
Un modèle analytique peut être obtenu en effectuant une régression linéaire
sous Matlab, de telle sorte à pouvoir exprimer la puissance dynamique (Pdyn en
W) en fonction de la fréquence (f en MHz) et de la taille du filtre (N_TAP), sous
la forme polynomiale suivante (1er et 2nd ordre)
1er ordre :
2nd ordre :
𝑃"#$ = 𝑎. 𝑓 + 𝑏. 𝑁,-. + 𝑐
1
𝑃"#$ = 𝑎. 𝑓 + 𝑏. 𝑁,-. + 𝑐. 𝑓. 𝑁,-. + 𝑑. 𝑁,-.
+ 𝑒
Dans le sous répertoire Matlab, vous trouverez un template
(Model_Creation_Students.m). Lancer Matlab en double cliquant sur le fichier.
• Compléter ensuite le template avec vos propres valeurs.
• Réaliser ensuite la régression polynomiale multi-variables
• Déterminer les valeurs des coefficients dans la structure des
résultats
• Jouer sur les degrés du polynôme (structure pour obtenir une
bonne précision du modèle (cf. champ ‘PV’ de la fonction de
régression)). On fera attention au choix des degrés du polynome.
5) Précision de la modélisation
Lors de toute modélisation, il est important de pouvoir évaluer la précision du
modèle réalisé. De même, il sera intéressant d’évaluer sa capacité à pouvoir
estimer la consommation pour un jeu de paramètres différents de ceux utilisés
pour créer le modèle. Pour cela, on va donc implémenter une nouvelle
configuration de filtre avec une taille N_TAP différente de celles utilisées pour
la création du modèle. Par exemple, on pourra fixer comme nouveau
paramètre générique de notre filtre N_TAP = 250.
• Sous ISE, modifier le paramètre générique TAP de l’entité TOP
avec la nouvelle valeur.
Double cliquer sur Generate Programming File pour lancer la
génération du fichier bitstream.
• Une fois le bitstream généré, lancer Chipscope en double cliquant
sur Analyze Design Using ChipScope.
• Reprendre ensuite les différentes étapes pour configurer le FPGA
avec le nouveau bitstream (si besoin, voir précédemment)
• Effectuer la série de mesures.
• Comparer la mesure réelle pour une fréquence donnée avec la
valeur estimée via le modèle analytique. Conclusion ?
6) Bilan du TP
A travers cette séance de travaux pratiques, vous avez pu vous familiariser
avec l’environnement de conception ISE à travers la création d’une librairie de
fichiers de configuration pour FPGA. Des mesures réelles de consommation
ont été réalisées et celles-ci ont permis la création d’un modèle analytique liant
la puissance dynamique à des paramètres d’intérêt comme la fréquence
d’horloge ou le nombre de TAP du filtre. La précision du modèle a pu être
évaluée à l’aide d’un nouveau jeu de mesure, indépendante des mesures
réalisées durant la phase d’élaboration du modèle.
Pour un concepteur, disposer de ce type de modèle pourrait s’avérer précieux
afin de pouvoir estimer la consommation au plus tôt dans le flot de conception
et à haut niveau. L’utilisateur gagne alors en temps et en flexibilité. Des choix
de configurations peuvent alors être effectués pour satisfaire une contrainte de
budget énergétique.
Téléchargement