Вы находитесь на странице: 1из 46

Cours N3

Technologies de logique programmable

Plan pour aujourdhui

Introduction: options dimplmentation de systmes numriques


Circuits SSI, MSI et LSI
Mmoires mortes: PROM, EPROM, EEPROM
PLA, PAL, GAL
CPLD
FPGA
Technologies de programmation

Implmentation de systmes numriques

Quatre considrations :

prcision des calculs (P)


puissance consomme (P)
taille (T)
taux de traitement (T)

Partitionnement matriel et logiciel


Une solution toute logicielle utilise un microprocesseur qui excute un programme
habituellement cod dans un langage de haut niveau.
Une solution toute matrielle comporte un processeur sur mesure bti avec des
portes logiques et des bascules.
La plupart des systmes numriques se situent entre ces deux extrmes. Les
systmes embarqus comportent en gnral un processeur sur lequel sexcute du
logiciel et quelques processeurs ou coprocesseurs ddis des tches particulires.

Options pour les solutions matrielles:


Technologies de circuits intgrs

ASIC : Application Specific Integrated Circuit: circuit intgr application


spcifique
Deux grandes classes dASIC : la logique fixe et la logique programmable.
Logique fixe:

systme ne peut tre modifi


cots faramineux de dveloppement
cot unitaire trs faible
la meilleure performance

Logique programmable:

systme peut tre modifi, mme par lutilisateur


cots de dveloppement raisonnables
cot unitaire relativement lev
performance adquate pour une trs grande varit dapplications

Options pour les solutions matrielles:


Technologies de circuits intgrs
Technologies de circuits intgrs application spcifique (ASIC)
Logique fixe

Logique programmable
mmoire morte
Programmable Read Only Memory PROM
Electrically Programmable ROM EPROM
Erasable EPROM EEPROM

ASIC sur mesure


Full-custom ASIC
ASIC cellules normalises
Cell-based ASIC
rseau pr-diffus de portes
Gate Array

rseau de logique programmable


Programmable Logic Array - PLA
circuit PAL
Programmable Array Logic - PAL
circuit GAL
Generic Array Logic - GAL
circuit logique programmable complexe
Complex Programmable Logic Device CPLD
rseau prdiffus programmable par lutilisateur
Field-Programmable Gate Array FPGA
rseau dobjets programmable par lutilisateur
Field-Programmable Object Array FPOA

Plan pour aujourdhui

Introduction: options dimplmentation de systmes numriques


Circuits SSI, MSI et LSI
Mmoires mortes: PROM, EPROM, EEPROM
PLA, PAL, GAL
CPLD
FPGA
Technologies de programmation

Les dbuts: circuits SSI, MSI et LSI

Les premiers circuits numriques intgrs sont apparus sur le march dans les
annes 1960.
On les classifiait alors selon le nombre de transistors quils intgraient. Les trois
acronymes de base, SSI, MSI et LSI, rfraient respectivement Small, Medium
et Large Scale Integration.
Un circuit SSI contenait de lordre de 102 transistors portes logiques de base
Un circuit MSI contenait de lordre de 103 - multiplexeurs, dcodeurs, etc.
Un circuit LSI contenait de lordre de 104 transistors mmoires, processeurs, p. ex.
Intel 4004.
Pour les complexits grandissantes, lacronyme VLSI (Very Large ) sest gnralis
pour tous les autres circuits.

Circuits SSI, MSI et LSI: srie 7400

Une famille de circuits SSI/MSI trs populaire jusquau dbut des annes 1990
tait la srie 7400.
Normaliss dans lindustrie, ils taient manufacturs par plusieurs fournisseurs.
Les deux derniers chiffres refltaient la fonction logique ralise et la position
des signaux sur les pattes de la puce.
Ne sont plus vraiment utiliss de nos jours.

numro
7400
7402
7404
7411
7473

fonction
4 NON-ET
4 NON-OU
8 NON
3 ET (3 entres)
2 bascule JK avec reset

Source: Wikipdia

Un systme numrique avec des composantes discrtes


prototype de Macintosh, ca 1980

Plan pour aujourdhui

Introduction: options dimplmentation de systmes numriques


Circuits SSI, MSI et LSI
Mmoires mortes: PROM, EPROM, EEPROM
PLA, PAL, GAL
CPLD
FPGA
Technologies de programmation

10

