6
Travaux pratiques de gestion de périphériques d’une carte FPGA Xilinx Starter-Kit Spartan3-E à l’aide de picoprocesseur (picoBlaze) Bertrand Le Gal, Lilian Bossuet [email protected], [email protected], ENSEIRB – 1, avenue du Dr Albert Schweitzer BP 99 – 33402 TALENCE Cedex - France RESUME : L’électronique numérique a connu d’importantes avancées ces dernières années. La place qu’elle prend dans la formation des ingénieurs en électronique grandie en adéquation avec l’importance croissante des systèmes nu- mériques, embarqués et/ou communicants. C’est donc un des enseignements principales de ces formations et à ce titre en forte évolution. Dans le milieu des années 80, l’électronique numérique se limitait pour l’enseignement supérieure à un peu de logique combinatoire réalisée avec de simples portes et de la logique séquentielle réalisée autour de bascules. Les travaux pratiques se résumaient alors à la délicate opération de câblage de nombreux circuits (type CMOS 4011). Aujourd’hui, l’électronique numérique associe généralement un langage de description matériel, le VHDL, à des com- posants reconfigurables FPGA aux densités d’intégration impressionnantes (plusieurs millions de portes élémentaires) avec des composants programmables (microprocesseurs, DSP) et des langages de haut niveau comme le langage C. Le travail de l’enseignant de travaux pratiques à donc rapidement évolué, aujourd’hui la grande difficulté est de concevoir des exercices simples avec du matériel évolué. Nous avons suivi cette évolution à l’Ecole Nationale Supérieure d’Electronique, Informatique et Radiocommunication de Bordeaux (ENSEIRB). Dans le cadre de l’enseignement d’électronique numérique nous proposons un TP de gestion de périphérique d’une carte FPGA Xilinx. Cet article peut permettre une reprise rapide par un enseignant pour des étudiants des IUT, Université ou Ecole d’Ingénieurs, les au- teurs sont disposés à fournir pour cela les sources nécessaires (descriptions VHDL, codes assembleur et codes C). Mots clés : Electronique numérique, FPGA, VHDL, processeur synthétisé. 1 INTRODUCTION A la fin des années 90, les étudiants électroniciens connaissaient par cœur le brochage d’un circuit intégré CMOS 4001 ou CMOS 4011… dix ans plus tard, peu d’entres eux savent que sous ces noms de codes se ca- chent respectivement quatre portes NOR et quatre por- tes NAND à deux entrées. Cette petite histoire de cir- cuit intégré nous révèle de grands changements dans le domaine de l’électronique numérique. Aujourd’hui, les méthodes de conception haut niveau, la synthèse logi- ques, les langages de description matérielle, le VHDL en premier lieu, et les circuits reconfigurables CPLD et FPGA, ont remplacés les longues heures de câblages des portes en circuits intégrés 14 broches ! Cette évolution correspond bien entendu à une évolu- tion de l’offre d’emplois des jeunes électroniciens, amplifiée par l’explosion du domaine des systèmes embarqués et/ou communicants. Au cœur du dispositif pédagogique les enseignants doivent donc faire évoluer les enseignements. Souvent, il est nécessaire de s’auto-former et de passer de nom- breuses heures à mettre au point des TP. Une des diffi- cultés dans le cas de l’électronique numérique est de créer des TP simples qui permettent aux étudiants de développer des compétences sur la maitrise du langage VHDL, celle des outils de simulation, synthèse et pla- cement routage, et l’utilisation et la mise en œuvre des FPGA, en utilisant des cartes électroniques modernes dotées de périphériques comme des liaisons séries, Ethernet, afficheur LCD … Dans cet article nous présentons un TP de VHDL- FPGA proposé à l’ENSEIRB [1], dans lequel nous mettons en œuvre la carte Xilinx Stater-Kit Sparten3-E [2]. Lors de ce TP les étudiants vont gérer l’afficheur LCD et la liaison série de la carte à partir de deux ins- tanciations d’un microprocesseur élémentaire synthéti- sées dans le FPGA. Il s’agit du microprocesseur (ou picoprocesseur) picoBlaze fournit pas Xilinx [3]. L’idée est de fournir aux étudiants les briques de bases que sont les contrôleurs (picoBlaze) avec le code as- sembleur nécessaire. Effectivement, il ne s’agit pas de faire un TP assembleur ou de microprocesseur, mais bien de se concentrer sur l’architecture du système numérique, sa description en VHDL (la description VHDL du picoBlaze est bien entendu fournit aux étu- diants) et son implantation dans le circuit FPGA. En plus des aspects VHDL et FPGA initialement visés, les étudiants sont ainsi formés au développement par IP (Intellectual Properties) largement répandu au- jourd’hui, à l’architecture d’un système à processeur, à la notion de processeur embarqué. La suite de l’article est construite de la façon suivante. La prochaine partie présente quelques points histori- ques concernant le développement des circuits FPGA. Cette partie est largement tirée du cours « Architecture, conception et utilisation des FPGA » de l’ENSEIRB [4]. Cette rapide étude historique, nous aide à mieux comprendre l’intérêt de former les futurs ingénieurs électroniciens à la maitrise de ces circuits et des outils qui y sont associés. La partie 3 présente le programme d’enseignement de l’électronique numérique au dépar- tement électronique de l’ENSEIRB, ainsi que les sé- quences pédagogiques concernant l’enseignement du

