Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal,...

37
Systèmes digitaux Cours 12

Transcript of Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal,...

Page 1: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Systèmes digitaux

Cours 12

Page 2: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Point importants du cours

• Bases de nombre: • Binaire, décimal, octal, etc.

• Logique de Boole et portes logiques• Ordre des opérations, table de vérité, etc.

• Blocs classiques en logique combinatoire:• Additionneurs, multiplexeurs, décodeur, etc.

• Implantation de table de vérité:• ET-OU-INV, décodeur, multiplexeur (2 approches)

2

Page 3: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Point importants du cours

• Optimisation de la logique combinatoire:• Logique de Boole et table de karnaugh

• Blocs classiques en logique séquentielle:• Bascule SR, bascule D et flip flop

• Blocs plus complexes: régistres, compteurs, etc.

• Analyse de circuits:• Du circuit au diagramme d'états

3

Page 4: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Point importants du cours

• Conception des circuits séquentiels:• Description humain à diagramme d'états

• diagrammes d'états à circuits

• Machine de Mealy vs Moore

• En laboratoire:• Conception, simulation et implantation sur FPGA

• Approche graphique: diagrammes d'états et blocs

• Approche en programmation: VHDL

4

Page 5: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Numérique vs Analogique

• Les systèmes électroniques peuvent êtrenumériques, analogiques ou mixtes

• En analogique (circuits électriques, électronique, etc.), on s’interesse aux valeurs de tension et de courant

• En numérique (systèmes digitaux, microprocesseurs, etc.), on veut savoir si cette tension représente 1 ou 0

• Ces valeurs de ‘0’ et ‘1’ peuvent représentern’importe quoi

5

Page 6: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Base de nombres

• On utilise les ‘0’ et les ‘1’ parfois pour représenter des nombres

• À la place de voir les chiffres en base décimale, on peut les voir en binaire:

• À la place de compter de 0 à 9 on compte de 0 à 1

• Quand on arrive à la fin, on ajoute 1 au prochain chiffre

• 0, 1, 10, 11, 100, 101, ...

• Il existe aussi d’autres bases:• Les bases communes sont 8 (octal) et 16 (hexadécimal)

6

Page 7: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Base de nombres

• Pour bien se comprendre, il faut être capable de convertir d’une base à l’autre

• La conversation entre binaire/octal/hexa se fait directement

• Sinon, on veut passer par la base 10:• Ex: Pour passer de la base 7 à la base 9

• On passe de la base 7 à la base 10

• Puis de la base 10 à la base 9

7

Page 8: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Base de nombres

• Pour convertir à la base 10, on multiplie...

• Pour savoir ce que (325)8 représente, on fait ceci:

8

Page 9: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Base de nombres

• Pour convertir de la base 10, on divise...• Pour avoir 27 en base 16, on divise successivement par

16

• Pour la base 2, on divise successivement par 2

9

Page 10: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Base de nombres

• Il est facile de convertir entre 2, 8 et 16...• Pour convertir de binaire en hexadécimal, on prend des

groupements de 4 bits et on convertit

• Pour convertir de binaire en octal, on prend des groupes de 3

10

110 100 110 101=(6465)8

1101 0011 0101=(D35)16

Page 11: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Nombres signés et non signés

• Il existe des nombres signés et des nombresnon-signés

• Les nombres non-signés commencent à 0 et vont jusqu’à 2n-1 (n est le nombre de bits)

• Avec 3 bits, ça va de 0 à 7

• Avec 4 bits, ça va de 0 à 15

• Les nombres signés sont plus compliqués

11

Page 12: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Nombres signes et non signes

• Avec les nombres signés, on a les mêmeschiffres

• Cependant, ça représente des choses différentes

• Selon le format choisi, ça va représenter des chiffresdifférents

• Il existe 3 types:• Signe et magnitude

• Complément à 1

• Complément à 2

12

Page 13: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Plages de chiffres possibles

• Quand on a des nombres non signés, on part de 0 et on va jusqu’a 2n-1

• Avec n=4, on va de 0 a 15

• Pour une idée de base, on divise le maximum en 2 pour nous donner m (arrondi par le bas):

• On va aller de –m a +m (à peu près)

• Avec n=4, on va aller de -7 a +7 (à peu près)

• En fait, c'est seulement faux pour le complément à 2

13

Page 14: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Plages de chiffres possibles

