Vous êtes sur la page 1sur 47

Conception numrique sur FPGA/CPLD

1- Les circuits Logiques Programmables

Mouhcine CHAMI RABAT - 2013

Plan
Histoire : Les rseaux logiques programmables Positionnement et intrts des CLPs/ASICs Architectures des CLPs Programmation/Configuration Cellules logiques Spcificit du dveloppement des CLPs Critres de slection

Rseau logique
Exemple: S A2 A1A0 A 2 A1A0 A2 A1A0 A 2 A . 1A 0

1. Histoire

Toute fonction logique boolenne peut s'exprimer sous forme canonique

Ai

Matrice ET Produit des entres

Matrice OU somme des produits

Sj

Rseau logique programmable


3

Mmoire

1. Histoire

A0 Fonction logique 2 entres : f(A1 , A0 ) f(0,0)A1A0 f(0,1)A1A0 f(1,0)A1A0 f(1,1)A1.

Mmoire 4 mots de 1 bits: d d 0 A1A0 d1A1A0 d 2 A1A0 d3A1A .0

A0

Liaison non programmable Liaison programmable

A1

d2=1 d0=0 d1=1 d3=0

F(A1 , A0 ) d A1A0 A1A0

Mmoire
A0 A1 A2 A3

1. Histoire

Mmoire 16 mots de 2 bits 2fonctions logiques de 4 entre

Matrice

fige

ET

Matrice programmable
Liaison non programmable

OU

S0 S1
Liaison programmable

PAL
Programmable Array Logic

1. Histoire

A0 A1 A2 A3 S0 S1 S2 S3
Liaison non programmable

Matrice

programmable

ET

Matrice fige
Liaison programmable

OU

Somme de produit = Macrocellule


6

Comparatif des rseaux programmables


Type structure avantage

1. Histoire

inconvnient

ET
Mmoire

OU
OU
PAL

Toutes les fonctions => possibles

22

Pas de registres en sortie Mmoire consquente si nombreuses entres

ET ET
FPLA

Grand nombre d'entres conomique

Nombre de mintermes limit

Presque toutes les fonctions

Assez cher

OU

Plan
Histoire : Les rseaux logiques programmables Positionnement et intrts des CLPs/ASICs Architectures des CLPs Programmation/Configuration Cellules logiques Spcificit du dveloppement des CLPs Critres de slection

Le positionnement des CLPs


Matriel Logiciel

2. Intrts

Circuits personnaliss

Circuits existants

ASICs
Cousus mains Pr-caractriss Pr-diffuss

CLPs EPLD FPGA

Processeur Mmoire Circuits priphriques Circuits de connexions

A.S.I.C / CLPs
1
Application Specific Integrated Circuit

2. Intrts

Circuits Logiques Programmables (CLP)

10

Spcificit ASIC

2. Intrts

Performances bas cot en trs grande quantit SoC avec coeurs de processeur et bibliothques dIP Contrat avec un fondeur (15K to 150K ) Prvoir une phase de test aprs fabrication Faible consommation Protection industrielle

11

Spcificit FPGA

2. Intrts

Programmable et re-programmable interconnection (gnralement SRAM) Cellule avec peu dentres Mmoire embarque Pas de rduction de cot pour une production en volume (surface ~30 fois plus gros quun ASIC pour une mme fonction) Autonomie pour la production

12

Cot de production
Cot
Cot de dveloppement

2. Intrts

ASIC

CLP

Logiciel+PC

Logiciel seul

Rapport de taille

volume

13

Densit d'intgration

2. Intrts

2010

Nb portes utilisables

14

Temps de dveloppement

2. Intrts

Dpend de ressources :

Mthodes et outils Rutilisation Exprience de l'quipe

exemple
ASIC

spec

Code + synth

backend

fab

FPGA

spec
spec

Code + synth ba..


Code
temps

software

15

Diffrence ASIC / FPGA

2. Intrts

Temps de dveloppement

Avantage FPGA

Cot

Fort volume : avantage ASIC Trs faible volume : avantage FPGA


Avantage asic Avantage FPGA
16

Performance, densit, consommation

volutivit, Maintenance

