les fpgas - boutillon/enseignement/fpga.pdf · nathalie julien, cours iup eea 1999. jean-luc...

48
- 1 - -1- Emmanuel Boutillon Les FPGAs Emmanuel Boutillon Cours réalisé à partir de : Nathalie Julien, cours IUP EEA 1999. Jean-Luc Danger, ENST Paris Cours de l’ISEP disponible sur le WEB Pierre Bomel -2- Emmanuel Boutillon å Comment et pourquoi faire de la logique programmable ? Les technologies de personnalisation Œ PAL, EPLD et FPGA Spécificité du développement des CLPs Situation présente et évolution. PLAN

Upload: dinhkien

Post on 12-Sep-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

- 1 -

-1-Emmanuel Boutillon

Les FPGAs

Emmanuel Boutillon

Cours réalisé à partir de :

Nathalie Julien, cours IUP EEA 1999.

Jean-Luc Danger, ENST Paris

Cours de l’ISEP disponible sur le WEB

Pierre Bomel

-2-Emmanuel Boutillon

å Comment et pourquoi faire de la logiqueprogrammable ?

� Les technologies de personnalisation

ê PAL, EPLD et FPGA

� Spécificité du développement des CLPs

� Situation présente et évolution.

PLAN

- 2 -

-3-Emmanuel Boutillon

microprocesseursprocesseurs DSPsmémoirespériphériques

FPGAEPLD

circuits logiques

programmablesASICs

Position du problème

Matériel Logiciel

circuits existantscircuits personnalisés

-4-Emmanuel Boutillon

Position du problème

L’intérêt des CLP se justifie (depuis 30 ans) par :

Le coûts très important des ASICs

Le temps de développement d ’un ASIC

Les performances faibles du logiciel

La non flexibilité des solutions ASIC

« Démocratisation » des FPGA

- 3 -

-5-Emmanuel Boutillon

Coût à la pièce

Nombre de pièces

ASIC

CLP

NRE

seuil

le seuil augmente si le nombre de portes baisseseuil mini = 1000 pièces

Coût CLP/ASIC

-6-Emmanuel Boutillon

temps

Temps de conception

spec

FPGA

ASICCode+synth

PlacementRoutage fab

spec Code+synth

speclogiciel

PR

Code

µP

+

Time to market

- 4 -

-7-Emmanuel Boutillon

processeur : traitement séquentiel

fclock

nb op/cyclef =

f

Nb opérations/cycle1 2 3 4 8 12 16 20 24 28 32 36 40 44 48 52

10

20

30

40

50

60

70

80 circuit personnalisé : traitement parallèle

F clock

fréquencede traitement

Les performances

-8-Emmanuel Boutillon

Démocratisation de la conception

Temps log10(complexité)

10Masque

8Transistor

7Porte

5RTL

4Spécifications

3Idée

T0 Tfin

Développem

ent

Val

idat

ion

ASI

C

Fonderie

Produit

Val

idat

ion

CL

P

Affaire deSpécialistes avec un équipement

lourd

- 5 -

-9-Emmanuel Boutillon

● prototypage➯ conception rapide de démonstrateurs

➯ autonomie (pas de fondeur)

● Reprogrammation➯ maintenance in situ

Intérêts propres aux CLPs

-10-Emmanuel Boutillon

Comment faire des CLP ?

Un circuit classique contient :- des portes logiques ;- des connections entre les portes logiques ;- des éléments de mémorisation (registre et/ou mémoire) ;- des entrées-sorties.- une (ou des) horloges- une structure hiérarchique

Le CLP doit donc avoir les mêmes fonctionnalités, avec la notionde « programmabilité ».

- 6 -

-11-Emmanuel Boutillon

Toute fonction logique booléenne peut s'exprimer sous forme canonique

S = A2A1A0 + A2A1A0 + A2A1A0 + A2A1A0

minterme ou terme produit

Matrice ETproduits des entrées

Matrice OUsomme des produits

Ai

Sj

= Réseau logique programmable

exemple :

Fonction logique simple :Réseau logique

-12-Emmanuel Boutillon

f(A1,A0 ) = f(0,0)A1A0 + f(0,1)A1A0 + f(1,0)A1A0 +f(1,1)A1A0fonction logique 2 entrées :