Travaux pratiques de gestion de périphériques d’une ... · des exercices simples avec du matériel évolué. ... Cette partie est largement tirée du cours ... concernant l’enseignement

Embed Size (px)

Citation preview

Page 1: Travaux pratiques de gestion de périphériques d’une ... · des exercices simples avec du matériel évolué. ... Cette partie est largement tirée du cours ... concernant l’enseignement

Travaux pratiques de gestion de périphériques d’une carte FPGA Xilinx Starter-Kit Spartan3-E à l’aide de picoprocesseur (picoBlaze)

Bertrand Le Gal, Lilian Bossuet

[email protected], [email protected], ENSEIRB – 1, avenue du Dr Albert Schweitzer

BP 99 – 33402 TALENCE Cedex - France

RESUME : L’électronique numérique a connu d’importantes avancées ces dernières années. La place qu’elle prend dans la formation des ingénieurs en électronique grandie en adéquation avec l’importance croissante des systèmes nu-mériques, embarqués et/ou communicants. C’est donc un des enseignements principales de ces formations et à ce titre en forte évolution. Dans le milieu des années 80, l’électronique numérique se limitait pour l’enseignement supérieure à un peu de logique combinatoire réalisée avec de simples portes et de la logique séquentielle réalisée autour de bascules. Les travaux pratiques se résumaient alors à la délicate opération de câblage de nombreux circuits (type CMOS 4011). Aujourd’hui, l’électronique numérique associe généralement un langage de description matériel, le VHDL, à des com-posants reconfigurables FPGA aux densités d’intégration impressionnantes (plusieurs millions de portes élémentaires) avec des composants programmables (microprocesseurs, DSP) et des langages de haut niveau comme le langage C. Le travail de l’enseignant de travaux pratiques à donc rapidement évolué, aujourd’hui la grande difficulté est de concevoir des exercices simples avec du matériel évolué. Nous avons suivi cette évolution à l’Ecole Nationale Supérieure d’Electronique, Informatique et Radiocommunication de Bordeaux (ENSEIRB). Dans le cadre de l’enseignement d’électronique numérique nous proposons un TP de gestion de périphérique d’une carte FPGA Xilinx. Cet article peut permettre une reprise rapide par un enseignant pour des étudiants des IUT, Université ou Ecole d’Ingénieurs, les au-teurs sont disposés à fournir pour cela les sources nécessaires (descriptions VHDL, codes assembleur et codes C). Mots clés : Electronique numérique, FPGA, VHDL, processeur synthétisé.

1 INTRODUCTION

A la fin des années 90, les étudiants électroniciens connaissaient par cœur le brochage d’un circuit intégré CMOS 4001 ou CMOS 4011… dix ans plus tard, peu d’entres eux savent que sous ces noms de codes se ca-chent respectivement quatre portes NOR et quatre por-tes NAND à deux entrées. Cette petite histoire de cir-cuit intégré nous révèle de grands changements dans le domaine de l’électronique numérique. Aujourd’hui, les méthodes de conception haut niveau, la synthèse logi-ques, les langages de description matérielle, le VHDL en premier lieu, et les circuits reconfigurables CPLD et FPGA, ont remplacés les longues heures de câblages des portes en circuits intégrés 14 broches !