Plan
Histoire : Les rseaux logiques programmables Positionnement et intrts des CLPs/ASICs Architectures des CLPs Programmation/Configuration Cellules logiques Spcificit du dveloppement des CLPs Critres de slection

17

Principe architecturaux
Programmation Ou configuration

3. Architecture

Plan de programmation : interconnexion


Entres sorties
Entres / sorties

Plan actif : cellules logiques


Architecture du plan actif : - PAL hirarchique - Gate array:FPGA - Mixte:CPLD altera

Technologie de programmation : - EEPROM - SRAM - antifusible

18

3. Architecture

Architecture PAL hirarchique (EPLD)


Ensemble de blocs logiques LAB (Logic Array Block) composs de macrocellules Une matrice d'interconnexion PIA (Programmable Interconnect Array) Chaque E/S est lie une macrocellule
E/S E/S E/S E/S macrocellule macrocellule macrocellule macrocellule E/S E/S E/S E/S

LAB LAB

matrice d'interconnexion

LAB

E/S
E/S

LAB

LAB

E/S E/S

E/S

E/S 19

3. Architecture

Architecture gate-array (FPGA)


Ensemble de cellules logiques disposes en matrice et spares par des canaux de routage organiss en Ranges/Colonnes. A chaque intersection se trouve un commutateur. Le temps de propagation dpend du routage choisi pour raliser l'interconnexion.
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 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

Canaux de routage Cellule logique

20

3. Architecture

Intrt des deux architectures


EPLD FPGA

Performances

Prdiction des temps de propagation

Rapidit De compilation

Granularit fine flexibilit Grand nombre De registres

21

3. Architecture

Applications EPLD/FPGA

Machine tats complexe


1 5 2 3

Traitement en pipeline

Machine tats performante Intgration de circuits logiques et PALs

Arithmtique Machine tat code "hot line" Applications haut niveau d'intgration
22

Exemple d'architecture mixte : les CPLD ALTERA


LAB

3. Architecture

Routage local Dans un LAB

Pas de matrice De commutation

Lignes longues : FastTracks Ranges/colonnes

23

3. Architecture

Routage dans un EPLD

PAL relis par matrice de routage commune

matrice de connexion

PAL
E/S

PAL
E/S

PAL

PAL

24

3. Architecture

Routage dans un FPGA

Connexions locales par cellule

Range pour connexions globales = lignes longues

Cellule logique

Cellule logique

Range pour connexions locales = segments

Exemple : XC4000 XILINX

Colonne pour Connexions locales

25

3. Architecture

Routage dans un FPGA

Grande adaptabilit du routage

26

Routage dans un FPGA : FLEX ALTERA


A
Routage local dans le bloc

3. Architecture

Cellules dans le mme bloc

Cellules dans blocs diffrents : 1 ligne range et colonne occupe

1 commutation max => temps de propagation + dterministe besoin de + de lignes


27

Routage dans un FPGA : ACTEL

3. Architecture

Connexions locales travers la cellule


commutateur

Cellule Cellule Cellule Cellule logique logique logique logique

Range de cellules

Range de fils

Cellule Cellule Cellule Cellule logique logique logique logique

28

Plan
Histoire : Les rseaux logiques programmables Positionnement et intrts des CLPs/ASICs Architectures des CLPs Programmation/Configuration Cellules logiques Spcificit du dveloppement des CLPs Critres de slection

29

4. Configuration

Technologies
Dans un CLP, la programmation consiste relier ou non 2 lignes de connexion

EEPROM
Grille polysilicium Grille flottante drain

SRAM

N+

N+

oxyde

ANTIFUSIBLE

Vue en coupe

30

4. Configuration

Configuration
Technologie SRAM
Mmoire de configuration microcontrleur Broche de configuration ddies ou port JTAG

Configuration autonome sur site : ICR (In circuit Reconfiguration)

31

4. Configuration

Configuration
Technologie EEPROM
Mmoire de configuration

Broche de configuration broches JTAG

Programmateur

Configuration autonome sur site : ICR (In circuit Reconfiguration)

32