Mmoires mortes programmables :


PROM, EPROM, EEPROM

Les premiers circuits programmables par lutilisateur taient des mmoires


mortes programmables (Programmable Read Only Memory PROM).
Une PROM ne se programmait quune seule fois.
Une mmoire ROM consiste en :
un dcodeur avec n signaux dentre;
un rseau OU programm (ou programmable une fois) avec 2n mots de m bits
chacun ;
m signaux de sortie.

Le rseau programm comporte 2n lignes de m colonnes chacune.


lintersection de chaque ligne avec une colonne on trouve un lment
lectronique mmoire.
Une fois programme, la ROM de 2n mots de m bits peut gnrer m fonctions
de n variables simultanment.

11

Mmoires mortes programmables :


PROM, EPROM, EEPROM

On distingue trois sortes de mmoire ROM, diffrencies par leurs technologies


de programmation.
PROM : Programmable Read Only Memory, programmable une seule fois;
EPROM : Erasable Programmable Read Only Memory, programmable plusieurs
reprises, et effaable laide de rayons ultraviolets (facile reconnatre sa petite
fentre); et
EEPROM : Electrically Erasable Programmable Read Only Memory, programmable
plusieurs reprises, et effaable laide dimpulsions lectriques.

Exemple: microcontrleur NEC D8749 avec EPROM intgr de 2 Ko

Source: Wikipdia

12

Exemple: ROM 16 mots de 8 bits

Rappel: un dcodeur a une seule sortie active la fois, qui indique la valeur du
code binaire en entre.
Les lignes verticales comportent en fait 16 fils, un pour chaque ligne du
dcodeur.
Chaque intersection est programmable.
dcodeur 4:16

A3
A2
A1
A0

m15
m14
m13
m12
m11
m10
m9
m8
m7
m6
m5
m4
m3
m2
m1
m0

D7

D6

D5

D4

D3

D2

D1

D0

13

Exemple de programmation dune ROM

F0 = m(0,1,4,6) = A' B'+ AC '

F1 = m(2,3,4,6,7) = B + AC '

F2 = m(0,1,2,6) = A' B'+ BC '

F3 = m(2,3,5,6,7) = AC + B

Les dispositifs de programmation sont


unidirectionnels pour empcher toute ligne
horizontale den mener une autre.
On utilise une diode ou un transistor.
Source: Roth, 5e d., Brooks/Cole 2004

14

Plan pour aujourdhui

Introduction: options dimplmentation de systmes numriques


Circuits SSI, MSI et LSI
Mmoires mortes: PROM, EPROM, EEPROM
PLA, PAL, GAL
CPLD
FPGA
Technologies de programmation

15

Rseaux logiques programmables : PLA, PAL et GAL

Limplmentation de circuits logiques avec des circuits SSI, MSI et LSI ncessitait
beaucoup de travail pour choisir, disposer et relier les composantes discrtes.
Certaines fonctions logiques complexes taient remplaces par des PROM, mais
une mmoire est en gnral trop grande et pas assez flexible pour bien convenir
la tche.
Les PLA, PAL avaient pour but de raliser des circuits logiques relativement
complexe en un seul botier, et permettre au concepteur de reprogrammer le
circuit plusieurs fois.
Les GAL sont la version amliore des PLA/PAL.

16

Rseaux logiques programmables : PLA

Un PLA (Programmable Logic Array) est similaire une ROM, mais il ne ralise
pas tous les produits de termes comme une ROM.
Un PLA n entres et m sorties peut raliser m fonctions de n variables, en
autant que chacune requiert un nombre limit de produits des variables en
entre. (En pratique, cest presque toujours le cas).
Un PLA est compos de deux rseaux programmables, ET et OU. Le rseau ET
programmable est effectivement un dcodeur programmable incomplet.
Chaque intersection dune ligne horizontale et
dune ligne verticale est programmable.

A3

A2

A1

A0

Seuls 6 termes (produits ET logique) peuvent


tre raliss partir des quatre entres et de
leurs complments.
Seules trois fonctions de sortie peuvent tre
ralises.
Chaque fonction peut utiliser nimporte lequel des
six termes programms
F2

F1

F0

17

Rseaux logiques programmables : PLA

Les lignes horizontales ont une valeur de 1 par dfaut.


Les lignes verticales de sortie ont une valeur de 0 par dfaut.

