Sie sind auf Seite 1von 33

CONCEPTION ET IMPLEMENTATION DU ` SYSTEME MULTIMEDIA EMBARQUE

ECOLE NATIONALE DES SCIENCES APPLIQUEED DE KHOURIBGA 2 em e Ann ee cycle ing enieur : G enie Electrique Encadr e par :Mr. Ismail Laghrat Siham Darif Rabiaa Manar Sliman Ennayri Yacine a.Amkassou Omar Barmaki

Remerciements
Nous tenons a ` remercier dans un premier temps, toute l equipe p edagogique de lEcole Nationale des Sciences Appliqu ees de Khouribga , pour avoir assur e la partie th eorique de notre formation. Nous remercions egalement M. Ismail Laghrat pour laide et les conseils quil nous a apport e lors des di erentes etapes de l elaboration de notre projet. Nous tenons a ` vous remercier du fond du cur egalement pour chaque minute pass ee avec nous ; pour chaque information et pour chaque nouvelle le con que vous avez enseign ee. On sait bien que na pas et e du facile de nous enseigner ; parfois d ua ` notre manque de base dautre fois ` a notre surcharge, merci de ne pas avoir baiss e les bras quand m eme ; de nous avoir tant soutenu et encourager pour arriver au bout, que Dieu vous b enisse.

Table des mati` eres


` 1 LA CONCEPTION DES SYSTEMES EMBARQUEES NUMERIQUES 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 M ethodologies de Conception des syst` emes num eriques . . . . . . . . . . . . 1.2.1 G en eralit es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.2 R ealisation dun syst` eme sur puce SoC ou SoPC . . . . . . . . . . . 1.2.3 Les di erentes familles de blocs IP . . . . . . . . . . . . . . . . . . . 1.3 Les circuits a ` logique programmable . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Types darchitectures et el ements des circuits FPGA . . . . . . . . . 1.3.2 Exemple de circuit FPGA : la famille Altera cyclone II . . . . . . . . 1.4 Le processeur embarqu e NIOS . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1 Processeur NIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.2 Bus Avalon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ` 2 CONCEPTION DU SYSTEME MULTIMEDIA EMBARQUE 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Plateforme mat erielle de traitement vid eo . . . . . . . . . . . . . . 2.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Conception dun syst` eme SoPC . . . . . . . . . . . . . . . 2.3 Platforme de d eveloppement : CycloneII FPGA Multimedia board 2.3.1 Caract eristique g en erale . . . . . . . . . . . . . . . . . . . 2.4 Syst` eme dacquisition et de traitement vid eo . . . . . . . . . . . . 2.5 Principe de base de traitement dimage . . . . . . . . . . . . . . . 2.5.1 D enition dune image et des types dimages . . . . . . . . 2.5.2 Changement despace de couleur . . . . . . . . . . . . . . . 2.5.3 D enition de la vid eo . . . . . . . . . . . . . . . . . . . . . ` 3 REALISATION DU SYSTEME 3.1 Conguration de capteur CMOS . . . . . . . . . . 3.2 Notre Syst` eme . . . . . . . . . . . . . . . . . . . . . 3.3 cr eation de syst` eme sur quartus II et SoPC builder 3.4 Le premier test : Hello World ! . . . . . . . . . . . . 3.5 Programme de traitement dimage . . . . . . . . . 3.5.1 Lalgorithme . . . . . . . . . . . . . . . . . . 3.5.2 les fonctions de altera avalon pio regs.h . . . 3.6 Limpl ementation du programme . . . . . . . . . . Conclusion 1 1 1 1 3 3 4 4 4 5 6 8 11 11 12 12 12 15 15 17 17 17 18 18 20 20 22 23 24 26 26 26 26 28

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

Table des gures


1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 Evolution de la conception num erique . . . . . . . . . . . . . . . . . . . . . SoC bas e coeurs de processeurs . . . . . . . . . . . . . . . . . . . . . . . . Niveau sup erieur de la hi erarchie de larchitecture du circuit Stratix II . . Syst` eme Altera NIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CPU NIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instruction personnalis ee du processeur NIOS II . . . . . . . . . . . . . . . Implantation du processeur NIOS II sur di erents circuits FPGA dAltera Bus Avalon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cycle de lecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cycle d ecriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conception traditionnelle et codesign . . . . . . . . . . . . . Quartus II 11.0 SP1 interface . . . . . . . . . . . . . . . . . Flot de conception . . . . . . . . . . . . . . . . . . . . . . . SOPC Builder et mapping m emoire . . . . . . . . . . . . . CycloneII FPGA Multimedia board . . . . . . . . . . . . . CycloneII FPGA Multim edia board multim edia composantes Notre syst` eme dacquisition, traitement et restitution vid eo El ement dune image : le pixel . . . . . . . . . . . . . . . . Superposition des trois couleurs : rouge, vert et bleu . . . . Principe de balayage utilis e pour la vid eo et la t el evision . . inputs/ouputs de capteur CMOS . . . . registres dinstructions de capteur CMOS conguration du camera . . . . . . . . . notre syst` eme NIOS . . . . . . . . . . . vue densemble de notre syst` eme NIOS . le processeur NIOS et leurs p eriph eriques le sch ema block de notre syst` eme . . . . Hello world . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 5 6 7 7 8 9 9 9 11 13 13 14 15 16 17 17 18 19 20 21 21 22 23 24 24 25

R esum e Le sujet de ce projet est la contribution au d eveloppement et a ` la conception dun syst` eme multim edia embarqu e en utilisant la m ethodologie de conception conjointe logicielle/mat erielle (codesign ). Il en a d ecoul e la constitution dune biblioth` eque des modules IP (Intellectual Property) pour les applications vid eo. Dans ce contexte, une plateforme mat erielle dacquisition et de restitution vid eo a et e r ealis ee servant de pr ealable ` a l evaluation de la m ethodologie de conception en codesign et a ` toute etude dalgorithme de traitement vid eo. On sest int eress e en particulier a ` l etude et a ` limplantation de la . La fr equence de fonctionnement de la plateforme est de 25 MHz. Lensemble du d eveloppement est ex ecut e par le processeur NIOS II sous un application d evelopper a l aide de NIOS IDE .

