Vous êtes sur la page 1sur 4

Fiche technique CRESITT- Octobre 2009 Embarquer un processeur Softcore dans un circuit logique programmable (FPGA)

Niveau : Confirm, expert. Comptences requises : Architecture d'un systme lectronique, architecture d'un processeur, langage de description matrielle (VHDL/Verilog). Applications : lectronique embarque, lectronique automobile, multimdia, prototypage d'ASIC, adquation algorithme-architecture.

Les grands principes


L'objectif de cette fiche technique est de traiter les grands principes et de donner des lments de choix des processeurs Soft . Dans un circuit logique programmable, deux types de processeurs peuvent tre implments : les processeurs dits Hard , gravs en dur dans le silicium la fabrication du composant et les processeurs dits Soft encore appels SoftCores . Ces derniers sont dcrits en langage de description matrielle (Verilog/VHDL) et sont disponibles sous la forme de proprits intellectuelles IP synthtisables. L'atout majeur de ceux-ci est la possibilit de les synthtiser pour n'importe quelle cible (FPGA et/ou ASIC). Dans ce contexte, on diffrencie deux catgories de processeurs : - d'une part, les solutions dites propritaires , c'est dire distribues sous la forme de netlists pour tre implmentes dans un FPGA pralablement dfini. Le processeur est de la sorte li un FPGA particulier. - d'autre part les solutions dites Open Source qui sont le plus souvent des solutions libres. Le code source peut tre distribu librement et implment dans n'importe quel circuit logique programmable.

Les processeurs
Les composants essentiels dun processeur sont dcris dans la figure ci-dessous : Un processeur est dfini notamment par la largeur de ses registres internes (8, 16, 32, 64, 128 bits), la cadence de son horloge, exprime en MHz et son jeu d'instructions, dpendant de l'architecture (Sparc, RISC, ...). Les processeurs actuels intgrent des lments plus complexes tels que plusieurs units de calculs (ALU) ou des blocs DSP. Ils peuvent galement possder une architecture pipeline qui permet de dcouper temporellement les traitements effectuer. L'unit de prdiction de saut permet au processeur danticiper un saut dans le droulement dun programme, et ainsi dviter dattendre la valeur dfinitive dadresse du saut. L'unit de calcul en virgule flottante (FPU) permet d'effectuer des calculs sur des nombres rels cods en virgule flottante. La mmoire cache permet quant elle dacclrer les traitements en diminuant les temps d'accs.

Pourquoi un processeur Softcore ?


On privilgie le processeur Soft pour s'affranchir des problmes d'obsolescence et bnficier des volutions apportes. En effet, lorsque le processeur devient obsolte ou qu'une nouvelle version de celui-ci fait son apparition, il n'est pas ncessaire de changer physiquement le circuit de la carte. Il suffit de re-synthtiser le processeur et de reconfigurer le circuit logique. Dans le cas o un processeur SoftCore est mis en oeuvre pour une production en grande srie, il pourra ensuite tre port sur un circuit type ASIC. C'est dans cette optique qu'il devient intressant de synthtiser un processeur. Par exemple, en implantant un micro-processeur tel que le 8051 ou autres PIC dans un circuit logique programmable (FPGA ou CPLD pour les plus petits), on ne se soucie plus des produits qui disparaissent du march, et on conserve l'identique les applications prcdemment dveloppes. De plus, il est souvent possible d'utiliser certains de ces clones de micro-processeurs avec des frquences d'horloge beaucoup plus leves que leurs homonymes Hard .

Rdig par Jean-Yves CADOREL et Xavier HUREAU, CRESITT Industrie


Contact cresitt@cresitt.com Tl : 02 38 69 00 61 Site web www.cresitt.com Base documentaire www.doc-en-ligne.fr Ppinire du Parc du Moulin, 111 bvd Duhamel du Monceau, 45166 OLIVET

Fiche technique CRESITT- Octobre 2009