F0 = m(0,1,4,6) = A' B'+ AC '

F1 = m(2,3,4,6,7) = B + AC '

F2 = m(0,1,2,6) = A' B'+ BC '

F3 = m(2,3,5,6,7) = AC + B

Source: Roth, 5e d., Brooks/Cole 2004

18

Rseaux logiques programmables : circuits PAL et GAL

Un PAL (Programmable Array Logic) est un cas particulier de PLA.


Dans un PAL, seulement le rseau ET est programmable, alors que le rseau OU
est fixe.
Aucun produit de termes ne peut tre partag par plus dune fonction. Chaque
fonction peut donc tre optimise sparment.
Un GAL (Generic Array Logic), de la compagnie Lattice Semiconductors, est un
dispositif programmable et configurable pouvant muler diffrents types de
PAL.
Les pattes de sorties peuvent inclure un registre et un signal de rtroaction vers
le rseau programmable OU, et peuvent tre configures comme des ports
dentre ou dentre et sortie.
Les PALs et les GALs incluent en gnral des lments mmoire aux ports de
sortie.
Les circuits GAL remplacent aujourdhui effectivement les composantes SSI-LSI.

19

Chaque intersection dune ligne horizontale et dune ligne verticale


est programmable!

PAL 16L8

20

Chaque intersection dune ligne horizontale et dune ligne verticale


est programmable!

GAL22LV10 : vue densemble

21

Source: GAL22LV10 Data sheet, Lattice Semiconductor, Aug. 2008.

GAL22LV10 : Output Logic Macro Cell

Les signaux de contrle des deux multiplexeurs ne sont pas montrs.


Ils sont programables.

22

Source: GAL22LV10 Data sheet, Lattice Semiconductor, Aug. 2008.

Rsum: ROM, PLA, PAL, GAL

type de dispositif
ROM
PLA
PAL
GAL

rseau ET
fixe
(tous les mintermes sont gnrs par un dcodeur)
programmable
(un nombre limit de mintermes peuvent tre gnrs)
programmable
(un nombre limit de mintermes peuvent tre gnrs)
comme PAL

rseau OU
programmable
programmable
fixe
(un nombre limit de mintermes peuvent tre combins)
comme PAL

23

Plan pour aujourdhui

Introduction: options dimplmentation de systmes numriques


Circuits SSI, MSI et LSI
Mmoires mortes: PROM, EPROM, EEPROM
PLA, PAL, GAL
CPLD
FPGA
Technologies de programmation

24

Circuits logiques programmables complexes (CPLD)

Les ROMs, PLAs, PALs et GALs sont parfois appels des circuits logique
programmable simples (Simple Programmable Logic Devices SPLD).
Les CPLD sont une extension naturelle des circuits PAL.
Un CPLD incorpore plusieurs PALs ou PLAs sur une seule puce avec un rseau
dinterconnexions.
Le rseau permet de relier les pattes de la puce diffrents blocs internes et de
relier les blocs entre eux. Il est donc possible de composer des fonctions
logiques trs complexes incluant des machines tats et de petites mmoires.
Les CPLD offrent une alternative intressante aux FPGAs dans certains cas:
faible consommation de puissance
botiers de taille trs rduite (e.g. 25 mm2 vs 500 mm2 pour un petit FPGA)
mmoire non volatile pour la programmation

25

Exemple de CPLD de Xilinx

Le circuit comprend quatre PALs 36 entres et 16 sorties.


Les sorties proviennent de macro-cellules contenant un lment programmable
mmoire.
Le rseau dinterconnexions permet dtablir des connexions entre les blocs
dentres-sorties, les blocs fonctionnels et les macro-cellules.

Chaque function block est un PAL.


Source: Roth, 5e d., Brooks/Cole 2004

26

Exemple de CPLD de Xilinx: vue dtaille

36 entres en versions naturelle et complmente


48 portes ET connexions programmables
16 portes OU connexions programmables
La macro-cellule permet dactiver ou non la bascule avec un signal naturel ou
complment.
La cellule de sortie contient un tampon trois tats.

Source: Roth, 5e d., Brooks/Cole 2004

27

Plan pour aujourdhui

Introduction: options dimplmentation de systmes numriques


Circuits SSI, MSI et LSI
Mmoires mortes: PROM, EPROM, EEPROM
PLA, PAL, GAL
CPLD
FPGA
Technologies de programmation

