INF1500 : Logique des systèmes...

43
Sylvain Martel - INF1500 1 INF1500 : Logique des systèmes numériques Cours 9: Implémentations

Transcript of INF1500 : Logique des systèmes...

Page 1: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 1

INF1500 : Logique des systèmes numériques

Cours 9: Implémentations

Page 2: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 2

Composantes74x138

G2A

G1

G2B

Y0

Y1

Y2

Y3

B

A

C

Y4

Y5

Y6

Y7

74x138

G2A

G1

G2B

Y0

Y1

Y2

Y3

B

A

C

Y4

Y5

Y6

Y7

DEC0_L

DEC1_L

DEC2_L

DEC3_L

DEC4_L

DEC5_L

DEC10_L

DEC11_L

DEC12_L

DEC13_L

DEC14_L

DEC15_L

DEC6_L

DEC7_L

DEC8_L

DEC9_L

N0

N1

N2

N3

EN3_L

N4

EN2_L

EN1

74x138

G2A

G1

G2B

Y0

Y1

Y2

Y3

B

A

C

Y4

Y5

Y6

Y7

DEC18_L

DEC19_L

DEC20_L

DEC21_L

DEC22_L

DEC23_L

DEC16_L

DEC17_L

74x138

G2A

G1

G2B

Y0

Y1

Y2

Y3

B

A

C

Y4

Y5

Y6

Y7

DEC26_L

DEC27_L

DEC28_L

DEC29_L

DEC30_L

DEC31_L

DEC24_L

DEC25_L

1/2 74x139

1A

1G

1B

1Y0

1Y1

1Y2

1Y3

EN0X7_L

EN8X15_L

EN16X23_L

EN24X31_L

615

14

13

7

4

5

1

12

11

10

92

3

615

14

13

7

4

5

1

12

11

10

92

3

615

14

13

7

4

5

1

12

11

10

92

3

615

14

13

7

4

5

1

12

11

10

92

3

1 4

5

6

7

2

3

U2

U3

U4

U5

U1

Copyright © 2000 by Prentice Hall, Inc.Digital Design Principles and Practices, 3/e

Page 3: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 3

ROM (Read Only Memory)

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 fonctions de n variables simultanément.

Page 4: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 4

ROM (Read Only Memory)

ADDR DATA

Page 5: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 5

m0m1m2m3m4m5m6m7m8m9m10m11m12m13m14m15

ROM 16×8 bits

Page 6: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 6

0

0110001F1111

1010001E0111

0010001D1011

1100001C0011

0100001B1101

1000001A0101

100111091001

000111080001

111011071110

011011060110

101011051010

001011040010

110011031100

010011020100

10001101100

000011000000

D0D1D2D3D4D5D6Hexa-décimal

A0A1A2A3

Page 7: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 7

ROM (Read Only Memory) – Exemple: Changer la séquence normale d’un compteur

ADDR DATACLK

RST

Page 8: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 8

ROM (Read Only Memory) – Exemple: Changer la séquence normale d’un compteur avec DISPLAY

ADDR DATACLK

RST

Page 9: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 9

ROM (Read Only Memory) – Exemple: Séquences d’ effets spéciaux

ADDR

DATACLK

RST

LSB

ADDR

MSB

Page 10: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 10

ROM (Read Only Memory) – Exemple: CLAVIERavec DISPLAY

ADDR DATA

Page 11: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 11

ROM (Read Only Memory) - Suite

Il existe plusieurs sortes de mémoire ROM :

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 avec la petite fenêtre); et

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

+ NVRAM, FLASH RAM, etc…

Page 12: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 12

Autres types de mémoire que l’on retrouve dans un ordinateur (volatile vs. non-volatile)

ROM,PROM,EPROM,EEPROM,FLASH…

Page 13: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 13

Choix – Electronique programmable

(PLA) PALGALCPLDFPGA

Page 14: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 14

Circuits combinatoires (PAL)

F0 = /A2 . /A1 . /A0

F7 = A2 . A1 . A0

Page 15: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 15

PAL (Programmable Array Logic)

Logique restreinte (par rapport aux CPLDs et FPGAs).C’est le plus populaire des simple PLDs.Programmable une seule fois par survoltage.Plan ET programmable.Plan OU fixe.

Page 16: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 16

PAL 4L4

Page 17: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 17

PAL 16L8

Page 18: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 18

PLA (Programmable Logic Array)

Un PLA (Programmable Logic Array) est similaire à une ROM, mais il ne réalise pas tous les produits de termes comme une ROM. Un PLA à n entrées et m sorties peut réaliser m fonctions de n variables, en autant que chacune requiert un nombre limité de produits des variables en entrée. (En pratique, c’est presque toujours le cas).

Un PLA est composé de deux réseaux programmables, ET et OU.

Page 19: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 19

PLA4 entrées,6 termeset 3 sorties

A3’A2A0

A3A2A0

A3A2’A1’

A2’A1

A1

A2A1

0 1 - 11 1 - 11 0 0 -- 0 1 -- - 1 -- 1 1 -

1 1 01 0 11 0 11 0 00 1 00 0 1

Page 20: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 20

Résumé: ROM, PAL, PLA