L'avantage d'un processeur SoftCores par rapport un processeur Hard est la flexibilit. Lorsqu'on le synthtise, il est possible de demander au synthtiseur d'optimiser le placement-routage afin de rduire l'encombrement que va utiliser le processeur dans le circuit, ou au contraire d'optimiser le placement pour pouvoir augmenter les frquences d'horloge, au dtriment de l'encombrement. Le compromis entre encombrement et performances est parfois dlicat trouver. Un inconvnient notable, et qui peut tre critique, est la prise en compte du temps de configuration du FPGA au dmarrage, problme qui n'existe pas pour un processeur hard .

Les lments de choix


Il est difficile de comparer les processeurs SoftCores entre eux, car leurs performances dpendent, d'une part du circuit logique programmable utilis, d'autre part des priphriques et du type de mmoire prsents, mais galement du synthtiseur utilis. Les deux tableaux ci-dessous prsentent de manire non exhaustive les diffrences entre les processeurs Soft 32-bits les plus courants. Le premier tableau prsente les solutions propritaires, et le second, les solutions open sources . Propritaire

ARM (ARM1026EJ-S) Architecture Support OS support BUS Multiprocesseur USB UART, PCI, VGA, TFT, Ethernet, Priphriques JTAG, Int FPU RAM Taille FPGA(LUTs) / Asic(Cells) Performances 16/32-bit RISC ? linux (2.6.21), uClinux AHB/APB Coprocesseurs Oui Oui Oui DDR/SDRAM ? 1.35 MIPS/MHz, fmax=400MHz(0,13)

Blaze 32-bit RISC Harvard actif Nucleus, ThreadX, uItron, uC/OS-II OPB/LMB/FSL Oui Non Oui Optionnel Flash/SRAM/DDR/SDRAM 1000 1800 LUTs 1.15 MIPS/MHz, fmax=210MHz
Open source

NIOS II 32-bit RISC Harvard actif CLinux, eCos, MicroC/OS-II Avalon oui oui oui non SDRAM/Flash 1400 1800 Cells 1.13 MIPS/MHz, fmax=260MHz

Leon 3 Architecture Support OS support BUS Multiprocesseur USB Priphriques UART, PCI, VGA, TFT, Ethernet, JTAG, Int FPU RAM Taille FPGA(LUTs) / Asic(Cells) Performances 32-bit SPARC trs actif Snapgear linux (2.6.21), eCos, VxWorks, ThreadX AHB/APB oui commercial GPL commercial PROM/SRAM/SDRAM/DDR 5000 LUTs 7500 Cells 25000 Gates 0.85 MIPS/MHz, fmax=400MHz

Micro32 32-bit RISC Harvard moyen non Wishbone Oui Oui Oui non DDR/SDRAM 2040 LUTs ?

OpenRisc 32/64-bit RISC actif Linux 2.4, eCos, ucLinux Wishbone oui oui oui non DDR/SDRAM ? 1.0 MIPS/MHz, fmax=250MHz

Rdig par Jean-Yves CADOREL et Xavier HUREAU, CRESITT Industrie


Contact cresitt@cresitt.com Tl : 02 38 69 00 61 Site web www.cresitt.com Base documentaire www.doc-en-ligne.fr Ppinire du Parc du Moulin, 111 bvd Duhamel du Monceau, 45166 OLIVET

Fiche technique CRESITT- Octobre 2009 Les principaux processeurs Softcores propritaires
Pour les processeurs propritaires, on retrouve les solutions des deux leaders mondiaux en matire de circuits logiques programmables, Xilinx et Altera, qui proposent chacun leur solution : le processeur Microblaze pour Xilinx et le processeur NIOS II pour Altera.

Processeur Softcore Microblaze


Le processeur softcore Microblaze est bas sur une architecture RISC optimise pour l'implmentation dans un circuit logique programmable Xilinx. Ce processeur est disponible l'adresse http://www.xilinx.com Ce processeur existe dans une version 8-bits appele PicoBlaze. En version 32-bits, il possde les caractristiques suivantes: Jeu d'instructions 32-bits, 32 registres de 32-bits, Pipeline 3 niveaux, Mmoires cache configurables (donnes et instructions), Bus LMB et CoreConnect d'IBM (OPB,PLB), Pas de MMU, Multiplieurs Hard si le processeur est instanti dans un Virtex II. Pour le dveloppement, c'est dire la mise au point logicielle, les outils mis disposition sont : Plate-forme de dveloppement Xilinx XPS (Xilinx Platform Studio), Configuration, Synthse, Chane de compilation crois (GNU), Simulateur XMD (Xilinx Microprocessor Debugger) bas sur le dbuggeur GDB, OS supports : Clinux (portage GPL), C/OS-II (noyau temps rel commercial).