Plan
Histoire : Les rseaux logiques programmables Positionnement et intrts des CLPs/ASICs Architectures des CLPs Programmation/Configuration Cellules logiques Spcificit du dveloppement des CLPs Critres de slection

33

5. Cellules

macrocellule

Architecture "terme produit"

DFF

Sortie

ET cabl

connexions

Grand nombre de variables d'entre possibles, utilise dans les EPLD

34

5. Cellules

Cellule LUT

LUT mmoire RAM dont les adresses sont les entres

Mmoire

N inputs

adresse donne

DFF

Sortie

Intrt : toutes les fonctions logiques de n entres

35

5. Cellules

Cellule LUT : exemple

XILINX XC4000
C1 C2 C3 C4
H1 DIN S/R EC La cellule a aussi ces diffrentes possibilits : - Chane de propagation de retenue - Transformation des LUTs F et G en RAM 32x1 ou 16 x2

G4 G3 G2 G1

DIN G

S/R CTRL D EC CTRL Q XQ

LUT F LUT H

F H F H

EC X

G4 G3 G2 G1

LUT G

DIN G

F H
G H

D
CLK CTRL

YQ

EC Y
36

5. Cellules

Cellule logique MUX

Utilise pour la technologie ANTIFUSIBLE quivaut une LUT cble

e0

Mux

e1
e2 e3

DFF

Sortie

sortie abe0 ou abe1 ou abe2 ou abe 3


Intrt : surface rduite, cellule grain fin

37

5. Cellules

Cellule MUX : exemple

Cellule ACTEL ACT3


D00 D01 D10 D11
S1 Y

OUTC

DFF

OUTS

S0

a1 b1 a0 b0

CLK

CLR

C module

S module

38

5. Cellules

Mmoire
distribue

Utilisation des LUTs des cellules en mode mmoire Exemple : XILINX XC4000 (2 LUT 4 entre 1 mmoire 32 bits)

embarque

La mmoire est dissocie des cellules Exemple : ALTERA FLEX10K

Embedded Array Block 25 Kbits

LAB

de 8 cellules

39

5. Cellules

Utilisation des mmoires

Mmoire effective

RAM double port, FIFO ROM Logique combinatoire 256 mots de 8 bits 8 fonctions de 8 entres

RAM simple port : synchrone, asynchrone

Logique squentielle (machine tats)

La mmoire sort sur un registre et est reboucle sur elle-mme

40

5. Cellules

Gestion d'horloge : PLL


Principe : systme asservi en phase

DLL

Compensation le skew d'horloge multiplication de la frquence si diviseur dans la boucle de raction

41

5. Cellules

Cellule E/S

Architecture gnrale
OE

OUT

DFF

BROCHE

IN

DFF
Entre simple Sortie simple Bidirectionnelle Entre avec DFF Sortie avec DFF Inutilise pour faciliter le routage (structure PAL) avec logique JTAG
42

La broche peut tre :

Plan
Histoire : Les rseaux logiques programmables Positionnement et intrts des CLPs/ASICs Architectures des CLPs Programmation/Configuration Cellules logiques Spcificit du dveloppement des CLPs Critres de slection

43

6. dveloppement

CAO pour conception de CLP


Trs similaires celle des circuits VLSI
Spcification

VERIFICATION

SAISIE

SYNTHESE

PLACEMENT ROUTAGE

PROGRAMMATION CONFIGURATION

Technologie CLP
PC et/ou station de travail

44

6. dveloppement

Placement routage
Chaque vendeur de CLP fournit son outil de P/R ddi
"Netlist" aprs synthse

partitionnement circuits multiples

Vers programmeur

floorplanning

placement

routage

Bloc

Cellule

quipotentielle

45

Plan
Histoire : Les rseaux logiques programmables Positionnement et intrts des CLPs/ASICs Architectures des CLPs Programmation/Configuration Cellules logiques Spcificit du dveloppement des CLPs Critres de slection

46

Critres de slection

Nombre important de portes quivalentes (>> 10000) Facilit pour raliser des oprations arithmtiques Nbre important de registres (>>1000) Mmoire embarque Nombre important d'E/S Port JTAG Possibilits d'interfaage (tension + standards)

47