Vous êtes sur la page 1sur 6

Morgan MENDES Florent GARIT IMA4SC Mai 2011

Compte rendu de TP de CNP Avanc


Introduction Dans le cadre de notre huitime semestre lcole PolytechLille, nous avons eu loccasion deffectuer un TP sur la plateforme Nanoboard dAltium. Nous avions dj eu plusieurs occasions de travailler dessus, mais cette fois-ci, un ingnieur Altium est venu pour nous donner quelques cours et nous encadrer pour faire ce TP rle formateur. Le but, rcuprer des signaux vido provenant dune camra et dafficher les images sur lcran de la Nanoboard tout en y ajoutant un effet de zoom et de rotation. Ce compte-rendu relate de manire chronologique les tapes suivies pour mener bien ce TP.

1. Premire analyse Afin de mettre en place la fonction demande, il est ncessaire dimplanter dans le FPGA intgr la Nanoboard un microprocesseur. Cest la base pour pouvoir faire le traitement sur les signaux vido entrants (rcuprer, modifier et afficher). Nous avons donc cr un nouveau projet sur le logiciel Altium. De plus, ce projet met bien en avant le principe de cration de projets sur FPGA sparant bien la partie hardware (mise en place du microprocesseur, priphriques et interconnexions) et la partie software (le code C implant dans le processeur).

2. OpenBus Nous avons commenc par crer un fichier OpenBus. Nous avons ajout diffrents priphriques donc nous avons besoin et nous nous sommes occups des interconnexions. Les priphriques qui ont t utiliss sont : Le processeur TSK3000A La RAM Les priphriques vido IC Priphrique esclave/master (Multimaster) Priphrique master/esclave (Interconnect) GPIO Ecran TFT

De nombreux rglages ont t ncessaires pour que le tout fonctionne, comme le type de linterface de chaque priphrique qui doit tre plac sur Pins et non Signal Harnesses. La taille du bus GPIO doit tre de 8 dans notre cas. La mmoire RAM doit tre de type SRAM asynchrone. Le point important ne pas oublier pour viter tout problme dans la suite du projet et notamment pour la partie programmation, est dactiver la cration automatique du fichier hardware.h.Il suffit pour cela daller dans les options de mmoire du processeur et cliquer sur la case correspondante.

Figure 1 : OpenBus Final

3. Schematics Dans ltape suivante, nous avons insr le schma OpenBus dans un fichier Schematics(Design/ createsheetfrom HDL). Nous avons ensuite ajout les diffrents composants et effectu les connexions qui sont : Les entres/sorties vidos Les 8 L.E.D. Lcran TFT Le clock La mmoire RAM Un bouton suivi dun inverseur pour permettre un reset Les diffrentes sources de tension, ainsi que les masses

Nous avons ensuite compil pour vrifier les connexions.

4. Fichier de contraintes Afin de pouvoir passer la partie software, nous avons dit nos contraintes, car il est ncessaire de lui spcifier nos contraintes de temps. Pour cela, il suffit de faire Add New to project>Constraint et ainsi spcifier les contraintes ncessaires. La contrainte principale tait la contrainte de timing pour l'horloge interne et le JTAG (qui permet de transfrer les donnes sur le FPGA).Nous avons entr comme frquence 50 Mhz pour l'horloge.

A la fin, il est important de se rappeler dactiver le fichier de contrainte, en allant dansleconfiguration manager.

5. Test Software avec LEDs Afin de commencer la partie software, nous avons cr un nouveau Embedded Project.Ensuite, nous avons ajout un Software Platformpour grer la liste des drivers ncessaires.

Une fois cette tape franchie, il est ncessaire de faire uncliquer-dposer de lEmbedded Project sur le processeur dans Structure Editor.Nous avons donc pu commencer la programmation du processeur. Dans un premier temps, nous avons test un simple programme en C pour nous assurer que tout ce qui avait t fait dans les tapes prcdentes tait correct.Le but de ce premier test tait de commander aux LEDs de la Nanoboard de s'allumer d'une certaine manire.L'unique souci que nous avons eu est que nous avons ds le dbut utilis la version 10 du logiciel au lieu de la version 9 comme les autres.

Il semblait que la version 10 n'avait pas t bien installe sur notre machine. Nous sommes donc repasss la version 9.Nous avons alors chang le programme et transfr directement sur le FPGA. Ce quil est intressant remarquer est quune fois le projet FPGA compil (avec ltape de place and route qui peut tre longue), il nest pas ncessaire de tout reprogrammer juste pour charger un autre programme.

6. Recopiage du programme C de rcupration et affichage vido L'tape suivante a consist en l'implantation du programme C effectuant la rcupration d'un signal vido et l'affichant sur l'cran LCD avec des effets de rotation et de zoom. Cette tape s'est bien droule mis part une petite erreur dans le sujet. A la ligne 123 du code, il manquait deux paramtres la fonction bt656_open. Nous avons trouv une solution en se basant sur la documentation accessible depuis le logiciel :bt656 = bt656_open(VIDEO, (uint32_t*)imgbug, VIDEO_BUFFER_SIZE); Aprs compilation et implmentation sur la Nanoboard, le rsultat tait celui attendu. En revanche, les performances ne semblaient pas optimales.

7. Ajout dinstruments virtuels Les instruments virtuels permettent au dveloppeur de remplacer des instruments physiques en composants implants dans le FPGA. Ces composants peuvent effectuer certaines oprations et communiquer avec le logiciel. Afin deffectuer des tests et de nous familiariser avec ces instruments virtuels, nous avons ajout notre projet les composants : ClockGen :permet de modifier la frquence du processeur. Dans notre cas, ce changement influe directement sur la vitesse daffichage. LAX : permet dobserver un signal. Ici nous avons observ le signal vido dentre (en diminuant la vitesse du processeur 25 Mhz pour respecter le thorme de Shannon). Digital_IO : permet de simuler des entres et sorties. Ici nous avons simul le bouton reset. Aprs compilation, nous avons observ dans le rapport de compilation que la vitesse maximum possible ntait que de 14 Mhz. Lajout dinstruments virtuels y tait en partie pour quelque chose car ils prennent des ressources importantes et ainsi diminuent grandement la frquence. Notre horloge tant paramtre pour 50 Mhz, il devait avoir de grandes pertes de donnes.

8. Dbogage Le logiciel Altium offre des possibilits de dbogage telles celles offertes par un logiciel comme GDB, trs utilis par les programmateurs notamment en C. En effet, des outils comme les points darrts, le droulement du programme step by step, et laffichage des variables sont disponibles.

9. Optimisation hardware A ce moment-l du TP, le programme que nous avions implant fonctionnait. Cependant, nous avons appris quil tait possible den amliorer encore les performances. Cette tape sappelle lacclration matrielle. Cet ajout sopre dans OpenBus avec lajout dun priphrique ASP. Nous avons ensuite dtermin que les fonctions rotate et set_tabs se prtaient tout fait cette acclration matrielle car elles taient paralllisables. En guise de rsultat, nous avons observ que leffet tait encore plus convaincant.Laffichage de la vido avec ses effets tait en effet beaucoup plus rapide.

Conclusion Ce TP nous a permis de mieux matriser le logiciel Altium ainsi que la Nanoboard. Nous avons observ quil tait possible de faire beaucoup de choses avec. A la fin du TP, nous avons eu loccasion dobserver des exemples de jeux et mme daffichage dobjets 3D.

Vous aimerez peut-être aussi