28

Rseaux pr-diffuss programmables (par lutilisateur):


Field-Programmable Gate Arrays (FPGA)

Un FPGA est compos la base de :


un rseau de blocs de logique programmable (Configurable Logic Block - CLB);
un rseau dinterconnexions programmables entre les blocs; et,
des blocs dentre et de sortie avec le monde extrieur (Input/Output Block IOB).
IOB

IOB

IOB

IOB

IOB

IOB

Ici:
12 IOBs, 3 5 CLBs

IOB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

IOB

IOB

IOB

IOB

XC2VP30FF896:
556 IOBs, 80 46 CLBs

IOB

29

La planchette XUP Virtex-II Pro

Xilinx inc., Xilinx University Program Virtex-II Pro Development System Hardware Reference Manual, Mar. 2005.

30

Blocs de mmoire intgre

De plus en plus de transistors les manufacturiers ajoutent de la mmoire.


Avantage: mmoire accessible directement lintrieur de la puce.
Colonnes de blocs de mmoire intgres travers les CLBs.
Columns of embedded
RAM blocks
Arrays of
programmable
logic blocks

XC2VP30:
136 blocs de 18 Kb = 2448 Kb = 306 Ko

Source: Maxfield, Mentor Graphics, 2004

31

Fonctions arithmtiques avances

Les FPGAs ont prouv leur utilit dans les applications de traitement de signal.
La multiplication est une opration fondamentale dans ces applications.
Les manufacturiers de FPGAs ont donc rajout des multiplicateurs ddis.
RAM blocks
Multipliers
Logic blocks

XC2VP30:
136 multiplicateurs de 18 b 18 b signs
Source: Maxfield, Mentor Graphics, 2004

32

2VP3
0

a de

ux P
P

C405
.

Plusieurs FPGAs intgrent des microprocesseurs fixes, ex. PowerPC.


Nutilisent pas de CLB ou de mmoire du FPGA
Architecture rsultante trs performante, SoC-sur-FPGA.
Accs rapide entre le microprocesseur fixe et le reste de la logique, les
multiplicateurs et la mmoire.

Le X
C

Xilinx, Virtex-II Pro and Virtex-II Pro X Platform FPGAs: Complete Data Sheet, Nov. 2007.

Microprocesseurs fixes

33

Gnration dhorloge

La gnration et la distribution du signal dhorloge est un problme difficile.


Un circuit peut ncessiter une dizaine dhorloges de frquences diffrentes.
Le gnrateur accepte en entre une horloge externe et gnre une ou
plusieurs horloges internes.

Clock signal from


outside world

Clock
Manager
etc.

Daughter clocks
used to drive
internal clock trees
or output pins

Special clock
pin and pad

Source: Maxfield, Mentor Graphics, 2004

34

Distribution dhorloge

Pour distribuer lhorloge travers la puce tout en minimisant le dphasage


dhorloge, on utilise un rseau en arbre ddi.
Ce rseau est aliment soit par une patte spciale du FPGA laquelle est
associ un amplificateur ddi, ou bien par lentremise de signaux internes
pouvant tre routs au mme amplificateur.
Clock
tree

Flip-flops

Special clock
pin and pad
Clock signal from
outside world
Source: Maxfield, Mentor Graphics, 2004

35

XC2VP30: Rseau hirarchique dinterconnexions


Longues lignes: toute la puce
Lignes hex: chaque 3e ou6e bloc
Lignes double: chaque 2e ou 4e bloc

Lignes directes entre CLBs voisins


Lignes rapides: internes aux CLBs
Xilinx, Virtex-II Pro and Virtex-II Pro X Platform FPGAs: Complete Data Sheet, Nov. 2007.

36

Plan pour aujourdhui

Introduction: options dimplmentation de systmes numriques


Circuits SSI, MSI et LSI
Mmoires mortes: PROM, EPROM, EEPROM
PLA, PAL, GAL
CPLD
FPGA
Technologies de programmation

37

Technologies de programmation

Fusibles
Anti-fusibles
Connexions par transistors
EPROM et grilles flottantes
Cellules EEPROM et mmoire Flash
Mmoire SRAM

38

Fusibles

Un mtal conducteur fond sous laction de la chaleur engendre par un courant


lev qui le traverse.
Programmable une seule fois.
Nest plus utilise.
Fuses