mémoire 4 mots de 1 bit : d = d0A1A0 + d1A1A0 + d2A1A0 + d3A1A0

A0

A1

F(A1,A0)=d= A1A0 + A1A0

adresse=entrées

liaison non programmableliaison programmable

Mémoire

d0=0d1=1

d2=1d3=0

- 7 -

-13-Emmanuel Boutillon

A0

A1

A2

A3

S0

S1

matrice

ETfigée

matrice

OUprogrammable

adresse=entrées

liaison non programmableliaison programmable

mémoire 16 mots de 2 bits => 2 fonctions logiques de 4 entrées

Mémoire

-14-Emmanuel Boutillon

LOOK UP TABLE (LUT)

Une mémoire contient la table de vérité d ’une fonction logique :

Ex : Fonction F(a,b,c) = a xor b xor c

000 0001 1010 0011 1100 0101 1110 0111 1

SRAMAdresse(a,b,c)

F(a,b,c)

=> Mode de lecture différent du résultat

- 8 -

-15-Emmanuel Boutillon

ABCD

S0

S1

S2

S3

matrice

ETprogrammable

matrice

OUfigée

liaison non programmableliaison programmable

Programmable Array Logic

somme de produits = Macrocellule

PAL

PLD : 4 fonctions de 12 mintermes (max) de 3 variablesAu déparet #70-85 : programmation « à la main » (fichier de fusibles)

-16-Emmanuel Boutillon

l utilisée pour la technologie ANTIFUSIBLE

équivaut à une LUT cablée

mux

a b

sortie

e0

e1

e2

e3

sortie = abe0 ou abe1 ou abe2 ou abe3

intérêt : surface réduite cellule grain fin

cellule logique à MUX

- 9 -

-17-Emmanuel Boutillon

ET

OU

OU

ET

MEMOIRE

PAL

MUX

type structure avantage inconvénient

toutes les fonctions=> 22n possibles

• grand nombre d'entrées• économique

•Mémoire conséquente sinombreuses entrées

Nombre de mintermes limité

Taille très faible Limité à peu d ’entrées

comparatif des réseauxprogrammables

-18-Emmanuel Boutillon

Programmation desinterconnections

Par connexion ou non de deux fils

F1

F2

F1

F2

Par l’utilisation de multiplexeur

F1

F2

F1’ Le nombre de connexionsréalisables est limité à ce quiexiste...

!

- 10 -

-19-Emmanuel Boutillon

Programmation des registres et E/S

clk

DQ

rst

Registre

Possibilité d ’utiliser ou non le registre

Possibilité de programmerle PAD en mode entrée ousortie.

-20-Emmanuel Boutillon

Système d’entrée sortie complet

DFF

DFF

OE

OUT

IN

broche

la broche peut être :

entrée simplesortie simplebidirentrée avec DFF (structure FPGA)sortie avec DFF (structure FPGA)inutilisée pour faciliter le routage (structure PAL)avec logique JTAG

- 11 -

-21-Emmanuel Boutillon

Gestion des horloges

Mise en place d ’un arbre de d ’horloge pour effectuer de la logique synchrone.

Principe : système asservi en phase

CLK

CLK_OUT

PLL

Õ compensation le "skew" d’horlogeÕ multiplication de la fréquence si diviseur dans la boucle de réaction

-22-Emmanuel Boutillon

Gestion de la complexité

Pour les CLP complexes, il est possible de définir des niveaux de hiérarchie du matériel.

=> Au niveau des interconnections=> Au niveau du regroupement de fonctions logiques

Il est aussi possible de diviser le circuit en fonctionnalitésdifférentes :

=> Zone de mémoire RAM=> Zone de CLP=> Zone spécialisée

- 12 -

-23-Emmanuel Boutillon

technologiesde programmation :

- EEPROM- SRAM

- antifusible

architectures du plan actif : - PAL hiérarchique (EPLD)

- gate-array (FPGA) - mixtes (CPLD ALTERAs)

Entrées / Sorties

Entrées/Sorties

Plan actif : cellules logiques

Plan de programmation : interconnexion

Entrées / Sorties

programmationou configuration

Entrées / Sorties

Principes du CLP

-24-Emmanuel Boutillon

å Comment et pourquoi faire de la logiqueprogrammable ?