Cette évolution correspond bien entendu à une évolu-tion de l’offre d’emplois des jeunes électroniciens, amplifiée par l’explosion du domaine des systèmes embarqués et/ou communicants.

Au cœur du dispositif pédagogique les enseignants doivent donc faire évoluer les enseignements. Souvent, il est nécessaire de s’auto-former et de passer de nom-breuses heures à mettre au point des TP. Une des diffi-cultés dans le cas de l’électronique numérique est de créer des TP simples qui permettent aux étudiants de développer des compétences sur la maitrise du langage VHDL, celle des outils de simulation, synthèse et pla-cement routage, et l’utilisation et la mise en œuvre des FPGA, en utilisant des cartes électroniques modernes dotées de périphériques comme des liaisons séries, Ethernet, afficheur LCD …

Dans cet article nous présentons un TP de VHDL-FPGA proposé à l’ENSEIRB [1], dans lequel nous mettons en œuvre la carte Xilinx Stater-Kit Sparten3-E [2]. Lors de ce TP les étudiants vont gérer l’afficheur LCD et la liaison série de la carte à partir de deux ins-tanciations d’un microprocesseur élémentaire synthéti-sées dans le FPGA. Il s’agit du microprocesseur (ou picoprocesseur) picoBlaze fournit pas Xilinx [3]. L’idée est de fournir aux étudiants les briques de bases que sont les contrôleurs (picoBlaze) avec le code as-sembleur nécessaire. Effectivement, il ne s’agit pas de faire un TP assembleur ou de microprocesseur, mais bien de se concentrer sur l’architecture du système numérique, sa description en VHDL (la description VHDL du picoBlaze est bien entendu fournit aux étu-diants) et son implantation dans le circuit FPGA.

En plus des aspects VHDL et FPGA initialement visés, les étudiants sont ainsi formés au développement par IP (Intellectual Properties) largement répandu au-jourd’hui, à l’architecture d’un système à processeur, à la notion de processeur embarqué.

La suite de l’article est construite de la façon suivante. La prochaine partie présente quelques points histori-ques concernant le développement des circuits FPGA. Cette partie est largement tirée du cours « Architecture, conception et utilisation des FPGA » de l’ENSEIRB [4]. Cette rapide étude historique, nous aide à mieux comprendre l’intérêt de former les futurs ingénieurs électroniciens à la maitrise de ces circuits et des outils qui y sont associés. La partie 3 présente le programme d’enseignement de l’électronique numérique au dépar-tement électronique de l’ENSEIRB, ainsi que les sé-quences pédagogiques concernant l’enseignement du

Page 2: Travaux pratiques de gestion de périphériques d’une ... · des exercices simples avec du matériel évolué. ... Cette partie est largement tirée du cours ... concernant l’enseignement

VHDL et des circuits FPGA à l’école. La partie 4 pré-sente techniquement les différentes parties du TP de gestion de périphériques de la carte Xilinx Stater-Kit Spartan3-E avec un ou deux picoBlaze.

2 UNE RAPIDE HISTOIRE DES FPGA

Les FPGA (Field Programamble Gate Array) sont des circuits numériques reconfigurables. En 1984 la société américaine Xilinx fut précurseur du domaine en lan-çant le premier circuit FPGA commercial, le XC2000. Ce composant avait une capacité maximum de 1500 portes logiques. La technologie utilisée était alors une technologie aluminium à 2µm avec 2 niveaux de métal-lisation. Xilinx sera suivi un peu plus tard, et jamais lâché, par son plus sérieux concurrent Altera qui lança en 1992 la famille de FPGA FLEX 8000 dont la capa-cité maximum atteignait 15 000 portes logiques.