• Un peu de par coeur:• Signe/magnitude et complément a 1 vont avoir une

plus petite plage

• Ils vont aller de -7 a +7

• Complément à 2 il va avoir 1 valeur negative de plus (de -8 à +7)

• Donc, pour 5 bits:• Ça va de 0 à 31

• On divise par 2, arrondi par le bas: -15 à +15

• En complément à 2, ça va de -16 à +15...

14

Page 15: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Plages de chiffres possibles

• Quand c’est positif, toutes les représentationssont identiques:

• Avec 4 bits, les chiffres de 0 à 7 sont: 000, 001, 010, 011, 100, 101, 110, 111...

• Lorsque c’est négatif, il y a différence

• On détecte que c’est négatif en regardant le bit de gauche:

• Si c’est ‘1’, c’est negatif

• Si c’est ‘0’, c’est positif

15

C’EST VRAI PEU IMPORTE LE FORMAT DU NOMBRE SIGNÉ

Page 16: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Représentations

• Signe et magnitude:• 10010: ‘1’ à gauche dit que c’est négatif

• Le reste 0010 dit que l’amplitude est 2... Donc -2.

• Complement à 1:• 10010: c’est negatif puisque le bit de gauche est 1

• On inverse: 01101. Ça donne 13... Donc -13

• En complément à 2, on fait le complément à 1 et on ajoute 1:

• 10010: complément à 1 donne 13, donc ici c’est 14: -14!

16

Page 17: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Portes logiques

• Quand on a des chiffres, des opérationscomme +, -, * et / sont utiles

• Parfois, les nombres binaires ne sont pas des chiffres:

• Parfois ils représentent des signaux plus abstraits

• Dans ces cas, il existe des opérations qui sont mieuxadaptées

• Chaque opération est definie avec une table de vérité

17

Page 18: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Portes logiques

In Out

0 0

1 1

18

A B OUT

0 0 0

0 1 1

1 0 1

1 1 1

A B OUT

0 0 0

0 1 1

1 0 1

1 1 0

A B OUT

0 0 0

0 1 0

1 0 0

1 1 1

Buffer OU

ETOU-Exclusif

Page 19: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Portes logiques

In Out

0 1

1 0

19

A B OUT

0 0 1

0 1 0

1 0 0

1 1 0

A B OUT

0 0 1

0 1 0

1 0 0

1 1 1

A B OUT

0 0 1

0 1 1

1 0 1

1 1 0

Inverseur NON-OU

NON-ETNON-OU-Exclusif

Page 20: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Logique de Boole

• On peut convertir les équations logiques en circuits:

• Dans les équations:• La barre représente une inversion

• Le + représente OU

• Le ● représente ET• Et le (pas dans l’exemple) c’est le ou-exclusif

20

)()( ABBAF •+•=

Page 21: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Logique de Boole

• Comme les mathématiques classiques, ilexiste des façons de simplifier les équations

• Logique de Boole

• Voici des théorèmes qui peuvent être utiles1) X + (Y+Z) = (X+Y) + Z2) (X+Y)’=X’ ● Y’ et (X ● Y)’=X’ + Y’

3) X + X ● Y= X et X ● (X + Y)= X

4) X+X=X et X ● X=X

5) X + 1 = 1 et X ● 0 = 0

21La logique de Boole permet de simplifier les circuits...

Page 22: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Table de Karnaugh

• Il existe une façon plus systématique de simplifier des équations logiques

• Pour ce faire, il faut:• Énumérer toutes les combinaisons qui donnent 1 (par

exemple, table de vérité)

• Les entrer dans un tableau

• Regrouper les 2n cases adjacentes (2, 4, 8, 16, ou...)

• Les termes qui restent identiques restent tandis que les termes qui changent disparaissent

22

Page 23: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Table de Karnaugh

A B C OUT

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 0

1 1 1 1

23

A BC 00 01 11 10

0 1 1 1

1 1 1

BACF •+=

Page 24: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Logique combinatoire

• Il existe des éléments de base (OU, ET, etc.)

• On est capable de les combiner pour faire des circuits plus complexes

• Il existe plusieurs circuits plus complexes qui sont très populaires:

• Additionneur, soustracteur, multiplicateur, décodeur, multiplexeur, etc.

• Les décodeurs et multiplexeurs peuvent aussi servir à implanter des fonctions logiques

