Implantation Xilinx
On a implanté ce premier projet sur un kit de développement Xilinx Spartan 3 de Digilent . Ce kit comportant 4 afficheurs 7 segments multiplexés, la seule adaptation par rapport au projet initial est de rajouter le multiplexage de l’affichage qui consiste en un rafraichissement de chaque afficheur ( valeur et place) toutes les 2 millisecondes environ.
C’est le fichier s3board.vhd qui réalise cet interface.
Sous ise, on crée le nouveau projet « premier » en ciblant le Spartan XC3S200. Puis par la commande project> add source, on intègre tous les fichiers sources utiles à savoir:
- sources/primitive-pack.vhd
- sources/bouton_poussoir.vhd
- sources/premier.vhd
- sources/s3board.vhd
On édite un fichier de contrainte s3board.ucf reprenant les informations de placement des différentes broches, disponibles dans la documentation du kit .
La synthèse, placement, routage, génération du fichier de configuration s3board.bit ne pose pas, dès lors, de problème particulier.
Performances
Synthèse
Du rapport fourni par ise, on s’interrogera sur le nombre de bascules (Flip flops) trouvés soient 191. Il est bon de pouvoir justifier approximativement ce chiffre afin de déceler éventuellement quelques aberrations. Pour cela, scrutons les variables et signaux soumis à un « WAIT UNTIL rising_edge » caractéristique de l’implantation d’une bascule. On peut dénombrer ainsi:
- Pour chaque bouton poussoir 18 pour le compteur par 250000 et 4 pour la machine d’état, total 4×22 = 88
- Le pré diviseur de temps (2 x 25000000) consommera 23 bascules auxquelles il faudra rajouter 6 bascules pour le compteur secondes, 8 bascules pour le compteur minutes, 8 pour le compteur heure . Total 45 bascules.
- Même décompte pour les registres/ compteurs alarme. 8 + 8 = 16 bascules
- 1 bascule pour le signal d’activation d’alarme.
- La temporisation assurant le multiplexage de l’affichage nécessite 17 bascules (modulo 100000), et il en faut 12 +4 = 16 supplémentaires pour les afficheurs. Total 33 bascules.
Le total cumulé nous donne à quelques unités près 183 bascules au lieu des 191 indiquées dans le rapport Xilinx. le rapport détaillé ise nous permet de voir ce qui a été oublié. La démarche consistant à compter soi même le nombre de bascules prévisibles s’avère extrêmement utile. En effet, dans un premier temps, ise nous indiquait 210 bascules ( au lieu de 183) et ceci à cause de l’oubli de contrainte sur certaines variables . Par défaut un entier non contraint est 32 bits ( donc 32 bascules pour ise). Donc ne pas oublier de contraindre comme dans l’exemple suivant VARIABLE compt : natural RANGE 0 TO 60;
Vitesse
Les structures implantées dans cette exemple étant le plus souvent de type compteur, la période minimale consécutive au placement/routage est de 11,2 ns ce qui indique une fréquence maximale théorique ( dans le pire cas ) de 89 MHz .
Leave a Reply
You must be logged in to post a comment.