Chapitre 1 ` LA CONCEPTION DES SYSTEMES EMBARQUEES NUMERIQUES


1.1 Introduction

Les avanc ees actuelles dans la technologie des semi-conducteurs et des m ethodologies de conception permettent le d eveloppement de syst` emes num eriques complexes sur puce SoPC, des dispositifs pouvant contenir des millions de transistors. Les derniers circuits FPGA (Field Programmable Gate Array) permettent egalement le d eveloppement de syst` emes complets. Ainsi, un syst` eme qui etait auparavant implant e sur une carte, peut dor enavant etre con cu sur une puce unique orant lavantage d etre compact et de supporter un tr` es grand nombre de traitements arithm etiques. La tendance actuelle est donc ` a lassemblage dans une m eme puce de plusieurs composants eventuellement h et erog` enes pour r epondre au mieux aux exigences des syst` emes multim edia embarqu es. Ces composants peuvent etre aussi bien des coeurs de processeurs, des coeurs de DSP, des acc el erateurs mat eriels... La r ealisation de ces syst` emes a n ecessit e la mise en place dune m ethodologie de conception logicielle/mat erielle (codesign) prenant en compte les contraintes de lembarqu e.

1.2
1.2.1

M ethodologies de Conception des syst` emes num eriques


G en eralit es

Dans lapproche traditionnelle, un syst` eme num erique est un assemblage sur une carte de di erents composants discrets repr esentant chacun une fonction particuli` ere plus ou moins complexe telle quadditionneur, m emoire, composant dinterface, gestionnaire dinterruption, processeur... Si une erreur de conception etait faite, il etait au minimum n ecessaire dajouter des ls entre les composants, ou au pire, de refaire une carte pour r egler le probl` eme, cesta `dire reprendre compl` etement son routage. Plus le syst` eme num erique est complexe, plus ces composants sont nombreux, plus la carte est ch` ere, et plus les perturbations electromagn etiques sont importantes. Un besoin existait donc de pouvoir modier la logique sans modier les cartes et aussi de diminuer le nombre de composants sur une carte num erique. En eet, moins il y a de composants remplissant un m eme cahier des charges, moins la carte est ch` ere, et plus les fonctions sont int egr ees, plus il est possible de proposer une carte moins encombrante. Les am eliorations des processus de fabrication des composants electroniques ont permis de r epondre de mieux en mieux ` a ces besoins. Dans ce contexte, lInternational Technology Roadmap for Semiconductors arme que les 1

processeurs contiennent en moyenne pr` es de 100 millions de transistors en 2007 et en pr evoit pr` es de 1.5 milliard pour 2013. L evolution des technologies de fabrication de circuits permettent lint egration dun syst` eme num erique sur un m eme composant : cest le concept du single chip. Ceci est en fait li ea ` la loi empirique de Moore qui stipule que pour une surface de silicium donn ee, on double le nombre de transistors int egr es tous les 18 mois . La loi de Moore a radicalement chang e la fa con de concevoir les syst` emes num eriques aujourdhui puisque lon peut proc eder ` a limplantation dalgorithmes complexes pour les syst` emes num eriques de futures g en erations. On travaille maintenant au niveau syst` eme (ou fonctionnalit e) et non au niveau porte logique. Cette evolution de la conception peut etre r esum ee sur la gure

Figure 1.1 Evolution de la conception num erique Lapproche sch ematique au niveau portes logiques et fonctions de base RTL (Register Transfer Logic) semble aujourdhui d elaiss ee pour la conception des syst` emes complexes au prot dune approche textuelle. Lapproche sch ematique reste cependant toujours valable et est plut ot r eserv ee a ` la conception des petits syst` emes... Lapproche textuelle, on utilise des langages de description de mat eriel comme VHDL (Very high speed integrated circuit Hardware Description Language) ou Verilog pour synth etiser une fonction num erique. Ces langages de description de mat eriel sont en fait des langages de programmation qui sont utilis es conjointement avec un compilateur ou un simulateur. Ces langages deviennent un standard et leur choix participe ainsi a ` la p erennit e du produit. Il existe ` a lheure actuelle dexcellents synth etiseurs mixtes et multi-technologiques (par exemple Precision de Mentor Graphics). Les fabricants de FPGA proposent maintenant leur propre synth etiseur. Dans le d eveloppement des syst` emes num eriques complexes, il existe des besoins qui reviennent fr equemment. Certaines soci et es ont d evelopp e ou rassembl e des modules r epondant a ` ces besoins et les mettent sur le march e sous le nom de blocs IP (Intellectual Property) (fonctions math ematiques : FFT, DCT, FIR, interfaces bus : PCI, RapidIO, coupleurs divers : UART, HDLC. . . ). Ces modules IP peuvent etre achet es ou t el echarg es librement sur Internet. On peut ainsi voir la conception dun syst` eme num erique complexe comme un assemblage de modules IP Les langages de description de mat eriel sont aussi int eressants pour la facilit e de modication et de r eutilisation dun design pr ec edent pour un nouveau design : cest le design reuse. 2

1.2.2

R ealisation dun syst` eme sur puce SoC ou SoPC

