46
Cours N˚3 Technologies de logique programmable

Cours 3

Embed Size (px)

DESCRIPTION

cours VHDL

Citation preview

Page 1: Cours 3

Cours N˚3Technologies de logique programmable

Page 2: Cours 3

Plan pour aujourd’hui

• Introduction: options d’implémentation de systèmes numériques• Circuits SSI, MSI et LSI• Mémoires mortes: PROM, EPROM, EEPROM• PLA, PAL, GAL• CPLD• FPGA• Technologies de programmation

2

Page 3: Cours 3

Implémentation de systèmes numériques

• Quatre considérations :– précision des calculs (P)– puissance consommée (P)– taille (T)– taux de traitement (T)

• Partitionnement matériel et logiciel– Une solution toute logicielle utilise un microprocesseur qui exécute un programme

habituellement codé dans un langage de haut niveau.– Une solution toute matérielle comporte un processeur sur mesure bâti avec des

portes logiques et des bascules.– La plupart des systèmes numériques se situent entre ces deux extrêmes. Les

systèmes embarqués comportent en général un processeur sur lequel s’exécute dulogiciel et quelques processeurs ou coprocesseurs dédiés à des tâches particulières.

3

Page 4: Cours 3

Options pour les solutions matérielles:Technologies de circuits intégrés

• ASIC : Application Specific Integrated Circuit: circuit intégré à applicationspécifique

• Deux grandes classes d’ASIC : la logique fixe et la logique programmable.• Logique fixe:

– système ne peut être modifié– coûts faramineux de développement– coût unitaire très faible– la meilleure performance

• Logique programmable:– système peut être modifié, même par l’utilisateur– coûts de développement raisonnables– coût unitaire relativement élevé– performance adéquate pour une très grande variété d’applications

4

Page 5: Cours 3

Options pour les solutions matérielles:Technologies de circuits intégrés

5

Technologies de circuits intégrés à application spécifique (ASIC)

Logique fixe Logique programmable

ASIC sur mesureFull-custom ASIC

ASIC à cellules normaliséesCell-based ASIC

réseau pré-diffusé de portesGate Array

mémoire morteProgrammable Read Only Memory – PROMElectrically Programmable ROM – EPROMErasable EPROM – EEPROM

réseau de logique programmableProgrammable Logic Array - PLA

circuit PALProgrammable Array Logic™ - PAL

circuit GALGeneric Array Logic™ - GAL

circuit logique programmable complexeComplex Programmable Logic Device – CPLD

réseau prédiffusé programmable par l’utilisateurField-Programmable Gate Array – FPGA

réseau d’objets programmable par l’utilisateurField-Programmable Object Array – FPOA

Page 6: Cours 3

Plan pour aujourd’hui

• Introduction: options d’implémentation de systèmes numériques• Circuits SSI, MSI et LSI• Mémoires mortes: PROM, EPROM, EEPROM• PLA, PAL, GAL• CPLD• FPGA• Technologies de programmation

6

Page 7: Cours 3

Les débuts: circuits SSI, MSI et LSI

• Les premiers circuits numériques intégrés sont apparus sur le marché dans lesannées 1960.

• On les classifiait alors selon le nombre de transistors qu’ils intégraient. Les troisacronymes de base, SSI, MSI et LSI, référaient respectivement à Small, Mediumet Large Scale Integration.– Un circuit SSI contenait de l’ordre de 102 transistors – portes logiques de base– Un circuit MSI contenait de l’ordre de 103 - multiplexeurs, décodeurs, etc.– Un circuit LSI contenait de l’ordre de 104 transistors – mémoires, processeurs, p. ex.

Intel 4004.– Pour les complexités grandissantes, l’acronyme VLSI (Very Large …) s’est généralisé

pour tous les autres circuits.

7

Page 8: Cours 3

Circuits SSI, MSI et LSI: série 7400

• Une famille de circuits SSI/MSI très populaire jusqu’au début des années 1990était la série 7400.

• Normalisés dans l’industrie, ils étaient manufacturés par plusieurs fournisseurs.• Les deux derniers chiffres reflétaient la fonction logique réalisée et la position

des signaux sur les pattes de la puce.• Ne sont plus vraiment utilisés de nos jours.

8

numéro fonction

7400 4 × NON-ET7402 4 × NON-OU7404 8 × NON7411 3 × ET (3 entrées)7473 2 × bascule JK avec reset

Source: Wikipédia

Page 9: Cours 3

Un système numérique avec des composantes discrètesprototype de Macintosh, ca 1980

9

Page 10: Cours 3