Logic 1

Fat
a

Pull-up resistors
Faf
NOT

Fbt

&

y = 0 (N/A)

AND
Fbf
NOT
Source: Maxfield, Mentor Graphics, 2004

39

Anti-fusibles (1)

Une tension leve engendre un court circuit qui forme un conducteur


permanent quand la tension est enleve.
Programmable une seule fois.
Immunit aux rayonnement ionisant.
Bonne protection de la proprit intellectuelle.
Unprogrammed
antifuses
a

Logic 1

Pull-up resistors

NOT
b

&

y = 1 (N/A)

AND

NOT

Source: Maxfield, Mentor Graphics, 2004

40

Anti-fusibles (2)

Un anti-fusible est fabriqu en plaant du silicium amorphe entre deux


conducteurs mtalliques.
Le silicium amorphe peut tre considr comme un isolant.
En lui appliquant une tension leve, on transforme le silicium amorphe en
silicium polycristallin conducteur.
Le circuit lectrique ainsi form entre les deux conducteurs mtalliques
sappelle un via..
Amorphous silicon column

Polysilicon via
Metal
Oxide
Metal
Substrate

(a) Before programming

(b) After programming


Source: Maxfield, Mentor Graphics, 2004

41

Connexions par transistors

Un fusible nest pas en gnral suffisant pour tablir un lien de programmation.


Le lien doit souvent tre unidirectionnel: on utilise donc un transistor.

Logic 1
Fusible link

Pull-up resistor

Row
(word) line

Transistor
Logic 0

Column
(data) line

Source: Maxfield, Mentor Graphics, 2004

42

EPROM et grilles flottantes

Les mmoires EPROM utilisent des transistors spciaux avec une grille flottante.
En conditions normales, les deux transistors fonctionnent de faon identique et
peuvent conduire le courant selon laction de la grille de contrle.
On dsactive le transistor grille flottante en plaant une tension leve entre
sa grille et lun de ses terminaux. Cette tension induit un courant qui chargela
grille flottante. Une fois celle-ci charge, il nest plus possible de crer un canal
sous la grille et les deux terminaux sont effectivement isols lectriquement.
Pour effacer le dispositif, on lexpose un rayonnement ultra-violet qui dissipe
la charge accumule sur les grilles flottantes et ractive les transistors.
Source
terminal

Control gate
terminal

Drain
terminal

Source
terminal

Control gate
terminal

Drain
terminal

control gate

Silicon
dioxide

control gate
source

drain

(a) Standard MOS transistor

Silicon
substrate

floating gate
source

drain

(b) EPROM transistor


Source: Maxfield, Mentor Graphics, 2004

43

EEPROM et mmoires Flash

Les mmoires EEPROM sont similaires aux mmoires EPROM, mais peuvent tre
effaces lectriquement, sans rayons ultraviolets.
Lisolant autour de la grille flottante est plus mince que dans le cas dune cellule
EPROM, et la grille flottante chevauche partiellement le drain du transistor.
Pour programmer la cellule, on place une tension leve sur la grille de
contrle et le drain du transistor. Comme un courant lev circule dans le canal,
des lectrons sont attirs par la grille de contrle et vont semmagasiner sur la
grille flottante, dsactivant le transistor.

Source: wikipdia

44

Mmoire SRAM

Une cellule de mmoire SRAM comporte 4 ou 6 transistors.


La technologie SRAM est de loin la plus populaire pour les FPGAs.
Linformation est perdue quand lalimentation est coupe. Le fichier de
configuration doit tre entrepos dans une mmoire ROM sur la planchette.
La technologie SRAM est affecte par les radiations, donc elle nest pas
approprie pour les applications spatiales.
Le fichier des bits de configuration doit tre entrepos dans une mmoire ROM
sur la planchette.

45

Technologies de programmation: rsum

caractristique

SRAM

anti-fusibles

Flash

fabrication

lavant-garde

reprogrammable

oui

non

oui

temps de reprogrammation

1T

3T

volatile

oui besoin dun


fichier externe

non

non

prototypage

excellent

non

acceptable

scurit

possible

excellente

dimension de la cellule

grande :
4 ou 6 transistors

trs petite

consommation de puissance

moyenne

faible

moyenne

rsistance aux radiations

non

oui

non

1 2 gnrations de retard

46

Вам также может понравиться