Un SoC est un ensemble de blocs fonctionnels int egr es dans un composant electronique avec au moins un processeur comme el ement de traitement. La gure repr esente un SoC qui est bas e sur des coeurs de processeurs. A partir de cette gure, on constate que seuls les Lapproche

Figure 1.2 SoC bas e coeurs de processeurs SoC a et e cr e ee dans un premier temps pour le d eveloppement dASIC mais a et e etendue pour le d eveloppement de FPGA. On parle alors de SoPC pour System on Programmable Chip. Le SoC peut etre retenu pour les applications destin ees au grand public. Il permet des meilleures performances en termes de consommation, de vitesse et de surface. Mais, la fabrication et le test sont des etapes longues et co uteuses . De plus, un SoC est g e et nest donc pas r eutilisable pour une autre application. Par contre, le SoPC est un composant recongurable a ` volont e. Il permet donc un d eveloppement et prototypage rapide du syst` eme. Mais, en contrepartie, on peut avoir une consommation d energie plus grande avec une performance plus faible que celle du SoC.

1.2.3

Les di erentes familles de blocs IP

Un bloc ou un composant IP est un composant virtuel qui peut appara tre sous di erentes formes IP Logiciel softcore : le composant est livr e sous sa forme HDL (Hardware Design Language) synth etisable, cest ` a dire exible. Son principal avantage est sa portabilit e. La propri et e du chier source est en soi la meilleure documentation. On peut ainsi maintenir le produit pendant des ann ees et eventuellement modier la source et m eme changer de technologie cible. Linconv enient majeur est quil ne peut etre pr edictif en termes de supercie, puissance et temps. Le travail doptimisation du circuit nal est ` a la charge de lint egrateur du syst` eme. IP Mat eriel hardcore : Dans ce cas, le bloc IP est cibl e sur une technologie particuli` ere et le travail doptimisation est garanti. Cela englobe la netlist enti` ere, le routage et loptimisation pour une librairie technologique sp ecique, un layout personnalis e. Linconv enient est quil est moins exible car le processus est d ependant de la technologie. Par contre il a lavantage d etre pr edictif.

IP Firm rmcore : Le bloc IP rmcore ore un compromis entre le softcore et le hardcore, plus exible que le hardcore, plus pr edictif en termes de performance et de surface que le softcore. En g en eral, le travail de synth` ese HDL est d ej` a r ealis e pour une technologie cible donnant lieu a ` une description par netlist (format EDIF par exemple).

1.3

Les circuits ` a logique programmable

Actuellement, on trouve di erentes familles de circuits programmables tels que les CPLDs (Complex Logic Programmable Device) et les FPGAs. La di erence entre ces deux types de composants est structurelle. Les CPLDs sont des composants pour la plupart reprogrammables electriquement ou ` a fusibles, peu chers et tr` es rapides (fr equence de fonctionnement elev ee) mais avec une capacit e fonctionnelle moindre que les FPGA. Par contre, ceux-ci sont des composants VLSI constitu es de blocs m emoires vives, enti` erement recongurables. Ces blocs sont structur es en LUT (Look Up Table), ip-op, RAM et lensemble dispose dun vaste syst` eme dinterconnexions. Le progr` es de la conception des circuits electroniques permet davoir des composants toujours plus rapides et ` a plus haute densit e dint egration, ce qui permet de programmer des ap` lheure actuelle, on compte plications importantes comme par exemple les applications vid eo. A une dizaine de fabricants, le march e etant nettement domin e par les soci et es Altera et Xilinx

1.3.1

Types darchitectures et el ements des circuits FPGA

Classiquement pour les architectures des circuits FPGA, on peut rencontrer trois topologies di erentes : Architecture de type lots de calcul D` es le d epart, Xilinx a choisi ce type darchitecture. Cette architecture FPGA est constitu ee dune matrice plane d el ements. Ces el ements constituent les ressources logiques et de routages programmables du FPGA. Architecture de type hi erarchique Dans cette architecture, il existe plusieurs plans dans le FPGA. Mais, ces plans ne sont pas physiques, ils correspondent aux niveaux de hi erarchie logique. Cest a ` dire quun el ement dun niveau logique peut contenir des el ements de niveau logique inf erieur, do` u la notion de hi erarchie. Chaque niveau logique reprend la topologie dune architecture du type lots de calcul avec un routage d edi e pour chaque niveau. Cette architecture se trouve dans les FPGAs dAltera.

1.3.2

Exemple de circuit FPGA : la famille Altera cyclone II

Altera a lanc e au d ebut de lann ee 2004 un nouveau composant le Stratix II. Ce composant est marqu e par un certain nombre de changements par rapport aux architectures classiques des premiers FPGA Altera (Flex et Apex) a ` trois niveaux de hi erarchie. Le circuit Stratix II comme le circuit Stratix dont il a h erit e de nombreuses caract eristiques, est moins hi erarchique et na plus que deux niveaux de hi erarchie. Le niveau le plus haut (gure 27) consiste en un ensemble d el ements congurables LAB (Logic Array Bloc) qui sont r epartis en matrice. A ce 4

