Systèmesdigitaux · Point importantsdu cours • Bases de nombre: • Binaire, décimal, octal,...
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