Professional Documents
Culture Documents
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Pourquoi on apprend ça ?
Bon, la matière de ce cours est important parce-que :
les circuits logiques communiquent en codes – il faut les
apprendre pour pouvoir parler leur langue
c'est certain que vous connaissez des circuits logiques qui
subissent à des erreurs (votre ordinateur chez vous ?)
la logique booléenne est à la base de toutes les circuits logiques et
numériques
il faut simplifier des équations logiques pour pouvoir les
implémenter dans le minimum de matériel
je vous présente des transistors pour vous faire peur, mais aussi
pour vous faire apprécier les vrais CIRCUITS logiques
ce dernier vous donne aussi une idée de qu'est-ce-que vous allez
apprendre au long de votre bac.
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Une quantité fixe de codes
On a vu au premier cours le phénomène de dépassement qui se
produit quand on ne peut pas représenter le résultat attendu dans le
nombre de bits donnés.
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
BCD : Binary Coded Decimal
Dans le système «Binary Coded Decimal», on utilise 4 bits pour
représenter les 10 chiffres décimaux :
69 Décimal
01101001 BCD
Ce système est parfois utilisé dans des applications qui affichent des
nombres décimaux sur des écrans LCD ou 7-seg.
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Code de Gray
Ici on compte de zéro à sept en binaire et en code de Gray en
regardant le nombre de bits qui changent (BQC) entre codes
successives :
Binaire BQC Gray BQC
000 N/A 000 N/A
001 1 001 1
010 2 011 1
011 1 010 1 toujours un seul
bit en transition
100 3 110 1
101 1 111 1
110 2 101 1
111 1 100 1
Binaire : problème de valeurs intermédiares pour transitions décalés !
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Codes alphanumériques
À date, on n'a vu que des codes numériques qui représentent des
nombres positifs, négatifs, des fractions etc... Mais comment pourrai-
je dire mon nom en binaire ???
Jeff
4A 65 66 66 (en hexadécimal)
Source de bruit
Canal de communication
Émetteur Recepteur
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Parité
Un système simple pour la détection d'erreurs est le parité. On ajoute
un bit (p) au code pour que l'ensemble suit une des règles suivants :
il-y-a un nombre pair de 1 dans le code (très commun)
il-y-a un nombre impair de 1 dans le code
il-y-a un nombre pair de 0 dans le code
il-y-a un nombre impair de 0 dans le code
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Parité orthogonale
Si on ajoute des bits de parité en fonction des mots consecutives on a
la parité orthogonale :
Mots à envoyer : 111 110 011 001
1111
1100 Notez qu'il-y-a toujours
un nombre pair de 1
0110 dans chaque colonne
et chaque rangée
0011 comme dit la 1ere règle
0110
bits de parité
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Correction par parité orthogonale
Imagine que le recepteur reçoit les mots suivants encodés avec le
système de parité orthogonale :
Mots reçus : 1111 1000 0110 0011 0110
intersection = 1111
bit érroné
1000 Notez que le parité ne
suit pas la 1ere règle
0110 dans la deuxième
colonne et la deuxième
0011 rangée.
0110
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Code d'Hamming
Le code d'Hamming utilise trois bits de parité pour quatre bits de
données :
b4b3b2p3b1p2p1
Cependant, comme dans toutes les systèmes qu'on vient de voir, s'il-
y-a plus qu'un bit d'erreur, ça décode mal.
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Théorie de la détection d'erreurs
C + D = M – 1 (où C ≤ D)
M D C
Binaire naturel 1 0 0
Parité 2 1 0
Parité ortho. 3 1 1
Jean-Guy Parité Hamming 3 1 1 Richard Hamming
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Fini les codes et les erreurs !
On prend un 'ti pause ?
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Tables de vérité
On utilise des tables de vérité pour décrire des fonctions logiques :
variables fonctions
a b a·b a+b
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
Ça marche bien jusqu'à 3 ou 4 variables. Plus que ça, une page est
vite remplie !
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Fonctions logiques de base (+)
On vient juste de voir les fonctions logiques ET et OU. Une autre
fonction logique est le OU-EXCLUSIF :
ET OU OUX
a b a·b a+b a b
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0
ET OU OUX
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Fonctions logiques de base (-)
Maintenant, les mêmes fonctions logiques, mais inversées :
a b a·b a+b a b
0 0 1 1 1 Notez que la barre
indique inversion pour
0 1 1 0 0 une fonction logique,
1 0 1 0 0 et la boule indique
inversion pour une
1 1 0 0 1 porte logique.
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Oops, on a oublié une porte !
a b a b
0 0 1 1
0 1 1 0 (OOPS = Inverseur)
1 0 0 1
1 1 0 0 Anglais : NOT
OOPS OOPS
Mais Jeff, on a vu seulement 6 portes à deux entrées, tandis-qu'il-y-a
24 = 16 combinaisons possibles :
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Des entrées en masse
Il existe aussi des portes logiques avec plus que deux entrées :
NET4 (NAND4) : A1 · A2 · A3 · A4
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Algèbre booléenne
Ne paniquez pas – l'algèbre à deux valeurs est beaucoup plus facile
que l'algèbre que vous apprenez au sécondaire...
x + !x · y = x + y
George Boole
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Axiomes (facile)
Voilà les axiomes. Ils sont pas mal évidents, non ?
0·0=0 0·1=1·0 =0
1·1=1 1+0=0+1=1
0+0=0 x = 0 <==> !x = 1
1+1=1 x = 1 <==> !x = 0
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Théorèmes (assez facile)
Les théorèmes sont des équations à une variable. Ça fait qu'il faut
penser un petit peu, mais ils sont toujours évidents, non ?
x·0=0 x·x=x
x·1=x x+x=x
!(!x) = x
x+0=x x · !x = 0
x+1=1 x + !x = 1
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Propriétés (moins facile)
Ceux-ci sont peut-être un peu moins évidents...
Commutativité Associativité
x·y=y·x x · (y · z) = (x · y) · z
x+y=y+x x + (y + z) = (x + y) + z
Distributivité Absorption
x · (y + z) = x · y + x · z x+x·y=x
x + y · z = (x + y) · (x + z) x · (x + y) = x
Combinaison Yada, yada, yada...
x · y + x · !y = x x + !x · y = x + y
(x + y) · (x + !y) = x x · (!x + y) = x · y
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
DeMorgan
Voilà le théorème d'Augustus DeMorgan :
x·y=x+y
x+y=x·y
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Simplification
À quoi servent toutes ces théorèmes ? On les utilise pour simplifier
des équations logiques.
!a!c + ab
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Réalisation technique
On finit maintenant avec quelques acétates concernant la réalisation
technique des circuits logiques. En premier, appréciez que les circuits
logiques ont des charactéristiques (et des limitations) physiques :
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Logique positive et négative
À date on n'a présenté que la logique positive. C'est à dire que haute-
tension représente logique-1, et basse-tension représente logique-0.
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
CMOS
Maintenant, je vais vous montrer des transistors pour vous faire peur.
Normalement, vous touchez aux transistors plus tard dans d'autres
cours. Ceci n'est que pour vous montrer à quoi consiste une porte...
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Transistor comme commutateur
Dans les circuits logiques, les transisors fonctionnent comme des
commutateurs. Alors, en les branchant comme ci-bas, on est capable
de sortir soit basse-tension (GND) ou haute-tension (VDD). C'est à dire
qu'on sort logique-1 ou logique-0 en fonction des entrées des
transistors.
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
NET et NOU en CMOS
Voilà l'implémentation en CMOS de NET (gauche) et NOU (droite).
Vous êtes maintenant capable de transformer les transistors en
commutateurs en fonction de leur tension d'entrée. Impressionnant !
En trois acétates vous avez appris comment faire du ITGÉ numérique !
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Sommaire (par Monsieur T)
Jeunes ingénieurs, il faut comprendre les
codes comme le BCD et Gray. Mais plus
important, il faut apprendre toutes les
axiomes, théorèmes, etc... jusqu'au point où
ça vous sent naturel de les utiliser. Dans un
examen vous n'avez pas le temps de penser,
alors apprenez-le en faisant vos devoirs
maintenant. Il faut être capable de simplifier
vite – ceci n'est pas facile – il faut faire
beaucoup d'exemples. Vous n'avez qu'à
apprécier les acétates sur la réalisation
technique.
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006
Lecture et devoirs
Lecture recommandé :
2.10 – 2.12, 3.1 – 3.3, 3.71, 3.91 – 3.92,
3.96 – 3.97
Problèmes pertinents :
2.41, 2.42, 3.1abe
ELE1300 Circuits Logiques - Jeff Dungen - École Polytechnique Montréal - Hiver 2006