m eme niveau, des m emoires de di erentes densit es (512 bits M512, 4 Kbits M4K et 512 Kbits MegaRAM) sont r eparties sur la matrice, ainsi que des blocs dits blocs DSP apparaissant sur la gure 28. Ces derniers int` egrent des fonctions mat erielles telles que multiplieurs, accumulateurs, additionneurs, multiplexeurs et registres et permettent, entre autre, de r ealiser des multiplieurs 36 bits ou des op erateurs MAC de 18 bits. Au niveau inf erieur, les LABs sont constitu es de 8 ALM (Adaptive Logic Module) et dun r eseau de connexions locales. Les ALMs, sch ematis es a ` la gure 29, sont r ealis es autour dun bloc de logique combinatoire ` a 8 entr ees, de deux additionneurs et des registres de sortie. Le bloc combinatoire est en fait r ealis e avec deux LUTs a ` quatre entr ees et de quatre LUTs a ` trois entr ees.

Figure 1.3 Niveau sup erieur de la hi erarchie de larchitecture du circuit Stratix II

1.4

Le processeur embarqu e NIOS

Le processeur embarqu e NIOS est un processeur a ` coeur logiciel de type firmcore , cest a ` dire exclusivement d edi e` a la famille dAltera. Le processeur NIOS peut etre associ e` a une large gamme de p eriph eriques, des instructions personnalis ees et des acc el erateurs pour cr eer un SoPC . Le coeur logiciel de processeur embarqu e NIOS est congurable et evolutif, pour permettre aux int egrateurs syst` emes de disposer dune solution SoPC souple et tr` es robuste. Ce processeur peut etre facilement combin e avec la logique dutilisateur et etre programm e dans un FPGA.

Figure 1.4 Syst` eme Altera NIOS La gure d ecrit le syst` eme NIOS. Il est constitu e du processeur NIOS, du bus Avalon et des p eriph eriques (contr oleur m emoire, UART, timer. . . ). Le processeur NIOS est le coeur du syst` eme, il est connect e aux di erents p eriph eriques ` a travers le bus Avalon. Ce bus doit etre congur e en ma tre/esclave. Linterface du bus Avalon est g en er ee automatiquement par loutil de g en eration dAltera NIOS (SOPC Builder).

1.4.1

Processeur NIOS

Le processeur NIOS est un processeur RISC enti` erement synchrone, son architecture interne de type Harvard. Il poss` ede au maximum 6 niveaux de pipeline 1 cadenc ea ` 50 MHz avec une largeur de bus de 32 bits. Ses performances sont de 30 ` a 80 MIPS (Million Instructions per Second). Il est possible dacc el erer certains traitements, en ajoutant des instructions personnelles (d ecrites en VHDL) au processeur NIOS. De cette mani` ere, il est possible de r ealiser de la surcharge doperateurs ou simplement d etendre les jeux dinstruction. Dapr` es la gure 34, on voit bien quon peut ajouter a ` lUnit e Arithm etique et Logique (UAL) du processeur NIOS essentiellement deux types dinstruction : combinatoire (un seul cycle) ou s equentiel (multi cycle) .
1. selon versions du NIOS II

Figure 1.5 CPU NIOS

Figure 1.6 Instruction personnalis ee du processeur NIOS II La soci et e Altera propose trois versions pour le processeur NIOS II. La table illustre ces trois versions. Une premi` ere version Economy qui utilise moins de surface, une deuxi` eme version Standard qui permet un compromis entre surface et rapidit e, une derni` ere version Fast qui est plus rapide que les deux autres. Pipeline Multiplication Mat eriel Branch Prediction Cache dInstructions Cache de donn ees Instructions Personnalis es NIOS II /f 6 niveaux 1 Cycle Dynamic Congurable Congurable Sup erieur a ` 256 NIOS II /s 5 niveaux 3 Cycle Static Congurable Non Sup erieur a ` 256 NIOS II /e Non Par logiciel Non Non Non Sup erieur a ` 256

Figure 1.7 Implantation du processeur NIOS II sur di erents circuits FPGA dAltera La gure ci-dessus repr esente les performances en DMIPS (Dhrystons Million Instructions per second, unit e issue du benchmark dit de Dhrystons) et la surface occup ee des di erentes versions du NIOS II sur di erentes familles de FPGA dAltera (Stratix II, Stratix, Cyclone). Dapr` es cette gure, on constate que limplantation du processeur NIOS II (version Fast, Standard et Economy) sur circuit FPGA Stratix II donne de meilleures performances (225 DMIPS@205 MHz, 133 DMIPS@180 MHz et 31 DMIPS @209 MHz respectivement) et une occupation de surface la plus faible (1319 ALUTs, 1029 ALUTs et 483 ALUTs respectivement) par rapport a ` un autre FPGA.

1.4.2

Bus Avalon

Le bus Avalon peut etre vu comme un ensemble de signaux pr ed enis permettant de connecter un ou plusieurs IP. La gure 36 pr esente le bus Avalon. Ce bus comprend un d ecodeur dadresse, un multiplexeur de donn ees, un g en erateur de cycles dattente et un contr oleur dinterruption. Les utilisateurs peuvent facilement int egrer leurs propres p eriph eriques avec le reste du syst` eme bas e sur le processeur NIOS.

Figure 1.8 Bus Avalon Le bus Avalon permet la connexion entre des composants ma tres ou esclaves. Il supporte plusieurs ma tres sur le bus. Un arbitrage est n ecessaire au partage dune m eme ressource partag ee par les circuits ma tres. Cette architecture multi ma tre fournit la grande exibilit e dans la conception des syst` emes. Les gures repr esentent un exemple de d eroulement des cycles de lecture et d ecriture (respectivement) sur le bus Avalon du syst` eme.

Figure 1.9 Cycle de lecture (A) : Le cycle de lecture commence par un front montant de clk. (B) : Le port ma tre fournit les signaux read(n) et address. (C) : Le bus Avalon pr esente les donn ees a ` lire readdata si le signal wait request est a ` 0 . (D) : Le port ma tre capture les donn ees readdata sur le prochain front montant. Puis le transfert se termine et un autre cycle peut recommencer.

Figure 1.10 Cycle d ecriture 9

(A) : Le cycle d ecriture commence par un front montant de clk. (B) : Le ma tre fournit les signaux address, write n et writedata. (C) : si le signal wait request est ` a 0 sur le front montant de clk, alors le transfert se termine et un autre cycle de lecture ou ecriture peut recommencer.