Processeur Softcore NIOS II


Le processeur softcore NIOS II est bas sur une architecture RISC. Ce Softcore est une solution commerciale d'Altera. Ce processeur est disponible l'adresse http://www.altera.com Le NIOS II existe en 3 versions : fast, economy, standard. Ce processeur suivantes: possde les caractristiques

Jeu d'instructions 32-bits, 32 registres de 32-bits, Pipeline 5 ou 6 niveaux, Mmoires cache configurables (donnes et instructions), Bus Avalon (propritaire), Pas de MMU, 3 multiplieurs (hard et soft mix). Pour le dveloppement, c'est dire du point de vue logiciel, les outils mis disposition sont : Plate-forme de dveloppement Quartus II, Eclipse, Chane de compilation croise GNU, Simulateur ModelSim, OS supports: Clinux (portage GPL), C/OS-II (noyau temps rel commercial), eCos.res

Rdig par Jean-Yves CADOREL et Xavier HUREAU, CRESITT Industrie


Contact cresitt@cresitt.com Tl : 02 38 69 00 61 Site web www.cresitt.com Base documentaire www.doc-en-ligne.fr Ppinire du Parc du Moulin, 111 bvd Duhamel du Monceau, 45166 OLIVET

Fiche technique CRESITT- Octobre 2009 Les principaux processeurs Softcores libres de droits
Pour les processeurs libres , on trouve principalement aujourd'hui le processeur Leon 3 de Gaisler Research et le processeur OpenRISC d'OpenCores. Ces processeurs sont indpendants du FPGA utilis.

Processeur Softcore Leon 3


Le LEON3 est un modle synthtisable dcrit en VHDL d'un processeur 32 bits conforme l'architecture SPARC V8. Le code source est disponible sous licence GNU GPL, permettant l'utilisation libre et illimite pour la recherche et l'ducation. LEON3 est galement disponible sous licence commercial low-coast . Ce processeur est disponible l'adresse http://www.gaisler.com Multiplieurs, diviseurs et MAC, FPU, Bus d'instruction et de donnes spares (architecture de Harvard), Mmoires cache configurables (donnes et instructions), MMU, Bus AMBA-2.0 AHB, Multiprocesseur (SMP) jusqu' 4 processeurs. Pour le dveloppement, les outils sont : Une fentre graphique base sur tkconfig de linux permet de le configurer. La synthse : Xilinx XST, Altera Quartus, Synplify, Synopsys DC, Cadence RC. Les debbugeurs : Eclipse, GDB, DDD, GRMON, Les simulateurs : ModelSim, TSIM, GRSIM, OS supports: Linux (2.6.21), Clinux, eCos, VxWorks, ThreadX.

Le processeur LEON3 possde les caractristiques suivantes: Jeu d'instruction SPARC V8 32-bits. Pipeline 7 niveaux.

Processeur Softcore OpenRISC


L'OpenRISC 1200 est le modle dcrit en Verilog d'un processeur 32 l'architecture RISC. Le code source sous licence GNU GPL. Ce processeur est disponible http://www.opencores.org/ synthtisable bits conforme est disponible l'adresse Le processeur OpenRISC 1200 possde les caractristiques suivantes: Jeu d'instruction ORBIS32 32-bits, Pipeline 5 niveaux, 32 registres de 32-bits, Units DSP-MAC, Mmoires cache configurables (donnes instructions), Bus Wishbone, MMU.

et

Pour le dveloppement, les outils mis disposition sont : Chane de compilation croise GNU, Simulateur or1ksim, OS supports: Linux (2.4), Clinux, eCos, RTEM.

Rdig par Jean-Yves CADOREL et Xavier HUREAU, CRESITT Industrie


Contact cresitt@cresitt.com Tl : 02 38 69 00 61 Site web www.cresitt.com Base documentaire www.doc-en-ligne.fr Ppinire du Parc du Moulin, 111 bvd Duhamel du Monceau, 45166 OLIVET