Ces composants apportent de nouveaux concepts grâce à leur universalité applicative et à leurs possibilités de reconfiguration. Longtemps, ils n’ont pu être intégrés aux produits commerciaux, sauf pour réaliser quelques fonctions logiques. Ils étaient pourtant très utilisés dans les bureaux d’études pour le prototypage d’ASIC (Ap-plication Specific Integrated Circuit). Leur faculté de reconfiguration offrait aux concepteurs un processus de développement avec des possibilités de conception itérative. Cependant, à leur début ils n’avaient pas des capacités, en nombre de portes logiques équivalentes, suffisantes pour permettre la réalisation d’applications complètes, de plus, leurs performances étaient très en dessous de celles des ASIC. De plus, les outils dédiés aux FPGA offraient des performances limitées car ils étaient issus des outils de conception d’ASIC qui ne prenaient pas en compte toutes les spécificités des composants reconfigurables.

Depuis les années 2000 des évolutions majeures ont été apportées. Tout d’abord les technologies utilisées pour les FPGA sont les mêmes que celles utilisées pour les ASIC. Par exemple, la technologie cuivre est utilisée pour la réalisation des métallisations au sein des FPGA. Elle permet une réduction d’environ 70% des temps de propagation des signaux le long des métalli-sations par rapport à la technologie aluminium. En 2000, les technologies utilisées étaient des technologies CMOS 0,15µm avec 8 niveaux de métallisation, au-jourd’hui la technologie utilisée est la technologie CMOS 65 nm avec de 8 à 12 niveaux de métallisation en cuivre.

En 2000 et 2001 les deux concurrents Xilinx et Altera ont franchi une nouvelle étape au niveau de la densité d’intégration en proposant respectivement leurs circuits Virtex et Apex-II dont les capacités maximums avoisi-naient les 4 millions de portes logiques équivalentes avec de plus l’introduction de larges bancs de mémoi-res embarquées. Aujourd’hui, les fréquences de fonc-tionnement de ces circuits sont de l'ordre de quelques

centaines de MHz (ces dernières sont en réalité très dépendantes de l’application). Bien que ces valeurs soient relativement réduites par rapport aux ASIC, el-les sont suffisantes pour une très large majorité d’applications actuelles comme l’illustre la figure 1.

Cette figure [5] met en évidence qu’à partir des années 2000 les capacités des FPGA ont permis d'offrir aux concepteurs une solution supplémentaire de réalisation pour une majorité d’applications. De plus, les outils de mise en œuvre des FPGA ont évolué et bien qu’encore pénalisants lors de la conception, ils permettent la ré-alisation rapide d’applications complexes.

Nom

bre

de p

orte

s (lo

g)

année

100M

10M

1M

100k

10k

1k

1989 2000

Capacité m

ax ASIC

Capacité m

ax FPGA

2004

Moyenne d’utilisation

80% des design fonctionnent

à moins de 200MHZ

1000M

Figure 1 – Comparaison de l’évolution des capacités des

circuits ASIC et FPGA par rapport à la moyenne d’utilisation des ressources des applications [5].

Dans un contexte économique mondial incertain les FPGA apparaissent donc comme une solution flexible bien adaptée aux contraintes économiques telles que la réduction du temps de mise sur le marché et le besoin d’évolution ou de flexibilité des produits.

De plus, le modèle économique lié aux FPGA, qui est un modèle linéaire devient de plus en plus avantageux par rapport aux modèles ASIC dont le coût du premier échantillon fabriqué rend l’amortissement d’une telle solution long et viable économiquement uniquement pour de très grandes productions. Dans [6] l’auteur explique bien ce phénomène et propose la figure 2 qui montre que le nombre de circuits fabriqués à partir duquel la solution ASIC est économiquement plus ren-table (point de cross-over) tend à augmenter avec l’évolution des technologies. Les solutions FPGA sont donc de plus en plus intéressantes tant sur le point technique qu’économique.

Les FPGA n’ont pas fini d’évoluer, car il y a un rap-prochement des systèmes reconfigurables avec les sys-tèmes programmables. Effectivement, de nombreux fabricants de FPGAs proposent aujourd’hui des circuits qui embarquent un ou plusieurs microprocesseurs dans leur matrice. Une des évolutions architecturales possi-bles et de remplacer les éléments logiques de bases par

Page 3: Travaux pratiques de gestion de périphériques d’une ... · des exercices simples avec du matériel évolué. ... Cette partie est largement tirée du cours ... concernant l’enseignement