10

Chapitre 2 ` CONCEPTION DU SYSTEME MULTIMEDIA EMBARQUE


2.1 Introduction

Durant la conception dun SoC, le concepteur aura a ` choisir le composant programmable qui sera le coeur du syst` eme, la plupart des architectures sont bas ees sur des processeurs ` a usage g en eral. Ces processeurs sont extensibles du fait que beaucoup dapplications peuvent y etre implant ees, tandis que les performances obtenues peuvent etre inf erieures a ` celles obtenues avec des processeurs d edi ees a ` des applications sp eciques. Mais lapproche de conception mixte logicielle/mat erielle permet ` a lapplication datteindre des performances inaccessibles aux approches de conception classiques. Les r ealisations logicielles sont pr ef er ees pour des raisons d evolution et de co ut. Par contre, les r ealisations mat erielles sont d edi ees aux fonctionnalit es n ecessitant des circuits sp ecialis es ou des performances elev ees.

Figure 2.1 Conception traditionnelle et codesign Le codesign implique donc une conception en m eme temps du mat eriel et du logiciel. La gure 41 illustre la di erence entre la m ethodologie de conception traditionnelle et le codesign. En fait, dans la conception traditionnelle, la d enition de larchitecture est suivie par le d ecoupage des t aches qui vont etre r ealis ees par les equipes du mat eriel et du logiciel. L equipe du mat eriel r ealise une description du syst` eme en utilisant un langage de description mat eriel tel que le VHDL ou le Verilog. Puis elle r ealise la synth` ese et la g en eration des circuits int egr es en utilisant des outils de CAO. L equipe du logiciel est responsable de l ecriture du code qui 11

va etre compil e et ex ecut e sur des processeurs dusage g en eral. Ensuite, les equipes r ealisent lint egration physique des deux parties. Mais, on constate que le manque dinteraction entre ces deux equipes pendant les etapes de d eveloppement peut g en erer plusieurs probl` emes dint egration. Dans , il est rapport e que 71.5% des projets syst` eme embarqu e natteignent pas 30 % des performances attendues durant la phase de conception. Ces probl` emes peuvent etre evit es par lutilisation dune m ethodologie de conception conjointe logicielle/mat erielle. En eet, les equipes du logiciel et du mat eriel travaillent ensemble et a ` chaque etape de conception, elles r ealisent lint egration et le test des sp ecications. Les op erations de test et dint egration g en` erent une augmentation du temps de conception. Lint egration nale lors du prototypage est r ealis ee sans dicult e. On constate que la m ethodologie de conception conjointe r eduit le temps total de conception puisquelle r eduit le nombre de retours a ` des etapes ant erieures de conception provoqu es par la d etection derreur.

2.2
2.2.1

Plateforme mat erielle de traitement vid eo


Introduction

Cette partie est consacr ea ` l etude et a ` la conception dune plateforme mat erielle dacquisition, de traitement et de restitution vid eo servant de pr ealable a ` toute etude dalgorithme de traitement vid eo. La plateforme mat erielle sarticule autour de la carte Cyclone II dAltera compl et ee dune interface cam era et dune interface LCD 22. Le coeur du syst` eme met en oeuvre le module IP NIOS II dAltera dans lenvironnement de d eveloppement Quartus II dAltera. Les modules IPs dacquisition, restitution vid eo ainsi que des modules IPs de base n ecessaires (module PIO, I2C) ont et e d evelopp es. des application en C ont et e utilis e pour le contr ole logiciel de la plateforme mat erielle. Enn, lensemble des blocs IPs a servi ` a constituer une biblioth` eque.

2.2.2

Conception dun syst` eme SoPC

Quartus II est un logiciel propos e par la soci et e Altera permettant la gestion compl` ete dun ot de conception FPGA. La gure pr esente linterface graphique de Quartus II.

12

Figure 2.2 Quartus II 11.0 SP1 interface Ce logiciel permet de faire une saisie graphique ou une description VHDL/Verilog darchitecture num erique, den r ealiser une simulation en utilisant le simulateur ModelSim de Mentor Graphics, une synth` ese et une implantation sur FPGA. Il comprend une suite de fonctions de conception au niveau syst` eme permettant dacc eder ` a la large biblioth` eque dIPs dAltera et un moteur de placement/routage int egrant la technologie doptimisation et des solutions de v erication. Dune mani` ere g en erale, un ot de conception ayant pour but la conguration de composants programmables se d eroulent de la mani` ere suivante

Figure 2.3 Flot de conception 13

LIDE (Integrated Design Entry) Quartus II int` egre loutil SOPC Builder qui permet de construire un syst` eme SoPC int egrant divers p eriph eriques dE/S tels que le processeur NIOS II, les contr oleurs de SRAM et de SDRAM, un contr oleur DMA (Direct Memory Access). . . De m eme, on peut int egrer son propre composant dans le design sous forme dun bloc IP externe (Interface cam era, LCD ,VGA. . . ). On peut ainsi int egrer autant de p eriph eriques que lon veut, n etant limit e que par le nombre de broches et de cellules logiques du circuit FPGA. Le mapping m emoire et le niveau des interruptions du design sont x es durant cette phase. La gure montre la mise en oeuvre de loutil SOPC Builder. Cest en fait la premi` ere passerelle avec le logiciel embarqu e.

