Chapitre 1 - ESIEE...

63
Chapitre 1 Introduction et codage IGE-1001 : fonctions numériques http://www.esiee.fr/~nouryl/IGE-1001, 22 septembre 2013 Ludovic Noury, ESIEE Paris ([email protected], bureau 3453) 1.1 Objectifs Table des matières 1 Introduction 1 1.1 Organisation du cours ......................... 1 1.2 Objectifs du chapitre 1 ......................... 2 1.3 Analogique vs. Numérique ....................... 2 1.4 Quizz 1 ................................. 4 2 Système numérique 7 2.1 Signaux binaires ............................ 7 2.2 Opérations élémentaires ........................ 8 2.3 Réalisation ............................... 9 2.4 Quizz 2 ................................. 9 3 Représentations binaires 11 3.1 Entiers naturels (N) .......................... 11 3.2 Entiers relatifs (Z) ........................... 14 3.2.1 Représentation en code complément à 2 (CC2) ....... 14 3.2.2 CC2 : addition ......................... 15 3.3 BCD ................................... 16 3.4 Autres codes .............................. 16 3.5 Quizz 3 ................................. 17 1.2 1 Introduction 1.1 Organisation du cours Planning 1. Introduction et codage (TD1) 2. Logique combinatoire (TD1-2, TP1-TP2) 3. Logique séquentielle (TD3-4, TP3) 4. Machines à états (TD4-5, TP4) 1

Transcript of Chapitre 1 - ESIEE...

Page 1: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Chapitre 1Introduction et codageIGE-1001 : fonctions numériqueshttp://www.esiee.fr/~nouryl/IGE-1001, 22 septembre 2013

Ludovic Noury, ESIEE Paris([email protected], bureau 3453)

1.1

Objectifs

Table des matières1 Introduction 1

1.1 Organisation du cours . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Objectifs du chapitre 1 . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Analogique vs. Numérique . . . . . . . . . . . . . . . . . . . . . . . 21.4 Quizz 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Système numérique 72.1 Signaux binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Opérations élémentaires . . . . . . . . . . . . . . . . . . . . . . . . 82.3 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4 Quizz 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3 Représentations binaires 113.1 Entiers naturels (N) . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Entiers relatifs (Z) . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2.1 Représentation en code complément à 2 (CC2) . . . . . . . 143.2.2 CC2 : addition . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.3 BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.4 Autres codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.5 Quizz 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.2

1 Introduction1.1 Organisation du cours

Planning1. Introduction et codage (TD1)2. Logique combinatoire (TD1-2, TP1-TP2)3. Logique séquentielle (TD3-4, TP3)4. Machines à états (TD4-5, TP4)

1

Page 2: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

5. Principes d’un FPGA? (si temps)

Évaluation– TPs 30% (en binôme, le rapport compte beaucoup)– Contrôle final 70% (samedi 16/11/2013 8h-10h)

1.3

Équipe pédagogique– Responsable : L. Noury (3453)– Autres intervenants : A. Exertier (3455), G. Amendola (3452), L. Babad-jian (3354), L. Sevely (3405), M. Abi Hussein (2351), A. D’Hermies (3454),C. Sencio, B. Achard, K. Abdellatif

À l’aide !– Post-assistance– Site du cours (documents, guides, forum, etc) : http://www.esiee.fr/

~nouryl/IGE-1001– Installer Quartus 2 chez vous (version gratuite à télécharger depuis le sitedu cours)

– Livre : T. Floyd, systèmes numériques (bibli. ESIEE)1.4

1.2 Objectifs du chapitre 1

Savoirs– Définitions système analogique et numérique– Représentation et transport de l’information dans un circuit numérique

(code binaire, transmission série et parallèle)– Opérations logiques de base (AND, OR, etc.)– Technologies de réalisation d’un circuit numérique– Codes usuels (CBN, CC2, BCD)

Capacités– Déterminer si un système est numérique/analogique/mixte– Convertir des nombres entres les bases 2, 10 et 16– Représenter des nombres relatifs, code complément à 2– Add., soustraire et comparer des nombres en CBN et CC2

1.5

1.3 Analogique vs. NumériqueQuantité analogiqueDéfinition : quantité analogiqueUne quantité analogique est une quantité ayant des valeurs continues

Exemple : thermomètre à alcoolLa température est définie à chaque instant (une température est définie pourchaque valeur de t ∈ R+)

−10

20

10

0Temps continu, t

Temperature c(t)

1.6

2

Page 3: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Quantité numériqueDéfinition : quantité numériqueUne quantité numérique est une quantité ayant un ensemble discret de valeurs

Exemple : thermomètre digitalLa température approximée est définie seulement à certains instants (unetempérature est définie pour chaque valeur de t ∈ N)

−10

20

10

0

Temperature (n)

Index temps discret, n

−10

20

10

0

Temperature (n)

Index temps discret, n

1.7

Réalisation d’un système électroniqueOn minimise l’usage d’électronique analogique

– Circuit analogique généralement beaucoup plus complexe à concevoir quele circuit numérique équivalent

– De nombreuses fonctions ne peuvent être faites qu’en analogique– Le monde est analogique ⇒ besoin systèmes analogiques pour faire l’inter-face entre :– Domaine numérique, discret (exemple : représentation binaire interne àl’ordinateur)

– Domaine analogique, continu (exemples : phénomènes naturels, externesà l’ordinateur : mesure de température, d’onde sonore, etc)

Forme classique d’un système1. Conversion de la grandeur analogique à traiter en numérique2. Traitement numérique des données3. Conversion des résultats en analogique

1.8

Exemples de systèmes numériques et analogiques

(source : Digital Fundamentals, Floyd)

3

Page 4: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

(source : Digital Fundamentals, Floyd)

1.9

Réalisation du traitement numérique

– Processeur généraliste : coût de développement +, performances + .Ex : Intel Core i7, ARM Cortex M2, utilisé en IGI-1001

– Processeur spécialisé : coût de dév. ++, performances ++ uniquementpour application spécifique au processeur (audio, vidéo, etc.). Ex : DSPTexas Instruments C6000 , GPGPU (General-purpose processing on gra-phics processing units)

– Circuit configurable : coût de dév. +++, performances +++. Ex : FPGAAltera Cyclone II, utilisé en TP

– Circuit dédié (ASIC) : coût de dév. +++++, performances +++++.Ex : Apple A6, Qualcomm Snapdragon

On cherche le meilleur compromis entre temps de conception et coût, en utilisantéventuellement plusieurs technologies simultanément

1.10

Les FPGAs sont partout !

Quelques exemples– Les premières Freebox (jusqu’à v3) pourquoi ?– Les banques accelèrent le traitement des flux des réseaux boursiers à l’aide

de FPGAs (ex : BNP)– Les routeurs Cisco, Alcatel, Motorola. . .– Autres exemples : voir altera.com et xilinx.com

Conclusions– Tous les ingénieurs n’auront pas à savoir concevoir un système sur FPGA. . .

– . . .mais il doivent tous être capables de :– Réaliser le cahier des charges d’accélérateur/interface FPGA,– Programmer un processeur sur FPGA et/ou interfacer avec un FPGA,– Mettre à jour la configuration d’un FPGA, etc,– Faire l’interface (démonstration bugs) avec un sous traitant FPGA, etc.

1.11

1.4 Quizz 11. Donner des exemples de : systèmes purement numériques, systèmes pure-

ment analogiques, systèmes mixtes2. Les premières radios étaient complètement analogiques, aujourd’hui on ne

parle que de numérique. Pourquoi la partie analogique diminue t’elle ? Pour-quoi ne disparaîtra t’elle jamais complètement ?

4

Page 5: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

3. Comparer et expliquer les différences entre les coûts de conception et de fa-brication de systèmes basés sur : processeurs généralistes, DSPs et FPGAs,ASIC

4. Comment déterminer la performance d’un circuit numérique (quels sont lescritères) ?

1.12

5

Page 6: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

6

Page 7: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

2 Système numérique2.1 Signaux binairesBits, niveaux logiques et signaux

Chiffre binaire– Un chiffre binaire est appelé un bit (Binary digIT)– 2 chiffres possibles : 0 et 1

– État électrique bas (L) ⇒ 0 Exemple : L=0V– État électrique haut (H) ⇒ 1 Exemple : H=3.3V

Signal– Un fil transportant un signal numérique a donc uniquement 2 tensions pos-sibles : état haut et état bas

– Exemple : LHHHLLHLLLHHL soit 0111001000110

VL(min)

VL(max)

VH(min)

VH(max)

(0 binaire)

Etat haut (H)

(1 binaire)

Interdit

Etat bas (L)

t0

t1

t0

t1

HAUT

HAUT

BAS

BAS

descendant

front

front

descendant

front montant

front montant

1.13

Signal périodique et horloge

Définitions

T1

T3

T2

– Signal périodique (à gauche) :– Se répète à un intervalle T fixe appelé période Unité : secondes (s)– Sa fréquence f indique le nombre de fois où le signal se répète par unitéde temps. Unité : Hertz (Hz)

– f = 1/T– Signal apériodique (à droite) :– Ne se repète pas identique à lui même au cours du temps

Exercice– Quelle information transporte le signal apériodique ?

1.14

7

Page 8: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

1.15

Transfert de données : parallèle et série

t1

t0

t0

t1

t2

t3

t4

t5

t6

t7

t8

0

0

0

0

1 0 1 1 0 0 1 0

1

1

1

1

So

urc

e(e

xe

mp

le :

ord

ina

teu

r)

De

sti

na

tio

n(e

xe

mp

le :

im

pri

ma

nte

)

So

urc

e(e

xe

mp

le :

ord

ina

teu

r)

De

sti

na

tio

n(e

xe

mp

le :

mo

de

m)1.16

2.2 Opérations élémentairesOpérations logiques de baseOpérations de base :

– NOT (inversion)– AND (et)– OR (ou)– XOR (ou exclusif)

AND

NOT

XOR

OR

Remarques :– D’autres symboles existent (rectangles) mais pour être cohérent avec le

logiciel utilisé en TP on utilisera uniquement les symboles présentés ci-dessus.

– Une table de vérité définit la valeur des sorties (colonnes à droite de ladouble barre verticale) d’un système combinatoire (sans mémorisation) enfonction de la valeur de ses entrées (colonnes à gauche de la double barreverticale).

