cible matérielle asic-fpga-sopc

114
Cible matérielle ASIC-FPGA-SOPC Hanene Ben Fradj Master1

Upload: gavan

Post on 17-Jan-2016

101 views

Category:

Documents


4 download

DESCRIPTION

Cible matérielle ASIC-FPGA-SOPC. Hanene Ben Fradj Master1. Introduction. Cibles matérielles sont rendues possibles par les progrès réalisés en technologie d’intégration SSI : Small Scale Integration ( dizaine de transistors) MSI : Meduim Scale Integration ( centaine de transistors) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Cible matérielle ASIC-FPGA-SOPC

Cible matérielle ASIC-FPGA-SOPC

Hanene Ben Fradj

Master1

Page 2: Cible matérielle ASIC-FPGA-SOPC

2

IntroductionCibles matérielles sont rendues possibles par les progrès réalisés en

technologie d’intégration

SSI : Small Scale Integration (dizaine de transistors)

MSI : Meduim Scale Integration (centaine de transistors)

LSI : Large Scale Integration (Milliers de transistors) Besoin d’outils de conception + automatisation Outils CAD

VLSI : Very Large Scale Integration (Centaine de milliers de transistors) Outils CAD indispensables pour gérer la complexité de la conception

et de la fabrication du Circuit Intégré (CI).

Page 3: Cible matérielle ASIC-FPGA-SOPC

3

Plan

Technologie Niveau de modélisation Classification

Page 4: Cible matérielle ASIC-FPGA-SOPC

4

Les transistors: la technologie de base des CI

Les CI (ou chips) représentent la réalisation courante de tout système informatique

Un CI : un ensemble de transistors + connections

Source

nmosGrilleGate

Drain

pmos

Sur Nmos : Si Grille ==1, alors Drain et Source connectéesSur Pmos : Si Grillle ==0, alors Drain et Source connectées

Grille=1

Drain

Source

Nmos

Grille=0

Nmos

MOS: metal oxcyde semiconductorNMOS: nchannel mosPMOS: pchannel mos

Page 5: Cible matérielle ASIC-FPGA-SOPC

5

p

n

GNDMasse ‘0’

VDD ‘1’

AY = A'

A=1 A=0p

n

GNDMasse ‘0’

VDD ‘1’

0

p

n

GNDMasse ‘0’

VDD ‘1’

1