� Les technologies de personnalisation

ê PAL, EPLD et FPGA

� Spécificité du développement des CLPs

� Situation présente et évolution.

PLAN

- 13 -

-25-Emmanuel Boutillon

Les composants logiques programmables :

Les technologies de personnalisation

➯ Fusibles

➯ Anti-fusibles

➯ UV PROM (obsolète) EEPROM

➯ SRAM

➯ Métalisation

➯ Comparaison des différents techniques.

Le circuit est personnalisé par création/destruction de connections sur la structure prédéfinie.

-26-Emmanuel Boutillon

Les composants logiques programmables : Technologie de personnalisation :

Fusibles métalliques ou Si

Lignes métalliques : interconnexions

Intact «Programmé»

Problème de l’électro-migration

Même structure en ligne polysilicium

Ou Transistor «grillable» joue le rôle de fusible

- 14 -

-27-Emmanuel Boutillon

Les composants logiques programmables : Technologie de personnalisation :

Antifusibles

-28-Emmanuel Boutillon

Les composants logiques programmables : Technologie de personnalisation :

UV-EPROM / EEPROM

SAMOS : Stacked MOS

Non-volatile

- 15 -

-29-Emmanuel Boutillon

Les composants logiques programmables : Technologie de personnalisation :

SRAM

Besoin d’une mémoire externed’initialisation :Processeur associé ouEEPROM série

-30-Emmanuel Boutillon

Prédiffusés (Gate Array)

● Circuits génériques au «catalogue»(ressources sans les interconnexions finales)

● Développement / production rapides

● Pas d ’utilisation optimale du Si

Exemple de métalisation pour obtenir un registre.

Les outils de CAO vont permettrede dériver le dessin du ou desmasques de connexions en tenant compte du schéma et du circuit choisi

Les ressources peuvent être uniques(par exemple des NAND) ou plusdiversifiéesLe routage se fait «dessus» : sea of gateou «à coté» : row-based

- 16 -

-31-Emmanuel Boutillon

Comparaison

Critères pour les interconnexions :rapidité de propagation à travers l ’interrupteur (produit résistance - capacité parasite)densité possible des interconnexions (surface de la cellule)facilité d ’utilisation (ISP, support, PROM de configuration)maintien de la configuration (volatile)reprogrammablilité (OTP)

Typed’interconnexion

EPROM Antifusible SRAM

Rapidité - + -

Densité - + --

Facilité + - +

Reprogrammabilité + non ++

-32-Emmanuel Boutillon

å Comment et pourquoi faire de la logiqueprogrammable ?

� Les technologies de personnalisation

ê PAL, EPLD et FPGA

� Spécificité du développement des CLPs

� Situation présente et évolution.

PLAN

- 17 -

-33-Emmanuel Boutillon

Taxinomie des CLPs (PLD)

Circuits logiques programmable

(Programmable Logic Device)

PLD EPLD-CPLD FPGA

SRAM antifusePAL GAL

UVPROM EECMOS isp

Les noms peuvent changer selon l‘auteur, le fondeur ...!

-34-Emmanuel Boutillon

Vocabulaire (1)

a. PAL, GAL ( Programmable Array Logic, Généric Array Logic).

b. EPLD-CPLD (Erasable PLD ou Complex PLD)Les EPLD sont programmables électriquement et effaçables aux UV ;Les EEPLD sont effaçables électriquementPrincipe similaire aux PAL mais avec interconnexions réalisées en techno UVPROMOn trouve également les pLSI et ispLSI (in situ programmable)

c. FPGA (Field Programmable Gate Array)C ’est un ensemble de blocs logiques élémentaires que l ’utilisateur peut interconnecter pour réaliser les fonctions logiques de son choixLa densité des portes est importante et sans cesse en évolution

FPGA à SRAM ou LCA Logic Cell Array (1985 par Xilinx)FPGA à antifusibles (1990 Actel) non effaçables

- 18 -

-35-Emmanuel Boutillon