Figure 2.4 SOPC Builder et mapping m emoire A lissue de la phase de construction du syst` eme SoPC, Quartus II g en` ere le projet en int egrant tous les modules IPs. Apr` es synth` ese, on a le chier de programmation du circuit FPGA correspondant au design SoPC mais aussi un kit de d eveloppement logiciel qui comprend tous les chiers en langage C (.h et .c) pour piloter les p eriph eriques dE/S dAltera. Cest en fait la deuxi` eme passerelle avec le logiciel embarqu e. Lore de codesign appara t ici avec la possibilit e de d evelopper une partie de lapplication par mat eriel ou de le faire en logiciel par langage C.

14

2.3

Platforme de d eveloppement : CycloneII FPGA Multimedia board

Plate-forme Cyclone II multim edia est un outil pour tout ce quil couches : D ebutant, pr einterm ediaire et avanc e. Ses modules compl ementaires fournissent la conjonction de l ecole et les concepteurs de lentreprise. Lutilisateur peut mettre en uvre VLSI (Very Large Scale Int egration) ... avec DHL, la conception de circuit logique num erique et de r ealiser davantage l les m edias num eriques et le processeur dimage

Figure 2.5 CycloneII FPGA Multimedia board

2.3.1

Caract eristique g en erale

1. high porte comptage EP2C35 FBGA 672 Cyclone II FPGA puce - 90 processus de nm, est une puce de la force de FPGA Altera - Fournir 70 dix mille le nombre de portes. (Tout Xilinx FPGA 140 dix mille espace de niveau) - circuit de distribution dhorloge fourni, jusqu` a la performance de la conception du syst` eme, de r eduire Clock Skew - Provid DSP Block, jusqu` a ex ecution de lop eration 2. Quatre s eries 384K byte Frame Buer m emoire - Il peut donn ees dimage provisoires ` a 2,0 Panel LCD ou VGA 3. Deux s eries 1M octets de SRAM Meomory - Il peut stocker limage du capteur image CMOS capture 4. Un ensemble LPTS 2,0 pouces haute de pixels du panneau LCD - haute r esolution (dot) : 320 (W) x240 (H) 5. Capteur dimage CMOS - 30ten milliers de pixels a ` la capture diamge actif / statique (fonction de mise au point) 6. Deux s eries de ports de sortie PS2 - Contr ole du clavier et de la souris 15

7. Deux ensembles de ports de sortie audio - design audio num erique 8. A 24 bits mis DAC vid eo, support 80MSPS op eration, avec un port de sortie VGA 9. Six s eries 7 LEDs segment - chronom` etre, compteur de la n, compteur, alarme 10. 24 ensembles dauto-d enition LED - Mettre en uvre le ticker LED 11. 16 s eries de boutons-poussoirs auto-d enition 12. s eries de commutateurs DIP 13. 8 paires de cristaux pour les utilisateurs : mettre en uvre la conception du syst` eme de lhorloge multiple avec la vari et e de usersdemands 14. PLL (Phase Lock Loop) sortie dhorloge - concevoir lhorloge de sortie du syst` eme avec le logiciel Quartus II 15. Fournir mode USB ByteBlaster JTAG et AS (Active Serial)

Figure 2.6 CycloneII FPGA Multim edia board multim edia composantes

16

2.4

Syst` eme dacquisition et de traitement vid eo

Nous avons con cu et r ealis e une plateforme mat erielle dacquisition de traitement et de restitution vid eo servant a ` l evaluation de notre m ethodologie de conception logicielle/mat erielle pour les syst` emes multim edia embarqu es . La gure repr esente notre plateforme.