des microprocesseurs élémentaires. Ainsi des architec-tures systoliques reconfigurables seraient développées. Ce n’est pas qu’une vision futuriste, les architectures reconfigurables de gros grains existent déjà et sont promis à un bel avenir avec la réduction des technolo-gies [7].

Figure 2 – Progression du point de cross-over entre solutions ASIC et FPGA entre l’année 1997 et l’année 2005 [6].

3 SEQUENCE PEDAGOGIQUE DE L’ENSEIGNEMENT VHDL-FPGA A L’ENSEIRB

L’ENSEIRB [1] forme en trois ans des ingénieurs, elle est constituée de quatre départements, par ordre d’importance en nombre d’élèves : le département électronique (environ 100 élèves par promotion), le département informatique (environ 80 élèves par pro-motion), le département de télécommunication (envi-ron 50 élèves par promotion) et le département réseau et système d’information qui forme par apprentissage 24 élèves par apprentissage.

Dans cette partie, tout d’abord, nous présentons suc-cinctement le programme d’enseignement de l’électronique numérique au département électronique. Les autres départements offrent aussi aux étudiants un enseignement en électronique numérique dans la for-mation mais dans une moindre mesure. Puis nous pré-senterons plus précisément la séquence pédagogique concernant l’enseignement de VHDL-FPGA en deuxième année du département électronique.

3.1 Enseignement de l’électronique numérique au département électronique de l’ENSEIRB

Première année : les étudiants sont sensibilisés à la conception de systèmes numériques. L’enseignement couvre tous les aspects "classiques" de l’électronique numérique : logique combinatoire, logique séquentielle et systèmes synchrones, machine à états finis, synthèse logique. De plus une introduction au langage VHDL

pour la synthèse est faite simultanément. Des séances de travaux pratiques et un projet viennent renforcer les aspects de conception, description matérielle, synthèse logique, simulation et implantation sur CPLD (Xilinx XC 9572). Parallèlement, un cours d’architecture des microprocesseurs et des travaux pratiques sur le micro-contrôleur PIC viennent compléter la formation en mi-croinformatique.

Seconde année : les étudiants renforcent leurs connais-sances en conception de systèmes numériques et abor-dent des systèmes plus complexes. Le VHDL est utili-sée pour la synthèse et pour la modélisation en vue de la simulation. Les étudiants apprennent à écrire des testbench. L’enseignement est principalement pratique avec des séances de travaux pratiques et un long projet. Durant lesquels, les étudiants doivent mettre en œuvre une carte Xilinx Starter-Kit Spartan3-E. Ils apprennent à synthétiser un processeur simple dans un FPGA et à concevoir l’architecture du système. Parallèlement, un cours de système à microprocesseurs et des travaux pratiques sur les microprocesseurs ARM viennent compléter la formation en microinformatique.

Troisième année : les étudiants spécialisent leurs connaissances et compétences en conception de systè-mes numériques en fonction de la spécialité de troi-sième année choisie. Par exemple, les étudiants choi-sissant l’option Système Embarqué mettent en œuvre un système d’exploitation sur un microprocesseur NIOS synthétisé dans un FPGA Altera Stratix-II. Ou encore, les étudiants choisissant l’option Traitement des Images et du Signal à partir de Matlab implantent des algorithmes de traitement du signal (filtrage, trans-formée) dans un FPGA Xilinx Virtex4-SX. Ainsi, les enseignements tentent de suivre la demande indus-trielle concernant la formation des jeunes ingénieurs.

3.2 Séquence pédagogique pour l’enseignement du VHDL et FPGA en deuxième année

Concernant l’enseignement de VHDL-FPGA en deuxième année, la séquence pédagogique se déroule en trois phases : enseignements intégrés, travaux prati-ques et projet. Nous détaillons dans la suite ces trois aspects dans l’ordre chronologique.

Enseignements Intégrés : ce sont des séquences de cours et de travaux dirigés d’une durée de 1H20 avec une trentaine d’élèves. Pour l’enseignement d’électronique numérique en deuxième année, nous disposons de trois créneaux pour revoir les notions de première année et introduire les concepts du VHDL pour la modélisation et des testbench.

Travaux pratiques : quatre séances de 3H00 permet-tent à des groupes de 24 étudiants en binôme de pren-dre en main la carte Xilinx Starter-Kit Spartan3-E et quelques-uns de ses périphériques (LED, boutons, écran LCD, liaison série). Les étudiants utilisent le