CMOS : complementary mos (circuit comportant des Pmos et des Nmos

Un inverseur (NOT) dans la technologie CMOS

Page 6: Cible matérielle ASIC-FPGA-SOPC

6

Exercice 1De quel type de porte s’agit-il ?

NOT

x y

0 0

0 1

1 0

1 1

z

1

1

1

0

NAND

z= NAND(x,y)

NOT

Page 7: Cible matérielle ASIC-FPGA-SOPC

7

Exercice 2

Comment réaliser une porte NOR en technologie CMOS

x y

0 0

0 1

1 0

1 1

z

1

0

0

0

NOR

z= NOR(x,y)

Page 8: Cible matérielle ASIC-FPGA-SOPC

8

Plan

Technologie Niveau de modélisation Classification

Page 9: Cible matérielle ASIC-FPGA-SOPC

9

Niveaux de modélisation des CI

Les transistors représentent un niveau de modélisation des CI, appelé aussi niveau électrique

D’autres modèles existent: + détaillés (- abstrait) Dessin de masque (niveau physique)

D’autres modèles existent: + abstrait (- détaillés)

Page 10: Cible matérielle ASIC-FPGA-SOPC

10

Niveau système (SystemC) Niveau algorithmique Niveau jeux d‘instruction Niveau comportemental (VHDL, SystemC) Niveau Transfert de Registre (VHDL RTL) Niveau porte logique Niveau Transistor (électrique) Niveau physique (masque )

+ abstrait (- détaillés)

- abstrait (+ détaillés)

Outils CAD

Niveaux de modélisation des CI

Page 11: Cible matérielle ASIC-FPGA-SOPC

11

Niveaux de modélisation des CI

Les propriétés d’un système peuvent être spécifiés selon trois domaine: Comportemental: Information fonctionnel du système

Que fait-il? Structurel: Information schématique.

Les différents sous-systèmes et comment sont-ils liés? Physique: Information géométrique.

Taille, forme et placement physique?

Pour chaque domaine il y a plusieurs niveaux d’abstraction.

Page 12: Cible matérielle ASIC-FPGA-SOPC

12

Description d’un système

Description structurelle : en explicitant de quoi ce système est fait. On décrit la structure

interne d'un bloc. Par exemple : un microprocesseur contient un ensemble de registres, une ALU, un UC, des caches, et le tout est connecté de telle et telle façon".

Les sous-blocs (registres, ALU) peuvent eux-aussi éventuellement être modélisés à partir de sous-blocs, etc, jusqu'à arriver à des blocs de base ulta-simples (bascules D).

Description comportementale: en décrivant son comportement  : on se moque de ce qu'il y a

dedans, seul ce qui compte c'est ce qu'il fait. Un bloc est donc une boîte noire, donc on décrit le fonctionnement à l'aide d'une ou plusieurs fonctions.

Page 13: Cible matérielle ASIC-FPGA-SOPC

13

En pratique, on commence par une description comportementale (car les spécification d'un système sont souvent données sous forme algorithmique).

Puis, à force de simulations et de mesures de performances, on essaye d'identifier des grands blocs. La description devient alors mixte : une partie structurelle donnant la liste des blocs et la façon dont ils sont reliés entre eux, alors que les blocs eux sont encore représentés sous forme comportementale.

On ré-applique ensuite ce procédé récursivement à chaque bloc (décomposition en sous-blocs, sous-sous-blocs), jusqu'à obtenir une description presque totalement structurelle à base de bascules D et fonctions logiques simples.

Des outils se chargent alors de traduire tout ça automatiquement en portes logiques.

Description d’un système

Page 14: Cible matérielle ASIC-FPGA-SOPC

14

Domaine comportementalDomaine structurel

Chaque cercle correspond à un niveau d’abstraction : Abstraction croissante de l’intérieur vers l’extérieur.

Système

AlgorithmeTransfert de registres

LogiqueFonction de transfert

Processeur, ASIC, ASIP, FPGA, etc.

UAL, registresPortes, bascules, etc.

Transistor

Rectangle

Plan des cellules

Plan des modules

Plan de masse

Partitions physiques

Diagramme en Y de Gajski

Modules matériel

1 Architecturale

2 Algorithmique

3 Bloc fonctionnel

4 logique

5 circuit

1

2

3

4

5

Domaine physique

Page 15: Cible matérielle ASIC-FPGA-SOPC

15

Conception des circuits VLSI

Circuit VLSI (centaines de milliers de transistors)

Automatisation du procédé de fabrication

Vérification basée sur la simulation (au lieu des cartes)

Utilisation de langages de description du matériel (HDL)

Page 16: Cible matérielle ASIC-FPGA-SOPC

16

Plan

Technologie Niveau de modélisation Classification

ASIC PLD (programmable logic Device)

Page 17: Cible matérielle ASIC-FPGA-SOPC

17

PLD

ASIC

Les composants (HARD)

ASIC

Circuits

sur mesure

Circuits

précaractérisés

Circuits

prédiffusés

Circuits

configurables

SEMI-CUSTOMCUSTOM

FPGA CPLD PALSea of gate

Gate array

Standard

cell

Full Custom

ASIC : Application Specific Integrated Circuit

FPGA : Field Programmable Gate Array

CPLD : Complex Programmable Logic Device

PAL : Programmable Array Logic

GAL : Generic Array Logic = PAL

SRAM : Static Random Acess Memory

AntifuseSRAM

Page 18: Cible matérielle ASIC-FPGA-SOPC

18

ASIC: Full Custom

ASIC

Circuits

sur mesure

Circuits

précaractérisés

Circuits

prédiffusés

Circuits

configurables

SEMI-CUSTOMCUSTOM

FPGA CPLD PALSea of gate

Gate array

Standard

cell

Full Custom

AntifuseSRAM

ASIC : Application Specific Integrated Circuit

Page 19: Cible matérielle ASIC-FPGA-SOPC

19

ASIC: Full Custom

Au final

Au départ

SPECIFICATIONS

+

Approche « full custom » Conception au niveau transistor Permet des circuits mixtes analogique/numérique Effort de conception très important Surface réduite, performance très importantes

Page 20: Cible matérielle ASIC-FPGA-SOPC

20

ASIC: Standard Cell

ASIC

Circuits

sur mesure

Circuits

précaractérisés

Circuits

prédiffusés

Circuits

configurables

SEMI-CUSTOMCUSTOM

FPGA CPLD PALSea of gate

Gate array

Standard

cell

Full Custom

AntifuseSRAM

ASIC : Application Specific Integrated Circuit

Page 21: Cible matérielle ASIC-FPGA-SOPC

21

ASIC: Standard Cell

Au final

Au départ

SPECIFICATIONS

+

BIBLIHOTEQUED’ELEMENTS

PRE-CARACTERISES

+

Approche « standard cell»Utilise des librairies de cellules primitives

Portes AND, OR, registres, SRAM, etc. Effort de conception réduit, performances souvent proches du full-custom

Page 22: Cible matérielle ASIC-FPGA-SOPC

22

ASIC : Circuits prédiffusés

ASIC

Circuits

sur mesure

Circuits

précaractérisés

Circuits

prédiffusés

Circuits

configurables

SEMI-CUSTOMCUSTOM

FPGA CPLD PALSea of gate

Gate array

Standart

cell

Full Custom

AntifuseSRAM

ASIC : Application Specific Integrated Circuit

Page 23: Cible matérielle ASIC-FPGA-SOPC

23

ASIC: circuits prédiffusés

Réseaux de transistors déjà implantés dans le silicium, mais noninterconnectés. C’est l ’interconnexion des transistors qui personnalise le circuit en fonction de l ’application visée.

Page 24: Cible matérielle ASIC-FPGA-SOPC

24

ASIC: Gate Array

Au départ

SPECIFICATIONS

+

Au final

• Bandes de cellules de hauteur fixe séparées par des canaux de routage• Il est possible aussi d’utiliser des bibliothèques de composants pré-caractérisés

Page 25: Cible matérielle ASIC-FPGA-SOPC

25

ASIC: Sea of Gates

circuit composé de blocs contigus de transistors les connexions passent entre les blocs ou par-dessus

Gate array Sea of gates

Page 26: Cible matérielle ASIC-FPGA-SOPC

26

ASIC: les circuits configurables

ASIC

Circuits

sur mesure

Circuits

précaractérisés

Circuits

prédiffusés

Circuits

configurables

SEMI-CUSTOMCUSTOM

FPGA CPLD PALSea of gate

Gate array

Standart

cell

Full Custom

AntifuseSRAM

Page 27: Cible matérielle ASIC-FPGA-SOPC

27

Plan

Technologie Niveau de modélisation Classification

ASIC PLD (programmable logic Device)

Définition et principe Technologie de programmation Classification

Page 28: Cible matérielle ASIC-FPGA-SOPC

28

Les circuits configurables: définition

Composants standard programmables électriquement:Une seule fois (fusibles, antifusibles)

ou Plusieurs fois: reprogrammables

Page 29: Cible matérielle ASIC-FPGA-SOPC

29

Ensemble de ressources logiques (portes, bascules,…etc) qui peuvent être interconnectées de différentes façons.

Réalisation de fonctions booléennes sous forme d’une somme de produits (PAL, PLA)

Un réseau de bloc logiques configurables (FPGA)

Les circuits configurables: principe des architectures

Page 30: Cible matérielle ASIC-FPGA-SOPC

30

Plan

Technologie Niveau de modélisation Classification

ASIC PLD (programmable logic Device)

Définition et principe Technologie de programmation Classification

Page 31: Cible matérielle ASIC-FPGA-SOPC

31

Les circuits configurables: technologie de programmation

fusible

Le choix se fait selon des critère:

1. La vitesse de programmation

2. La densité d’intégration

3. La facilité de mise en œuvre ( programmation sur site, reprogrammation)

Page 32: Cible matérielle ASIC-FPGA-SOPC

32

Les circuits configurables: technologie de programmation Programmation une seule fois (PAL)

Fusibles (métal) Antifusible (CAPACITE MOS),

Nombre de configurations limité(EEPROM) Transistor MOS à grille flottante

Configuration à chaque mise sous tension (FPGA) SRAM

Page 33: Cible matérielle ASIC-FPGA-SOPC

33

Technologie de programmation Fusible :

destruction d’un fusible par passage d’un courant supérieur à celui de l’alimentation.

Antifusible: en appliquant une tension importante (16V pendant 1ms) à une

zone isolante entre deux zones semi-conductrice fortement dopée, ce dernier diffuse dans cette zone et la rend conductrice.

Chaque cellule occupe 1,8μm2 (700μm2 pour un fusible) Hormis la non re-programibilité, c’est la meilleure technologie

(vitesse et surtout une très haute densité d’intégration)

Page 34: Cible matérielle ASIC-FPGA-SOPC

34

Technologie de programmation :

L’apparition du transistor MOS à grille flottante a permis de rendre le composant bloqué ou passant sans l’application permanente d’une tension de commande.

L’application d’un potentiel sur la grille supérieure provoque le passage d ’une partie des électrons du canal à travers la mince couche d’oxyde, ce qui charge la grille flottante. Lors de la lecture, une tension appliquée sur la grille supérieure est complètement masquée par la charge négative emmagasinée sur la grille flottante. Cela équivaut à un transistor toujours bloqué.

Pour passer d'un 0 (transistor bloqué) à un 1 (transistor passant), on applique une tension sur la source. Cela a pour effet d'attirer les électrons hors de la grille flottante.

Transistor MOS à grille flottante (EPROM)

Page 35: Cible matérielle ASIC-FPGA-SOPC

35

UV-EPROM : n’est pas utilisé dans les PLD EEPROM

Reprogrammation d’une façon sélective (par partie) Une cellule nécessite 6 transistors pour sa réalisation (75 à 100 um2 en CMOS

0,6um une surface importante réduit la densité d’intégrations Le nombre de programmations est limité (100 CMOS 0,6um) à cause de la

dégradation des isolants La programmation ou l’effacement d’une cellule dure qlq millisecondes

Flash EPROM N’autorise pas une programmation sélective Une cellule nécessite 2 transistors une densité d’intégration importante: trois à

4 fois plus que EEPROM mais 10 fois moins que l’antifusible Le nombre de cycle de programmation est plus grands que EEPROM Temps de programmation de qlq dizaine de us et temps d’effacement de qlq ms Inconvénient: nécessite un tension supplémentaire (de 12V) de programmation

et d’effacement Programmation in-situ

Technologie de programmation:Transistor MOS à grille flottante (EPROM)

Page 36: Cible matérielle ASIC-FPGA-SOPC

36

Technologie SRAM (FPGA) Technologie CMOS standard Portes de transmission ou multiplexeurs commandés par

des cellules SRAM Les mémoires SRAM permettent de configurer les

interconnexions et de programmer les cellules Programmation illimitée Programmation à chaque

mise sous tension (à partir d’une mémoire externe EPROM)

6 transistors permet un accès sélectif et rapide (qlq ns) Densité d’intégration plus faible (flash EEPROM) mais

elle bénéficie de l’évolution technologique importante ( contrairement au EEPROM et flash EEPROM)

Technologie de programmation

Page 37: Cible matérielle ASIC-FPGA-SOPC

37

Technologie SRAM (FPGA)

Technologie de programmation

Cellule SRAM

Ligne deconnexion

Ligne deconnexion

Cellule SRAM

Lignes deconnexion

Entrée d’un bloc logique

MUL

Page 38: Cible matérielle ASIC-FPGA-SOPC

38

Plan

Technologie Niveau de modélisation Classification

ASIC PLD (programmable logic Device)

Définition et principe Technologie de programmation Classification

Page 39: Cible matérielle ASIC-FPGA-SOPC

39

PAL

ASIC

Circuits

sur mesure

Circuits

précaractérisés

Circuits

prédiffusés

Circuits

configurables

SEMI-CUSTOMCUSTOM

FPGA CPLD PALSea of gate

Gate array

Standart

cell

Full Custom

AntifuseSRAM

PAL : Programmable Array Logic

Page 40: Cible matérielle ASIC-FPGA-SOPC

40

PAL est le concept de base des PLD (programmable Logic Device)

PAL: la disposition des transistors et des connections est fixée, mais on peut détruire ou remettre une connexion.

Principe : Qcq soit la complexité d’une fonction logique, elle peut être écrite sous la forme d’une somme de produits: matrice de portes AND et porte OR

PAL

Page 41: Cible matérielle ASIC-FPGA-SOPC

4141

PAL

liaison non programmableliaison programmable

Page 42: Cible matérielle ASIC-FPGA-SOPC

42

Circuits logiques programmables

Selon le caractère programmable des

matrices AND et OR, il existe : PAL ( programmable array logic):

Matrice de ET programmable, matrice OU figée

PROM ( programmable read-only memory) Matrice de ET figée, matrice OU programmable

PLA ( programmable logic array) Matrice de ET programmable, matrice OU programmble

Page 43: Cible matérielle ASIC-FPGA-SOPC

43

PROM

Page 44: Cible matérielle ASIC-FPGA-SOPC

44

PLA

Page 45: Cible matérielle ASIC-FPGA-SOPC

45

PLA: exemple

Page 46: Cible matérielle ASIC-FPGA-SOPC

46

PAL: exemple

Page 47: Cible matérielle ASIC-FPGA-SOPC

47

Donnez le câblage du circuit ci-dessous en utilisant :1. PAL 2. PROM

a b c

l l l

Address 0 &

Address 1 &

Address 2 &

Address 3 &

Address 4 &

Address 5 &

Address 6 &

Address 7 &

a !a b !b c !c

!a !c!b& &

!a c!b& &

!a !cb& &

!a cb& &

a !c!b& &

a c!b& &

a !cb& &

a cb& &

Predefined AND array

Prog

ram

mab

le O

R a

rray

w x y

Predefined linkProgrammable link

Les circuits configurables:exercice

Page 48: Cible matérielle ASIC-FPGA-SOPC

48

Donnez le câblage du circuit ci-dessous en utilisant :1.PAL 2. PROM

Les circuits configurables: exercice

a b c

l l l

Address 0 &

Address 1 &

Address 2 &

Address 3 &

Address 4 &

Address 5 &

Address 6 &

Address 7 &

a !a b !b c !c

!a !c!b& &

!a c!b& &

!a !cb& &

!a cb& &

a !c!b& &

a c!b& &

a !cb& &

a cb& &

Predefined AND array

Pro

gra

mm

ab

le O

R a

rra

y

w x y

Predefined linkProgrammable link

w = (a & b)

x = !(a & b)

y = (a & b) ^ c

Page 49: Cible matérielle ASIC-FPGA-SOPC

49

Les circuits configurables: SPLD(simple programmable logique Device)

Page 50: Cible matérielle ASIC-FPGA-SOPC

50

SPLD: Classification selon la structure de sortie

Trois types de structures de base: Combinatoire Séquentielle Versatile

Page 51: Cible matérielle ASIC-FPGA-SOPC

51

SPLD:Combinatoire

- Certaines broches peuvent être utilisées aussi bien en entrée qu’en sortie grâce à un système de logique 3 états. La commande de cette dernière est configurée au moment de la programmation.- La structure de sortie permet aussi de réinjecter les sorties enentrée (Feed-back).

Page 52: Cible matérielle ASIC-FPGA-SOPC

52

SPLD: Séquentielle

Ces circuits sont composés de bascule D. Les sorties des bascules sont de type trois états contrôlées par un signal de validation Enable ou OE, et une horloge est commune à toutes les bascules (clock).

Page 53: Cible matérielle ASIC-FPGA-SOPC

53

SPLD: Versatile

Ce type de structure représente les P.A.L. les plus évoluées, car ces structures proposent quatre configurations possibles: combinatoires et séquentielles

S1 S0

Page 54: Cible matérielle ASIC-FPGA-SOPC

54

SPLD: Versatile

Page 55: Cible matérielle ASIC-FPGA-SOPC

55

Matrice de ET réalisant tous les produits possibles (maxtermes) connectée aux sorties par des  OU 

Grande surface de Si utilisée. Ces circuits ne sont plus utilisés aujourd’hui

Les circuits configurables: SPLD(simple programmable logique Device)

Page 56: Cible matérielle ASIC-FPGA-SOPC

56

CPLD

ASIC

Circuits

sur mesure

Circuits

précaractérisés

Circuits

prédiffusés

Circuits

configurables

SEMI-CUSTOMCUSTOM

FPGA CPLD PALSea of gate

Gate array

Standart

cell

Full Custom

AntifuseSRAM

CPLD : Complex Programmable Logic Device

Page 57: Cible matérielle ASIC-FPGA-SOPC

57

CPLD

PAL

PALPAL

PAL

MATRICE D’INTERCONNECTIONSE/S E/S

• Les CPLDs regroupent plusieurs PALs interconnectés par un réseau de connexions programmables.

•Les CPLDs sont les prémisses des premiers FPGAs.

• Ces circuits ne sont plus utilisés aujourd’hui car remplacés par les FPGAs.

Page 58: Cible matérielle ASIC-FPGA-SOPC

58

CPLD

la technologie de programmation est généralement EEPROM ou Flash EPROM)

Un seul point de connexion relie entre eux les blocs logiques. Les temps de propagations des signaux sont constants et prédictibles (avant routage) ce n’est pas le cas des FPGA (voir plus tards)

Page 59: Cible matérielle ASIC-FPGA-SOPC

59

Altera MAX 7000 Macrocell structure

CPLD/ EPLD(Erasable)

Réseau ET-OU avec 8 termes produits

+ Multiplexeur programmable

Page 60: Cible matérielle ASIC-FPGA-SOPC

60

Altera MAX 7000 Macrocell structure

Page 61: Cible matérielle ASIC-FPGA-SOPC

61

FPGAASIC

Circuits

sur mesure

Circuits

précaractérisés

Circuits

prédiffusés

Circuits

configurables

SEMI-CUSTOMCUSTOM

FPGA CPLD PALSea of gate

Gate array

Standart

cell

Full Custom

AntifuseSRAM

FPGA : Field Programmable Gate Array

• Les blocs logique sont plus nombreux et plus simples que les CPLD

• mais les interconnexions entre les blocs logiques ne sont plus centralisées

Page 62: Cible matérielle ASIC-FPGA-SOPC

62

FPGA : Architecture

Un FPGA est à la base : Un réseau de blocs de logique

programmable (Configurable Logic Block -CLB), chaque bloc pouvant réaliser des fonctions complexes de plusieurs variables,et comportant des éléments à mémoire

Un réseau d’interconnexions programmables entre les blocs

Des blocs d’entrée et de sortie programmable avec le monde extérieur (Input/Output Block –IOB).

Page 63: Cible matérielle ASIC-FPGA-SOPC

63

CLB à base de multiplexeurs

• Utilisée pour la technologie ANTIFUSIBLE équivaut à une LUT câblée

Page 64: Cible matérielle ASIC-FPGA-SOPC

64

CLB à base de multiplexeurs : Exemple

Cellule ACTEL ACT3

Page 65: Cible matérielle ASIC-FPGA-SOPC

65

FPGA: CLB à base de LUT Arrangement Matriciel de blocs logiques avec configuration des :

1. La fonction de chaque bloc

2. Interconnexions entre les blocs logiques

4-LUT

EntréesD

Q

0

1 Sortie

Choix configurablepar bitstream

Page 66: Cible matérielle ASIC-FPGA-SOPC

66

FPGAs : CLB à base de Look Up Table

Page 67: Cible matérielle ASIC-FPGA-SOPC

67

Ce sont de petits éléments de mémorisation, qui reflètent la table de vérité d’une fonction logique.

SRAM

SRAM

SRAM

SRAM

SRAM

SRAM

In 0 In 1 In 2 In 3

Out

Out

In 0

In 1

In 3

In 2LUT 4

LUT = Table de scrutation

LUT 4 entrées = RAM 2octets

FPGA :Les Look Up Tables

Page 68: Cible matérielle ASIC-FPGA-SOPC

68

0

1

1

0

0

1

In 0 In 1 In 2 In 3

Out

1 1 1 1

1 1 1 0

1 1 0 1

1 1 0 0

1 0 1 1

1 0 1 0

FPGA : Les Look Up Tables

Page 69: Cible matérielle ASIC-FPGA-SOPC

69

0

1

1

0

0

1

In 0 = 0 In 1 In 2 In 3

Out

1 1 1 1

1 1 1 0

1 1 0 1

1 1 0 0

1 0 1 1

1 0 1 0

FPGA :Les Look Up Tables

Page 70: Cible matérielle ASIC-FPGA-SOPC

70

0

1

1

0

0

1

In 0 =0 In 1 In 2 In 3

Out

1 1 1 1

1 1 1 0

1 1 0 1

1 1 0 0

1 0 1 1

1 0 1 0

FPGA : Les Look Up Tables

Page 71: Cible matérielle ASIC-FPGA-SOPC

71

0

1

1

0

0

1

In 0 =0 In 1 = 1 In 2 In 3

Out

1 1 1 1

1 1 1 0

1 1 0 1

1 1 0 0

1 0 1 1

1 0 1 0

FPGA : Les Look Up Tables

Page 72: Cible matérielle ASIC-FPGA-SOPC

72

0

1

1

0

0

1

In 0 =0 In 1 = 1 In 2 In 3

Out

1 1 1 1

1 1 1 0

1 1 0 1

1 1 0 0

1 0 1 1

1 0 1 0

FPGA : Les Look Up Tables

Page 73: Cible matérielle ASIC-FPGA-SOPC

73

0

1

1

0

0

1

In 0 =0 In 1 = 1 In 2 =1 In 3 = 1

Out= 1 = In3 • In2 • In1 • Ino

1 1 1 1

1 1 1 0

1 1 0 1

1 1 0 0

1 0 1 1

1 0 1 0

FPGA: Les Look Up Tables

Page 74: Cible matérielle ASIC-FPGA-SOPC

74

FPGA : CLB

Page 75: Cible matérielle ASIC-FPGA-SOPC

75

Exemple: implémentation d’un additionneur série

Page 76: Cible matérielle ASIC-FPGA-SOPC

76

FPGA : Xilinx CLB XC4000

Page 77: Cible matérielle ASIC-FPGA-SOPC

77

Exercice:1. Comment peut on-réaliser une fonction combinatoire à 4 variables avec le CLB de xilinx? Donner le chemin de propagation du signal de sortie

2. Comment peut on-réaliser une fonction séquentielle à 5 variables avec le CLB de xilinx? Donner le chemin de propagation du signal de sortie

Page 78: Cible matérielle ASIC-FPGA-SOPC

78

Exercice:1. Comment peut on-réaliser une fonction combinatoire à 4 variables avec le CLB de xilinx? Donner le chemin de propagation du signal de sortie

Page 79: Cible matérielle ASIC-FPGA-SOPC

79

Exercice:2. Comment peut on-réaliser une fonction séquentielle à 5 variables avec le CLB de xilinx? Donner le chemin de propagation du signal de sortie

Page 80: Cible matérielle ASIC-FPGA-SOPC

80

FPGA: configuration Arrangement Matriciel de blocs logiques avec configuration des :

1. La fonction de chaque bloc

2. Interconnexions entre les blocs logiques

Page 81: Cible matérielle ASIC-FPGA-SOPC

81

FPGA: interconnexions programmables

Xilinx

Matrice de connexions Programmables

(Programmable Switch Matrix)

Page 82: Cible matérielle ASIC-FPGA-SOPC

82

FPGA: interconnexions programmables

CLB

Élément d’une matrice de connexion(PSM)

CLB

CLB

Page 83: Cible matérielle ASIC-FPGA-SOPC

83

FPGA: types de connexions

Directes: relient deux CLBs adjacents Simples: relient deux PSMs (Programmable Switch

Matrix) adjacentes Doubles: relient deux PSMs séparées par une PSM Quadruples: relient deux PSMs séparées par 3 PSMs Longs: traversent la puce de part en part, soit

horizontalement ou verticalement (ils peuvent toutefois être sépares en deux moities de longueur égale et indépendantes)

Page 84: Cible matérielle ASIC-FPGA-SOPC

84

FPGA: types de connexions

Connexions directes : relient deux CLB

adjacents. Ne passent pas par

une matrice de connexion (PSM)

Page 85: Cible matérielle ASIC-FPGA-SOPC

85

FPGA: types de connexions

Connexions Simples: Relient deux PSM

adjacentes. Offrent une grande

flexibilité de parcours. Le passage d'une

connexion simple au travers d'une PSM entraîne un délai.

Ce type de connexion se prête surtout aux liens de nature locale.

Page 86: Cible matérielle ASIC-FPGA-SOPC

86

FPGA: types de connexions

Connexions doubles: relient deux PSMs

séparées par une PSM: Offrent une plus grande

rapidité que les connexions simples pour les liens de longueur intermédiaire

Maintiennent une bonneflexibilité de parcours.

De la même manière, les connexions quadruples permettent des liens rapides un peu plus longs mais entraînent une certaine pénalité dans la flexibilité du parcours.

Page 87: Cible matérielle ASIC-FPGA-SOPC

87

FPGA: types de connexions

Les longues lignes sont de longs segments métallisés parcourant toute la longueur et la largeur du composant, elles permettent éventuellement de transmettre avec un minimum de retard les signaux entre les différents éléments dans le but d'assurer un synchronisme aussi parfait que possible. De plus, ces longues lignes permettent d'éviter la multiplicité des points d'interconnexion.

Page 88: Cible matérielle ASIC-FPGA-SOPC

88

FPGA: types de connexions

Lignes simples

Lignes doubles

Lignes longues

Page 89: Cible matérielle ASIC-FPGA-SOPC

89

FPGA: types de connexions

Xilinx XC4000X

Page 90: Cible matérielle ASIC-FPGA-SOPC

90

Le passage d’un bloc logique à un autre se fera par un nombre de point de connexion (responsable des temps de propagation) fonction de la position relative des deux blocs logique et de l’état d’encombrement de la matrice.

Ces délais ne sont donc pas prédictibles (contrairement au CPLD) avant le placement routage

De la phase de placement des blocs logique dépendront donc beaucoup les performances du circuit en terme de vitesse

FPGAs :Interconnexions programmables

Page 91: Cible matérielle ASIC-FPGA-SOPC

91

FPGAs : Interconnexions programmables

Page 92: Cible matérielle ASIC-FPGA-SOPC

92

I/O Blocs Les blocs d’entrée/sortie (IOBs)

contrôlent le flot de données entre les broches du FPGA et la logique interne; les I/O sont: Bidirectionnelles (entrée ou sortie) 3 états (haute impédance) A retards programmables Multi-standards (niveaux logiques)

Page 93: Cible matérielle ASIC-FPGA-SOPC

93

I/O BlocsProblème de faire communiquer les composants entre eux : il y a plusieurscodages en tension des niveaux 1 et 0 (tension d'alimentation VDD, type de marges):Les buffers permettent de résoudre ce problème

Page 94: Cible matérielle ASIC-FPGA-SOPC

94

FPGA : Les entrées/sorties

FPGAs : Xilinx IOB (Input Output Block)

Page 95: Cible matérielle ASIC-FPGA-SOPC

95

Spartan 3E

Page 96: Cible matérielle ASIC-FPGA-SOPC

96

La technologie actuelle des FPGA Jusqu’à 200 000 cellules logiques élémentaires

Cellule = Look-up-Table + registres Blocs mémoire configurables

Blocs de 18kbits, au total jusqu’à 1Mo Structures dédiées pour les traitements arithmétique

512 multiplieurs 18x18 bits embarqués Processeurs embarqués

Jusqu’à 4 PowerPC en « dur » Soft-Core : processeurs utilisant les cellules logique

Liaisons séries haut débit Jusqu’à 10 Gbits MAC Ethernet intégrée

Page 97: Cible matérielle ASIC-FPGA-SOPC

97

FPGA: Les modes de configuration

Le bitstream décrit la configuration de tous les éléments configurables du circuits

Un transfert de bitstream est nécessaire lors de « la mise sous tension » et à chaque reconfiguration »

Page 98: Cible matérielle ASIC-FPGA-SOPC

98

On rencontre couramment 6 techniques de configuration :• Master mode série ou parallèle

• Slave mode série ou parallèle

• Peripheral mode série ou parallèle

• La sélection de la technique de configuration se fait grâce à des bits de configuration du FPGA

Dans tous les cas la configuration se fait via un fichier de configuration binaire : le Bitstream

Les entrées sorties utilisées pendant la configuration sont aussi des I/O du circuits utilisables en fonctionnement

L’envois des données de configurations peut se faire en série ou en parallèle

FPGA: Les modes de configuration

Page 99: Cible matérielle ASIC-FPGA-SOPC

99

Dans ce cas le FPGA est maître de sa configuration

FPGAEPROM

Data

CLKCLK

OE

Data-in

CTRL

MODE SERIE

Master mode

Page 100: Cible matérielle ASIC-FPGA-SOPC

100

Dans ce cas le FPGA est maître de sa configuration

FPGAEPROM

Data(7:0)

ADD (11:0)ADD (11:0)

OE

Data-in(7:0)

CTRL

MODE PARALLELE

8 bits

Master mode

Page 101: Cible matérielle ASIC-FPGA-SOPC

101

Dans ce cas le FPGA est esclave, il subit sa configuration

FPGAEPROM

Data

CLK

OE

Data-in

Autre FPGA

circuit logique de contrôle

ou câble de configuration

CLK

Slave mode

Page 102: Cible matérielle ASIC-FPGA-SOPC

102

Le FPGA est vue comme un périphérique du microprocesseur

FPGAµP

Data(7:0)

Chip_SelecADD (11:0)

CTRL

Data-in(7:0)

CTRL

8 bits

Le microprocesseur peut être un cœur de processeur

embarqué dans le circuit

Peripheral mode

Page 103: Cible matérielle ASIC-FPGA-SOPC

103

Cas d’étude : Xilinx Spartan 3E

Plusieurs versions:

Page 104: Cible matérielle ASIC-FPGA-SOPC

104

Carte Digilent à base de Spartan XC3S500E

Page 105: Cible matérielle ASIC-FPGA-SOPC

105

Carte Spartan XC3S500E : ComposantsLa carte Spartan 3E regroupe :

•un FPGA XC3S500E Spartan 3E, •un CPLD Coolrunner II, •une mémoire PROM de 4 Mbit, •une mémoire Flash sérielle de 16 Mbit, •une mémoire Flash parallèle de 128 Mbit, •une mémoire DDR SDRAM de 512 Mbit,• un écran LCD, •un port PS/2,• un port VGA, •une prise Ethernet 10/100, •deux ports RS-232, •un port de configuration USB, •deux convertisseurs de données, •un oscillateur à 50 MHz, • un connecteur d’expansion Hirose FX2 permettant 40 entrées/sorties génériques, •8 DEL, •des boutons poussoir et des commutateurs.

Page 106: Cible matérielle ASIC-FPGA-SOPC

106

• La carte supporte trois modes de configuration à la mise sous tension, • soit le mode Master-Slave utilisant le PROM 4 Mbits

(1MBits sur version ISI), • un mode SPI utilisant la mémoire Flash sériel • et un mode BPI utilisant la mémoire Flash parallèle.

• La carte peut aussi être programmée directement à l’aide d’un port JTAG lorsqu’elle est sous tension.

Carte Spartan 3E: modes de configuration

Page 107: Cible matérielle ASIC-FPGA-SOPC

107

Evolution des FPGA SOPC

Page 108: Cible matérielle ASIC-FPGA-SOPC

108

FPGA: et encore!!!

Page 109: Cible matérielle ASIC-FPGA-SOPC

109

Les Cibles mixtes: System on programmble chip (SOPC)

Les fonctionnalités peuvent être implantées dans des composants logiques programmables de type FPGA. On parle alors de système SoPC

Page 110: Cible matérielle ASIC-FPGA-SOPC

110

Les processeurs pour le SOPC

Le choix d'un processeur pour le SoPC peut se faire sur différents critères : Processeur hardcore : pour ses performances au

détriment de la flexibilité. Processeur softcore : pour sa flexibilité de mise à jour

au détriment de performances moindres que le précédent. La portabilité vers n'importe quel circuit FPGA est assurée en étant donc circuit FPGA indépendant. Il est aussi possible de migrer vers un circuit de type ASIC en cas d'une production en grande série.

Page 111: Cible matérielle ASIC-FPGA-SOPC

111

Processeur embarqués : hardcore/softcore

lorsque l'on conçoit un système numérique complexe, on met un œuvre généralement un processeur embarqué. Ce processeur embarqué est :

Soit un bloc IP : on parle de processeur softcore. Soit déjà implanté dans le circuit électronique en «

dur » : on parle de processeur hardcore. Le processeur de ce type est généralement plus

performant que le processeur du type précédent.

Page 112: Cible matérielle ASIC-FPGA-SOPC

112

Approche Altera : Softcore ‘NIOS’

NIOS : cœur de processeur RISC générique optimisé

Caractéristiques: données sur 16 ou 32 bits,

128, 256 ou 512 registres registres à décalage rapide (

1, 3, 7, 15 ou 31 bits/clock) possibilités de lui adjoindre

des périphériques (UART, RAM, ROM)

Page 113: Cible matérielle ASIC-FPGA-SOPC

113

Approche Altera: hardcore ARM9

Matrice FPGA

Cœur ARM 922T

RAM simple portRAM double portAltera propose le circuit Excalibur contenant :

• une partie configurable :

type APEX 20K1000

• un cœur de processeur :

ARM9 (32 Bits) à 200MHz

8 Koctets de cache Instructions

8 Koctets de cache Données

Page 114: Cible matérielle ASIC-FPGA-SOPC

114

Approche Xilinx

• une matrice configurable◦1 500 000 de portes◦ De 216 Kbits à 8 Mbits de mémoires• De 204 à 1164 I/Os

•1, 2 (ou 4) cœurs de processeur PowerPC 405 (32 Bits) à 400MHz (hard)

◦16 Koctets de cache instructions◦16 K octets de cache données

•Prix: ~ 1 500 $ max

1. Hardcore : Power PC (XilinxVIRTEX II PRO (XC2VP):

2. softcore MicroBlaze, picoblaze