Vocabulaire (2)ASIC Application Specific Integrated Circuit - Circuit intégré conçu à la demandeCPLD Complex Programmable Logic Device - Réseau logique programmable complexeDRAM Dynamic Random Access Memory - Mémoire dynamique à accès aléatoireDSP Digital Signal Processor - Processeur orienté vers le traitement du signalEDIF Electronic Design Interchange FormatEEPLD Electrically Erasable Programmable Logic Device - PLD effaçable électriquementFPGA Field Programmable Gate Array - Réseau de portes programmablesGAL Generic Array Logic - PAL génériqueISP In-System (In Situ) Programmable - Composant programmable sur carteJEDEC Joint Electronic Device Engineering Council - Organisme de normalisationJTAG Joint Test Action Group - Bus de test des composantsLCA Logic Cell Array (Xilinx) - Réseau de cellules logiquesLUT Look-Up TableMAX Multiple Array Matrix - Megapals d'AlteraNOVRAM ou NVRAM Non Volatile Random Access Memory - RAM non volatileOTP One Time Programmable - Programmable une seule foisPAL Programmable Array Logic - Réseau logique programmablePGA Programmable Gate Array - Réseau de portes programmablePLA Programmable Logic Array - Réseau logique programmablePLD Programmable Logic Device - Dispositif logique programmable, EPLD : Erasable PLD : PLD EffacableROM Read Only Memory, Mémoire à lecture seule, PROM : Programmable ROM,. EPROM: Erasable : Effacable,

EEPROM : Electricaly EPROM : Mémoire à lecture seule, électriquement effaçable.RAM Random Access Memory - Mémoire à accès aléatoireSDF Standard Delay FileSOG Sea-of-Gates - Mer de portes : réseau actif logique prédiffuséSRAM Static Random Access Memory - Mémoire statique à accès aléatoireTTL Transistor Transistor Logic - Logique transistor-transistorVHDL VHSIC Hardware Description Language - Langage de description matérielle VHSIC

-36-Emmanuel Boutillon

Nomenclature des PALs

● Convention de dénomination PAL II AB 00 (CE) C ZZ DEF➯ PAL (nbr d ’entrées) (structure de sortie) (nbr sorties) (CMOS Eraseble) (conso.) (vitesse)

(boitier)

● Types de sortiesType Structure de sortie

H combinatoire à logique positive

L combinatoire à logique négative

P combinatoire à polarité programmable

C combinatoire à logique complémentaireR logique à registre

RA logique asynchrone à registre

RP logique à registre programmable

V logique à macrocellules (versatiles)

- 19 -

-37-Emmanuel Boutillon

Principe des PAL

Possibilité de rebouclage

Vedette : PAL22V10CEProgrammable array logic22 I/O - 10 Versatile OutputsCMOS ERASABLE

Architecture générale des PALs

-38-Emmanuel Boutillon

PAL22V10CE : sortie Versatile

Choix de la polarité de la logiqueProgrammation entrée sortie

Rebouclage programmable.

- 20 -

-39-Emmanuel Boutillon

PAL

22V

10

-40-Emmanuel Boutillon

Architecture PAL hiérarchique (EPLD)

• Ensemble de blocs logiques LAB (Logic Array Block) composés de macrocellules• Une matrice d'interconnexion PIA (Programmable Interconnect Array)• Chaque E/S est liée à une macrocellule

PIA

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

matrice d’interconnexion

. . .

. . .

LAB

LAB

LAB

LAB

LAB

macrocellule

. . .

macrocellulemacrocellule

- 21 -

-41-Emmanuel Boutillon

Routage d’un EPLD

➯ routage systématisé

➯ modèle électrique et délais prédictibles

