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

Post on 09-Apr-2020

0 views 0 download

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

Systèmes digitaux

Cours 12

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

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

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

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

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

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

Base de nombres

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

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

8

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

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

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

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

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

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

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É

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

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

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

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

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 •+•=

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...

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

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 •+=

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

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

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

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

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

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

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

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(

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

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...

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

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

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

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