Figure 2.7 Notre syst` eme dacquisition, traitement et restitution vid eo

2.5
2.5.1

Principe de base de traitement dimage


D enition dune image et des types dimages

Une image est stock ee en m emoire sous forme de collection de points el ementaires appel es pixels. Nous pouvons consid erer une image num erique comme une page de nombres organis es en tableau ou en matrice. Chaque nombre repr esente les caract eristiques du pixel. La position de chaque pixel peut etre exprim ee par deux coordonn ees sur laxe horizontal X et laxe vertical Y comme le montre la gure ci-dessous.

Figure 2.8 El ement dune image : le pixel Le codage dun pixel d epend du type dimage et nous en recensons trois types : 1. Les images a ` deux niveaux : une image en noir et blanc est lexemple le plus courant. Toute image d ecrite avec deux valeurs correspond a ` ce type. Un bit sura pour coder la valeur dun pixel. 2. Les images ` a plusieurs niveaux de gris : les images de nos t el eviseurs en noir et blanc sont de ce type. La plupart des syst` emes d enissent 256 niveaux de gris. Mais, seuls 128 niveaux de gris sont d etectables par loeil. 17

3. Les images couleurs : la couleur peut etre cod ee, soit par composition de couleurs primaires, soit par composition dinformations de luminance et de chrominance. En fait, une couleur peut etre repr esent ee par un ensemble de trois coordonn ees, cest-` adire quune couleur peut etre reproduite par la superposition de trois couleurs primaires comme montre la gure 4. Le syst` eme RVB (Rouge-Vert-Bleu ou RGB ) utilise les couleurs primaires : rouge, vert et bleu. La valeur du pixel doit repr esenter les composantes trichromatiques de la couleur. En g en eral, nous disposons de huit bits pour coder une composante, soit 24 bits pour coder la valeur dun pixel. Ce syst` eme RVB peut donc d enir plus de 16 millions de couleurs. Des r esultats exp erimentaux ont prouv e que loeil est beaucoup plus sensible aux variations nes dintensit e lumineuse (luminance) qu` a celles de la couleur (chrominance). Il en r esulte que nous pouvons nous contenter de transmettre linformation de couleur avec moins de d etails que linformation de luminance.

Figure 2.9 Superposition des trois couleurs : rouge, vert et bleu

2.5.2

Changement despace de couleur

Toute longueur donde visible peut etre visuellement simul ee en convoluant le signal avec les fonctions de sensibilit e des trois di erents capteurs r etiniens du syst` eme visuel humain dit LMS (Large=565nm dit rouge, Medium=535nm dit vert, Short=430nm dit bleu). Dans le cas dune compression avec perte, la reconstruction de chaque bande (RVB) risque de ne pas appr ehender les structures de limage de la m eme fa con, engendrant di erentes erreurs de reconstruction et par la m eme, de fausses couleurs visuellement choquantes. On pr ef era donc un espace de luminance et chrominance rouge et bleu YCrCb (ou YUV) o` u les primaires sont d ecorr el ees, ce qui ore lavantage de s eparer les informations dintensit e lumineuse et de couleur. Un tel espace permet de g erer les premi` eres avec plus de soin. A titre dexemple, voici la matrice de passage de lespace RVB ` a lespace YUV :

2.5.3

D enition de la vid eo

La vid eo est une succession dimages anim ees. Le principe fondamental de la vid eo est que loeil humain a la possibilit e de retenir pendant un certain temps (de lordre du dixi` eme de seconde) toute image imprim ee sur la r etine. Il sut donc de faire d eler un nombre susant 18

dimages par seconde, pour que loeil ne se rende pas compte quil sagit dimages distinctes. Il existe deux grandes familles de syst` emes vid eo : les syst` emes vid eo analogiques et les syst` emes vid eo num eriques. La vid eo analogique La cam era balaye limage bidimensionnelle quelle a devant elle par un faisceau d electrons qui se d eplace tr` es rapidement de gauche a ` droite et plus lentement de haut en bas et produit une tension en fonction du temps. Elle enregistre ainsi lintensit e lumineuse, et ` a la n du balayage, on a alors une trame. Le faisceau revient a ` lorigine pour recommencer. Le r ecepteur va recevoir cette intensit e en fonction du temps, et pour reconstruire limage, va r ep eter le processus de balayage. Les param` etres pr ecis de ce balayage varient dun pays a ` lautre mais deux grandes familles existent : En Europe (syst` eme PAL/SECAM, pour Phase Alternating Line / SEquentiel Couleur Avec M emoire) ce syst` eme utilise 625 lignes (seulement 576 sont ach ees), un rapport vertical/horizontal de 4/3 et un d ebit de 25 images par seconde. En Am erique et au Japon (syst` eme NTSC, pour National Television Standards Committee), on a seulement 525 lignes (483 ach ees) et un d ebit de 30 images par seconde

Figure 2.10 Principe de balayage utilis e pour la vid eo et la t el evision La vid eo num erique La vid eo num erique est tout simplement une suite dimages form ees dune matrice de pixels. Pour obtenir des images en couleur, il faut utiliser au moins 8 bits par pixel, ce qui correspond a ` 256 couleurs. En fait, avec 8 bits par pixel, on obtient de la vid eo num erique noir et blanc de haute qualit e. Pour la vid eo num erique couleur, on utilise 8 bits pour chaque couleur RVB, soit donc 24 bits par pixel, ce qui correspond ` a environ 16,8 millions de couleurs. Le principe de balayage utilis e est similaire ` a celui de la vid eo analogique.

19

Chapitre 3 ` REALISATION DU SYSTEME


Pour r ealis e notre syst` eme multim edia embarqu ee on se basons sur les chiers HDL fournit par le constructeur de notre carte cible . Ces chier HDL sont ecrit en Verilog est ont d ecrit les deux interface de capteurs CMOS pour lutilis e comme un slave de I2C : CMOS2BUFFER.v , et CMOSI2C.v et un troisi` eme chier de contr oler l achage de lLCD DispCntl.v .

3.1

Conguration de capteur CMOS

Le capteur CMOS est camera de mille pixels 640x480 , qui peut eectuer 644x484 au format de donn ees brutes peut etre manuelle cibl ee.

Figure 3.1 inputs/ouputs de capteur CMOS an davoir d emarrer le capteur camera il faut le congur e pour obtenir la sortie d esir e. le processeur de camera contienne un jeu dinstruction qui assure la conguration de ce dernier :

20

Figure 3.2 registres dinstructions de capteur CMOS Alors in faut toujours inclue dans notre syst` eme une ROM de 16x32 pour assurer notre conguration dimage et de communication I2C ,pour cela on utilise MegaFunctionCore pour fournir la ROM et un chier .mif pour linutilis e La cam era sera charg ee bien entendu de capturer un ux dimage et devra etre congur ee pour fournir les donn ees sur 8 bits sous le format RGB qui est le plus facile a ` g erer.

Figure 3.3 conguration du camera

21

3.2