➯ placement non critique (temps de compilation faible

LABE/S LAB LAB LAB

-42-Emmanuel Boutillon

Exemple : EP610/1810 (1)

- 22 -

-43-Emmanuel Boutillon

Exemple (ALTERA) : P610/1810 (2)

-44-Emmanuel Boutillon

MAX9000 (1)

- 23 -

-45-Emmanuel Boutillon

PLD / CPLD / FPGA : L’offre ALTERA :

MAX9000 (2)

-46-Emmanuel Boutillon

MAX9000 (3)

- 24 -

-47-Emmanuel Boutillon

Architecture gate-array (FPGA)

• Ensemble de cellules logiquesdisposées en matrice et séparées pardes canaux de routage organisés enRangées/Colonnes. A chaqueintersection se trouve uncommutateur.• Le temps de propagation dépenddu routage choisi pour réaliserl'interconnexion.

canaux de routage

cellule logique

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

E/S

-48-Emmanuel Boutillon

rangée pour connexions locales=segments

colonne pourconnexions locales

commutateur

cellulelogique

rangée pour connexions globales= lignes longues

exemple : XC4000 XILINX

routage dans un FPGA

cellulelogique

- 25 -

-49-Emmanuel Boutillon

A

B

A

B

grande adaptabilité du routage

routage dans un FPGA

-50-Emmanuel Boutillon

AAAroutage localdans le bloc

A

B

cellules dans le même bloc cellules dans blocs différents :1 ligne rangée et colonne occupée

1 commutation max => temps de propagation + déterministebesoin de + de lignes

routage dans un FPGA : FLEXALTERA

B

- 26 -

-51-Emmanuel Boutillon

FLEX10K(1)

-52-Emmanuel Boutillon

FLEX10K(2)

- 27 -

-53-Emmanuel Boutillon

FLEX10K(3)

-54-Emmanuel Boutillon

FLEX10K(4)

- 28 -

-55-Emmanuel Boutillon

FLEX10K(5)

Mode normal

Mode arithmétique

-56-Emmanuel Boutillon

FLEX10K(6)

- 29 -

-57-Emmanuel Boutillon

performances

granularité fineflexibilité

rapidité de compilation

prédictibilité des temps de propagation

grand nombrede registres

type EPLD

typeFPGA

Intérêts des deux architectures

-58-Emmanuel Boutillon

EPLD FPGA

• machine à états complexe

• machine à étatsperformante• intégration de circuits logiques et PALs• temps de calcul pin à pinprédictible.

• traitement en pipeline

• arithmétique• machine à état codée "hot line"• applications à haut niveau d'intégration• nombre registres et E/S

12

34

5

Applications EPLD/FPGA

- 30 -

-59-Emmanuel Boutillon

APEX20K(1)

-60-Emmanuel Boutillon

APEX20K(2)

- 31 -

-61-Emmanuel Boutillon

XILINX : Famille VIRTEX

&/% &/%

&/%

BRAM

BRAM

BRAM

BRAM

'//

CL IOB

IOB

IOB

IOB

IOB

IOBIOB

IOB

'//

'// '//

CLCL

CL

&/%

4th GenerationLogic/Memory/Routing Fabric

DLL Technology for High-Performance Clock & I/O

Select I/O Technology

Thermal ManagementSelectMAP

Advanced Configuration Technology

Ultra-High PerformanceSynchronous Dual-Port SRAM

-62-Emmanuel Boutillon

å Comment et pourquoi faire de la logiqueprogrammable ?

� Les technologies de personnalisation

ê PAL, EPLD et FPGA

� Comment choisir un FPGA

� Situation présente et évolution.

PLAN

- 32 -

-63-Emmanuel Boutillon

Comment choisir un FPGA ?

Caractéristiques techniques du FPGA- Performances (complexité, vitesse, conso.)

- Nombre E/S et interface

- Tension d’alimentation

- Boitié

Qualité des softs associés au FPGA (CAO et IP)

Technique de programmation (Field/InSitu)

Technique de debug et de test

Critères économiques

- prix, disponibilité

- pérennité et flexibilité de la famille.

-64-Emmanuel Boutillon

PC et/ou station de travail

SAISIE SYNTHESEPLACEMENT

ROUTAGE

VERIFICATION

PROGRAMMATIONCONFIGURATION

CAO pour conception de CLP

spécifications

Très similaires à celle des circuits VLSI :

TechnologieCLP

∆ : Synthèse et P/R spécifique :• nombre de cellules figé par circuit • 1 cellule = entre 1 et 20 portes 2 entrées

Autonomie :réalisation= téléchargement de la listed’équipotentielles dans le circuit

- 33 -

-65-Emmanuel Boutillon

partitionnementcircuits multiples floorplanning placement routage

"Netlist " après synthèse

versprogrammeur

CLP+

addercontrol

FIFO

timing

glue

placement routage

Chaque vendeur de CLP fournit son outil de P/R dédié

CLP

Bloc cellule équipotentielle

-66-Emmanuel Boutillon

Importance de la qualité des softs

Les FPGAs deviennent très complexes et très flexibles.=> L’optimisation du P/R devient très complexe=> Logiciels performants

Hors les logiciels de CAO pour les CLPs manquent de maturités : => très lents (24 h pour un placement routage) => peu stables (machine à rebouter) => peu efficaces et non déterministes :

a) temps de propagation trop longb) en échec (pas de solution trouvée). =>il faut alors guider « à la main » le placement