1997

1997

1999

1999

2001

2001

2003

20032005

2005

200 000 1 000 000

Nombre de circuits fabriqués

Coût de fabrication

FPGA ASIC

1997

1997

1999

1999

2001

2001

2003

20032005

2005

200 000 1 000 000

Nombre de circuits fabriqués

Coût de fabrication

FPGA ASIC

Page 4: Travaux pratiques de gestion de périphériques d’une ... · des exercices simples avec du matériel évolué. ... Cette partie est largement tirée du cours ... concernant l’enseignement

logiciel Xilinx ISE pour la synthèse, le placement rou-tage et la configuration du FPGA. Ils utilisent le logi-ciel ModelSim de Mentor Graphic pour les simulations fonctionnelles et post-placement routage.

Projet : dix séances de 3H00 sont encadrées par un enseignant, les étudiants en binôme disposent de cré-neaux supplémentaires non-encadrés pour réaliser leur projet. Le sujet de projet est laissé libre mais doit ré-pondre à quelques contraintes : utiliser la carte vue en TP ainsi que tous les périphériques abordés en TP. Les étudiants peuvent proposer de mettre en œuvre d’autres périphériques de la carte (liaison Ethernet, CAN, sortie VGA …). La liberté dans le choix du sujet motive les étudiants qui sont plus intéressés et fournissent parfois un travail remarquable.

Dans la suite de l’article nous allons détailler le sujet du TP n°2 qui correspond à la moitié des séances de TP et concerne la gestion de la liaison série et de l’afficheur LCD de la carte Xilinx utilisée (voir la pho-tographie de la carte à la fin de l’article figure 8).

4 PRESENTATION DU TP

A travers le TP que nous proposons plusieurs objectifs pédagogiques sont visés :

Savoir développer un projet pour réaliser un sys-tème numérique complexe avec un FPGA.

Savoir utiliser des blocs matériels existants (notion de Composants Virtuels ou IP) pour la gestion des périphériques (LCD et port série).

Savoir utiliser les ressources matérielles avancées embarquées telles que les blocs de mémoires RAM.

Etre capable de décrire un système arithmétique synchrone (initiations aux bibliothèques numéri-ques de calcul) et comprendre les différences fon-damentales entre les types de données et de librai-ries.

Les compétences ainsi développées sont par la suite mises en œuvre lors de la réalisation du projet au cours duquel les étudiants sont évalués. Le TP est constitué de plusieurs étapes décrites dans la suite.

4.1 Etape 1 : intégration d’un processeur pico-Blaze dans le FPGA pour écrire sur l’écran LCD

Les étudiants débutent le TP avec un certains nombre de fichiers téléchargés en début de séance : la descrip-tion VHDL du picoBlaze, le code assembleur de l’application d’écriture d’un message sur l’écran LCD, le fichier de contraintes pour le brochage correcte du FPGA (ficher avec l’extension .ucf).

Les étudiants débutent en analysant le code assembleur afin d’y observer l’implantation du message et réalisent la compilation du code assembleur sous forme binaire avec le logiciel IDE. Le résultat de la compilation n’est

pas un programme « exécutable » mais une entité de type ROM décrite en VHDL contenant les instructions que le processeur doit exécuter. Les étudiants doivent donc réaliser un projet ISE contenant le picoBlaze, la ROM d’instructions et la liaison avec l’écran LCD. Ce projet est schématisé par la figure 3.

Figure 3 – Schéma du premier projet ISE – Ecriture LCD.

Les étudiants réalisent l’implantation du projet sur la carte après avoir analysé les résultats de synthèse. Ain-si ils déterminent la taille (nombre de slices) occupée par un microcontrôleur 8 bits ainsi que la fréquence maximale de fonctionnement. Les étudiants sont invi-tés à modifier le code assembleur pour afficher un nouveau message (aucune notion d’assembleur n’est nécessaire pour cette étape). Ils observent alors la rigi-dité de la solution (nécessité de recompiler le code à chaque nouveau message). Afin de palier à ce pro-blème une nouvelle architecture pour le système leur est proposée.

4.2 Etape 2 : Externalisation de la gestion des mes-sages, utilisation d’une deuxième ROM