Plan pour aujourd’hui

• Introduction: options d’implémentation de systèmes numériques• Circuits SSI, MSI et LSI• Mémoires mortes: PROM, EPROM, EEPROM• PLA, PAL, GAL• CPLD• FPGA• Technologies de programmation

10

Page 11: Cours 3

Mémoires mortes programmables :PROM, EPROM, EEPROM

• Les premiers circuits programmables par l’utilisateur étaient des mémoiresmortes programmables (Programmable Read Only Memory – PROM).

• Une PROM ne se programmait qu’une seule fois.• Une mémoire ROM consiste en :

– un décodeur avec n signaux d’entrée;– un réseau OU programmé (ou programmable une fois) avec 2n mots de m bits

chacun ;– m signaux de sortie.

• Le réseau programmé comporte 2n lignes de m colonnes chacune. Àl’intersection de chaque ligne avec une colonne on trouve un élémentélectronique à mémoire.

• Une fois programmée, la ROM de 2n mots de m bits peut générer m fonctionsde n variables simultanément.

11

Page 12: Cours 3

Mémoires mortes programmables :PROM, EPROM, EEPROM

• On distingue trois sortes de mémoire ROM, différenciées par leurs technologiesde programmation.– PROM : Programmable Read Only Memory, programmable une seule fois;– EPROM : Erasable Programmable Read Only Memory, programmable à plusieurs

reprises, et effaçable à l’aide de rayons ultraviolets (facile à reconnaître à sa petitefenêtre); et

– EEPROM : Electrically Erasable Programmable Read Only Memory, programmable àplusieurs reprises, et effaçable à l’aide d’impulsions électriques.

• Exemple: microcontrôleur NEC D8749 avec EPROM intégré de 2 Ko

12Source: Wikipédia

Page 13: Cours 3

Exemple: ROM à 16 mots de 8 bits

• Rappel: un décodeur a une seule sortie active à la fois, qui indique la valeur ducode binaire en entrée.

• Les lignes verticales comportent en fait 16 fils, un pour chaque ligne dudécodeur.

• Chaque intersection est programmable.

13

décodeur 4:16

m7m6m5m4m3m2m1m0

A2

A1

A0

A3

m15m14m13m12m11m10m9m8

D7 D6 D5 D4 D3 D2 D1 D0

Page 14: Cours 3

Exemple de programmation d’une ROM

14

BACmF

BCBAmF

ACBmF

ACBAmF

+==

+==

+==

+==