- 34 -

-67-Emmanuel Boutillon

Synthèse sur FPGA

Pour optimiser la synthèse, il faut la guider :

=> Directive global de compilation :Effort d ’optimisation, critères de synthèse (Vitesse vs Surface, Fan out)

=> Directive locale de compilation dans le texte-- « mot clef » « directive compilation »

=> Directive hiérarchique de compilationtel bloc, telle méthode (insertion libre de registres, méthode A).

=> Utilisation d ’opérateurs « optimisés par le fondeur »appels de macro-blocs additionneurs, multiplieurs,... paramétrables

PROBLEME : Le code VHDL devient spécifique au FPGA

-68-Emmanuel Boutillon

Placement sur FPGA

Problème NP-complet qui conditionne :- la possibilité de trouver une solution de routage- le chemin critique

Solution :- Indiquer « à la main » le placement des blocs dans lefloor plan.- Placement routage incrémental

Assignation manuelle ou automatique des PAD E/S sur lesentrées/sorties du composant VHDL.

- 35 -

-69-Emmanuel Boutillon

Intellectual Property (IP)

● Les structures matérielles deviennent du consommable

● Achat ou location d ’un design paramétrable

● Licence ou royalties

● Développement et échange d’IP grâce aux langagesstandards

La qualité d ’une CLPs dépend aussi des IPs disponibles pour accélérer la conception (de même que la qualité d’un systèmed ’exploitation dépend des logiciels existant).

-70-Emmanuel Boutillon

IP MegaStore: Search Engine

www.altera.com/IPmegastore

- 36 -

-71-Emmanuel Boutillon

The Portfolio (XILINX, ALTERA)

Communications

ADPCM (u-law, a-law)

ATM Controller

Cell Delineation

CRC

Ethernet MAC(10/100/Gigabit)

HDLC Protocol Core

IMA Controller

Intermediate Data RateFramer/DeFramer

Multi-Channel ATM TC

Packet Over SONETController

Rank Order Filter

Speedbridge

Telephony Tone Generator

Utopia Level II/III Masterand Slave

Bus Interface

CAN Bus

IIC Slave

IIC Master

IEEE 1394

PCI Target

PCI Master/Target

PCI-X Master/Target

PowerPC Bus Arbiter

PowerPC Bus Master

PowerPC Bus Slave

USB Function Controller

USB Host Controller

Digital Signal Processing

Adaptive Filter

Binary Pattern Correlator

Biorthogonal Wavelet Filter

Complex Multiplier Mixer

CSC

Decimating Filter

Digital Modulator

Discrete Cosine Transform

Early/Late Gate Symbol

FFT

FIR Compiler

FIR Filter Library

Floating Point Adder/Divider

IIR Compiler

Image Processing Library

Integer Divider

NCO

Reed Solomon Compiler

Square Root Operator

Symbol Interleaver/Deinterleaver

Viterbi Decoder

Processor, Peripheral

2910

49410

6402 UART

6850 UART

16450/550 UARTs

8251 UART

8237 DMA Controller

8255 Peripheral Interface

8259 Interrupt Controller

8254 Timer/Counter

8051

8052

6502

Z80

Excalibur NIOS Processor

LX-4080R

Xtensa 32-bit Processor

SDRAM Controller

-72-Emmanuel Boutillon

EPLD

Technologie EEPROM

programmation sur site via des broches dédiées : ISP (In system Programmation)

connecteur de configurationbroches JTAG

programmateur

Programmation

- 37 -

-73-Emmanuel Boutillon

Technologie SRAM

Configuration

mémoire de configuration

configuration autonome sur site : ICR (In Circuit Reconfiguration)

microcontrôleur

broches de configurationdédiéesou port JTAGCLPFPGA

-74-Emmanuel Boutillon

Debug : Analyseur embarqué

,QWHUQDO�&KLS�OHYHO�$FWLYLW\