8

Page 9: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Table de vérité :

A B NOT(A) AND(A,B) OR(A,B) XOR(A,B)0 0 1 0 0 00 1 1 0 1 11 0 0 0 1 11 1 0 1 1 0

1.17

Autres fonctions :– Sélection de données : multiplexeur, demultiplexeur– Fonctions de stockage : bascules, registres, mémoires

1.18

2.3 RéalisationCarte de prototypage FPGA (Terasic DE2)

(source : Altera, 2006)

– Carte utilisée pour les TPs, basée sur un FPGA Altera Cyclone II– Ce FPGA peut être configuré pour réaliser des circuits utilisant jusqu’à

environ 1 million de portes logiques 1.19

2.4 Quizz 21. Quelle est la différence entre un byte et un bit ?2. Combien de temps faut t-il pour transférer la donnée 01001011 en parallèle

(sur 8 bits) ? en série ? Quelle est l’unité de votre résultat ?3. Si la période du signal d’horloge d’un circuit est de 20 ns quelle est sa

fréquence ?4. Que vaut l’expression (NOT(A XOR B)) AND (C OR B) si A=1,B=0 et

C=1 ?5. Quelle sont les principales méthodes pour réaliser un circuit numérique ?

Pourquoi ne peut on pas utiliser un processeur ou un DSP?1.20

9

Page 10: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

10

Page 11: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

3 Représentations binaires3.1 Entiers naturels (N)Même principe que pour le décimal (base B=10)

– 10 chiffres : 0,1,2,3,4,5,6,7,8,9– Exemple : 138 en base 10, noté (138)10– À chaque chiffre xi on associe un poids :

– Le poids de x0 = 8 est 0 (poids faible)– Le poids de x1 = 3 est 1– Le poids de x2 = 1 est 2 (poids fort)

– À chaque poids correspond un facteur fi :– Poids 0 : f0 = B0 = 100 = 1– Poids 1 : f1 = B1 = 101 = 10– Poids 2 : f2 = B2 = 102 = 100

– La valeur du nombre est donc : v = (x2 × f2) + (x1 × f1) + (x0 × f0) =(1×100)+(3×10)+(8×1) = 138 1.21

Code naturel : cas général– v = (x(N−1)×B(N−1))+ . . . · · ·+(x1×B1)+(x0×B0)– B=base, N=nb. de chiffres du nombre 1.22

Conversion code binaire naturel (B=2) vers décimalDans ce cours, comme en décimal, les bits de poids fort seront

toujours à gauche et ceux de poids faible à droite1. d = (10001010)2

2. d = (1× 27) +(0× 26) +(0× 25) +(0× 24) +(1× 23) +(0× 22) +(1× 21)+(0×20)

3. d = 27 +23 +21

4. d = 128+8+2 = (138)10 1.23

Nombres hexadécimaux (B=16)– 16 chiffres : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F– A=10,B=11,C=12,D=13,E=14,F=15– Conversion en décimal :

1. d = (8A)16

2. d = (8×161)+(A×160)3. d = (8×16)+10 = (138)10 1.24

11

Page 12: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Compter en binaire et intérêt de l’hexadécimal

Décimal Binaire Hexadécimal0 0 0 0 0 01 0 0 0 1 12 0 0 1 0 23 0 0 1 1 34 0 1 0 0 45 0 1 0 1 56 0 1 1 0 67 0 1 1 1 78 1 0 0 0 89 1 0 0 1 910 1 0 1 0 A11 1 0 1 1 B12 1 1 0 0 C13 1 1 0 1 D14 1 1 1 0 E15 1 1 1 1 F

Conversion hexa⇔decimal– 1 nombre hexadécimal représente 4 bits– D’où conversion immédiate hexadécimal⇔ binaire– Exemple : (1CE6)16= (0001 1100 1110 0110)2

1.25

Conversion décimal ⇒ binaire– Méthode utilisée :– Somme des poids– But : décomposer en somme de puissances de 2– Astuce : au début faire le tableau suivant au brouillon pour s’aider

20 21 22 23 24 25 26 27 28 29 210

1 2 4 8 16 32 64 128 256 512 1024– Exemple :– Conversion de (42)10– On soustrait itérativement les puissances de 2 immédiatement inférieuresou égale1. 32 < 42 < 64 on sélectionne 32 soit 25. On soustrait : 42−25 = 42−

32 = 102. 8 < 10 < 16 on sélectionne 8 soit 23. On soustrait : 10−23 = 10−8 = 23. 2 est une puissance de 2, on sélectionne 2 soit 21. On soustrait :

2−21 = 0– On en déduit le résultat : 25 +23 +21 soit (42)10 = (101010)2

RemarqueIl existe d’autres méthodes, mais je vous demande d’utiliser celle là !

1.26

Arithmétique en code binaire naturel (non signé)

Rappel : code binaire naturel (CBN)– v = (x(N−1)×B(N−1))+ . . . · · ·+(x1×B1)+(x0×B0)– C’est le cas où B = 1 B = 2

12

Page 13: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Dépassement de capacité– Un dépassement de capacité (overflow) se produit lorsque le résultat d’uneopération sur N bits à une valeur supérieure à celle représentable sur N bits

– En CBN, on détecte le dépassement de capacité à la présenced’une retenue sortante

1.27

Addition

1 10 1 1 3

+ 0 0 1 + 11 0 0 4

Soustraction

-11 0 1 5

- 0 1 1 - 30 1 0 2

1.28

CBN : taille en bit et intervalle représentable– Il y a un nombre infini d’entiers naturels– Mais en binaire, un entier naturel est représenté en CBN sur un nombre

fini de bits– Comment déterminer les nombres représentables sur N bits ?– 1 bit : max(CBN 1 bit) = 20 = 1, 2 nombres représentables : {0,1}– 2 bits : max(CBN 2 bits) = 21 +20 = 3, 4 nombres représentables : {0,1,2,3}– 3 bits : max(CBN 3 bits) = 22 + 21 + 20 = 7, 8 nombres représentables :{0,1,2,3,4,5,6,7}

– On en déduit le cas général sur N bits : max(CBN N bits) = 2N−1 + . . .22 +21 +20 = 2N −1, 2N nombres représentables : {0,1,2, . . . ,2N −1} 1.29

– Comment déterminer le nombre minimal de bits pour représenter un nombre ?– C’est l’exposant de la puissance de 2 strictement immédiatement supé-rieure :

20 21 22 23 24 25 26 27 28 29 210

1 2 4 8 16 32 64 128 256 512 1024– Exemples :

– 302 sera représenté sur au moins 9 bits– et 4 ? . . . sur 3 bits :(0)10 = (0)2; (1)10 = (1)2; (2)10 = (10)2; (3)10 =

(11)2; (4)10 = (100)2– Pour les grands nombres, vous pouvez utiliser le log en base 2 :

– Rappel : y = logb v dététermine y tel que by = v– On en déduit que l’exposant de la puissance de 2 immédiatement stric-

tement supérieure est : N = arrondi_supérieur(log2 v)