Les ROM, PAL et PLA sont composés de deux réseaux : un réseau ET qui génère des mintermes, et un réseau OU qui permet de combiner plusieurs mintermes. La possibilité de programmer chacun de ces réseaux détermine si on a affaire à une ROM, un PAL ou un PLA. Le tableau suivant résume la situation.

Page 21: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 21

GAL (Generic Array Logic)

C’est un PAL reprogrammable Il est constitué de plusieurs macro-cellules que l’utilisateur peut configurer en un bloc combinatoire simple, complexe ou bien en sortie avec registres.

Page 22: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 22

CPLD (Complex Programmable LogicDevices)

D’un point de vue conceptuel, un CPLD consiste en plusieurs macro-cellules de PAL interconnectées par l’entremise d’une matrice de sélection. Contient de quelques dizaines à quelques centaines de macro-cellules.En général, les groupes de 8 à16 macro-cellules se regroupés dans un bloc de fonction.Selon le distributeur et la famille du CPLD, les blocs de fonction sont également interconnectés.

Page 23: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 23

FPGA (Field Programmable Gate Array)Offre la plus grande capacité logique.Un FPGA est une matrice de blocs logiques, entourés de blocs d’E/S, reliés par des connections programmables.Un FPGA peut contenir entre 64 et plusieurs dizaines de milliers de blocs logiques et un nombre de bascules encore plus grand.Il existe deux types de FPGA:

À gros grains (‘coarse-grained’): contient des blocs logiques relativement gros, contenant deux tables de conversion ou plus ainsi que deux bascules ou plus.À grains fins (‘fine-grained’): contient d’avantage de blocs logiques simples. Ces blocs contiennent soit une fonction d’entrée double ou un multiplexeru 4-1 et des bascules.

Les FPGAs les plus denses sont construits à l’aide de la technologie des SRAMsLe procédé d’anti-fusibles est également utilisé parfois.

Page 24: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 24

FPGA (Field Programmable Gate Array)

Un FPGA est composé à la base de :

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; et,des blocs spéciaux d’entrée et de sortie avec le monde extérieur (Input/Output Block –IOB).

Page 25: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 25

Page 26: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 26

CLB

Page 27: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 27

CLB

Combinatoire(Boolean)

Interconnection

Séquentiel

Page 28: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 28

Table de correspondance - MUX

AB

LSB

C

1 0 0 0

AB

LSB

C

0 1 1 1

Page 29: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 29

Table de correspondance - MUX

AB

LSB

C

1 1 1 0

AB

LSB

C

0 0 0 1

Page 30: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 30

Table de correspondance – LUT + MUX

AB

LSB

C

1 1 1 0

AB

LSB

C

0 0 0 1

DFF DFF DFF DFF SR DFF DFF DFF DFF SR

BITSTREAM(Configuration

Bitstream)

Page 31: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 31

Table de correspondance – MUX - Exercices

XY

LSB

C

? ? ? ?

Page 32: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 32

Table de correspondance – « Partition » -Exercices

AB

LSB

C0

1 0 0 0

CD

LSB

C1

1 0 0 0

C0C1

LSB

OUT

1 00 0

(Simplification) + Partitioning

Page 33: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 33

Placement + Routage

Combinatoire(Boolean)

Interconnection

Séquentiel

Bitstream

Bitstream

AB

CD

C0

C1

Ex: S0 = X; S1 = 0; S2 = X; S3 = 0H1 = X

Note: CLB a normalement 4 ou 5 entrées

Page 34: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 34

Placement: CLB? + Routage: bits de configuration dans le bitstream pour interconnections entre CLBs

Page 35: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 35

Avec FF

DFF

D

Combinatoire(Boolean)

Interconnection

AB

CD

AB

Q

Q

(S0 = 0)

Page 36: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 36

Un autre exemple

DFF

D

AB

C

AB

Q

Q

COUT

OUT

Page 37: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 37

Carte MODULA

Page 38: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 38

Embedded ComputerIR Transceiver

64Kx16 SRAM

48 MIPS DSP48 MHz Oscillator

Outside Layer

Central Controller (CPLD)

STM Scan TubeDriving Section

PowerAmplifiers

High Power Rectification Bridge(Outside Section)

High Power Input Voltage Regulation

STM Interface (I/V Amplifier and A/D Converter)

Analog Section Power Converters

TemperatureSensor

Piezo-Drive SwitchingCircuit (One Leg)

IR Emitters

15 mm

Page 39: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 39

ASIC (Application Specific Integrated Circuit) and VLSI (Very Large Scale Integration)

Contrôleurs

Page 40: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 40

TTL, CMOS, etc…

ICs

Page 41: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 41

Exercices – Bitstreams

Page 42: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 42

Exercices - Décodeur 2-à-4 - Bitstream

Page 43: INF1500 : Logique des systèmes numériqueswiki.polymtl.ca/nano/fr/images/3/38/INF1500H10Cours9.pdfDEC1_L DEC2_L DEC3_L DEC4_L DEC5_L DEC10_L DEC11_L DEC12_L DEC13_L DEC14_L DEC15_L

Sylvain Martel - INF1500 43