([WHUQDO%RDUG�OHYHO$FWLYLW\

Certains constructeurs proposent des IPs « analyseurlogique »

Cela permet de sortir du FPGA des signaux internes pourle debug du système. + Simulation en temps réel (très important).- Synthèse et placement à chaque modification de l ’environnement de test.

- 38 -

-75-Emmanuel Boutillon

JTAG pour le test : boundary scan test

puce

TDI TD0

puce

TDI TD0

ligne à testercircuit Jtag 1 circuit Jtag 2

Le boudary scan test impose :• broches dédiées : TDI,TDO,TMS,TCLK,nTRST

• controleur JTAG Test Access Port avec registre d'instruction• registre à décalage sur les broches (Boundary scan register)

-76-Emmanuel Boutillon

Critère économique

Coût du composant : évidemment...

Coût du développement : dépend de la culture de l’entreprise=> Savoir faire=> Réutilisation de code déjà existant=> Existence ou non des logiciels de CAO(conditionne aussi le temps de développement)

Coût de maintenance :=> extension de la famille FPGA : nouvelle génération de produit

- 39 -

-77-Emmanuel Boutillon

å Comment et pourquoi faire de la logiqueprogrammable ?

� Les technologies de personnalisation

ê PAL, EPLD et FPGA

� Comment choisir un FPGA

� Situation présente et évolution.

PLAN

-78-Emmanuel Boutillon

● opérateurs➯ +,- : chaîne de retenue, cellule utilisée en "full adder"

➯ * : chaîne de retenue pour arbre d’addition + LUT ou RAM pour logique câblée

➯ non linéaires : LUT, mémoire

● mémoire temporaires➯ nombreux registres pour pipeline et retards

➯ blocs mémoires

● Gestion de l’horloge➯ PLL pour diminuer le "skew" et augmenter la fréquence

Intérêts des CLPs pour le traitementdu signal

- 40 -

-79-Emmanuel Boutillon

coprocesseur"front end" :décodage canal

filtrage

processeur"back end"

données au débit élevé

canal 1

canal 2

canal 2

info au débit moins élevé

CLP processeur DSP, RISC,...

performancescalcul et mémoire distribués

centralisation du calcul et de la mémoirefonctions multiples et algorithme complexe

contrôle

interfaceasynchrone

gestion système

complémentarité CLPprocesseur

-80-Emmanuel Boutillon

Evolution (Roadmap)

Circuit Année N (T ou gates)

4004 1971 2250 T

Pentium I 1993 3100000 T

Pentium IV 2000 42000000 T

ALTERA 2000 1à 4.106 Portes

- 41 -

-81-Emmanuel Boutillon

L’offre ALTERA (début 2001)

ALTERADevice

APEXHigh Density, CAM,High Performance IOs FLEX, ACEXDensityMemory

ExcaliburNIOS, ARM, MIPSEmbedded ProcessorPeripherals, More Memory

MAXLogic

-82-Emmanuel Boutillon

PLD / CPLD / FPGA : L’offre ALTERA :

EXCALIBUR

Processeur embarqué dans une FPGA- Primitive VHDL synthétisé : NIOS- Processeur matériel ARM ou MIPS + FPGA

Performance(MIPs)

20

50

100

200 ARMCore

MIPSCore

0 Soft Core Hard Cores

Core

TM

- 42 -

-83-Emmanuel Boutillon

● Configurable Soft Core

● Optimized for ALTERA’s PLDArchitecture

● 16 or 32 bits Data Path

● 16 bits instruction set

● RISC base, 4-stage pipeline

● 50 MIPS performance

● 1100 LE for 16-bit mode

● 1700 LE for 32-bit mode

➯ 12% of EP20K200E

NIOS Embedded Processor

Timer

IRQ

PB

M CPU

UART

APEX EP20K200E

Your DesignHere

FLASH

SRAM

SerialPort

-84-Emmanuel Boutillon

Nios RISC Processor BlockDiagram

● Standard RISCComponents

● Fully-SynchronousInterface

- 43 -

-85-Emmanuel Boutillon

Nios Compile-Time Parameters

● Data Path (32 or 16)

● Address Bus Width (10 to 33-bits)

● Register File Size (128, 256 or 512)

● Reset Address

● Exception Vector Table Address

● Barrel-Shifter Speed (1, 3, 7, 15 or 31Bits/Clock)

● Hardware-Assisted Multiply (MSTEP)

-86-Emmanuel Boutillon

Nios Peripheral List & PBM

Nios Core

Address Decode

InterruptControl

Wait StateGeneration

Data InMultiplexer

Bus Sizing(Optional)

PeripheralsPeripheral Bus Module

UART

Timer

PIO

Int.& Ext.Memory

User-definedPeripheral

User-definedPeripheral

Processor Core

Port Interface

- 44 -

-87-Emmanuel Boutillon

Nios Flexibility & Scalability

APEX EP20K100E

APEX EP20K200E

APEX EP20K1000E

High-PerformanceEmbedded Processor Custom

DSPMulti-Processor

Micro-Coded System75K Gates Available

150K Gates Available

500K GatesAvailable

FFT

ESB

ESB

ESB

ESB

ESB

ESB

ESB

ESB

ESB

ESB

ESB

ESB

● Before Nios

➯ 68XXX = 8 MIPS

➯ ARM 7 = 53 MIPS

➯ Pentium III = 500 MIPS

● After Nios

➯ 1 Nios = 44 MIPS

➯ 40 Nios = 1760 MIPS

-88-Emmanuel Boutillon

ARM/MIPS : Logical Structure

EBI

SRAM(Single Port)

SDRAMController

DPRAM

SDRAMInterface

FlashInterface B

ridg

e

Master Port

Slave Port

Dual-PortRAMInterface

ARM- or MIPS-Based

ProcessorPL

Ls

PLD

- 45 -

-89-Emmanuel Boutillon

EPXA10

SRAM

DPRAM

EPXA4

SRAM

DPRAM

EPXA1

SRAM

DPRAM

Embedded Processor PLD

EmbeddedProcessor

Stripe

PLD

JTAG

TraceModule

ARM922T

ExternalMemory

Interfaces

InterruptController

PLL

Timer

UART

WatchdogTimer

-90-Emmanuel Boutillon

ARM/MIPS : Ressources

- 46 -

-91-Emmanuel Boutillon

ARM/MIPS : Design WorkFLow

Notion deCo-Design

-92-Emmanuel Boutillon

Les acteurs du marché des PLD/FPGA

(en Million$) Ventes 1999 Ventes 2000• ALTERA 837 1377• XILINX 899 1558

• LATTICE 410 568 • ACTEL 172 226• LUCENT • ATMEL• CYPRESS• ...

Permet aux PME d’accéder aux circuitsintégrés complexes

- 47 -

-93-Emmanuel Boutillon

Les acteurs du marché des ASIC

Prédiffusés(Million$) 1999

• FUJITSU 494• NEC 370• TOSHIBA 350• HITACHI 300• LSI Logic 200

Précaractérisés(Million$) 1999

• IBM micro-e 2200• AGERE (LUCENT) 1900• LSI Logic 1450• NEC 1050• FUJITSU 820

-94-Emmanuel Boutillon

Evolution des marchés

Répartition 99 (en $) des circuits CMOSet prévisions

99 99 00 01 02 03• PLD 10 % 0,5 0,6 0,7 0,9 1• Prédiffusés 12 % 0,4 0,3 0,3 0,3 0,2• Précaractérisés 44 % 2,1 2,7 3,4 4,2 4,9• Full Custom 4 % 0,03 0,02 0,01 0,01 0• Glue 9 % • Autres 21 %

Pour un marché de 25,8 Md$ en 99Forte croissance des PLD/FPGA et PrécaractérisésBaisse (et mort) des prédiffusés et des full custom

- 48 -

-95-Emmanuel Boutillon

Le futur (1)

FPGA avec Processeur … ou Processeur avec zone de FPGA ?

FPGA reconfigurable dynamiquement :- de façon déterministe (filtre A puis B sur image).- de façon dynamique en fonction des données…

=> Problèmes de recherche qui débutent.- software radio : la configuration est télé-chargée ,- partitionnement logiciel-matériel- prouver que cela marche...

-96-Emmanuel Boutillon

Le futur (2)

Circuit programmable Analogiques et Mixtes : En cours(www.anadigm.com)