N ={

arrondi_supérieur(log2 v) si log2 v n’est pas un entier(log2 v)+1 si log2 v est un entier

– Exemple : 65234 : log2 65234 = 15,993 d’où N = 16 bits 1.30

CBN : conversion n bits vers m bits (avec m>n)– Comment convertir un nombre en CBN représenté sur n bits en un nombre

sur m bits (avec m > n) ?

13

Page 14: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

– On ajoute simplement le nombre de zéros nécessaires pour arriver à m bits,du côté des poids forts

– Exemple : (12)10 = (1100)CBN = (01100)CBN = (00001100)CBN 1.31

3.2 Entiers relatifs (Z)Représentation des entiers relatifs (Z)

Principe– Rappel : représentation des entiers naturels (N) à l’aide du code binairenaturel (CBN). Exemple : (178)10 =128 + 32 + 16 + 2 =27 + 25 + 24 + 21=(10110010)2

– Pour pouvoir représenter les entiers relatifs (nombres signés) on ajoute unbit de signe S placé en poids fort– S = 0 : le nombre est positif– S = 1 : le nombre est négatif

– Plusieurs codages : signe-magnitude, complément à 1, complément à 2, etc.– On utilisera uniquement le code complément à 2 (CC2)

1.32

3.2.1 Représentation en code complément à 2 (CC2)Rappel :À chaque bit xi est associé :

– Un poids i selon la position du bit dans le nombre– Un facteur fi dont la valeur dépend du codage et du poids du bit

Principe– Le facteur associé au bit de signe est −2i

– Le facteur associé aux autres bits est 2i, comme en CBN– Si seul le bit de signe vaut 1 on aura le plus petit nombre négatif représen-table– Exemple sur 4 bits : (1000)CC2 =−23 =−8

– Mettre les autres bits à 1 rapproche le nombre de 0– Exemples :– (1000)CC2 =−23 =−8– (1001)CC2 =−23 +20 =−8+1 =−7– (1101)CC2 =−23 +22 +20 =−8+4+1 =−3– (1111)CC2 =−23 +22 +21 +20 =−8+4+2+1 =−1

– Question : quelles sont les valeurs représentées par les CC2 suivants : 10,110, 1110 ? (pas sur poly)

1.33– Nombre positif :

– On ajoute un bit de signe S = 0 en poids fort de sa représentation enCBN

– Exemple : (178)10 = (0 10110010)CC2 1.34– Nombre négatif : Exemple : (−178)10

1. Recherche puissance de 2 inférieure la plus proche−20 −21 −22 −23 −24 −25 −26 −27 −28 −29

-1 -2 -4 -8 -16 -32 -64 -128 -256 -512−256 =−28⇒ poids du bit de signe : 8 et codage sur au minimum 9bits

2. Addition de puissances de 2 jusqu’à arriver au nombre– On part de la puissance la plus haute et à chaque fois on la sélec-

tionne si elle ne fait pas dépasser la valeur cible

14

Page 15: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

– −256+64 =−192– −192+8 =−184– −184+4 =−180– −180+2 =−178(−178)10 =−28 +26 +23 +22 +21 = (1 01001110)CC2 1.35

CC2 : décodage (nombre sur N bits)– Version en matheux :

– v =−2(N−1)x(N−1) +∑(N−2)

i=0 (2i ·xi)– Version en français (un peu matheux) :– Le bit de signe x(N−1) a pour facteur : −2(N−1)

– Les autres bits xi ont pour facteur : 2i

– La valeur est obtenue en additionnant tous les facteurs dont le bit associévaut 1

– Exemples :– (00010111)CC2 =24+22+21+20 =16+4+2+1 =(+23)10– (11101001)CC2 =−27+26 +25 +23 +20 =−128+64+32+8+1 =(−23)10

Binaire CC200000000 000000001 1

... ...01111110 12601111111 12710000000 -12810000001 -12710000010 -126

... ...11111110 -211111111 -1

1.36

3.2.2 CC2 : addition

En CC2 on ignore TOUJOURS la retenue sortante, 3 cas possibles :

– 2 nombres positifs :00000111 7

+ 00000100 + 400001011 11

– Nombre positif > abs(nombre négatif) :00001111 15

+ 11111010 + -61 00001001 9

– 2 nombres négatifs :11111011 -5

+ 11110111 + -91 11110010 -14 1.37

CC2 : dépassement de capacité (overflow)– Comment déterminer si il y a overflow si on ne peut pas utiliser la retenuesortante ?

– Il y a overflow si la somme de deux nombres de même signe n’a pas le mêmesigne

15

Page 16: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

– Exemple :01111101 125

+ 00111010 + 5810110111 -73 ! ! 1.38

CC2 : extension de signe– Comment éviter l’overflow ?– Comment additionner deux nombres représentés sur nombre de bits diffé-

rents ?– ⇒ extension (duplication) du bit de signe– Si le bit de signe vaut 0 on ajoute des 0 en poids fort (à gauche)– Si le bit de signe vaut 1 on ajoute des 1 en poids fort (à gauche)

– Exemple 1 (pour éviter un overflow) :01111101 001111101 125

+00111010 +000111010 +58010110111 183

– Exemple 2 (2 nombres de tailles différentes) :10110 1110110 -10

+0111001 + 0111001 +5710101111 47 1.39

3.3 BCDDécimal codé en binaire (BCD)Principe

– BCD : Binary Coded Decimal– Le BCD permet une conversion simple entre décimal et binaire– 4 bits ⇒ 16 combinaisons

– 10 utilisés pour coder les chiffres de 0 à 9– 6 interdites (1010 1011 1100 1101 1110 1111)Chiffre Décimal 0 1 2 3 4 5 6 7 8 9BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Exemples– 35 ⇒ 0011 0101– 1000 0110 0001 ⇒ 861 1.40

3.4 Autres codesCode de Gray

– Un seul bit change lors du passage d’un code au code suivant– Exemples d’utilisation : codeurs rotatifs, tables de Karnaugh– Comment compter en code de Gray ?

– On commence avec tous les bits à 0– Pour passer au nombre suivant on inverse le bit le plus à droite permet-tant d’obtenir une nouvelle combinaison

Decimal Binaire Gray Décimal Binaire Gray0 0000 0000 8 1000 11001 0001 0001 9 1001 11012 0010 0011 10 1010 11113 0011 0010 11 1011 11104 0100 0110 12 1100 10105 0101 0111 13 1101 10116 0110 0101 14 1110 10017 0111 0100 15 1111 1000

1.41

16

Page 17: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Codage des caractères– Code ASCII : American Standard Code for Information Interchange, codeutilisant 7 bits

– ASCII étendu (le plus courant aujourd’hui), utilise 8 bits (ajoute carac-tères non américains, quelques symboles mathématiques, etc)

– Unicode : environ 100 000 caractères (codage à taille variable de 8 pourles caractères les plus répandus à 32 bits pour les plus rares), de plus enplus utilisé.

0 1 2 3 4 5 6 7 8 9 A B C D E F0

1

2

3

4

5

6

7

NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI

DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US

! " # $ % & ' ( ) * + , - . /

0 1 2 3 4 5 6 7 8 9 : ; < = > ?@ A B C D E F G H I J K L M N O

P Q R S T U V W X Y Z [ \ ] ^ _

` a b c d e f g h i j k l m n op q r s t u v w x y z { | } ~ DEL

b6b5b4

000

001

010

011

100

101

110

111

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

b3b2b1b0

(source : wikipedia)

1.42

3.5 Quizz 31. Soit A = 011110101 Quel est le bit de poids fort ? Quel est le bit de poids

faible ? Que vaut A ?2. Quelles sont les valeurs décimales de (AE23)16 et (110101)2 ?3. Quelles sont les valeurs binaires et hexadécimales de 130 et 44579 ?4. Si (FF )16 représente un nombre codé en complément à 2 quelle est sa

valeur ?5. Ajouter -3 et 32 en CC2 sur un nombre suffisant de bits6. Quelle est la valeur en code BCD de 10 ?

1.43

17

Page 18: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

18

Page 19: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

19

Page 20: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Chapitre 2Logique combinatoireIGE-1001 : fonctions numériqueshttp://www.esiee.fr/~nouryl/IGE-1001, sep. 2013

Ludovic Noury, ESIEE Paris([email protected], bureau 3453)

2.1

Objectifs du chapitre 2

Savoirs– Fonctionnement des principales portes logiques– Méthodologie de conception d’un circuit combinatoire

Capacités– Savoir concevoir un circuit combinatoire simple à partir de sa description

fonctionnelle sous forme d’un cahier des charges– C’est-à-dire être de capable de :

1. Déterminer la table de vérité à partir du cahier des charges2. Extraire et simplifier les équations correspondances3. Faire la schématique du circuit électronique associé4. Utiliser un logiciel de conception pour implanter le circuit sur un

FPGA5. Tester le circuit sur le FPGA

2.2

Table des matières1 Portes logiques 2

2 Algèbre booléenne 32.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Lois et règles principales . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Conception d’un circuit combinatoire 53.1 Spécification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53.2 Simplification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4 Réalisation 84.1 Schématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84.2 Implantation sur FPGA . . . . . . . . . . . . . . . . . . . . . . . . 9

5 Composants usuels 10

1

Page 21: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

6 Compléments 126.1 Logique booléenne . . . . . . . . . . . . . . . . . . . . . . . . . . . 126.2 Préparation LAB1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

7 Exercices 16 2.3

1 Portes logiquesOpérations logiques élémentaires (rappel)

– NOT (inversion)– AND (et)– OR (ou)– XOR (ou exclusif)

AND

NOT

XOR

OR

A B NOT(A) AND(A,B) OR(A,B) XOR(A,B)0 0 1 0 0 00 1 1 0 1 11 0 0 0 1 11 1 0 1 1 0

2.4

Exercice : compléter les chronogrammes

I Q

1

0

0

1

Q

I

A

B

Q

Q

B

A A

B

Q

B

AQ

B

AQ

B

AQ

2.5

2

Page 22: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

InversionsPortes à sortie inversées

– NAND : NAND(A,B) = NOT(AND(A,B))– NOR : NOR(A,B) = NOT(OR(A,B))– XNOR : XNOR(A,B) = NOT(XOR(A,B))– Symboles : ajout d’un rond sur la sortie (comme pour le NOT) pour indiquer

que la sortie est inversée2.6

Symbole d’inversion (rond)– Sur une entrée : indique que l’entrée est active à l’état bas– Sur une sortie : la sortie est inversée

– Exercice : déterminer la table de vérité des deux portes AND de droite

2.7

2 Algèbre booléenne2.1 PrincipeDéfinitionsAlgèbre de Boole

– Basée sur les travaux de George Boole (1854)– Permet d’exprimer et d’analyser le fonctionnement des circuits logiques sous

une forme mathématique– Très utile pour concevoir des circuits électroniques numériques

Variable– Symbole utilisé pour représenter une action, une condition ou une donnée– Une variable peut avoir seulement deux valeurs : 0 ou 1

2.8

3

Page 23: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Opérations booléennes

Complément– Équivalent à l’opération NOT– C’est l’inverse d’une variable– Le complément de la variable A est noté A– Si A = 1, alors A = 0

Addition booléenne– Équivalente à l’opération OR (vaut 1 si au moins un des termes vaut 1,sinon vaut 0)

– 0+0 = 0 0+1 = 1 1+0 = 1 1+1 = 1– Exemples : A+B A+B +C +D A+1

2.9

Multiplication booléenne– Équivalente à l’opération AND (vaut 1 si tous les termes valent 1, sinon

vaut 0)– 0 ·0 = 0 0 ·1 = 0 1 ·0 = 0 1 ·1 = 1– Exemples : A ·B AB AB AB (A+BC)D A ·1

Ou exclusif (XOR)– Pas d’équivalence avec les 4 opérations usuelles, on ajoute un opérateurequivalent au XOR ayant pour symbole ⊕

– 0⊕0 = 0 0⊕1 = 1 1⊕0 = 1 1⊕1 = 02.10

2.2 Lois et règles principales

Lois– Commutativité : A+B =B +A– Associativité : A+(B +C) =(A+B)+C– Distributivité : A(B +C) =AB +AC

Règles de base1. A+0 =A

2. A+1 =13. A ·0 =04. A ·1 =A

5. A+A =A

6. A+A =17. A.A =A

8. A.A =09. A =A

10. A+AB =A

11. A+AB =A+B

12. (A+B)(A+C) =A+BC2.11

Lois de DeMorgan :1. XY =X +Y

2. X +Y =X ·Y

4

Page 24: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Exercice :Simplifiez A+BC +D(E +F ) de façon à ne plus avoir de doubles négations

2.12

3 Conception d’un circuit combinatoire3 Étapes

1. Spécification : entrées/sorties, table de vérité2. Simplification : simplification des équations, décomposition en sous-blocs

moins complexes, réutilisation de composants3. Réalisation :enumerate mise sur carte et test 2.13

3.1 SpécificationConstruction de la table de vérité

SpécificationÀ partir du cahier des charges :

1. Définir les entrées et les sorties2. Formaliser le fonctionnement

– Définir précisément les valeurs des sorties en fonction des entrées– Si le circuit est suffisamment simple : construire la table de vérité– Si le circuit est trop complexe (additionneur 32 bits, processeur complet)

le décomposer en sous-composants plus simples

5

Page 25: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

2.14

Exemple : multiplexeur 2 entrées (trivial mais montre la méthode)Cahier des charges : construire un composant permettant de sélectionner unede ses deux entrées A et B comme sortie

2.15

Mise en équation des fonctions à réaliser

À partir de la table de vérité on peut extraire la fonction à réaliserPour chaque sortie :

1. On exprime chacune des conditions pour laquelle la sortie vaut 12. On regroupe ces conditions dans une seule équation

Exemple : multiplexeur 2 entrées (suite)

2.16

Définition

Somme de produits (SOP)L’expression extraite de la table de vérité est appelée « somme de produits »(SOP, sum of products) ou forme normale disjonctive

6

Page 26: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Remarques– L’expression obtenue n’est pas la forme la plus simple mais on peut la

simplifier– Cette méthode peut être appliquée de manière mécanique et efficace à n’im-porte quel système, même très complexe, à condition d’avoir la table devérité

– Toute la difficulté est donc d’exprimer le cahier des charges sous formed’une table de vérité, la suite étant « automatique » (Et donc décomposeren sous-blocs plus simples si la table de vérité est trop complexe/longue)

2.17

Astuce– Une table de vérité à n entrées a 2n lignes– Donc pour n = 5 on aura 32 lignes et donc au pire l’équation SOP de S

aura 32 termes !– L’astuce est s’il y a moins de lignes à 0 que de lignes à 1 de donner lerésultat sous la forme : S = SOP des lignes à 0

– Lors de la simplification, il est souvent plus simple (et suffisant), de laisserla négation et de simplifier seulement la « SOP des lignes à 0 »

2.18

3.2 SimplificationBesoin de simplification

Implantation directe– En théorie on peut maintenant directement implanter la fonction, mais en

pratique on ne le fait généralement pas. Pourquoi ? Car le résultat est trèssous-optimal

– Dans l’exemple Q = selAB +selAB +selAB +selAB il faudrait : 8 portesAND à 2 entrées, 3 portes OR à 2 entrées et 4 inverseurs !

Simplification– L’étape suivante est donc la simplification des fonctions booléennes à réa-liser

– 2 méthodes usuelles :1. Algèbre booléenne2. Tables de Karnaugh (supprimé du programme, ne servait qu’en E1)

2.19

Principe– On simplifie en utilisant les lois et 12 règles de base– Demande une bonne connaissance de l’algèbre booléenne, de la pratique,

beaucoup de rigueur et un peu d’astuce ...

Simplification de l’exemple du multiplexeur1. Q = selAB +selAB +selAB +selAB

2. Q = sel(AB +AB)+sel(AB +AB)3. Q = sel(A��B +A��B)+sel(��AB +��AB)4. Q = selA+selB

2.20

7

Page 27: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Exercice

ÉnoncéSimplifiez l’équation booléenne suivante : S1 = [AB(C +BD)+A ·B]C

2.21

4 Réalisation4.1 Schématique

Une fois les équations obtenues, on réalise le schéma du circuit

8

Page 28: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Exemple du multiplexeur (fin)

– Composants utilisés :– 3 connecteurs d’entrées. Nom du composant Quartus : input– 1 connecteur de sortie. Nom du composant Quartus : output– 1 inverseur. Nom du composant Quartus : not– 2 portes AND. Nom du composant Quartus : and2– 1 porte OR. Nom du composant Quartus : or2

2.22– On peut utiliser plusieurs fois le même composant– Pour les différentier on leur donne à chacun un nom différent– En pratique, on dit que l’on instancie un composant et chaque instance ason propre nom

– Exemple : inst1 et inst2 sont deux instances du composant AND2– Vous n’avez pas à indiquer de noms d’instance sur vos schémas papier,par contre il faut comprendre ce principe pour résoudre les problèmes enTP (le logiciel nomme automatiquement les instances mais après quelquescopier/coller il y a noms en double à corriger manuellement) 2.23

Utilisation de composants– En plus des portes logiques élémentaires, vous pouvez utiliser d’autres com-

posants :– Soit fournis par une source extérieure (fabriquant du FPGA, enseignants,etc.)

– Soit vos propres composants– Aussi ne faites pas 10 fois le même schéma en changeant un seul détail ...mais créez un composant et utilisez le par la suite

– Bien sûr tout composant doit être parfaitement défini. Donner seulementl’interface (E/S) du circuit demandé ne sera pas considéré comme répondantà la question ! 2.24

Que faire des entrées ou sorties non utilisées ?– Si vous n’avez pas besoin d’utiliser la sortie d’un composant vous pouvez

la laisser déconnectée– Par contre, toutes les entrées doivent être connectées.– Donc si vous n’avez pas besoin d’une entrée, connectez là à 0 (composantgnd Quartus) ou à 1 (composant vcc Quartus) 2.25

4.2 Implantation sur FPGA1. Création projet : on crée un projet dans le logiciel de conception pour FPGA

(en TP : Altera Quartus II 13.0SP1) et on sélectionne le FPGA qui serautilisé : Cyclone II EP2C35F672C6

2. Saisie de la schématique du composant à réaliser3. Synthèse de la schématique (Analysis & Synthesis) . Lors de cette étape, le

logiciel analyse la structure de votre schématique, vérifie que tous les com-

9

Page 29: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

posants sont utilisés et correctement connectés puis détermine les ressourcesdu FPGA à utiliser pour réaliser le circuit.

4. Affectation des connecteurs– À chaque entrée (A, B, sel, . . .) on associe une broche du FPGA qui est

connectée à un interrupteur, un bouton poussoir, etc.– À chaque sortie (Q, . . .) on associe une broche du FPGA qui est connectée

à une LED, un afficheur 7 segments, etc.– Pour éviter les cours circuits on configure toutes les connecteurs non

utilisés du FPGA en haute impédance (as input tri-stated).Explications : les connecteurs du FPGA peuvent être programmés commedes entrées ou des sorties, cependant la carte de développement (DE2) fixele sens des connecteurs. D’où le problème suivant : certains connecteursdu FPGA sont connectés à des sorties d’autres composants (mémoires,générateur d’horloge, etc.) et par défaut le logiciel met en sortie tous lesconnecteurs non utilisés, avec comme conséquence des court-circuits quirisquent de griller carte !

5. Placement/routage (Fitter) : sélectionne les blocs du FPGA à utiliser pourréaliser le circuit et définit leurs connexions

6. Assemblage (Assembler) : crée un fichier binaire contenant la configurationdu FPGA permettant de réaliser le circuit

7. Programmation : envoi du fichier de configuration au FPGA . Après cetteétape le FPGA se comporte exactement comme le circuit de votre schéma-tique.

2.26

5 Composants usuelsMultiplexeur

Un multiplexeur (multiplexer, mux) 2 vers 1 a 2 bits de données A et B, 1 bitde sélection SEL et un bit de sortie Q défini par Q = S ·A+S ·B .

Un multiplexeur 2N vers 1 permet de sélectionner via N bits de sélection unedes 2N entrées de données.

Les deux symboles (parallélogramme et rectangle, pas l’interrupteur) sontcouramment utilisés pour représenter le multiplexeur.

(source : wikipedia)

sel I0 I1 out

0

0 0 00 1 01 0 11 1 1

1

0 0 00 1 11 0 01 1 1

0

10

1

a

bq

a

bcd

q2

3

sel sel

1

1

1

1

1

1

1

1

2

2.27

10

Page 30: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

DemultiplexeurUn démultiplexeur (demultiplexer, decoder) dispose de N bits de sélection et

de 2N sorties. La sortie sélectionnée est mise à 1 ou à 0 en fonction de l’entrée inalors que toutes les autres sorties (non sélectionnées) sont à mises à 0.

sel in Q0 Q1

0 0 0 01 1 0

1 0 0 01 0 1

(source : wikipedia) 2.28

Afficheur 7 segmentsUn afficheur 7 segments (7-segment display) dispose de 7 segments indépendants(a à g) et parfois d’un point (dp, dot point)

(source : wikipedia)

Un décodeur 7 segments (7-segment decoder) traduit un code hexadécimal (4bits) en un mot de 7 bits qui correspondent aux segments.

Par exemple, si l’entrée est 0111, on souhaite afficher 7, on doit donc allumerles segments a, b et c

2.29

11

Page 31: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

6 Compléments6.1 Logique booléenne

– AND est plus prioritaire que OR– P1 = A+B ·C +D ·E +F ·G ·H– Est équivalent à P1 = A+(B ·C)+(D ·E)+(F ·G ·H)– Pour le XOR toujours mettre les parenthèses 2.30

XOR (ou-exclusif)– Quand utiliser un XOR?

– X = A⊕B =

A

BX

A B X0 0 00 1 11 0 11 1 0

A

B

X

2.31

X-NOR (non ou-exclusif)– Exercice : simplifier X2 = A⊕B

2.32

Portes logiques à plus de 2 entrées

AND – S1 = x1×x2×·· ·×xn est vrai uniquement si tous les xi sont vrais– S1 peut être réalisé à l’aide d’une porte AND à n entrées. La sortie vaut

1 uniquement lorsque toutes les entrées valent 1OR – S2 = x1 +x2 + · · ·+xn est vrai si au moins l’un des xi est vrai

– S2 peut être réalisé à l’aide d’une porte OR à n entrées. La sortie vaut1 tant que au moins une entrées vaut 1

XOR – La définition du XOR ne fait pas sens avec plus de 2 entrées– Il existe des portes dîtes XOR à plus de 2 entrées elle calculent en fait

une succession de XOR à 2 entrées– S3 = x1⊕x2⊕x3⊕x4– Calcule en fait S3 = (((x1⊕x2)⊕x3)⊕x4)

– Une porte AND (resp. OR, XOR) à n entrées peut être réalisée en chaînanten série ou en arbre plusieurs portes AND (resp. OR, XOR) 2.33

12

Page 32: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Lois de De Morgan : exercices– Simplifier : S4 = FEA+EB +ECF +ED +F S4 = FEA + EB + ECF +

ED +F

– Simplifier : S5 = A+B +A ·D

– Les lois de De Morgan :– S’appliquent dans les deux sens– Ne sont pas limitées à 2 termes– Ne s’appliquent qu’à des variables connectées uniquement par des ANDou uniquement par des OR mais pas par des AND et des OR 2.34

Simplifications– Pourquoi simplifier ?

– Pour limiter la complexité du schéma– Plus il y a de composants plus le risque d’erreur et élevé et plus la re-cherche de la source de l’erreur est compliquée

– Quand s’arrêter ?– Quand on pense avoir l’équation la plus simple, ou en TP quand on aune équation suffisamment simple 2.35

Équation ⇒ schématique– Faire le schéma du circuit correspondant aux équations suivantes

X = (A ·B)+A+A ·CY = A⊕B +A ·C

13

Page 33: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

2.36

6.2 Préparation LAB1– Le TP est intégralement et uniquement en anglais !– Venir avec un casque audio 2.37

Générateur de parité impaire

Détection d’erreurs de transmission par bit de parité– On veut transmettre une donnée de N bits– Pour détecter les erreurs de transmission on ajoute un bit de parité P définit

de façon à ce que les N+1 bits à transmettre aient un nombre pair de 1 (lecontraire existe aussi)

– À la réception des N+1 bits si le nombre de bits reçus n’a pas un nombrepair de bits à 1 alors on détecte une erreur de transmission

Exercice– En IGE-1001 (par convention), on appelle générateur de parité impaireun composant à N entrées dont la sortie vaut 1 uniquement si ses entréesreçoivent un nombre impair de bits à 1

– Concevoir le circuit en respectant la méthode du cours pour N=2, N=3,N=4

– Pour toute valeur de N : donner l’équation (faire la démonstration)

14

Page 34: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

2.38

15

Page 35: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

7 Exercices

Alarme automobileConcevoir un circuit automobile déclenchant une alarme quand :

– Les phares sont allumés et l’allumage est coupé– La porte est ouverte et le contact d’allumage est mis

Contrôleur de réservoir à caramel pour usine à bonbons– Concevoir le circuit de contrôle des vannes du réservoir– La vanne de remplissage est ouverte quand le caramel est sous le niveau

minimum. La vanne n’est refermée qu’au niveau maximum. Un capteur deflot permet de détecter un remplissage en cours

– La vanne d’évacuation est ouverte si la température est suffisante sauf si lereservoir est en cours de remplissage ou sous le niveau minimum

Convertisseur ASCII 7 bits vers 7-segmentsConcevoir un circuit convertissant une valeur ASCII (seuls les caractères E, S etI sont gérés) en la valeur correspondante permettant d’afficher la lettre sur unafficheur 7 segments (segments actifs à l’état bas)

2.39

16

Page 36: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Chapitre 3Logique séquentielle (support 1)IGE-1001 : fonctions numériqueshttp://www.esiee.fr/~nouryl/IGE-1001, oct. 2013

Ludovic Noury, ESIEE Paris([email protected], bureau 3453)

3.1

Objectifs du chapitre 3

Savoirs– Éléments mémorisants : bascule D (DFF), registre– Registres (PISO, PIPO, SIPO, etc.)– Compteurs usuels– Méthodologie de conception d’un circuit séquentiel

Capacités– Concevoir un circuit séquentiel simple à partir de sa description fonction-

nelle (exemples : compteurs, registres PISO, PIPO, SIPO, ...)– C’est à dire être capable de :

1. Déterminer la table de vérité2. Extraire et simplifier les équations3. Saisir la schématique du circuit électronique associé4. Réaliser et tester le circuit sur FPGA

3.2

Table des matières1 Fonction mémorisation 1

1.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 DFF, paramètres temporels, signaux multibits et registre . . . . . 2

2 Système synchrone 92.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.3

1 Fonction mémorisation1.1 PrésentationCircuit séquentiel vs. combinatoire

– Circuit combinatoire :– Les sorties dépendent uniquement des entrées– sorties = fcombi(entrées)

1

Page 37: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

– Circuit séquentiel :– Possède des éléments mémorisants 1

– Les valeurs mémorisées définissent l’état interne du circuit– Les sorties dépendent des entrées et de l’état interne– sorties = fseq(entrées,état) 3.4

Méthode de conception synchrone– Tous les éléments mémorisants sont contrôlés (synchronisés) par un signal

d’horloge global– La lecture des données et leur stockage (écriture) sont initiés au front mon-tant du signal d’horloge. Dans ce cours on utilisera uniquement le frontmontant du signal d’horloge, mais certains systèmes utilisent le front des-cendant, voir les deux en même temps.

– La méthode :– On considère les valeurs mémorisées (les sorties des bascules et des re-gistres) comme des entrées

– On considère les valeurs à mémoriser (les valeurs que l’on veut écrire dansles bascules et les registres) comme des sorties

– On peut alors réutiliser la même méthode de conception que pour lescircuits combinatoires (table de vérité, puis équations, puis circuit) 3.5

Mémoires électroniques

Deux catégories– Mémoires volatiles : bascules, registres, bancs de registres, SRAM, DRAM

. . . ne conservent pas leur valeur sans alimentation– Mémoires non volatiles : ROM, flash, FRAM . . . conservent leur valeursans alimentation

Bascules– flip-flop en anglais (abréviation courante : FF)– Il existe plusieurs type de bascules (SR, JK, T, D) seules les bascules Drestent couramment utilisées aujourd’hui

– Nous utiliserons uniquement des bascules D pour les TP et TD3.6

1.2 DFF, paramètres temporels, signaux multibits et registreBascule D (DFF)

– L’élément mémorisant de base est la bascule de type D (aussi appeléebascule D, D-type flip-flop ou DFF)

– Une bascule permet de mémoriser un bit– La valeur mémorisée détermine la sortie Q de la bascule– Q est un signal de 1 bit dont l’état représente la valeur mémorisée : Q=1pour valeur 1 mémorisée, et Q=0 pour valeur 0 mémorisée

– La valeur du signal D est lue puis stockée dans la bascule lors du frontmontant du signal CLK

1. Exemples d’éléments mémorisants : bascules D, registre, SRAM.

2

Page 38: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

– Symbole et tables de vérité (à gauche table de vérité détaillée, à droite tablede vérité compacte équivalente) :

D Q

CLK Qt D Q(t+1)0 0 - 00 1 - 11 0 - 01 1 - 1

- 0 0- 1 1

CLK Q(t+1)0 Qt

1 Qt

D

3.7

Définitions– Signal synchrone : pris en compte (et/ou modifié) uniquement lors des

fronts montants du signal d’horloge– Signal asynchrone : pris en compte (et/ou modifié) indépendamment dela valeur du signal d’horloge

– Actif à l’état bas : L’action associée (mise à 0, allumage du segment,etc.) est activée lorsque le signal est à l’état bas (0). Souvent dénoté par unn à la fin du nom du signal (resetn par exemple) et une « bulle » devantl’entrée correspondante du schéma du composant

– Actif à l’état haut : l’action associée au signal est activée lorsque le signalest à l’état haut (1)

– Signal externe d’initialisation globale asynchrone (resetn) : utiliséune seule fois au démarrage et actif à l’état bas. Il permet de mettre lecircuit dans un état initial connu en forçant à une valeur prédéterminée(pas forcement que des 0) les éléments mémorisants du système 3.8

Bascule D avec initialisation asynchrone– Rappel : au démarrage du système, l’état des DFFs est inconnu

– Il est nécessaire d’initialiser le système à un état interne connu– Un signal d’initialisation asynchrone (reset asynchrone), généralementactif à l’état bas, est envoyé à chaque DFF

– Chaque DFF sera alors initialisée à une valeur adaptée à l’initialisationdu système (pas nécessairement 0)

– Un signal asynchrone agit indépendamment du signal d’horloge– Généralement une DFF possède 2 signaux d’initialisation asynchrones clrn(clear, actif à l’état bas) et prn (preset, actif à l’état bas) permettant deforcer la valeur stockée à ’0’ ou ’1’

D Q

CLRN

PRN

PRN CLRN CLK Q(t+1)1 1 0 Qt

1 1 1 Qt

1 1 D0 1 - 11 0 - 00 0 - interdit 3.9

Bascule D avec autorisation d’écriture synchrone (DFFE)– Pour de nombreuses applications, il est nécessaire de pouvoir activer/dé-

sactiver le gel de l’écriture dans la DFF depuis un signal externe– ⇒ ajout d’une entrée ENA, active à l’état haut– PRN et CLRN sont prioritaires sur ENA– La valeur de la bascule ne peut être modifiée que si ENA vaut 1 (sauf si

PRN ou CLRN sont actifs)

3

Page 39: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

D Q

CLRN

PRN

ENA

PRN CLRN CLK ENA Q(t+1)0 1 - - 11 0 - - 00 0 - - interdit1 1 0 - Qt

1 1 1 - Qt

1 1 0 Qt

1 1 1 D

3.10

Exercice 1 : complétez la table de vérité de la DFFE

Qt CLRN PRN ENA D CLK Q(t+1)1 0 1 0 0 10 1 0 1 1 11 0 0 1 1 10 1 1 0 0 01 1 1 1 00 1 1 1 10 1 1 0 0 01 1 1 0 0 0

3.11

Exercice 2 : complétez le chronogramme

CLK

PRN

CLRN

ENA

D

Q3.12

Règles d’utilisation des bascules

1. Toujours utiliser des bascules avec initialisation asynchrone (CLRN et PRN)et relier l’entrée non utilisée à « 1 » (VCC) pour la désactiver

2. Ne pas utiliser de logique combinatoire sur le signal d’initialisation asyn-chrone (reset global du système)

3. Ne pas utiliser de signal interne comme signal d’initialisation asynchrone4. Toutes les bascules partagent le même signal d’initialisation asynchrone qui

est un signal externe (nommé RAZA, RAZAN, RESET, RESETN )

4

Page 40: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

5. Pas de logique combinatoire sur le signal d’horloge6. Ne pas utiliser de signal interne comme signal d’horloge7. Toutes les bascules partagent le même signal d’horloge

Important !Le non respect de ces règles est fortement pénalisé

En résumé– Toutes les entrées horloge des bascules sont reliées au même signal quiest l’entrée du FPGA reliée au générateur d’horloge (bouton poussoir sihorloge manuelle, ou générateur à d’horloge à 50 Mhz intégré sur la cartede développement)

– Chaque composant séquentiel doit être initialisé au démarrage pour que sonétat soit connu car à la mise sous tension il n’est pas déterminé. Tous lescomposants séquentiels auront donc leur signal d’initialisation asynchrone(resetn) connectée au même signal qui sera l’entrée du FPGA reliée aubouton poussoir sélectionné pour activer l’initialisation du circuit.

Exceptions : signal d’horloge (pas avant la E4)Cependant pour les experts, certaines règles peuvent être assouplies. C’est le caspar exemple de la technique des gated clocks qui permet de limiter la consomma-tion.

De plus, dans les systèmes numériques avancés, il y a plusieurs horloges dans lesystème. Il faut alors gérer les problèmes de synchronisation et de communicationentre les différents domaines d’horloge.

Exceptions : signal d’initialisation global (dès la E1)Pour vous la seule exception sera d’éventuellement ajouter un inverseur sur lereset asynchrone pour pouvoir initialiser des composants n’ayant pas tous desreset actifs sur le même niveau.

Exemple : pour initialiser un composant avec un reset actif à l’état bas et unavec un reset actif à l’état haut. Il faut inverser le signal de reset envoyé à l’undes composants pour pouvoir les initialiser en même temps.

3.13

Signaux multibits : chronogramme et représentation– Exemple : chronogramme d’un compteur 4 bits

– Valeur après initialisation asynchrone : 0– À chaque cycle la valeur de la sortie en CBN est incrémentée de 1. Arrivéà la valeur maximale, le compteur revient à 0

– La représentation directe de la valeur de sortie est peu lisible– On peut représenter un signal sur plusieurs bits en une seule ligne, lesdiscontinuités (les X) indiquent un changement de valeur

– 4 bits ⇔ 1 chiffre hexa– On peut aussi choisir un codage et décoder

5

Page 41: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

CLKRESETN

Q3

Q2

Q1

Q0

Q 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000

Q 0 1 2 3 4 5 6 7 8 9 A B C D E F 0

QCBN 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 03.14

Signaux multibits : schématique– Exemple : additionneur 4 bits

– Version avec 9 entrées de 1 bit : A3,A2,A1,A0,B3,B2,B1,B0,CIN et 5 sortiesde 1 bit : COUT,S3,S2,S1,S0

– Version avec 2 entrées de 1 bit A, B, 1 entrée de 1 bit CIN, une sortiede 4 bits S et une de 1 bit COUT. Les 3 schémas suivants sont équiva-lents(en pratique on préférera la seconde forme, plus lisible et avec moinsde risques d’erreurs)

6

Page 42: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

– En schéma papier, on indique la largeur des signaux de plus de 1 bit avecla notation suivante :

4A

4BCIN ADD4

4 S

CIN 3.15

7

Page 43: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Paramètres temporels

D

Q

CLK

tSETUP

tCQ

tHOLD

D0 D1 D2

Q0 Q1

– 3 principaux paramètres– tCQ (clock-to-q delay) : temps requis pour enregistrer et la valeur de D

vers Q lors du front montant du signal d’horloge– tSETUP (setup time) : durée pendant laquelle D doit être stable avant le

front d’horloge– tHOLD (hold time) : durée pendant laquelle D doit être maintenu aprèsle front d’horloge

– Si les temps de setup et de hold ne sont pas respectés la bascule risqued’entrer dans un état métastable (valeur ni 0, ni 1 pendant un temps indé-terminé avant de se stabiliser à 0/1) 3.16

Chronogramme et instantanéité– Dans le «vrai» monde, la traversé des portes logiques n’est pas instantanée

et les signaux mettent du temps à se propager dans les fils– On pourrait représenter ces délais sur les chronogrammes :

CLKRESETN

Q2Q1Q0

– Mais la période de l’horloge devant toujours être suffisamment élevée pourlaisser le temps aux valeurs de se stabiliser ...

– ... on peut donc représenter les chronogrammes comme si les transitionsétaient instantanées

CLKRESETN

Q2Q1Q0 3.17

– Question : si on vous demande compléter un chronogramme et que lerésultat dépend d’une valeur changeant juste au moment du front d’horloge– Prend ont la valeur juste avant le front d’horloge ...– ... où celle juste après ?

– Réponse : ne pas oublier qu’en pratique les valeurs mettent du temps àse propager et que la valeur au moment du front d’horloge sera forcementcelle juste avant ... et pas celle dans le futur 3.18

8

Page 44: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Registre– Une DFF permet de stocker 1 bit– n DFFs regroupées pour stocker n bits forment un registre– Elles sont toutes connectés à la même horloge et au même signal d’initiali-

sation asynchrone

3.19

Exercice 3 : chronogramme registre 4 bits

Complétez le chronogramme

CLK

RAZAN

ENA

D

Q ?

A B 9 1 3 82

3.20

2 Système synchrone2.1 PrésentationSchéma de principe

d q

clk

circuitcombinatoire :calcul sortie

sortie

circuit combinatoire :calcul prochainétat

prochain_etatregistre_etat

entréeexterne

clk

– Registre d’état : ensemble de DFFs contrôlées par le même signal d’hor-loge

– Calcul du prochain état : circuit combinatoire dépend de l’état actuelet des entrées

– Calcul de la sortie : circuit combinatoire dépend de l’état actuel et desentrées 3.21

9

Page 45: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Mise à jour des bascules– Notation :

– Si Q la sortie d’une bascule, c’est à dire un signal de 1 bit dont l’étatreprésente la valeur mémorisée (Q=1 pour 1, et Q=0 pour 0)

– Alors on note Q la valeur actuelle de la bascule– et Q+ la valeur qui sera écrite et remplacera Q lors du prochain frontmontant du signal d’horloge

– Cycle de mise à jour :1. On calcule EN MÊME TEMPS les prochaines valeurs (Q+

i ) deTOUTES les bascules à partir des entrées (Ei) et des valeurs actuellesdes bascules (Qi)

2. PUIS lors du front montant d’horloge on met à jour les valeurs deTOUTES les bascules EN MÊME TEMPS

– Résumé :1. Calcul de toutes les prochaines valeurs Q+

i = f(Q0,Q1, . . . ,Qn,E0,E1, . . . ,En)2. Mise à jour de toutes les bascules Qi ⇐ Q+

i 3.22

Exercice 4 : compléter le chronogramme

d q

clk

clrn

prnd q

clk

clrn

prnd q

clk

clrn

prnd q

clk

clrn

prn

1 1

1 1

resetn

resetn resetn

CK CK CKCK

Q3 Q2 Q1 Q0

CLK

RESETN

Q3

Q2

Q1

Q0 3.23

10

Page 46: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Chapitre 3Logique séquentielle (support 2)IGE-1001 : fonctions numériqueshttp://www.esiee.fr/~nouryl/IGE-1001, oct. 2013

Ludovic Noury, ESIEE Paris([email protected], bureau 3453)

3.1

Table des matières1 Système synchrone 1

1.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Méthode de conception 1 : synthèse de la table de vérité . . . . . . 31.3 Méthode de conception 2 : synthèse « one-hot » . . . . . . . . . . 6

2 Comment gérer une fréquence d’horloge trop élevée ? 8

3 Composants séquentiels usuels 93.1 Compteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2 Registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2

1 Système synchrone1.1 PrésentationSchéma de principe

d q

clk

circuitcombinatoire :calcul sortie

sortie

circuit combinatoire :calcul prochainétat

prochain_etatregistre_etat

entréeexterne

clk

– Registre d’état : ensemble de DFFs contrôlées par le même signal d’hor-loge

– Calcul du prochain état : circuit combinatoire dépend de l’état actuelet des entrées

– Calcul de la sortie : circuit combinatoire dépend de l’état actuel et desentrées 3.3

Mise à jour des bascules– Notation :

– Si Q la sortie d’une bascule, c’est à dire un signal de 1 bit dont l’étatreprésente la valeur mémorisée (Q=1 pour 1, et Q=0 pour 0)

1

Page 47: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

– Alors on note Q la valeur actuelle de la bascule– et Q+ la valeur qui sera écrite et remplacera Q lors du prochain front

montant du signal d’horloge– Cycle de mise à jour :

1. On calcule EN MÊME TEMPS les prochaines valeurs (Q+i ) de

TOUTES les bascules à partir des entrées (Ei) et des valeurs actuellesdes bascules (Qi)

2. PUIS lors du front montant d’horloge on met à jour les valeurs deTOUTES les bascules EN MÊME TEMPS

– Résumé :1. Calcul de toutes les prochaines valeurs Q+

i = f(Q0,Q1, . . . ,Qn,E0,E1, . . . ,En)2. Mise à jour de toutes les bascules Qi⇐Q+

i 3.4

Exercice 4 : compléter le chronogramme

d q

clk

clrn

prnd q

clk

clrn

prnd q

clk

clrn

prnd q

clk

clrn

prn

1 1

1 1

resetn

resetn resetn

CK CK CKCK

Q3 Q2 Q1 Q0

CLKRESETN

Q3

Q2

Q1

Q0 3.5

Catégories de circuits séquentiels– Circuits séquentiels réguliers

– La transition d’état du circuit suit un motif régulier– Exemples : compteur, registres à décalage.– La logique de calcul du prochain état est construite principalement àpartir de composants prédéfinis usuels ( incrémenteurs, décaleurs, etc)

– Machines à états (FSM finite state machine)– La transition d’état du circuit ne suit pas de motif régulier– La logique de contrôle du prochain état est construite par un circuit nonrégulier (uniquement à partir de portes logiques)

– FSMD (FSM with datapath)– FSMD = circuit composé :– d’un chemin de données (circuit séquentiel régulier ou combinatoire)– et d’une partie contrôle (machine à états)

– Ce type de circuit permet de réaliser des fonctions complexes (processeur,etc.) 3.6

2

Page 48: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

1.2 Méthode de conception 1 : synthèse de la table de véritéExemple : compteur/décompteur CBN

– Concevoir un compteur respectant les contraintes suivantes :– Le compteur compte en CBN avec des valeurs dans l’intervalle [0;5]– La valeur initiale du compteur est 5– À chaque cycle, si l’entrée u_nd vaut 1 le compteur incrémente sinon il

décrémente– Si le compteur dépasse la valeur minimum ou maximum il reboucle 3.7

Étape 1 : définir les bascules– Valeurs possibles du compteur : 0,1,2,3,4,5– Valeurs maximale 5 soit 3 bascules car 5 = (101)CBN

– On nomme les bascules : Q2,Q1,Q0

D Q

CLRN

PRN Q2

Q1

Q0

CLK

CLK

CLK

D Q

CLRN

PRN

D Q

CLRN

PRN

3.8

Étape 2 : définition de l’état initial– Lors de l’activation du signal d’initialisation asynchrone actif à l’état bas

(resetn) Q = 101 (soit Q2 = 1,Q1 = 0,Q0 = 1)

D Q

CLRN

PRN Q2

Q1

Q0

CLK

CLK

CLK

RESETN

11

1

D Q

CLRN

PRN

D Q

CLRN

PRN

3.9

Étape 3 : définition des entrées/sorties– Entrées : CLK, RESETN, U_ND– Sorties : Q (3 bits) 3.10

3

Page 49: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Étape 4 : définition des tables de vérité– Un circuit séquentiel est réalisé en définissant deux fonctions combinatoires

1. Une fonction de transition : calcule le prochain état à partir desentrées et de l’état actuel

2. Une fonction de génération : calcule les valeurs des sorties à partirde l’état actuel et des entrées

d q

clk

circuitcombinatoire :calcul sortie

sortie

circuit combinatoire :calcul prochainétat

prochain_etatregistre_etat

entréeexterne

clk

– Pour notre exemple, les valeurs des sorties étant celles des bascules nousn’avons pas à définir de fonction de génération

– En général, si les sorties ne sont pas égales aux valeurs des bascules ilfaudra faire une seconde table de vérité et ajouter le circuit correspondant 3.11

– Les sorties des bascules (Q2,Q1,Q0) sont des entrées de la table de vérité– Les prochaines valeurs des bascules (les entrées des DFFs lors du prochain

de l’horloge) sont des sorties de la table de vérité (Q+2 ,Q+

1 ,Q+0 )

– Les entrées du circuit déterminant le prochain état (les prochaines valeursdes bascules) sont des entrées de la table de vérité (U_ND)

D Q

CLRN

PRN

Q2

Q1

Q0

CLK

CLK

CLK

RESETN

11

1

U_ND

Q2+

Q1+

Q0+

D Q

CLRN

PRN

D Q

CLRN

PRN

État actuel u_nd Q2 Q1 Q0 Prochain état Q+2 Q+

1 Q+0

0 0 0 0 0 5 1 0 11 0 0 0 1 0 0 0 02 0 0 1 0 1 0 0 13 0 0 1 1 2 0 1 04 0 1 0 0 3 0 1 15 0 1 0 1 4 1 0 00 1 0 0 0 1 0 0 11 1 0 0 1 2 0 1 02 1 0 1 0 3 0 1 13 1 0 1 1 4 1 0 04 1 1 0 0 5 1 0 15 1 1 0 1 0 0 0 0Interdit - 1 1 - Non défini X X X 3.12

4

Page 50: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Étape 5 : équations non simplifiées (ou directes)

Q+2 = UQ2Q1Q0 +UQ2Q1Q0 +UQ2Q1Q0 +UQ2Q1Q0

Q+1 = UQ2Q1Q0 +UQ2Q1Q0 +UQ2Q1Q0 +UQ2Q1Q0

Q+0 = Q0 (on remarque sur la table que Q+

0 = Q0)

3.13

Étape 6 : simplificationQ+

2 = UQ2Q1Q0 +UQ2Q1Q0 +UQ2Q1Q0 +UQ2Q1Q0

= UQ1(Q2Q0 +Q2Q0)+U(Q2Q1Q0 +Q2Q1Q0)= UQ1(Q2⊕Q0)+U(Q2⊕ (Q1⊕Q0))= U +Q1 +(Q2⊕Q0)+U(Q2⊕ (Q1⊕Q0))

Q+1 = UQ2Q1Q0 +UQ2Q1Q0 +UQ2Q1Q0 +UQ2Q1Q0

= UQ2Q1Q0 +Q2(UQ1Q0 +UQ1Q0 +UQ1Q0)= UQ2Q1Q0 +Q2(UQ1Q0 +U(Q1⊕Q0))

Q+0 = Q0

3.14

– Que faire si les équations se simplifient mal ? (comme dans cet exemple)– Au choix :

– On réalise les équations simplifiées (même si elle restent complexes)– On décide de garder les formes sans xor et non factorisées pour avoirun schéma plus lisible et minimiser les risques d’erreurs (on choisit cetteoption) 3.15

Étape 7 : schématique

D Q

CLRN

PRN Q2

Q1

Q0

CLK

CLK

CLK

RESETN

1

1

1

Q2+

Q1+

Q0+

RESETN

RESETN

Q0

UQ2Q1Q0UQ2Q1Q0UQ2Q1Q0UQ2Q1Q0

UQ2Q1Q0UQ2Q1Q0UQ2Q1Q0UQ2Q1Q0

D Q

CLRN

PRN

D Q

CLRN

PRN

3.16

5

Page 51: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

1.3 Méthode de conception 2 : synthèse « one-hot »Diagramme d’état

– Rappel : concevoir un circuit séquentiel nécessite de créer deux circuitscombinatoires– La fonction de transition : détermine le prochain état– La fonction de génération : détermine les sorties

d q

clk

circuitcombinatoire :calcul sortie

sortie

circuit combinatoire :calcul prochainétat

prochain_etatregistre_etat

entréeexterne

clk

– Nous avons vu comment ces deux fonctions peuvent être définies par 2tables de vérité

– Nous allons maintenant voir :– Une autre représentation, le diagramme d’état permettant aussi de

définir le comportement d’un circuit séquentiel– Une méthode permettant de synthétiser le diagramme d’état en circuit 3.17

– On utilise aussi le compteur/décompteur défini précédemment comme exemple

Étape 1 : construction du diagramme d’état– Chaque état est représenté par un cercle (une bulle)– On commence par définir et nommer l’état initial, représenté par un double

cercle– Il est important de donner un nom significatif (i.e. correspondant à l’état)– Pour chaque état on définit les valeurs des sorties pendant cet état ;– Soit directement dans la partie basse des bulles d’état– Soit dans à côté du diagramme d’état (ex : tableau)

CinqS=101

QuatreS=100

TroisS=011

DeuxS=010

UnS=001

ZéroS=000

3.18– La transition d’un état à un autre dépend des entrées et de l’état actuel– On représente donc les transitions entre deux états par des flèches partant

d’un état vers un autre sur lesquelles on note les conditions correspondantes– Attention, il ne faut pas oublier les transitions implicites, celles où l’onne change pas d’état. Représentées par une flèche par d’un état et allantjusqu’au même état avec sur la flèche les conditions correspondant au nonchangement d’état.

CinqS=101

QuatreS=100

TroisS=011

DeuxS=010

UnS=001

ZéroS=000

U

U

U

U

U

U U

U

U

U

U

U

3.19

6

Page 52: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Étape 2 : codage des états (méthode « one-hot »)– On choisit pour chaque état un codage :– On associe à chaque état une unique valeur des bascules

– Il existe de nombreuses possibilités– Nous allons utiliser le codage « one-hot » :

– Il permet d’obtenir directement les équations de la fonction de transition(calcul du prochain état) sans passer par une table de vérité

– Il simplifie fortement la table de vérité de la fonction de génération (calculdes sorties en fonction de l’état)

– En codage one-hot une seule bascule vaut un à la fois et à chaque étaton associe une bascule

– Inconvénient : ce codage impose d’utiliser un circuit de décodage (fonc-tion de génération) pour à partir de l’état obtenir la valeur des sorties. Onne pourra donc pas utiliser cette technique pour synthétiser des comp-teurs car leur sorties doivent être égales aux valeurs des bascules.

– Autres codages : dans ce cas là on choisit un autre codage pour l’état,on rejoint la méthode précédente en réalisant la table de vérité corres-pondante après avoir définit le codage.

État Qcinq Qquatre Qtrois Qdeux Qun Qzero

Cinq 1 0 0 0 0 0Quatre 0 1 0 0 0 0Trois 0 0 1 0 0 0Deux 0 0 0 1 0 0Un 0 0 0 0 1 0Zéro 0 0 0 0 0 1

3.20

Étape 3 : équations de la fonction de transition (méthode « one-hot »)– Qcinq vaudra 1 au prochain cycle si :– On est dans l’état Quatre et U vaut 1– On est dans l’état Zéro et U vaut 0– Soit Q+

cinq = QzeroU +QquatreU– De même on a :

Q+quatre = QcinqU +QtroisU

Q+trois = QquatreU +QdeuxU

Q+deux = QtroisU +QunU

Q+un = QdeuxU +QzeroU

Q+zero = QunU +QcinqU 3.21

Étape 4 : équations de la fonction de génération (méthode « one-hot »)– Les valeurs des sorties ne sont pas celles des bascules, il faut donc faire uncircuit pour les générer

Qcinq Qquatre Qtrois Qdeux Qun Qzéro S2 S1 S01 0 0 0 0 0 1 0 10 1 0 0 0 0 1 0 00 0 1 0 0 0 0 1 10 0 0 1 0 0 0 1 00 0 0 0 1 0 0 0 10 0 0 0 0 1 0 0 0

– Comme une seule bascule peut valoir un à la fois, les équations sont sim-plifiées

– On obtient :– S2 = Qcinq +Qquatre– S1 = Qtrois +Qdeux– S0 = Qcinq +Qtrois +Qun 3.22

7

Page 53: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Étape 5 : schématique

3.23

2 Comment gérer une fréquence d’horloge trop élevée ?Comment gérer une fréquence d’horloge trop élevée ?

– En TP : horloge externe à 50 MHz– Comment faire si l’on ne veut pas mettre à jour les bascules 50 millions de

fois par seconde mais seulement : 12,5 millions de fois par seconde ? Unefois par seconde ?

– Logique sur le signal d’horloge interdite ⇒ on ne peut pas modifier cettehorloge ! 3.24

8

Page 54: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

3 Composants séquentiels usuels3.1 CompteursMéthode de conception

– Les sorties d’un compteur correspondent aux valeurs des bascules– La méthode «one-hot» n’est donc pas adaptée– Pour concevoir le compteur on :

1. Détermine sa séquence (vous pouvez aussi faire son graphe d’état)2. Utilise la méthode de conception par synthèse de la table de vérité 3.25

Compteur binaire naturel– C’est un compteur qui compte en code binaire naturel 3.26

Compteur en anneau– C’est un registre à rotation avec une valeur d’initialisation asynchrone dif-

férente de 0 . . .0 et 1 . . .1

3.27

Compteur de Johnson– C’est un registre à rotation dont le bit Q0 est inversé lors du rebouclage

3.28

3.2 RegistresRegistre tampon ou PIPO (entrée parallèle, sortie parallèle)

3.29

9

Page 55: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Registre SIPO (entrée série, sortie parallèle)Les registres série⇒parallèle ou SIPO (serial-input parallel-output) ont une entréesérie (sur 1 bit) et une sortie parallèle sur N bits.Exemple d’un registre série/parallèle 4 bits avec décalage à droite :

– Application : ce type de registre permet de desérialiser des données c’est-à-dire mettre en parallèle des données qui sont reçues en série sur 1 bit.Dans le cas d’un décalage à droite, le LSB est reçu en premier, pour undécalage à gauche c’est le MSB. 3.30

Registre PISO (entrée parallèle, sortie série)– Comme l’entrée et la sortie ne peuvent se faire en même temps, ce type de

registre contient au moins deux fonctions :– Chargement parallèle– Sortie série (décalage)

– Exemple registre PISO 4 bits avec décalage à droite

3.31

Registre à rotation (rotation à droite)– Ce type de registre contient au moins deux fonctions :

– Chargement parallèle– Rotation

3.32

10

Page 56: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Chapitre 4Machines à étatsIGE-1001 : fonctions numériqueshttp://www.esiee.fr/~nouryl/IGE-1001, oct. 2013

Ludovic Noury, ESIEE Paris([email protected], bureau 3453)

4.1

ObjectifsObjectifsSavoirs

– Machine à états de Moore et de Mealy– Diagramme (graphe) d’états– Méthodologie de conception d’une machine à états– Codage one-hot

Capacités– Être capable de concevoir le circuit d’une machine à états à partir de la

description du système qu’il devra contrôler (synthèse+simu+test)4.2

Table des matières1 Problème de la conception de circuits de contrôle 1

2 Machines à états 22.1 De l’énoncé au diagramme d’état . . . . . . . . . . . . . . . . . . . 32.2 Réalisation (rappel) . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Exemple complet : robot suiveur de murs 5 4.3

1 Problème de la conception de circuits de contrôleÉtude de cas : laser médicalLaser médical

– Bouton enfoncé ⇒ laser actif pendant 30 ns– Soit pour fCLK = 100 MHz et donc période p = 1/(100×106) = 0.01×

10−6 = 10×10−9 = 10 ns : 3 cycles d’horloge

laser

b

clk

x

Controleur

4.4

1

Page 57: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Une première (mauvaise) solutionProblèmeMauvaise solution ! Pourquoi ?

X

CLK

B

1. Problème si on appuie sur le bouton une seconde fois pendant le cycle2. Pas de méthode !

– Comment vérifier qu’il n’y a pas d’autres erreurs ?– Comment résoudre des problèmes plus complexes ?

Solution1. Représentation du système par un diagramme d’états2. Méthode de synthèse d’un diagramme d’état en système électronique

4.5

2 Machines à étatsMéthodes de conception

– Circuit combinatoire (rappel) :– Fonction simple : représentation formelle par définition de la table de

vérité et des équations booléennes, puis synthèse du circuit. Exemple :full-adder

– Fonction trop complexe : décomposition en sous-composants plussimples. Exemple : additionneur 32 bits

– Circuit séquentiel régulier (rappel) :1. Déterminer la séquence et éventuellement faire le diagramme d’état2. Selon la séquence :

– Il n’y a pas deux états avec les même sorties : on recom-mande un codage où la valeur des bascules correspond aux valeursdes sorties (pas besoin de fonction de génération). Exemple : comp-teur CBN

– Il y a plusieurs états avec les mêmes sorties : choisir uncodage (CBN, one-hot, etc.) puis réaliser les fonction de transitionet de génération. Exemple : compteur {0,1,2,3,2,1,0,1,2,3,2,. . .}

– Comment réaliser la fonction de transition ? Selon codage del’état méthode 1 ou méthode 2 du cours précédant

– Comment réaliser la fonction de génération ? C’est un simplecircuit combinatoire ⇒ table vérité puis synthèse 4.6

– Circuit séquentiel de contrôle :– On appelle ce type de circuit séquentiel au comportement non régulier(pas opposition aux compteurs) une machine à états (aussi appeléFSM, finite state machine, automate, machine à états finis, . . .)

– Pour spécifier le comportement, il faut une représentation centrée surl’état : le diagramme d’état

– Une fois le diagramme d’état obtenu vous pouvez le synthétiser avec laméthode « one-hot » vue précédemment 4.7

2

Page 58: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

2.1 De l’énoncé au diagramme d’étatExemple 1 : clignotement

Définir le diagramme d’état du système suivant :Système avec sortie x faisant 1,0,1,0, etc.

Solution1. Déterminer et nommer les états : 2 états, ON et OFF2. Définir les sorties en fonction de l’état : ON :x = 1, OFF :x = 03. Définir les transitions entre les états (+ l’état initial)

off on

x=0

clk

clk

x=1

X

RESETN

CLK

off offon onETAT

sortie : x

4.8

Exemple 2 : retour du laser

clk

clk clk clk

X

RESETN

CLK

off on1 on2 on3 off on1ETAToff on1 on2 on3

x=0 x=1 x=1 x=1

sortie : x

– Quel est le problème ?– Il manque le bouton ! 4.9

clk clk

clk

X

off

CLK

RESETN

off off on1 on2 on3 offETAT

b

on1 on2 on3

x=1 x=1 x=1

off

x=0

b.clk

b.clk

entrees : b ; sorties : x

4.10

3

Page 59: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Machine à étatsDéfinitionUne Machine à états est formalisée à partir des éléments suivants :

1. Un ensemble d’états2. Un ensemble d’entrées et un ensemble de sorties3. Un état initial4. Une description du prochain état en fonction de l’état courant et des valeurs

des entrées5. La définition de la sortie à générer pour chaque état

Exemple du laser1. 4 états {on1, on2, on3, off}2. Une entrée {b} et une sortie {x}3. État initial : off4. Conditions associées aux flèches du schéma, ces conditions sont appelées

transitions5. Définition d’une valeur de x pour chaque état

4.11

Diagramme d’état– Définition

– On utilise une représentation graphique du comportement de la machineà états appelée diagramme d’états (state diagram, graphe d’état)

– Exemple du laser

clk clk

clk

on1 on2 on3

x=1 x=1 x=1

off

x=0

b.clk

b.clk

entrees : b ; sorties : x

4.12– Remarques

– L’état initial (double cercle) est l’état après initialisation asynchrone (re-setn)

– Comme on n’utilise que des machines à états synchrones on supprimela condition CLK ↑ 1

– Exemple du laser

on1 on2 on3

x=1 x=1 x=1

off

x=0

b

b

entrees : b ; sorties : x

4.13

1. En effet, les bascules ne peuvent changer de valeur que lors d’un front montant du signald’horloge, donc l’état (définit par les valeurs de bascules) ne peut changer que lors d’un frontmontant d’horloge et chaque transition se produit donc forcement sur un front d’horloge.

4

Page 60: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

2.2 Réalisation (rappel)Architectures usuellesProblèmeNous avons décrit le comportement à l’aide d’une machine à états, comment leconvertir en circuit séquentiel ?

4.14

tat

é

CLK

sortiesT G

Mealy

entrées

Deux fonctions sont à définir– Fonction de transition (T) : détermine le prochain état (Q+) à par-

tir de l’état courant (Q) et des entrées prochain_état = T(entrées, état)Q+ = T (entrées,Q)

– Fonction de génération (G) : détermine les valeurs des sorties en fonc-tion de l’état, 2 possibilités :– machine à états de Moore : G(état) ⇒ sorties– machine à états de Mealy : G(état,entrées) ⇒ sorties– Utiliser Mealy uniquement si Moore ne suffit pas (pas de Mealy en E1sauf, éventuellement, en question bonus.)

– T et G sont des fonctions combinatoires 4.15

3 Exemple complet : robot suiveur de mursRéaliser un robot suiveur de mur

– Le robot se déplace sur une grille, une case de la grille est :– Soit occupée par le robot– Soit vide– Soit occupée par un mur

– Le châssis du robot est fourni :– Activer MA (moteur avance) pendant un cycle fait avancer le robotd’une case, activer MT (moteur tourne) pendant un cycle fait tournerle robot de 90◦ à droite

– CA (capteur avant) et CG (capteur gauche) permettent de détecterla présence d’un mur devant (CA) ou à gauche (CG) du robot

– Capteurs et moteurs sont actifs à l’état haut– Au démarrage, le robot avance jusqu’à détecter un mur– Une fois qu’il a trouvé un mur, si le mur n’est pas à droite, le robot tournejusqu’à que le mur soit à droite 4.16

– Une fois fois qu’il a trouvé un mur sur sa droite, le robot suit le bord dumur selon l’algorithme suivant :– Il avance tant qu’il y a un mur à sa droite et pas de mur devant lui– S’il est bloqué avec un mur devant et un mur à droite il tourne sur luimême pour positionner le mur devant lui sur sa droite et recommence àsuivre le mur

– S’il rencontre un mur devant mais pas à sa droite alors il tourne à droitede 90◦ et avance d’une case avant de reprendre le suivi du mur 4.17

5

Page 61: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

Questions– Réaliser le circuit de la machine à états permettant de contrôler le châssis

pour obtenir un robot suiveur de murs1. Définir les entrées sorties de la machine à états2. Établir le diagramme d’état de la machine à états3. Faire la synthèse en utilisant le codage « one-hot »

6

Page 62: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

7

Page 63: Chapitre 1 - ESIEE Parisbde.esiee.fr/annales/uploads/b827140a996e8d4559a0017c844a611b322cf26b.pdf1.15 Transfert de données : parallèle et série t 0 t 1 t 0 t 1 t 2 t 3 t 4 t 5 t

4.188