Notre Syst` eme

pou mieux optimis e notre syst` eme on a choisit cette architecture dans la quelle le processeur NIOS II communique avec la camera (SDRAM) et lLCD par linterm ediaire des IP de PIO : parllele input output

Figure 3.4 notre syst` eme NIOS les information image sont enregistr e dans les SRAM de 1Mo par les les entit es de CMOS et le sortie de notre syst` eme fournie limage trait e a linterface de lLCD

22

Figure 3.5 vue densemble de notre syst` eme NIOS

3.3

cr eation de syst` eme sur quartus II et SoPC builder

an de satisfait notre vision on utilisons SoPC builder pour cr ee le processeur NIOS et leurs p eriph eriques :

23

Figure 3.6 le processeur NIOS et leurs p eriph eriques Apr` es avoir g en er e les IP on sint eresse a etablir la connexion entre les di erentes composantes du syst` eme et les association des PIN avec les PIN r eel de la pus cyclne II on utilisons le guide de la carte , et en plus des PIN de capteur CMOS et lLCD on utilise aussi le PIN N26 pour la clock de syst` eme et U24 pour la reset globale.

Figure 3.7 le sch ema block de notre syst` eme

3.4

Le premier test : Hello World !

apr` es avoir t el echarg e le chier .sof g en er e par la compilation de notre syst` eme , on passe a NIOS IDE pour commenc e` a programmer le NIOS II . 24

pour notre premier test on va seulement ach e Hello world ! dans le consol NIOS , pour sela on cr e e un nouveau BSP projet dans NIOS IDE avec le chier de conguration de notre SoPC . Deux projet sont cr ee le premier s eest le projet quon va modier le deuxi` eme est le projet contienne les chier de drivers des di erent composantes du SoPC ( PIO , RAM , JTAG ...)
1 2 3 4 5 6 7 8 9 10 11 12

#include <stdio.h> int main() { while(1) printf("Hello from ENSAK ! \ n");

return 0; } }

Figure 3.8 Hello world dans le cadre de debugg e ce programme on rencontre plusieurs probl` eme : 1. le NIOS fast est n ecessite un licence pour lutiliser un message derreur sache si on essai de limpl ement e sur la carte ,alors on se limite par NIOS/e 2. la m emoire ram de 40K peut etre satur e par des grand code , et les deux SDRAM dans la carte est d ej` a utilis e comme un buer de camera

25

3.5
3.5.1

Programme de traitement dimage


Lalgorithme

Seul un type de traitement a et e etudi e et appliqu e sur limage fournie par la cam era. Ce traitement consiste simplement a ` faire un seuillage sur une des 3 composantes dun pixel. Pour ce faire, lid ee est la suivante : on regarde si la somme des 3 composantes est inf erieure a ` 3 fois la composante que lon veut garder. Si cest le cas, on place la valeur de 255 sur la composante que lon veut faire ressortir et on met a ` 0 les autres. Exemple : On souhaite faire ressortir le bleu dans limage. Si : 3.B > R + G + B alorsB = 255; R = G = 0 Sinon on ne touche pas aux composantes du pixel.

3.5.2

les fonctions de altera avalon pio regs.h

le chier altera avalon pio regs.h contienne le fonction de manipulation du PIO soit ecrire dans un PIO ou lire dapr e un autre IOWR ALTERA AVALON PIO DATA(x,BASE) cette fonction faire l ecriture de x sur le PIO de ldresse de base de BASE . IORD ALTERA AVALON PIO DATA(BASE) cette fonction faire lire de PIO de ldresse de base de BASE .

3.6

Limpl ementation du programme

cette algorithme simple , fait un bon choix pour mieux comprendre les outils de programmation de NIOS sans eort plus sur la complexit e de lalgorithme .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

/* * FORCAGEb.c * * Created on: 17 juin 2013 Author: yAcine * */ #include <stdio.h> #include"system.h" #include "altera avalon pio regs.h" #define WRITE(x) (IOWR ALTERA AVALON PIO DATA(x,CAMERA BASE)) #define READ (IORD ALTERA AVALON PIO DATA(LCD BASE)) int main() { //RGB 8 bit unsigned char unsigned char unsigned char unsigned char

Color; R; G; B;

26

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

//printf("Hello from Nios II! \ n"); while(1) { if(READ=0x0) WRITE(0xFFFF); else { R=READ; delay ms(D); G=READ; delay ms(D); B=READ; delay ms(D); } if(3*B>R+G+B) { R=0; //0x0000 G=0; //0x0000 B=255; //0xFFFF } WRITE(R); delay ms(D); WRITE(G); delay ms(D); WRITE(B); delay ms(D);

} return 0; }

27

Conclusion
Au cours de cette etude, on a pr esent e le d eveloppement dune plateforme mat erielle dacquisition et de restitution vid eo en Temps R eel en utilisant la conception mixte logicielle mat erielle. Cette plateforme se base sur la carte de d eveloppement Cyclone II dAltera qui est connect ee a ` la carte dinterface cam era et a ` celle de linterface LCD. Le cur du syst` eme est le processeur embarqu e NIOS II dAltera. Les modules IPs dacquisition et de restitution vid eo ont et e d evelopp es an dinterfacer les deux modules externes avec la carte de d eveloppement. On a pu voir en outre que la mise en oeuvre dun application avec NIOS IDE sur le processeur NIOS II pour assur e le traitemet dimage mais cette application reste insusant pour des application avanc e en terme de complexit e et en terme dordonnancement . Alors il est important dimpl ementer un syst` eme dexploitation comme uClunix ,RT Linux,RTOS ou RTEMS

28

Das könnte Ihnen auch gefallen