Cours Synth ese des Syst emes Num eriquesbertrand.granado.free.fr/Licence/UE303/coursclp.pdf ·...

68
Cours Synth` ese des Syst` emes Num´ eriques Cours Synth` ese des Syst` emes Num´ eriques Bertrand Granado Enseignant-Chercheur Laboratoire des Instruments et Syst` emes d’Ile de France 3 rue Galil´ ee - Bˆ atiment ”Le Rapha¨ el” 94200 Ivry-sur-seine el : [email protected] Printemps 2005

Transcript of Cours Synth ese des Syst emes Num eriquesbertrand.granado.free.fr/Licence/UE303/coursclp.pdf ·...

Cours Synthese des Systemes Numeriques

Cours Synthese des Systemes Numeriques

Bertrand GranadoEnseignant-Chercheur

Laboratoire des Instruments et Systemes d’Ile de France

3 rue Galilee - Batiment ”Le Raphael”

94200 Ivry-sur-seine

Mel : [email protected]

Printemps 2005

Cours Synthese des Systemes Numeriques

Taxonomie

Circuits personnalisés

Semi-Custom Custom

CircuitsProgrammables

CircuitsReprogrammables

RéseauxPrédiffusés

StandardsCells

FullCustom

PALPLDPLA

EPLDCPLDFPGA

Cours Synthese des Systemes Numeriques

Taxonomie

Circuits personnalisés

Semi-Custom Custom

CircuitsProgrammables

CircuitsReprogrammables

RéseauxPrédiffusés

StandardsCells

FullCustom

PALPLDPLA

EPLDCPLDFPGA

Cours Synthese des Systemes Numeriques

Taxonomie

Circuits personnalisés

Semi-Custom Custom

CircuitsProgrammables

CircuitsReprogrammables

RéseauxPrédiffusés

StandardsCells

FullCustom

PALPLDPLA

EPLDCPLDFPGA

Cours Synthese des Systemes Numeriques

Taxonomie

Circuits personnalisés

Semi-Custom Custom

CircuitsProgrammables

CircuitsReprogrammables

RéseauxPrédiffusés

StandardsCells

FullCustom

PALPLDPLA

EPLDCPLDFPGA

Cours Synthese des Systemes Numeriques

Taxonomie

Circuits personnalisés

Semi-Custom Custom

CircuitsProgrammables

CircuitsReprogrammables

RéseauxPrédiffusés

StandardsCells

FullCustom

PALPLDPLA

EPLDCPLDFPGA

Cours Synthese des Systemes Numeriques

Taxonomie

Circuits personnalisés

Semi-Custom Custom

CircuitsProgrammables

CircuitsReprogrammables

RéseauxPrédiffusés

StandardsCells

FullCustom

PALPLDPLA

EPLDCPLDFPGA

Cours Synthese des Systemes Numeriques

Taxonomie

Circuits personnalisés

Semi-Custom Custom

CircuitsProgrammables

CircuitsReprogrammables

RéseauxPrédiffusés

StandardsCells

FullCustom

PALPLDPLA

EPLDCPLDFPGA

Cours Synthese des Systemes Numeriques

Taxonomie

Circuits personnalisés

Semi-Custom Custom

CircuitsProgrammables

CircuitsReprogrammables

RéseauxPrédiffusés

StandardsCells

FullCustom

PALPLDPLA

EPLDCPLDFPGA

PAL(PLA) : ProgrammableArray Logic

Cours Synthese des Systemes Numeriques

Taxonomie

Circuits personnalisés

Semi-Custom Custom

CircuitsProgrammables

CircuitsReprogrammables

RéseauxPrédiffusés

StandardsCells

FullCustom

PALPLDPLA

EPLDCPLDFPGA

PAL(PLA) : ProgrammableArray Logic

PLD : Programmable LogicDevice

Cours Synthese des Systemes Numeriques

Taxonomie

Circuits personnalisés

Semi-Custom Custom

CircuitsProgrammables

CircuitsReprogrammables

RéseauxPrédiffusés

StandardsCells

FullCustom

PALPLDPLA

EPLDCPLDFPGA

PAL(PLA) : ProgrammableArray Logic

PLD : Programmable LogicDevice

GAL : Generic Array Logic

Cours Synthese des Systemes Numeriques

Taxonomie

Circuits personnalisés

Semi-Custom Custom

CircuitsProgrammables

CircuitsReprogrammables

RéseauxPrédiffusés

StandardsCells

FullCustom

PALPLDPLA

EPLDCPLDFPGA

PAL(PLA) : ProgrammableArray Logic

PLD : Programmable LogicDevice

GAL : Generic Array Logic

EPLD : ErasableProgrammable Logic Device

Cours Synthese des Systemes Numeriques

Taxonomie

Circuits personnalisés

Semi-Custom Custom

CircuitsProgrammables

CircuitsReprogrammables

RéseauxPrédiffusés

StandardsCells

FullCustom

PALPLDPLA

EPLDCPLDFPGA

PAL(PLA) : ProgrammableArray Logic

PLD : Programmable LogicDevice

GAL : Generic Array Logic

EPLD : ErasableProgrammable Logic Device

CPLD : ComplexProgrammable Logic Device

Cours Synthese des Systemes Numeriques

Taxonomie

Circuits personnalisés

Semi-Custom Custom

CircuitsProgrammables

CircuitsReprogrammables

RéseauxPrédiffusés

StandardsCells

FullCustom

PALPLDPLA

EPLDCPLDFPGA

PAL(PLA) : ProgrammableArray Logic

PLD : Programmable LogicDevice

GAL : Generic Array Logic

EPLD : ErasableProgrammable Logic Device

CPLD : ComplexProgrammable Logic Device

FPGA : Field ProgrammableGate Array

Cours Synthese des Systemes Numeriques

Historique

1970 - Origine

Cours Synthese des Systemes Numeriques

Historique

1970 - Origine

MMI premier PAL

Cours Synthese des Systemes Numeriques

Historique

1970 - Origine

MMI premier PALProm a Fusibles

Cours Synthese des Systemes Numeriques

Historique

1970 - Origine

MMI premier PALProm a FusiblesTechnologie BiPolaire

Cours Synthese des Systemes Numeriques

Historique

1970 - Origine

MMI premier PALProm a FusiblesTechnologie BiPolaireOTP (One TimeProgramming)

Cours Synthese des Systemes Numeriques

Historique

1970 - Origine

MMI premier PALProm a FusiblesTechnologie BiPolaireOTP (One TimeProgramming)

1980 - Acceleration

Cours Synthese des Systemes Numeriques

Historique

1970 - Origine

MMI premier PALProm a FusiblesTechnologie BiPolaireOTP (One TimeProgramming)

1980 - Acceleration

Technologie CMOS

Cours Synthese des Systemes Numeriques

Historique

1970 - Origine

MMI premier PALProm a FusiblesTechnologie BiPolaireOTP (One TimeProgramming)

1980 - Acceleration

Technologie CMOSAvenement de EPROM

Cours Synthese des Systemes Numeriques

Historique

1970 - Origine

MMI premier PALProm a FusiblesTechnologie BiPolaireOTP (One TimeProgramming)

1980 - Acceleration

Technologie CMOSAvenement de EPROMReprogrammabilite

Cours Synthese des Systemes Numeriques

Historique

1970 - Origine

MMI premier PALProm a FusiblesTechnologie BiPolaireOTP (One TimeProgramming)

1980 - Acceleration

Technologie CMOSAvenement de EPROMReprogrammabilite

1990 : FPGA

Cours Synthese des Systemes Numeriques

Historique

1970 - Origine

MMI premier PALProm a FusiblesTechnologie BiPolaireOTP (One TimeProgramming)

1980 - Acceleration

Technologie CMOSAvenement de EPROMReprogrammabilite

1990 : FPGA

2000 : Micro-ProcesseursConfigurables

Cours Synthese des Systemes Numeriques

Categories de Circuits Programmables

PAL

Cours Synthese des Systemes Numeriques

Categories de Circuits Programmables

PAL

Architecture ET/OU programmable

Cours Synthese des Systemes Numeriques

Categories de Circuits Programmables

PAL

Architecture ET/OU programmableFaible Densite

Cours Synthese des Systemes Numeriques

Categories de Circuits Programmables

PAL

Architecture ET/OU programmableFaible DensiteOutils de developpement simples

Cours Synthese des Systemes Numeriques

Categories de Circuits Programmables

PAL

Architecture ET/OU programmableFaible DensiteOutils de developpement simples

EPLD

Cours Synthese des Systemes Numeriques

Categories de Circuits Programmables

PAL

Architecture ET/OU programmableFaible DensiteOutils de developpement simples

EPLD

Architecture de PAL programmable

Cours Synthese des Systemes Numeriques

Categories de Circuits Programmables

PAL

Architecture ET/OU programmableFaible DensiteOutils de developpement simples

EPLD

Architecture de PAL programmableDensite moyenne

Cours Synthese des Systemes Numeriques

Categories de Circuits Programmables

PAL

Architecture ET/OU programmableFaible DensiteOutils de developpement simples

EPLD

Architecture de PAL programmableDensite moyenneOutils de developpement simples

Cours Synthese des Systemes Numeriques

Categories de Circuits Programmables

PAL

Architecture ET/OU programmableFaible DensiteOutils de developpement simples

EPLD

Architecture de PAL programmableDensite moyenneOutils de developpement simples

FPGA

Cours Synthese des Systemes Numeriques

Categories de Circuits Programmables

PAL

Architecture ET/OU programmableFaible DensiteOutils de developpement simples

EPLD

Architecture de PAL programmableDensite moyenneOutils de developpement simples

FPGA

Architeture Gate Array programmable

Cours Synthese des Systemes Numeriques

Categories de Circuits Programmables

PAL

Architecture ET/OU programmableFaible DensiteOutils de developpement simples

EPLD

Architecture de PAL programmableDensite moyenneOutils de developpement simples

FPGA

Architeture Gate Array programmableTres haute densite

Cours Synthese des Systemes Numeriques

Categories de Circuits Programmables

PAL

Architecture ET/OU programmableFaible DensiteOutils de developpement simples

EPLD

Architecture de PAL programmableDensite moyenneOutils de developpement simples

FPGA

Architeture Gate Array programmableTres haute densiteOutils de developpements type ASIC

Cours Synthese des Systemes Numeriques

Les constructeurs

Xilinx

Altera

Lattice

Actel

Atmel

Amd

Cypress

Philips

. . .

Cours Synthese des Systemes Numeriques

Pourquoi des Circuits Logiques Programmables ?

Cours Synthese des Systemes Numeriques

Pourquoi des Circuits Logiques Programmables ?

Adequation Algorithme Architecture

Cours Synthese des Systemes Numeriques

Pourquoi des Circuits Logiques Programmables ?

Adequation Algorithme Architecture

Vitesse

Cours Synthese des Systemes Numeriques

Pourquoi des Circuits Logiques Programmables ?

Adequation Algorithme Architecture

Vitesse

Prototypage

Cours Synthese des Systemes Numeriques

Pourquoi des Circuits Logiques Programmables ?

Adequation Algorithme Architecture

Vitesse

Prototypage

Souplesse par rapport au ASIC

Cours Synthese des Systemes Numeriques

Idee

I1

I2

O

Cours Synthese des Systemes Numeriques

Idee

I1

I2

O = I1 + I1.I2

Cours Synthese des Systemes Numeriques

Realisation des PLA et PLD : Fusibles

Matrice de fils croises

Cours Synthese des Systemes Numeriques

Realisation des PLA et PLD : Fusibles

Matrice de fils croises

Diodes en serie avec des fusibles places aux intersections

Cours Synthese des Systemes Numeriques

Realisation des PLA et PLD : Fusibles

Matrice de fils croises

Diodes en serie avec des fusibles places aux intersections

Programmation = Claquage fusible

Cours Synthese des Systemes Numeriques

Realisation des PLA et PLD : Fusibles

Matrice de fils croises

Diodes en serie avec des fusibles places aux intersections

Programmation = Claquage fusible

Technologie bipolaire ou CMOS

Cours Synthese des Systemes Numeriques

Realisation des PLA et PLD : Fusibles

Matrice de fils croises

Diodes en serie avec des fusibles places aux intersections

Programmation = Claquage fusible

Technologie bipolaire ou CMOS

Forte consommation pour le bipolaire

Cours Synthese des Systemes Numeriques

Fusible et AntiFusible

Cours Synthese des Systemes Numeriques

Fusible et AntiFusible

Fige

Cours Synthese des Systemes Numeriques

Fusible et AntiFusible

Fige

Non-reprogrammable

Cours Synthese des Systemes Numeriques

Notation

I1

I2

O

Cours Synthese des Systemes Numeriques

Notation

I1

I2

O = I1 + I1.I2

Cours Synthese des Systemes Numeriques

Notation

A

B

C

A.B.C

A B C

A.B.C

Cours Synthese des Systemes Numeriques

Prom 16x4 bits

I3 I2 I1 I0

O3 O2 O1 O0

Matrice de Ou(Programmable)

Matrice de ET(Fixe)

Cours Synthese des Systemes Numeriques

Prom 16x4 bits

I3 I2 I1 I0

O3 O2 O1 O0

Matrice de Ou(Programmable)

Matrice de ET(Fixe)

Cours Synthese des Systemes Numeriques

PAL

I3 I2 I1 I0

O3 O2 O1 O0

Matrice de Ou(Fixe)

Matrice de ET(Programmable)

Cours Synthese des Systemes Numeriques

PAL

I3 I2 I1 I0

O3 O2 O1 O0

Matrice de Ou(Fixe)

Matrice de ET(Programmable)

Cours Synthese des Systemes Numeriques

Sortie Combinatoire : PAL

I/O

I

Cours Synthese des Systemes Numeriques

Sortie Sequentielle : PLD

I

D Q

Q

Signal Horloge

Commande de Sortie

Q

Cours Synthese des Systemes Numeriques

GAL16v8

I/CLK

I

I/O/Q

I

I/O/Q

I

I/O/Q

I

I/O/Q

I

I/O/Q

I

I/O/Q

I

I/O/Q

I

I/O/Q

CLK

8

8

8

8

8

8

8

8

OE

OLMC

OLMC

OLMC

OLMC

OLMC

OLMC

OLMC

OLMCP

RO

GR

AM

MA

BL

EA

ND

-AR

RA

Y

I/OE

Cours Synthese des Systemes Numeriques

Caracteristiques EP610 - EP 1810 PLD Altera

Technologie E2PROM

Bascule programmables D, T, JK, SR

Bit de securite

Caractéristiques des EPLD Classic d'Altera

Caractéristiques EP610EP610I

EP910EP910I

EP1810

Portes Disponibles 300 450 900

Macrocellules 16 24 48

Broches d'E/S 22 38 64

tPD (ns) 10 12 20

fCNT (MHz) 100 76.9 50

Cours Synthese des Systemes Numeriques

MacroCellule

Synoptique d'une MacroCellule

To Logic Array

Output Enable/Clock SelectGlobalClock

OE

CLK

ProgrammableRegister

Input, I/O, andMacrocell

Feedbacks

Logic Array

FeedbackSelect

CLR

Q

Asynchronous Clear

VCC

Cours Synthese des Systemes Numeriques

Mode de Fonctionnement

MacrocellOutput Buffer

GlobalClock

OE

CLK

ANDArray

Data

Output Enable/ClockSelect

OE = Product TermCLK = Global

Mode 0

OE = EnabledCLK = Product Term

Mode 1

Output Enable/ClockSelect

VCC

CLR

Q

MacrocellOutput Buffer

GlobalClock

VCC

OE

CLK

ANDArray

Data

CLR

Q

Le signal d'horloge du registre est global. La sortie est autorisée par un terme produit.

Le signal d'horloge du registre est un terme produit. La sortie est toujours autorisée.

Cours Synthese des Systemes Numeriques

EP610

(26)

(25)

(24)

(23)

(22)

(21)

(20)

(18)

22

21

20

19

18

17

16

15

(4)

(5)

(6)

(7)

(8)

(9)

(10)

(12)

2 (3)

1 (2)

INPUT

CLK1

(13) INPUT

23 (27)

13 (16)

INPUT

CLK2

3

4

5

6

7

8

9

10

11

GlobalBus

(17)INPUT 14

Macrocell 9Macrocell 10Macrocell 11Macrocell 12Macrocell 13Macrocell 14Macrocell 15Macrocell 16

Macrocell 1Macrocell 2Macrocell 3Macrocell 4Macrocell 5Macrocell 6Macrocell 7Macrocell 8

Cours Synthese des Systemes Numeriques

EP1810

(K4)

(L4)

(K5)

(L5)

(L6)

(K7)

(L7)

(K8)

INPUT

INPUT

INPUT

INPUT/CLK1

INPUT/CLK2

INPUT

INPUT

INPUT

(B4) 56

(A5) 55

(B5) 54

(A6) 53

(A7) 51

(B7) 50

(A8) 49

(B8) 48

INPUT

INPUT

INPUT

INPUT/CLK4

INPUT/CLK3

INPUT

INPUT

INPUT

Quadrant A

(F1) (G2)

(G1)

(H2) (H1) (J2) (J1) (K1) (K2) (L2)

(K3)

(L3)

Loca

l Bus

—Q

uadr

ant A

Macrocell 48 Macrocell 47 Macrocell 46 Macrocell 45 Macrocell 44 Macrocell 43 Macrocell 42 Macrocell 41 Macrocell 40 Macrocell 39 Macrocell 38 Macrocell 37

Quadrant D

(E1) 68 (E2) 67 (D1) 66 (D2) 65

(C1) 64

(C2) 63 (B1) 62 (B2) 61

(A2) 60

(A3) 59

(B3) 58

(A4) 57

Loca

l Bus

—Q

uadr

ant D

Macrocell 13 Macrocell 14 Macrocell 15 Macrocell 16 Macrocell 17 Macrocell 18 Macrocell 19 Macrocell 20 Macrocell 21 Macrocell 22 Macrocell 23 Macrocell 24

(L8) (K9) (L9)

(L10) (K10) (K1 1) (J10) (J1 1) (H10) (H1 1) (G10) (G1 1)

Loca

l Bus

—Q

uadr

ant B

Macrocell 36 Macrocell 35 Macrocell 34 Macrocell 33 Macrocell 32 Macrocell 31 Macrocell 30 Macrocell 29 Macrocell 28 Macrocell 27 Macrocell 26 Macrocell 25

(A9) 47 (B9) 46 (A10) 45 (B10) 44 (B11) 43 (C11) 42 (C10) 41 (D11) 40 (D10) 39 (E11) 38 (E10) 37 (F11) 36

Loca

l Bus

—Q

uadr

ant C

Quadrant B Quadrant C

Global Macrocells

Local Macrocells

Macrocell 1 Macrocell 2 Macrocell 3 Macrocell 4 Macrocell 5 Macrocell 6 Macrocell 7 Macrocell 8 Macrocell 9 Macrocell 10 Macrocell 1 1 Macrocell 12

Global Bus

2 3 4 5 6 7 8 9

10 1 1

12

13

23 24 25 26 27 28 29 30 31 32 33 34

14

15

16

17

19

20

21

22