Les étudiants téléchargent de nouveaux fichiers per-mettant la réalisation d’un projet pour lequel l’architecture du système dispose d’une ROM qui mé-morise les messages à afficher sur l’écran LCD. Cette nouvelle architecture, schématisée sur la figure 4, in-troduit la gestion des quatre interrupteurs (switches) de la carte. Ceux-ci permettre à l’utilisateur de choisir un message parmi les 15 messages mémorisés au maxi-mum.

Figure 4 – Architecture du système avec choix du message.

Les étudiants décrivent en VHDL le décodeur trans-formant l’état des interrupteurs sur la carte en un nu-méro de message à afficher. Ils décrivent aussi la mé-moire ROM contenant les messages (cette dernière utilise des messages de taille variable). L’étude se ter-

Page 5: Travaux pratiques de gestion de périphériques d’une ... · des exercices simples avec du matériel évolué. ... Cette partie est largement tirée du cours ... concernant l’enseignement

mine par l’assemblage des différents composants, la simulation du système et une implantation sur la carte.

4.3 Etape 3 : Communication série avec un pico-Blaze et un UART

Les étudiants mettent en œuvre un bloc matériel en charge de la gestion d’une liaison série utilisée pour recevoir et envoyer des données issues d’un ordinateur (simulation de l’acquisition de données à traiter au travers du FPGA). Comme pour l’étape 1, les étudiants réalisent un projet ISE à partir de fichiers fournis, dont l’architecture est schématisée à la figure 5.

Figure 5 – Système de gestion de la liaison série.

Le bloc de gestion de la liaison série est basé sur un microcontrôleur de type PicoBlaze et un UART. Il uti-lise un protocole de communication simple avec le PC. Le PC est le seul maitre pour l’émission et la réception. L’utilisation du port série est transparente pour les étu-diants. Les données transmises sont codées sur 32 bits (type Integer).

L’échange des données entre le bloc de gestion de la liaison série et le bloc de traitement mathématique (qui réalise un calcul très simple dans un premier temps) se fait au travers de deux registres de 8 bits: data_in et data_out. Lorsqu’une donnée est reçue au niveau de l’UART, le picoBalze positionne la donnée dans le registre data_in et met le signal data_valid à l’état haut durant un cycle d’horloge comme cela est présen-té sur le chronogramme de la figure 6.

Figure 6 – Chronogramme des échanges du picoBlaze vers le bloc de traitement mathématique.

L’échange de données du bloc de traitement mathéma-tique vers le picoBlaze (envois d’un résultat vers le PC via l’UART et la liaison série) est similaire en utilisant le registre data_out.

4.4 Etape 4 : Chaine de compression RLE1

A travers les précédentes parties du TP, les étudiants ont acquis la maitrise des blocs matériels en charge de la gestion de la liaison série avec le PC et de l’affichage de messages sur l’écran LCD. La dernière partie du TP consiste à mettre en œuvre l’ensemble de ces compétences pour un système complet de compres-sion RLE.

L’entrée de la chaine est un PC sur lequel les étudiants rentrent les valeurs à transmettre au système implanté dans le FPGA. La sortie de la chaine est l’écran LCD dont l’affichage devient dynamique (disparition des messages préprogrammés à priori).

La compression RLE, est une méthode de compression sans perte (on retrouve après décompression exacte-ment le message avant compression). Cette technique est utilisée principalement dans la compression d’images (JPEG) et vidéo (MPEG) à cause de sa gran-de simplicité de mise en œuvre. La compression RLE permet de supprimer la redondance temporelle des in-formations dans une suite d’informations à l’aide d’un couple (nombre de répétitions, donnée émise), comme nous pouvons le voir dans l’exemple ci-dessous :

1 2 2 2 2 3 3 4 4 4 4 4 => (1, 1) (4, 2) (2, 3) (5, 4)

Le système à concevoir par les étudiants, schématisé à la figure 6, intègre deux blocs matériels à développer : une machine à états finis permettant de réaliser la com-pression à proprement parlé ainsi qu’une mémoire tam-pon utilisée afin de spécifier les données à inscrire sur l’écran LCD. Il utilise de plus les deux blocs à base de picoBlaze vu précédemment pour la gestion de l’affichage LCD et de liaison série.