åååå

)7,6,5,3,2(

''')6,2,1,0(

')7,6,4,3,2(

''')6,4,1,0(

3

2

1

0

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

Les dispositifs de programmation sontunidirectionnels pour empêcher toute lignehorizontale d’en mener une autre.On utilise une diode ou un transistor.

Page 15: Cours 3

Plan pour aujourd’hui

• Introduction: options d’implémentation de systèmes numériques• Circuits SSI, MSI et LSI• Mémoires mortes: PROM, EPROM, EEPROM• PLA, PAL, GAL• CPLD• FPGA• Technologies de programmation

15

Page 16: Cours 3

Réseaux logiques programmables : PLA, PAL et GAL

• L’implémentation de circuits logiques avec des circuits SSI, MSI et LSI nécessitaitbeaucoup de travail pour choisir, disposer et relier les composantes discrètes.

• Certaines fonctions logiques complexes étaient remplacées par des PROM, maisune mémoire est en général trop grande et pas assez flexible pour bien convenirà la tâche.

• Les PLA, PAL avaient pour but de réaliser des circuits logiques relativementcomplexe en un seul boîtier, et à permettre au concepteur de reprogrammer lecircuit plusieurs fois.

• Les GAL sont la version améliorée des PLA/PAL.

16

Page 17: Cours 3

Réseaux logiques programmables : PLA

• Un PLA (Programmable Logic Array) est similaire à une ROM, mais il ne réalisepas tous les produits de termes comme une ROM.

• Un PLA à n entrées et m sorties peut réaliser m fonctions de n variables, enautant que chacune requiert un nombre limité de produits des variables enentrée. (En pratique, c’est presque toujours le cas).

• Un PLA est composé de deux réseaux programmables, ET et OU. Le réseau ETprogrammable est effectivement un décodeur programmable incomplet.

17F0

A0A1A2

F1F2

A3

Chaque intersection d’une ligne horizontale etd’une ligne verticale est programmable.

Seuls 6 termes (produits – ET logique) peuventêtre réalisés à partir des quatre entrées et deleurs compléments.

Seules trois fonctions de sortie peuvent êtreréalisées.

Chaque fonction peut utiliser n’importe lequel dessix termes programmés

Page 18: Cours 3

Réseaux logiques programmables : PLA

18

BACmF

BCBAmF

ACBmF

ACBAmF

+==

+==

+==

+==

åååå

)7,6,5,3,2(

''')6,2,1,0(

')7,6,4,3,2(

''')6,4,1,0(

3

2

1

0Les lignes horizontales ont une valeur de ‘1’ par défaut.Les lignes verticales de sortie ont une valeur de ‘0’ par défaut.

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

Page 19: Cours 3

Réseaux logiques programmables : circuits PAL et GAL

• Un PAL (Programmable Array Logic) est un cas particulier de PLA.• Dans un PAL, seulement le réseau ET est programmable, alors que le réseau OU

est fixe.• Aucun produit de termes ne peut être partagé par plus d’une fonction. Chaque

fonction peut donc être optimisée séparément.• Un GAL (Generic Array Logic), de la compagnie Lattice Semiconductors, est un

dispositif programmable et configurable pouvant émuler différents types dePAL.

• Les pattes de sorties peuvent inclure un registre et un signal de rétroaction versle réseau programmable OU, et peuvent être configurées comme des portsd’entrée ou d’entrée et sortie.

• Les PALs et les GALs incluent en général des éléments à mémoire aux ports desortie.

• Les circuits GAL remplacent aujourd’hui effectivement les composantes SSI-LSI.

19

Page 20: Cours 3

PAL 16L8

20

Chaq

ue in

ters

ectio

n d’

une

ligne

hor

izont

ale

et d

’une

lign

e ve

rtic

ale

est p

rogr

amm

able

!

Page 21: Cours 3

GAL22LV10 : vue d’ensemble

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

Chaq

ue in

ters

ectio

n d’

une

ligne

hor

izont

ale

et d

’une

lign

e ve

rtic

ale

est p

rogr

amm

able

!

Page 22: Cours 3

GAL22LV10 : Output Logic Macro Cell

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

Les signaux de contrôle des deux multiplexeurs ne sont pas montrés.Ils sont programables.

Page 23: Cours 3

Résumé: ROM, PLA, PAL, GAL

23

type de dispositif réseau ET réseau OU

ROM fixe(tous les mintermes sont générés par un décodeur) programmable

PLA programmable(un nombre limité de mintermes peuvent être générés) programmable

PAL programmable(un nombre limité de mintermes peuvent être générés)

fixe(un nombre limité de mintermes peuvent être combinés)

GAL comme PAL comme PAL

Page 24: Cours 3

Plan pour aujourd’hui

• Introduction: options d’implémentation de systèmes numériques• Circuits SSI, MSI et LSI• Mémoires mortes: PROM, EPROM, EEPROM• PLA, PAL, GAL• CPLD• FPGA• Technologies de programmation

24

Page 25: Cours 3

Circuits logiques programmables complexes (CPLD)

• Les ROMs, PLAs, PALs et GALs sont parfois appelés des circuits logiqueprogrammable 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 réseau

d’interconnexions.• Le réseau permet de relier les pattes de la puce à différents blocs internes et de

relier les blocs entre eux. Il est donc possible de composer des fonctionslogiques très complexes incluant des machines à états et de petites mémoires.

• Les CPLD offrent une alternative intéressante aux FPGAs dans certains cas:– faible consommation de puissance– boîtiers de taille très réduite (e.g. 25 mm2 vs 500 mm2 pour un petit FPGA)– mémoire non volatile pour la programmation

25

Page 26: Cours 3

Exemple de CPLD de Xilinx

• Le circuit comprend quatre PALs à 36 entrées et 16 sorties.• Les sorties proviennent de macro-cellules contenant un élément programmable

à mémoire.• Le réseau d’interconnexions permet d’établir des connexions entre les blocs

d’entrées-sorties, les blocs fonctionnels et les macro-cellules.

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

Chaque ‘function block’ est un PAL.

Page 27: Cours 3

Exemple de CPLD de Xilinx: vue détaillée

• 36 entrées en versions naturelle et complémentée• 48 portes ET à connexions programmables• 16 portes OU à connexions programmables• La macro-cellule permet d’activer ou non la bascule avec un signal naturel ou

complémenté.• La cellule de sortie contient un tampon à trois états.

27

Sour

ce: R

oth,

5e

éd.,

©Br

ooks

/Col

e 20

04

Page 28: Cours 3

Plan pour aujourd’hui

• Introduction: options d’implémentation de systèmes numériques• Circuits SSI, MSI et LSI• Mémoires mortes: PROM, EPROM, EEPROM• PLA, PAL, GAL• CPLD• FPGA• Technologies de programmation

28

Page 29: Cours 3

Réseaux pré-diffusés programmables (par l’utilisateur):Field-Programmable Gate Arrays (FPGA)

• Un FPGA est composé à la base de :– un réseau de blocs de logique programmable (Configurable Logic Block - CLB);– un réseau d’interconnexions programmables entre les blocs; et,– des blocs d’entrée et de sortie avec le monde extérieur (Input/Output Block – IOB).

29

CLB CLB CLB CLB CLB

CLB CLB CLB CLB CLB

CLB CLB CLB CLB CLB

IOB IOB IOB IOB IOB IOB

IOB IOB IOB IOB IOB IOB

Ici:12 IOBs, 3 × 5 CLBs

XC2VP30FF896:556 IOBs, 80 × 46 CLBs

Page 30: Cours 3

La planchette XUP Virtex-II Pro

30

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

Page 31: Cours 3

Blocs de mémoire intégrée

• De plus en plus de transistors … les manufacturiers ajoutent de la mémoire.• Avantage: mémoire accessible directement à l’intérieur de la puce.• Colonnes de blocs de mémoire intégrées à travers les CLBs.

31

Columns of embeddedRAM blocks

Arrays ofprogrammable

logic blocks

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

Source: Maxfield, © Mentor Graphics, 2004

Page 32: Cours 3

Fonctions arithmétiques avancées

• Les FPGAs ont prouvé leur utilité dans les applications de traitement de signal.• La multiplication est une opération fondamentale dans ces applications.• Les manufacturiers de FPGAs ont donc rajouté des multiplicateurs dédiés.

32

XC2VP30:136 multiplicateurs de 18 b × 18 b signés

Source: Maxfield, © Mentor Graphics, 2004

RAM blocks

Multipliers

Logic blocks

Page 33: Cours 3

Microprocesseurs fixes

• Plusieurs FPGAs intègrent des microprocesseurs fixes, ex. PowerPC.• N’utilisent pas de CLB ou de mémoire du FPGA• Architecture résultante très performante, SoC-sur-FPGA.• Accès rapide entre le microprocesseur fixe et le reste de la logique, les

multiplicateurs et la mémoire.

33

Le X

C2VP

30 a

deu

x PP

C405

.

Xilin

x, V

irtex

-II P

ro a

nd V

irtex

-II P

ro X

Pla

tform

FPG

As: C

ompl

ete

Dat

a Sh

eet,

Nov

. 200

7.

Page 34: Cours 3

Génération d’horloge

• La génération et la distribution du signal d’horloge est un problème difficile.• Un circuit peut nécessiter une dizaine d’horloges de fréquences différentes.• Le générateur accepte en entrée une horloge externe et génère une ou

plusieurs horloges internes.

34Source: Maxfield, © Mentor Graphics, 2004

Clock signal fromoutside world

Special clockpin and pad

Daughter clocksused to drive

internal clock treesor output pins

ClockManager

etc.

Page 35: Cours 3

Distribution d’horloge

• Pour distribuer l’horloge à travers la puce tout en minimisant le déphasaged’horloge, on utilise un réseau en arbre dédié.

• Ce réseau est alimenté soit par une patte spéciale du FPGA à laquelle estassocié un amplificateur dédié, ou bien par l’entremise de signaux internespouvant être routés au même amplificateur.

35Source: Maxfield, © Mentor Graphics, 2004

Clock signal fromoutside world

Clocktree Flip-flops

Special clockpin and pad

Page 36: Cours 3

XC2VP30: Réseau hiérarchique d’interconnexions

• 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

36

Xilin

x, V

irtex

-II P

ro a

nd V

irtex

-II P

ro X

Pla

tform

FPG

As: C

ompl

ete

Dat

a Sh

eet,

Nov

. 200

7.

Page 37: Cours 3

Plan pour aujourd’hui

• Introduction: options d’implémentation de systèmes numériques• Circuits SSI, MSI et LSI• Mémoires mortes: PROM, EPROM, EEPROM• PLA, PAL, GAL• CPLD• FPGA• Technologies de programmation

37

Page 38: Cours 3

Technologies de programmation

• Fusibles• Anti-fusibles• Connexions par transistors• EPROM et grilles flottantes• Cellules EEPROM et mémoire Flash• Mémoire SRAM

38

Page 39: Cours 3

Fusibles

• Un métal conducteur fond sous l’action de la chaleur engendrée par un courantélevé qui le traverse.

• Programmable une seule fois.• N’est plus utilisée.

39Source: Maxfield, © Mentor Graphics, 2004

aFat

Logic 1

y = 0 (N/A)&

Faf

bFbt

Fbf

Pull-up resistors

NOT

NOT

AND

Fuses

Page 40: Cours 3

Anti-fusibles (1)

• Une tension élevée engendre un court circuit qui forme un conducteurpermanent quand la tension est enlevée.

• Programmable une seule fois.• Immunité aux rayonnement ionisant.• Bonne protection de la propriété intellectuelle.

40Source: Maxfield, © Mentor Graphics, 2004

a

Logic 1

y = 1 (N/A)&b

Pull-up resistors

Unprogrammedantifuses

NOT

NOT

AND

Page 41: Cours 3

Anti-fusibles (2)

• Un anti-fusible est fabriqué en plaçant du silicium amorphe entre deuxconducteurs métalliques.

• Le silicium amorphe peut être considéré comme un isolant.• En lui appliquant une tension élevée, on transforme le silicium amorphe en

silicium polycristallin conducteur.• Le circuit électrique ainsi formé entre les deux conducteurs métalliques

s’appelle un via..

41Source: Maxfield, © Mentor Graphics, 2004

(a) Before programming

Substrate

Metal

Oxide

Metal

Amorphous silicon column

(b) After programming

Polysilicon via

Page 42: Cours 3

Connexions par transistors

• Un fusible n’est pas en général suffisant pour établir un lien de programmation.• Le lien doit souvent être unidirectionnel: on utilise donc un transistor.

42Source: Maxfield, © Mentor Graphics, 2004

Logic 1

Pull-up resistor

Row(word) line

Column(data) line

Fusible link

Transistor

Logic 0

Page 43: Cours 3

EPROM et grilles flottantes

• Les mémoires EPROM utilisent des transistors spéciaux avec une grille flottante.• En conditions normales, les deux transistors fonctionnent de façon identique et

peuvent conduire le courant selon l’action de la grille de contrôle.• On désactive le transistor à grille flottante en plaçant une tension élevée entre

sa grille et l’un de ses terminaux. Cette tension induit un courant qui chargelagrille flottante. Une fois celle-ci chargée, il n’est plus possible de créer un canalsous la grille et les deux terminaux sont effectivement isolés électriquement.

• Pour effacer le dispositif, on l’expose à un rayonnement ultra-violet qui dissipela charge accumulée sur les grilles flottantes et réactive les transistors.

43Source: Maxfield, © Mentor Graphics, 2004

control gate

source drain

control gate

floating gate

source drain

(a) Standard MOS transistor (b) EPROM transistor

Siliconsubstrate

Silicondioxide

Sourceterminal

Control gateterminal

Drainterminal

Sourceterminal

Control gateterminal

Drainterminal

Page 44: Cours 3

EEPROM et mémoires Flash

• Les mémoires EEPROM sont similaires aux mémoires EPROM, mais peuvent êtreeffacées électriquement, sans rayons ultraviolets.

• L’isolant autour de la grille flottante est plus mince que dans le cas d’une celluleEPROM, et la grille flottante chevauche partiellement le drain du transistor.

• Pour ‘programmer’ la cellule, on place une tension élevée sur la grille decontrôle et le drain du transistor. Comme un courant élevé circule dans le canal,des électrons sont attirés par la grille de contrôle et vont s’emmagasiner sur lagrille flottante, désactivant le transistor.

44Source: wikipédia

Page 45: Cours 3

Mémoire SRAM

• Une cellule de mémoire SRAM comporte 4 ou 6 transistors.• La technologie SRAM est de loin la plus populaire pour les FPGAs.• L’information est perdue quand l’alimentation est coupée. Le fichier de

configuration doit être entreposé dans une mémoire ROM sur la planchette.• La technologie SRAM est affectée par les radiations, donc elle n’est pas

appropriée pour les applications spatiales.• Le fichier des bits de configuration doit être entreposé dans une mémoire ROM

sur la planchette.

45

Page 46: Cours 3

Technologies de programmation: résumé

46

caractéristique SRAM anti-fusibles Flash

fabrication à l’avant-garde 1 à 2 générations de retard

reprogrammable oui non oui

temps de reprogrammation 1 × T - 3 × T

volatile oui – besoin d’unfichier externe non non

prototypage excellent non acceptable

sécurité possible excellente

dimension de la cellule grande :4 ou 6 transistors très petite

consommation de puissance moyenne faible moyenne

résistance aux radiations non oui non