24

Page 25: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Logique combinatoire

• La somme d’un additionneur peut êtreimplanté avec un multiplexeur ou un décodeur

25

A B C SOMME

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 1

Page 26: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Logique séquentielle

• La logique combinatoire a une sortie qui ne dépend que de l’entrée

• La logique séquentielle ajoute la mémoire:• La sortie dépend maintenant de l’entrée et du passé

• Ces éléments mémoires sont des flip flops

• La conception devient un peu plus compliquée• Il faut passer par plus d’étapes pour en arriver au

résultat final

26

Page 27: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Bascule SR

• Avant de passer aux flip flops, on a parlé des bascules

• Une combinaison de bascules fait les flip flops

• Les bascules de base sont les bascules SR:• Quand on active S, la sortie est 1

• Quand on active R, la sortie est 0

• Quand on n’active aucun, sa garde sa valeur précédente

• On ne devrait pas activer les 2...

27

Page 28: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Bascule SR avec Enable

• Il existe parfois un signal d’autorisation dansles bascule RS:

• Ce signal dit au circuit quand il a le droit de changer de valeur

• Si l’autorisation est 0, les valeurs de R et S n’affectentpas la sortie

28

Page 29: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Bascule D

• Finalement, il existe la bascule de type D:• À la place d’avoir S pour mettre 1 et R pour mettre 0, on

utilise D.

• Si D=1, on met 1 et si D=0, on met 0...

• Ceci arrive seulement quand c’est autorisé

29

Page 30: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Flip flop

• Dans les systèmes digitaux modernes, on utilise des flip flops de type D

• À la place d’utiliser un niveau pour autoriserun signal, on utilise une transition

• Par exemple: la sortie devient égale à l’entrée au front montant de l’horloge

• La forme la plus commune c’est maître-esclave

30

Page 31: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Description des flip flops

• La façon simple de voir le fonctionnement:• La sortie garde sa valeur à tout moment SAUF…

• SAUF quand il y a un front montant d’horloge

• Lorsqu’il y a front montant, Q=D

31

D Q (t+1)

0 0

1 1

DtQ =+ )1(

Page 32: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Analyse de circuits séquentiels

• L’analyse de système veut dire:• Commencer avec un circuit

• Finir avec un diagramme d’états

32

)()()()1( tYtXtAtA ⊕⊕=+

A(t) X Y A(t+1)

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 1

Page 33: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Analyse de circuits séquentiels

• Approche proposée:

1) On identifie toutes les flip flops

2) Pour chacune, on trouve l’équation d’état:

C’est-à-dire qu’on trouve l’équation logique pour l’entrée de chaque flip flop

3) On transforme ces équations d’état en tableau d’état

4) On dessine le diagramme d’état

5) Et on a fini...

Page 34: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Conception de circuits séquentiels

• On a aussi appris à concevoir des circuits séquentiels:

• À partir d’un diagramme d’états, la transformation en un circuit est presque systématique

• La grande difficulté c’est la partie qui vientavant

• Comment convertir des phrases du langage humain en diagrammes d’états

• Je suggère faire une “simulation” dans la tête

34

Page 35: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Conception de circuits séquentiels

• L’approche comporte les étapes suivantes:1) Trouver le diagramme d’états a partir de la

description en langage humain,

2) Assigner des valeurs binaires aux états

3) Dessiner un tableau d’états

4) Dériver et simplifier l’équation logique en entrée des flip flops

5) Dessiner le diagramme logique

Page 36: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Conception de circuits séquentiels

36

Q1(t) Q0(t) X Q1(t+1) Q0(t+1) Y

0 0 0 0 0 0

0 0 1 0 1 0

0 1 0 0 0 0

0 1 1 1 0 0

1 0 0 0 0 0

1 0 1 1 1 0

1 1 0 0 0 1

1 1 1 1 1 1

Page 37: Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal, etc. • Logiquede Boole et porteslogiques • Ordre des opérations, table de vérité,

Logique séquentielle

• Dans la logique séquentielle, il existe aussi des blocs classiques:

• Régistres: flip flops en parallèle qui regroupe une valeurdonnée

• Régistres à décalage: flip flops en série. La sortie de l’unva dans l’entrée de l’autre

• Compteurs: flip flops et logique pour faire changer les valeurs. Ça doit passer par une séquence bien définie

37