Figure 6 – Architecture du système à concevoir.

La difficulté de cette dernière étape du TP se situe à trois niveaux :

Développement de la machine d’état - Le premier point bloquant pour les étudiants est la compréhension de l’algorithme RLE à partir de son algorithme et sur-tout sa traduction sous forme VHDL en insérant les cycles d’attente, de lecture et d’écriture des données, d’incrémentation de compteur, etc. Pour faciliter cette étape la machine d’état de haut niveau présentée à la figure 7 est fournie aux étudiants.

1 RLE : Run-Length-Encoding ou Codage à longueur variable

Page 6: Travaux pratiques de gestion de périphériques d’une ... · des exercices simples avec du matériel évolué. ... Cette partie est largement tirée du cours ... concernant l’enseignement

Figure 7 – Machine d’état de niveau « algorithmique » four-nie aux étudiants.

Création d’une mémoire RAM double port – Il est effectivement nécessaire d’introduction une mémoire double port permettant au bloc de compression de stoc-ker des résultats alors que dans le même temps la ges-tion de l’écran LCD peut venir lire les données pour les afficher. L’ajout de cette entité permet aux étudiants de comprendre les problèmes de partage de ressources, de cohérence des données et de parallélisme entre les ta-ches.

Synchronisation RLE / LCD – Afin d’éviter tout scintillement de l’écran LCD à cause de réactualisa-tions intempestives des données, il a été décidé de syn-chroniser la mise à jour des données à l’écran avec la production d’une nouvelle donnée par le bloc de com-pression. Le système développé par Les étudiants doit pour cela respecter un protocole à poignée de main, représenté à la figure 8, permettant à la machine d’état qu’ils ont développé de commander une mise à jour de l’affichage.

Figure 8 – Protocole de synchronisation RLE/LCD.

5 CONLUSION

Les différentes parties de ce TP permettent aux étu-diants de développer leurs compétences et connaissan-ces en conception de systèmes numériques complexes. Ces exercices les font passer tour à tour de l’état de concepteur de blocs matériels à celui d’utilisateurs de blocs existants (blocs possédant leurs contraintes de fonctionnement propres à respecter). Suite à cette série

d’enseignements, il est demandé aux étudiants d’imaginer un sujet de projet mettant en œuvre l’ensemble des connaissances acquises.

Le traitement mathématique intégrer dans le cadre de cet exercice peut être remplacée par des applications plus complexes ou plus en adéquation avec une sé-quence pédagogique (intégrateur, dérivateur, filtres FIR / IIR, etc).

6 REMERCIEMENTS

Nous remercions les enseignants qui participent ou ont participés avec nous aux enseignements de VHDL et FPGA en deuxième année : tout d’abord l’initiateur Patrice Nouel, "Le vieux routard du VHDL" [8] au-jourd’hui bien heureux retraité, Sylvie Renaud (PU - ENSEIRB), Yannick Bornat (McF - ENSEIRB) et Guillaume Monnerie (Ingénieur de recherche - NXP).

Bibliographie [1] http://www.enseirb.fr [2] http://www.xilinx.com/products/devkits/HW-SPAR3E-

SK-US-G.htm [3] http://www.xilinx.com/products/ipcenter/picoblaze-S3-

V2-Pro.htm [4] Lilian Bossuet, "Architecture, Conception et Utilisation

des FPGA", Cours de l’ENSEIRB http://www.lilianbossuet.com/fr/Doc/documents_pedagogiques/Bossuet_cours_FPGA_ENSEIRB.pdf

[5] Altera SOPC Wold Seminar, 2001. [6] N. Tredennick, B. Shimamoto, "The Rise of Recon-

figurable Systems", In proceeding of Engineering of Re-configurable Systems and Application, ERSA 03. June 23-26, 2003, Las Vegas, Nevada, USA.

[7] Lilian Bossuet, "Exploration de l’espace de conception des architectures reconfigurables", Thése de Doctorat, Université de Bretgane Sud, Lorient, Sepetembre 2004.

http://www.lilianbossuet.com/fr/Doc/publications/These_Lilian_Bossuet.pdf

[8] http://vhdl33.free.fr/

Figure 8 – Protocole de synchronisation RLE/LCD.