Électronique Numérique 2006-2007
EEA-1-C-EN
F. LemarchandMAJ: http://flemarchand.perso.egim-mrs.fr/
Circuits Électroniques Numériques: Introduction
Analogique/ numérique• Signal analogique: fonction de type courbe %
temps• Signal numérique (ou digital): histogramme
(représentation discrète)• Échantillonnage (sampling)
– prélèvement périodique– Fréquence d’échantillonnage– Exemple: CD 44.1kHz
• Quantification: – Codage sur N bits– CD: 16 bits (dont 8 utiles) stereo– taille support CD: 2 x 2 x 44.1 103x 74x 60=780Mo
Aliasing – repliement de spectre
En échantillonnant à fe, une sinusoïde de fréquence f apparaît identique à une sinusoïde de fréquence fe-f; Il faut donc echantillonner a 2 fmax.
Signal numérique
• Qualité signal numérique: fréquence d’échantillonnage et quantification
• Réduire la qualité:– diminuer le coût de stockage – diminuer le coût de la numérisation – diminuer les temps de traitement – tenir compte du nombre de valeurs nécessaires selon
l'application – tenir compte des limitations matérielles
Circuits numériques
• Fonctionnement discret: utilisation de « 0 »et de « 1 »
• emploi de transistors Pentium IV = 178 106
– fonctionnant en régime de commutation (type interrupteur commandé)
– Analogie hydraulique: une vanne commande une canalisation
y z
x
Technologie des transistors
• Famille TTL ( transistor / transistor logique): 0 /5V
• Famille MOS (Metal Oxyde Semi conducteur) canal N ou P ou techno CMOS
• Fonctionnent en mode saturé / bloqué
• Intérêt MOS– Plage 3-18V– Sortance élevée – Densité d’intégration sur une puce– Immunité au bruit 0,4 Vcc– Inconvénient: temps de commutation inférieur TTL
(10ns contre 70ns)
Temps de commutation d’une porte logique inverseuse technologie CMOS
Transistor a effet de champ NMOS
• Représentation
• Passant entre drain et source si la grille est à Vcc (x=1)
y z
x
drain
source
grillex
y
z
Transistor a effet de champ NMOS
y z
y z
drain
sourcex
y
z
Vcc
drain
sourcex
y
z0V
Transistor a effet de champ PMOS: technologie duale
y z
y z
drain
sourcex
y
z
Vcc
drain
sourcex
y
z0V
Un premier montage de circuit numérique
Déterminer l’état de la sortie logique y en fonction de l’entrée binaire xOn suppose que iR négligeable
Intégration dans une puce: limitée à cause de la résistance
Vcc
R
x
y
0V
Amélioration du montage en vue de son intégration
La résistance est remplacée par un transistor de chargedit à déplétionCe transistor a un comportement de type résistif entre Drain et Source et est donc toujours passant
Opérateur NOTDémontrer que si x = 0, y =1 si x = 1, y = 0
Vcc
x
y
0V
Exercice 1
Présenter sous la forme d’un tableau l’état de la sortie z en fonction des entrées x et y
Vcc
y
z
0V
x
Exercice 2
Etablir la table de véritéz=f(x,y)
Vcc
y
0V
x
z
Dualité PMOS NMOS
Vcc
y
0V
x
z
Vcc
y
z
0V
x
Série -> parallèle et inversement
Technologie CMOSVcc
y x
z
y
0V
x
Vcc
y
0V
x
z
Vcc
y
z
0V
x
Disparition des transistors de chargeDiminution de la consommation d’énergie:Interrupteurs: P=0, conso. uniquement à la commutationNbre de transistor 2n contre n+1 pour la même fonction
Exercice
• Proposer les montages en technologie CMOS permettant de réaliser les fonctions NAND2, NOR2, AND2 et OR2
Vcc
Déterminer la table de vérité Y = f(A,B,C,D)
PMOS[C // (A+B)] + [ B//D]
NMOS[C + (A//B)] // [ ( B+D)]
En examinant la dualité des réseaux N et P (une structure de transistors série P correspond à une structure parallèle N et vice versa), déduisez la bonne porte et établir la TV.
Opérateurs élémentaires
• Algèbre de Boole (1815-1864)– Les grandeurs physiques sont abandonnées
au profit d’abstractions logiques
– Intérêt: on modélise différents types de systèmes physiques indépendamment de la technologie (électrique, hydraulique, pneumatique, optique)
– 2 états logiques low 0/ 1 high
– Variable booléenne: x∈ B = {0;1}
– Variable φ-booléenne: x∈ Bφ = {0;1;φ}
Opérateurs logiques élémentaires booléens
• Opérateurs dits élémentaires– ET « . »– OU « + »
– NON « »
• Tables de vérité
10
01
x = NOT(x)x
1
0
0
0
x.y = AND2(x,y)
110
101
1
0
x
00
11
x+y = OR2(x,y)y
Opérateurs logiques élémentaires booléens induits
NI exclusifOU exclusifNON OUNON ET
x⊕ yx⊕ yx+yx.y
0
0
0
1
NOR
0
1
1
0
XOR
0
1
1
1
NAND
010
001
1
0
x
10
11
XNORy
Symboles des opérateurs élémentaires
• La représentation à l’aide de transistors est trop lourde à manipuler
• 2 normes coexistent – IEEE Standard 91-1984 Graphic Symbols for
Logic Functions: utiles sur machines a capacités graphiques limitées
– Military Standard MILSTD 086B: recommandée
Symboles
s = x+yOUOR2
s = x.yNON-ETNAND2
s = x.yETAND2
s = xNON, INV
NOT
s = xIdentitéOUI
BUF
fonctionIEEEMILSTDNomAbrév.
1
1
&
&
≥1
Symboles
s = 00GND
s = 11VCC
s =x⊕ yNI exclusif
XNOR2
s =x⊕ yOU exclusif
XOR2
s = x+yNON-OU NOR2
FonctionIEEEMILSTDNomAbrév.
≥1
=1
=1
Vcc Vcc
Exercice
• Exprimer la fonction XOR2 avec les 3 opérateurs élémentaires (on pourra s’aider de la table de vérité), puis dessiner le logigramme correspondant en norme IEEE et MILSTD
• Logigramme (ou schéma logique): description d’un circuit à l’aide de symboles logiques
Systèmes de Numération
Le système décimal
• Le plus utilisé, historiquement 10 doigts• Système dit pondéré: un nombre est
constitué de symboles(chiffres) dont l’emplacement est affecté d’un poids
• 10 symboles différents qui définissent la base
• Exemple: 356 = 3 x 102 + 5 x 101 + 6 x 100
Le système décimal
• Base non optimale par rapport au nombre de symboles utilisés pour définir un nombre
• Exemple: de 0 à 99: nécessite 2 digits et donc 20 symboles
• En binaire: 27 = 128, 7 digits et donc 14 symboles
• En base 3: 35 = 243, 5 digits et donc 15 symboles
• On peut montrer que « e » est la base optimale
Le système décimal• Représentation généralisée:
– N10 = anan-1… a0,a-1…a-m
– N10 = an10n + an-110n-1 +…+ a0100 + a-110-1 +…+ a-m10-m
– n: rang
• Base B: – NB= anan-1… a0,a-1…a-m
– N10= Σ aj Bj
– Exemple: (1010)2 =1 x 23 + 0 x 22 + 1 x 21 + 0 x 20 = (10)10
– Exercice: (110,101)2 = (X)10 ?– Exercice: (5,6)10 = (X)2 ?
Système binaire (code binaire naturel)
• Bien adapté aux systèmes électriques (transistors MOS en commutation)
• Interrupteur fermé: K = 1 • interrupteur ouvert: K= 0• Calculs lourds mais implantation électrique
aisée• Digit élémentaire = le bit (0 / 1)• 8 bits = 1 octet (Byte)• Capacité de la base binaire: avec n bits on
représente les entiers de 0 à 2n-1
Système binaire
• X2 = anan-1… a0,a-1…a-m
• X10 = an2n + an-12n-1 +…+ a020 + a-12-1 +…+ a-m2-m
• an est le MSB (Most Significant Bit) bit de poids le plus fort
• a-m est le LSB (Less Significant Bit) bit de poids le plus faible
• Autres bases liées: – la base octale 01234567– La base hexadécimale 0123456789ABCDEF– Exemple: A3D16 = X10 ?
Transcodage d’une base vers une autre
• Convertir en décimal– (1011010,01101)2
– (724)8
– (3D4)16
• Convertir (567)10
– En binaire– En base octale– En base hexadécimale
• Convertir de la base hexa vers la base octale (AB2)16
Code DCBN
• Décimal Codé Binaire Naturel
• Permet d’exprimer rapidement un nombre décimal dans une base à 2 symboles 0/1
• Chaque chiffre entre 0 et 9 est converti en son équivalent binaire sur 4 digits
• Exemple: (178)10 = (0001 0111 1000)DCBN
– Convertir (59)10 en DCBN
– Effectuer (5)10 + (6)10 en DCBN
Code non pondéré: le code binaire réfléchi ou code de Gray
• Non pondéré: on n’attribue pas un poids dépendant uniquement de la position du symbole
• 2 termes successifs diffèrent d’un seul symbole et sont donc adjacents
• C’est un code cyclique, c’est-à-dire que la règle s’applique entre le dernier terme et le premier
Code de Gray
0001151111
1001140111
1101131011
0101120011
0111111101
1111100101
101191001
001180001
001071110
101060110
111051010
011040010
010031100
110020100
100011000
000000000
TZYXNABCD
Conversion Gray /Binaire• De Binaire en Gray: bnbn-1 .. b0 -> gngn-1 .. g0
– gn = bn
– gn-1 = bn⊕ bn-1
– g0 = b1⊕ b0
• De Gray en Binaire: gngn-1 .. g0 -> bnbn-1 .. b0
– bn = gn
– bn-1 = bn⊕ gn-1
– b0 = b1⊕ g0
• Exercice : – convertir en Gray (10011)2
– Convertir en Binaire (011100)G
Code Gray 1953, Bell Labs: avantages
• Évite les états parasites entre 2 nombres successifs
– Exemple en binaire: de 0111 à 1000, on passe par 3 états intermédiaires pouvant être néfastes si il existe un test sur la valeur 1111 par exemple (positionnement, stop, RAZ, …)
• Permet de coder des positions angulaires sans discontinuité : minimise les erreurs en cas de
lecture ambiguë
Code Gray
Mesure d’angle
Quelle est la précision angulaire d’un tel dispositif ?
Code non pondéré: le p parmi n
• Pour chaque chiffre décimal 0/9, correspondent n éléments binaires dont p sont à 1 (et n-p à 0)
• Si on reçoit un nombre de 1 différents de p, c’est qu’il y a erreur de lecture ou de transmission
• Code pondéré partiellement
Code pondéré partiellement: le 2 parmi 5 pondéré 7-4-2-1-0
000110
001019
010018
100017
001106
010105
100104
011003
101002
110001
01247POIDS
Anomalie sur les poids
Code pondéré partiellement: le 2 parmi 5 pondéré 7-4-2-1
• Détecte 0 ou 1 erreur mais pas 2, 3, 4, 5 cf codes détecteurs et correcteurs d’erreurs
• Utilise 5 bits pour décrire 10 combinaisons: gourmand…
Autre code à détection d’erreur
• Code avec élément binaire de parité– 0 0000 0
– 1 0001 1– 2 0010 1 ….
– P =Xn ⊕ Xn-1 ⊕ ... ⊕ X1
• Propriétés identiques au 2 parmi 5 mais décrit plus de combinaisons (0-15)
Code barre• Type EAN13: le plus répandu = Gencod• 13 chiffres
– X1 X2: code pays– X3-X7: code entreprise– X8-X12: code produit– X13: clé de contrôle
• Chaque chiffre: 2 barres et 2 espaces sur 7 modules avec une épaisseur variant de 1 à 4 modules.
Code barre
1100100Chiffre 2
7654321module
1110100001011100010119
1001000000100101101118
1000100001000101110117
1010000000010101011116
1001110011100101100015
1011100001110101000114
1000010010000101111013
1101100001101100100112
1100110011001100110011
1110010010011100011010
Jeu CJeu BJeu ACaractère codé
question:Comment sont définisA et B par rapport àC ?
Codage spécifique du premier chiffre
• Le 1er chiffre– Suite des éléments EAN
entre le 2e et le 7e chiffre – 0 [AAAAAA] – 1 [AABABB] – 2 [AABBAB]– 3 [AABBBA]– 4 [ABAABB]– 5 [ABBAAB] – 6 [ABBBAA] – 7 [ABABAB] – 8 [ABABBA] – 9 [ABBABA]
QUESTION: trouver le premier chiffre du code ci-dessus ?
Code barre type EAN13: clé de contrôle
• Les chiffres sont numérotés de droite à gauche
• x = Σ chiffres pairs et y = Σ chiffres impairs• z = x +3*y• m = 10 x [E(z/10) +1] • La somme de contrôle est : X13 = m – z• Exemple : 978020113447
x = 4 + 3 + 1 + 2 + 8 + 9 = 27y = 7 + 4 + 1 + 0 + 0 + 7 = 19z = 3 * 19 + 27 = 84m = 90Somme de contrôle = 90 - 84 = 6EAN13 ---> 9 780201 134476
Lecteurs de code barre
• Le crayon optique– tube de 13 mm de diamètre en acier
inoxydable ou en plastique.– L'optique à la pointe du crayon – déplacement par l'utilisateur sur toute
la largeur du code barres et en le touchant.
– la lumière réfléchie est convertie en signaux électriques par une cellule photo située dans le crayon.
Lecteur laser
- faisceau lumineux très précis- réfléchi avec une grande acuité allant de
quelques centimètres à quelques mètres.- le faisceau se déplace en balayant son
champ de vision
Lecteur douchette CCD
• utilise un large faisceau lumineux formé de milliers de détecteurs lumineux CCD qui captent la lumière réfléchie.
• Le faisceau capture une « image » complète du code àbarres,
• les éléments sont transmis dans un format identique à celui transmis par un scanner crayon ou laser.
• aucune pièce mobile
Oui Oui Non "Qui ne manque jamais sa cible"
Oui Non Non Lecture de pièces mobiles
Oui Oui Non Lecture sur des surfaces irrégulières
5 à 50 cm 1,25 a 19cm 0,5 cm Distance de lecture
Oui Oui Non Essais multiples par seconde
30 cm Plus de 11cmAucune limite Largeur maximum des codes barres lisibles
Lecteurlaser
DouchetteCCD
Crayonoptique
Code télégraphique international n°5 (code ASCII American Standard Code for
Information Interchange )
• Appelé code Baudot 1874• Chaque symbole est codé avec 8 éléments binaires dont
1 de parité (128 symboles)• Utilisation initiale: communications synchrones• Utilisé pour les connexions clavier/imprimantes/PC,
minitel
2 x 9.9 msidemidemidemidemidemidemidemidem9.9ms
paritéSymbole ascii
STOP87654321START
Codage ASCII de Elec Num ?
456C6563204E756DOu 1000101…..
En communisation synchrone (obsolète)
NULnullDLEdata link escapeSYNsynchronisationNAKnegative acknowledgeACKpositive acknowledgeENQenquiryETBend of transmitted blockEOTend of transmissionETXend of textSTXstart of textSOHstart of headernomcommande
Arithmétique binaire
• Contraintes du calculateur:– Les nombres doivent avoir le même format (8 bits par
exemple, 32 = 00100000)– Les opérations s’effectuent entre deux nombres
seulement: X+Y+Z= X+Y puis +Z• Addition: apparition d’une retenue (carry)• Multiplication: risque d’overflow (dépassement de
capacité, nécessité d’un flag) • Soustraction: addition d’entiers signés:
A-B = A+(-B)• Division: multiplications, soustractions et
comparaisons
Représentation des nombres négatifs
• Représentation avec | | et signe– Un bit est réservé pour le signe– 0 si positif (compatible non signé)– 1 si négatif– (9)10 = 0 1001– (-9)10 = 1 1001– Problème: 9+(-9) = 1 0 0010– Arithmétique périlleuse….
Représentation des nombres négatifs
• Représentation avec complément restreint (CR) ou complément à 1
Soit un entier signé X >0 (le MSB est donc un 0)
On note X = CR(X) le nombre obtenu en remplaçant les 1 de X par des 0 et les 0 par des 1
X +CR(X) = 2n-1
9 = 0 1001
CR(9) = 1 0110 remarque : 9 + CR(9) = 1 1111
(-9) = (10110)Ca1
Exemple: déterminer en système décimal les valeurs de (00110)Ca1 et (10010)Ca1
Comment représente-t-on ‘0’ en Ca1 ?
Représentation des nombres négatifs
• Représentation avec complément vrai (CV) ou complément à 2
Utilisé par tous les calculateursCV(X) = XCa2 = CR(X) + 1 en conservant seulement les n bits de poids le plus faible…X +CV(X) = 2n
9 = 0 1001CR(9) = 1 0110 (-9) = (10111)Ca2
Attention à ne manipuler que des nombres de longueur fixe !!!Une seule représentation pour 0 : 0 000(-0)= CR (0) +1 = 1 111 + (0 0001) = 0 000
Exemple d’utilisation de Ca2
• 17 – 11 = ?17 = 10001 notation non signée
17 = 0 10001 signé11 = 0 01011 signée(attention nombre bits)
(-11)Ca2 = 1 10101 17 + (-11) = 0 10001 + 1 10101 = (1) 0 00110
• Que représente (0 1101) Ca2, (1 1100) Ca2 ?
Multiplication de nombre signés
• Non signé: effectuer (101)2 x (011)2
• Signé: soit X (m bits non signés ) et Y (n bits non signés) >0 – Pour effectuer (-X) x Y, (-X) x (-Y), il faut réserver m+n+1
bits
rappel : addition max(m,n)+2
– Exemple: 5 x (-2): réserver 3+2+1 = 6 bits
– 5 = (000101)Ca2 et (-2) = (111110)Ca2
– 5 x (-2) = [100](110110) Ca2 = - (001010)2 = -10
• Exercice: calculer (-3) x (-2) en Ca2
Codage des nombres réels (norme IEEE 754)
• En simple précision, le codage des réels se fait sur 4 octets (32 bits) SEM
• 1 bit de signe, 8 bits pour l’exposant, 23 bits pour la mantisse
• Cela correspond à 7 à 8 chiffres décimaux significatifs
Conventions de codage IEEE 754
• On code +/- 1.M 2e avec -126 ≤ e ≤ + 127
• Exposant et signe de l'exposant:L'exposant réel est codé avec un biais. Un exposant réel nul apparaît dans la norme comme une valeur biaisée de 127.
-126 ≤ e ≤ + 127 codé entre E = 1 et E = 254 donc e =E -127
Plus grande valeur = ± 3.402824 10+38
Plus petite valeur = ± 1.175494 10-38
Codage des nombres réels
• Exemple: 0 10000001 11100000000000000000000
• Signe > 0
• e = 129-127 = 2
• 1.M x 2^2 = (1.111)x (100) = (111.1)
• Soit X = 7.5
• Exemple: coder 17.15 en norme IEEE
Représentation du 0
• La représentation du 0 rencontre un problème car même si l'on annule tous les bits de la mantisse (M=0), on aura quand même 1.M qui n'est pas nulle à n'importe quelle puissance.
• La norme propose de coder donc conventionnellement 2 zéros, l'un négatif l'autre positif qui sont différents mais qui sont égaux par comparaison.
• Ces zéros ont M=0 et E=0, le signe S peut prendre 2 valeurs 0 ou 1. – SEM = 1 000 …00 ou 0 000 .. 00
Représentation de l'infini
• On a le même problème de codage pour l'infini. Lorsque L'exposant biaisé prend la valeur la plus grande (E = 255), on a un exposant de 2 très élevé mais ce n'est pas l'infini au sens mathématique du terme.
• Conventionnellement, les motifs suivants sont employés pour représenter l'infini:– SEM = 0 11111111 0..000 (+infini)
– SEM = 1 11111111 0..000 (-infini)
• Question : savez vous maintenant comment obtient on ?Plus grande valeur codée = ± 3.402824 10+38
Plus petite valeur codée = ± 1.175494 10-38
Contrôle d’erreurs
• Données modifiées ou perdues durant le transport (transfert de fichier)
• Support abîmé (CD)
• Correction d’erreur:– On corrige à l’arrivée
– Ou on fait en sorte que l’émetteur renvoie la trame erronée (dit récupération d’erreurs)
• Idée: rajouter de l’information aux données permettant de détecter et/ou corriger
Contrôle d’erreur: modèle d’étude
• Mot de code: si une trame (bloc de données) contient m bits de données et r bits de contrôle , on définit le mot de code par les m+r = n bits
• Distance de Hamming: c’est le nombre de bits dont diffèrent m1 et m2 mots de n bits
• Distance de Hamming du code complet: h = { Min Disth(x1, x2) ; x1 et x2 ∈ M }
M est l’ensemble des 2m mots de codes possibles si on admet que les r bits de contrôle sont calculés en fonction des m bits de données.
• Exercice: construire un code à 3 combinaisons avec une distance de Hamming égale à 3
Contrôle d’erreur: modèle d’étude
• Exemple: bit parité m = 2, r = 1– M = {000, 011, 101, 110 }
– h = 2
• Propriété: Pour détecter (à coup sûr) x erreurs il suffit que la distance de Hamming h ≥ x + 1 – En effet s’il y a moins de h erreurs, le code ne
pourra pas “retomber” sur une combinaison déjàexistante
• Bit parité: détecte donc 0 ou 1 erreur à coup sûr
Bit Parité par colonne• On envoie 12 données
• On considère comme trame une matrice n x k bits avec k bits de parité (en colonnes)
P3
X12
X9
X6
X3
P2
X11
X8
X5
X2
P1
X10
X7
X4
X1
N = 4
K = 3
On détecte des rafales d’erreurs de longueur inférieure ou égale à k
Les erreurs proviennent de perturbations du canal et sont rarement isolées. elles surviennent donc par rafales. Une rafale d'erreur de longueur k est une suite de k bits dont certains peuvent éventuellement être faux.
Détection d’erreur par checksum (TCP/IP)
• n mots de k bits• On définit comme bits de contrôle les k Ca1 (CR) de la
somme des n mots bit à bit.• A l’arrivée, les sommes des n mots + bit de contrôle
doivent être toutes à 1• h = 2 mais détecte aussi des rafales d’erreurs de
longueur<= k
0
1
0
0
0
1
10
11
10
chksum
Détection d’erreur par CRC (Cylic Redudancy Check, contrôle de redondance cyclique)
• Utilisé pour les CD audio +télécommunications
• Basé sur des calculs de division de polynômes àcoefficient dans 0/1
• On se donne un polynôme générateur, on transmet les données et le reste
• Arithmétique polynomiale modulo 2 (sans retenue): soustraction et addition sont équivalentes à un ou exclusif bit à bit
Division polynomiale: un exemple
• Soit Y = 1010111 dividende• X = 1101 diviseur• Trouver le quotient et le reste de la
division polynomiale modulo 2 sans retenue de Y par X
1010111 1101
1
On met un 1 si le MSBdu dividende est 1 , 0 sinon
1101⊕1111111
11
1101⊕
0100101
110
0000⊕
1011011
1101
1101⊕
110
Q = 1101R = 110
Codage CRC
• Algo: M mot, code CRC avec P sur p bits– Charger un Registre R de p bits avec les p MSB de M
– si MSB(R) = 1 Alors R = R ⊕ P
– décaler R de 1 bit vers la gauche et charger le MSB suivant de M sur LSB(R)
– continuer tant qu’il reste des bits
• Exemple 6 bits de données: 110101– Polynôme générateur 101 : x2 +1
– Que transmet on ?
Détection d’erreur par CRC (Cylic Redudancy Check)
• Les polynômes générateurs les plus couramment employés sont : – CRC-12 : X12 + X11 + X3 + X2 + X + 1 – CRC-16 : X16 + X15 + X2 + 1 – CRC-32 (Ethernet) : = X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +
X8 + X7 + X5 + X4 + X2 + X + 1
• Calcul coûteux mais souvent fait par hard : ou exclusif successifs au fur et à mesure que la trame arrive.
• On peut avec n=16 détecter toutes les erreurs simples et doubles, toutes les erreurs comportant un nombre impair de bits et tous les paquets d'erreur de longueur ≤ 16
• et, avec une très bonne probabilité, les paquets d’erreurs de longueur supérieure.
Correction d’erreurs• Propriété: Pour corriger x erreurs il suffit que la distance
de Hamming h ≥ 2x + 1• Le code erroné doit rester plus proche du code original
que de tout autre• Exemple de code correcteur
– m = 2 ; r = 3 ; M = {00111, 01100, 10000, 11011}– h = 3, on corrige une erreur
• Problème :– Quelle est la valeur minimale de r permettant de corriger les
erreurs simples dans des trames de m bits de données et r de contrôle ?
– Il faut écrire avec R : pas d’erreur, erreur sur R ou erreur sur M – Soit 2r >= m+r+1 – Exemple : m =4, r = 3
Code correcteur de Hamming: construction• N = m + r bits rangés de la façon suivante:
x1 x2 x3 x4 x5 x6 x7 x8 x9r1 r2 m1 r3 m2 m3 m4 r4 m5 (puissance de 2: r)1 = 12 = 23 = 1+ 24 = 45 = 1+ 46 = 2+ 47 = 1+ 2 + 48 = 89 = 1 + 8
• Valable pour un nombre quelconque de bits de donnée.• Nombre de bits de contrôle minimal pour n bits de données• À destination on recalcule les bits de contrôle. La somme des
numéros des bits de contrôle erronés donne le numéro du bit qui porte l’erreur.
• Utilisé pour les erreurs disque dur
x1 ⊕ x3 ⊕ x5 ⊕ x7 ⊕ x9 = 0x2 ⊕ x3 ⊕ x6 ⊕ x7 =0x4 ⊕ x5 ⊕ x6 ⊕ x7 =0x8 ⊕ x9 = 0
Exo Hamming
• On veut transmettre (11010) = M avec correction d’erreur simple
• On suit le protocole de Hamming• Que transmet on ? = X• On réceptionne X’ = (101000100) où est
l’erreur ?
Synthèse combinatoire
But
• Apprendre à synthétiser des circuits combinatoires a partir de tables de vérité, fonctions booléennes, tableaux de Karnaugh
• Combinatoire: la sortie du circuit ne dépend que de ses entrées et non de son passé
Représentation algébrique d’une fonction booléenne
• f fonction booléenne: – Bn ⇒ B– x ⇒ f(x)– Si f renvoie indifféremment 0 ou 1 on dit que f est
Φ-booléenne– La fonction f* duale de f est telle que ∀ x, f*(x) =
• La représentation algébrique d’une fonction booléenne peut s’exprimer à l’aide des 3 opérateurs de base ET OU NON
)(xf
Représentation d’une fonction booléenne
• Monôme booléen: produit de p variables booléennes apparaissant chacune une seule fois sous forme directe ou complémentée– Exemples: xy, xy, zxy sont des monômes booléen
alors que x +y est un monal booléen
• Forme polynomiale: somme de monômes booléens – Exemple f(x, y, z) = xy + xy + zxy
• Forme polynale: produit de monaux booléens– Exemple f(x, y, z) = (x +y) .( x +y ) .( z +x +y)
Propriétés de l’algèbre de Boole• ∀ (x,y,z)∈ B3
– Commutativité: x + y = y + x et x.y = y.x– Associativité: (x+y)+z= x+ (y+z) et
x.(y.z)=(x.y).z
– Distributivité: x.(y+z)=(x.y)+(x.z) et x+(y.z)= (x+y).(x+z) (moins évident)
– Élément neutre: x+0 = x et x.1 = x
– Complémentation: x+ x = 1 et x. x = 0– Idempotence: x+x = x et x.x = x
– Éléments absorbants: x+1 = 1 et x.0 = 0
Propriétés de l’algèbre de Boole
• ∀ (x,y,z)∈ B3
– Absorptions: x + xy = x et x. (x+y)=x– Involution: x = x– Théorèmes d’Augustus de Morgan:
• x+y = x y = NOR(x,y)• x.y = x + y = NAND(x,y)
• Vérification avec les TV
Forme canonique d’une fonction Booléenne
• 1ere FC ou forme systématique de Lagrange– 1ere forme Th. de Shannon:∀ i,
f(x1,…, xn) = xi f(x1,…xi-1,0,xi+1,…, xn) +xi f(x1,…xi-1,1,xi+1,…, xn)
– Appliqué itérativement n fois :
f(x1,…, xn) = ( xi ou xi)
• Exemple: f(A,B)= A f(0,B) +A f (1,B)– f(A,B)= A [ f(0,0) B+ f (0,1) B] + A [ f(1,0) B+ f (1,1) B] – f(AB)= f(0,0) A B + f(0,1) AB+ f(1,0)A B + f(1,1)AB
∑∏n2
n
Forme canonique d’une fonction Booléenne
• 2eme FC ou seconde forme systématique de Lagrange– 2eme forme Th. de Shannon:∀ i,
f(x1,…, xn) = [ xi + f(x1,…xi-1,1,xi+1,…, xn)] .[xi + f(x1,…xi-1,0,xi+1,…, xn)]
– Appliqué itérativement n fois :f(x1,…, xn) = ( xi ou xi)
• Exemple: f(A,B)=[ A + f(1,B)] . [ A + f (0,B)] f(A,B)={ A + [ B + f(1,1) ].[ B+ f (1,0)] } . [A +…]f(AB)=[f(1,1)+ A+ B].[f(1,0)+ A+B].[f(0,1)+A+ B].[f(0,0)+A+B]par distributivité x+yz = (x+y)(x+z)
∑∏
Exercice
• Soit la fonction combinatoire f à 3 variables booléennes définie par la table de véritésuivante– Donner f sous la 1ere et 2nde FC– Simplifier f (expression minimale)– Combien de portes logiques
élémentaires ?
0111
1011
1101
1001
1110
0010
1100
1000
FCBA
Représentation minimisée d’une fonction booléenne
• Mise sous forme la plus simple possible pour diminuer le coût de la réalisation technologique
• Méthodes– Algébrique: on utilise les propriétés
de l’algèbre de Boole F= ABC+A B ( A B)– Par tableau de Karnaugh
Méthode de Karnaugh (1950, Yale University)
• Simplification des monômes adjacents– mx +m x = m( x + x ) = m
• Construction d’un tableau équilibré (le plus carré possible)• Lignes et colonnes codées en Code binaire réfléchi (Code
de Gray)• Remplissage du tableau avec les valeurs de la fonction: 0
1 ou Φ• Constitution de regroupements de 1 et Φ les plus grands
possibles avec 2N lignes et 2M colonnes (on peut dépasser des bords)
• Lorsque tous les 1 sont couverts, on extrait les monômes simplifiés
Exemple
• f(a,b,c) = a b c + a b c + a b c + a b c
• f(a,b,c) = a c + b c
10111
00100
10110100bca
Exercices
• Simplifier par Karnaugh la fonction booléenne Maj3: majorité à 3 variables, retourne vrai si le nombre de variables d’entrées à 1 est plus nombreux
• Simplifier par Karnaugh f(a,b,c,d)=a c d + ab cd + a bcd + ac d
Rappel sur les opérateurs
NON, ET, OU, NON-ET
NON-OU, OU-exclusif,NI-exclusif (coïncidence)
Exercice:Donner les TV de chacun
Opérateurs étendus
extension en tailleOpérateurs étendus en bus: les opérandes sont traitées bit à bit(inversion, ET OU )
extension en nombre d’entrées
Opérateur combinatoire étendu: le multiplexeur
• Ou sélecteur, MUX• Circuit à n entrées
« de commande »dites de sélection (mot de commande = adresse)C = (cn-1, …, c0)
• 2n entrées de données D = (d0, …, d2
n-1)
• Une sortie S sur un bit
• E: validation (enable)
d0
d1
d2
d3
c1 c0
S
E
le multiplexeur
• Fonctionnement: la commande sélectionne une des entrées et la rend disponible en sortie
• C’est donc un interrupteur multi positions (sélecteur) dont la position est donnée par le mot de commande = adresse
d0
d1
d2
d3
S
C
S = d0 ( cn-1 … c1. c0) + d1 ( cn-1 … c1.c0) + …. d2n
-1 (cn-1 …c1.c0)
Exercices• Donner l’expression logique et le logigramme
avec des portes élémentaires d’un MUX 2→1
• Construire un MUX 4→1 à partir de 2 MUX 2→1 et porte logique (utiliser enable)
• Le démultiplexeur: – n entrées de commande C une entrée de donnée
e, 2n sorties si
– Faire un schéma
– Exprimer s0, s1, s2, s3 en fonction de e et C pour un DEMUX 1→4
Exercice
• Soit la fonction combinatoire f à 3 variables booléennes définie par la table de vérité suivante– Faire la synthèse en MUX 8→1 de f– Faire la synthèse en MUX 4→1 de f– Faire la synthèse en MUX 2→1 de f
0111
0011
1101
1001
0110
1010
1100
0000
FCBA
Application mux / demux: le transfert série de données (dit multiplexage temporel)
• Envoyer à distance les informations issues d’un grand nombre de sources
• Transmission sur une seule ligne
d0
d1
d2
d3
C
d0
d1
d2
d3
CC : compteur
Stockés dans des mémoires
Opérateur combinatoire étendu: le décodeur
• Une adresse en entrée C = (cn-1 … c0)
• 2n sorties dont une seule, correspondant à l’adresse spécifiée, est à 1 S = (s0, …, s2
n-1)
• Exprimer les fonctions logiques réalisées en S pour un décodeur 2 vers 4
c1
c0
s0
s1
s2
s3
Exercice• Soit la fonction combinatoire f à
3 variables booléennes définie par la table de vérité suivante– Câbler f en utilisant un décodeur
3 vers 8 et des portes logiques élémentaires
– En n’utilisant que des portes logiques élémentaires (ET OU NON), établir le logigramme
– Idem avec un MUX 4→1 0111
0011
1101
1001
0110
1010
0100
0000
FCBA
Circuit combinatoire spécifique: le transcodeur
• Ou convertisseur: système à n entrées et p sorties binaires dépendantes des entrées selon un code défini
• Exemple: transcodeur Binaire 4 bits vers Gray: établir les expressions logiques des 4 sorties fonction des 4 entrées puis les logigrammes correspondant
• Idem Binaire vers 2 parmi 5
Autre transcodeur: le BCD vers afficheur 7 segments
Autres circuits intégrés classiques
• Unité Arithmétique et Logique (ALU)– Additionneur
– Multiplieur– Comparateur
– Voir TD
Synthèse en NAND
• Emploi exclusif de l’opérateur complet NAND• On écrit la fonction sous forme polynomiale• On applique le théorème d’involution sur l’ensemble
de la fonction• On applique le théorème de De Morgan sur chaque
monôme.– Involution: x = x– Théorèmes d’Augustus de Morgan:
• x.y = x + y = NAND(x,y)
• Exercice:Vérifier que NAND est un opérateur complet
Synthèse en NAND
abdbcbadcbaf
abdbcbadcbaf
abdbcbadcbaf
..),,,(
),,,(
),,,(
=
++=
++=
a b c d
Exercice: faire la synthèse en NAND2 de XOR2
Synthèse en NOR
• Emploi exclusif de l’opérateur complet NOR
• On écrit la fonction sous forme polynale (a+b)(c+d)…
• On applique le théorème d’involution sur l’ensemble de la fonction
• On applique le théorème de De Morgan sur chaque monôme.– Involution: x = x
– Théorèmes d’Augustus de Morgan:• x+y = x . y = NOR(x,y)
• Exercice:Vérifier que NOR est un opérateur complet
Synthèse en NOR
( )( )),(),,(),,,(
),,,(
),,,(
),,,(
dcNORbaNORNORNOTdcbaf
dcbadcbaf
cdabdcbaf
cdabdcbaf
=
+++=
+=
+=
Exercice: faire la synthèse en NOR2 de XOR2
a b c d
Réseaux logiques programmables
• Dits réseaux « ET/OU »
• PLA (Programmable Logic Array) ou PAL (Programmable Array Logic)
• 2 réseaux ET/OU interconnectés
• Initialement le composant est vierge: toutes les jonctions existent
• On va conserver certaines jonctions = programmer le circuit
• Différentes technologies: diodes, transistors, fusibles
PAL
• n entrées x1, …, xn et p sorties f1, …, fp• Réalisation des p fonctions logiques par
synthèse ET/OU/NON• Étage ET: génère les monômes
nécessaires• Étage OU: génère les fonction de sortie
PAL: aspect interne
Matrice ET2n ET à 2n entrées
Matrice OUAu moins un à 2n
entrées
PAL• Utilisé dans les ASIC(Application Specific
Integrated Circuit)
• PLD (Programmable Logic Device): on limite le nombre d'entrées de la fonction OU.
• Synthèse par PAL: on entre directement l’expression logique. Le logiciel simplifie et programme le circuit cible
• Exercice: déterminer la synthèse par PAL de
– F(a,b,c,d)= ab+ac d– G(a,b,c,d)= ab– H(a,b,c,d)= cd+ac d+bc
solutiona
b
c
d
H(a,b,c,d)= cd+ac d+bcG(a,b,c,d)= ab
F(a,b,c,d)= ab+ac d
Les mémoires mortes (ROM)
• Peuvent être considérées comme des circuits combinatoires
• Rappel sur les mémoires– ROM (Read Only Memory): contenu figé à la fabrication
– PROM (Programmable) figé par programmation (irréversible)
– EPROM (Erasable) effaçable à l’aide de rayonnement UV et reprogrammable
– EEPROM (Electric Erasable …)
– OT_PROM (One time)
– RAM (Random Access Memory): on peut lire ou écrire constamment; les données sont perdues en cas de coupure électrique
Les mémoires mortes• Fonctionnement: structure logique élaborée dont la
fonction est de mémoriser (donc conserver) des mots de k bits, chacun étant sélectionnable en sortie par une adresse C codée sur n bits
c2c1c0
MOT0[k-1:0]
MOT7[k-1:0]
DATA_OUT [k-1:0]
OE
Exercice
• Effectuer la synthèse en ROM de la fonction booléenne g(a,b,c,d)= a b c d+ a b c d+ a b c d+ a b c d + a b c d
– Mémoire sur combien de bits de données (=longueur des mots) ?
– Combien de bits d’adresse ?– Quels sont les mots à entrer ?
a b c
g
d
1010010000010100
Solution
Méthodes de synthèse combinatoire
• La synthèse est la traduction d’une expression logique en un logigramme décrivant les interconnexions entre opérateurs
• Critères de complexité:– Complexité structurelle = taille en opérateurs, en
transistors: on somme le nombre d’entrées et de sorties de chaque opérateur dans le circuit
– Critère temporel = vitesse de fonctionnement = déterminer le chemin critique
Complexité en temps
• Hypothèse de simplification: chaque opérateur introduit un temps τ– La valeur en temps est déterminée en comptant le
nombre de couches à traverser de l’entrée à la sortie par le chemin critique
• Plus réaliste: chaque opérateur est pondérépar sa durée intrinsèque – NOT τ– NAND2 2τ– NAND4 3τ
Exercice
• f(a,b,c,d) = ab + cd– Évaluer les complexités structurelles et
temporelles des circuits obtenus par synthèse NAND et synthèse NOR
Circuits arithmétiques combinatoires
• Unité Arithmétique et Logique: plusieurs fonctions arithmétiques sont regroupées dans un même circuit intégré
• Entrées = opérandes Op1[n-1:0] Op2[n-1:0]
• Sortie: résultat R[n-1:0] • Sélection S[k-1:0] permet de choisir la
fonction• F (flag) [f:0]: indicateurs en sortie
– C (carry), O (Overflow), N (negative), Z (zero)
ALU
Op1
Op2
S
R
F
ALU
• Contient également les opérateurs logiques élémentaires étendus à des entrées de type bus: AND_B, OR_B, NAND_B, NOR_B, XOR_B, XNOR_B
• Opérations: – Incrémenteur R ← Op +1 , décrémenteur– Additionneur R ← Op1 + Op2– Soustracteur R ← Op1 - Op2 – Comparateur : met a jour les flag inferieur, superieur, egalité– Décaleur: permute les bits de l’opérande
• Les opérations signées nécessitent d’avoir choisi le type de représentation des nombres : binaire pur , Ca2
Additionneur : problème de la retenue
• Additionneur 1 bit
Add
an bn
sncn
cn-1
ci = aibi+(ai+bi)ci-1= gi+pici-1Génération / propagation
Temps de calcul tc = 3τ
Additionneur : problème de la retenue
• Additionner 2 nombres de 4 bits: faire propager la retenue
• Temps de calcul: pour c3: 12τ
Add
a3 b3
s3c3
Add
a2 b2
s2c2
Add
a1 b1
s1c1
Add
a0 b0
s0c0
0
Solution: anticiper la retenue
Add
an bn
sncn
cn-1ci = aibi+(ai+bi)ci-1= gi+pici-1 génération / propagation
c0= g0
c1= g1+p1c0
c2= g2+p2c1
c3= g3+p3c2 = g3+p3g2+p3p2g1+p3p2p1g0
• Il faut plus de portes logiques mais– Calcul en 3 couches (complexité temporelle)– Une couche pour obtenir les pi et les gi et 2
couches pour somme + produit
– temps de calcul: 3τ
Circuits Séquentiels
Introduction• Définition:
– Circuit séquentiel: les sorties dépendent des entrées ainsi que du passé du circuit
– corollaire:des mêmes entrées de données appliquées à des instants différents peuvent produire des valeurs différentes sur la sortie
– Étudier la séquence: modéliser le temps = discrétisésous forme de signal horloge 0/1
– Synchrone: évolution corrélée avec l’horloge– asynchrone
0
1
Synchrone / Asynchrone
Application d’un signalsynchrone (ex RESET )
Signal asynchrone(ex. CLEAR, CLR)
H
Conception d’un circuit séquentiel
• On utilise des portes logiques élémentaires (ET, OU , NON)
• + des opérateurs séquentiels = bascules ou bistables (latch et flip flop)– 1 ou 2 entrées de données sur un bit = entrées de
commande– Une sortie sur 1 bit appelée Q– Des entrées d’initialisation (optionnelles)– Des entrées d’autorisation dites de synchronisation
Conception d’un circuit séquentiel-2
• l’évolution au cours du temps est notée en indexant les instants successifs du cycle d’horloge: Q0, Q1, …, Qn, Qn+1
• Logigramme associé à une bascule
Entrée de donnée(1 ou 2)
Entrée d’autorisation
Entrée d’initialisation
Q
Q
XX
Entrées d’autorisation booléenne
• Autorisation booléenne: level sensitive H ou L• Inconvénient majeur: mauvaise maîtrise de la durée
d’évolution: la bascule peut se déclencher plusieurs fois si le niveau est maintenu trop longtemps
Entrée d’autorisation
Q
QE
Q
QD
Niveau haut Niveau baslatch
Entrées d’autorisation sur front
• Edge ou edge triggered sensitive ↑ ou ↓• Quelque soit les durées de 1 et 0, une seule
évolution possible
Q
QCLK
Q
QCLK
Front montant Front descendantflip-flop
Entrées d’initialisation
• Permettent de fixer une valeur de sortie
• De façon synchrone (débute au prochain top horloge) ou instantanée (asynchrone)
• Vocabulaire:
– RESET et SET synchrones
– CLEAR et PRESET asynchrones
• Exercice: on souhaite mettre en évidence l’influence du choix synchrone ou asynchrone sur le signal d’initialisation de mise a zéro d’une bascule. Schématisez les bascules et donner les chronogrammes associés
Bascules élémentaires
• Bascule RS
Une entrée R (remise à zéro) Une entrée S (mise à un)Une sortie Q , valeur de la bascule
Fonctionnement: Q est mise à zéro lorsque R vaut 1 et mise à un lorsque S vaut 1 (valeurs lues juste avant le front d’horloge). R=S=1 est un état interdit car il introduit une ambiguïté
Q
Q
R
S
Table de vérité bascule RS
• On appelle Qn la valeur de la bascule à l’instant n et Qn+1 la nouvelle valeur après évolution.
• R= S = 0 mémoire
φ111
φ011
0101
0001
1110
1010
1100
0000
Qn+1QnSR
Table de vérité bascule RS
• Karnaugh pour Qn+1
• Lecture sur les zéros: Forme polynale: Qn+1 = R (S+Qn) • Lecture sur les uns: Forme polynomiale: Qn+1 = S + RQn
φφ
11
0111
0100
100100Qn\ RS
Table de transition bascule RS
• Également appelée table d’excitation ou de commande
φ011
0101
1010
0φ00
SRQn+1Qn
bascule RS : exercice
• Faire la synthèse en NOR de la bascule RS• Vérifier que la sortie Q est stable au cous du temps (elle
ne peut évoluer qu’avec une modification des valeurs d’entrées)
Bascule JK ou Flip Flop
• Elle permet d’éviter l’interdit de la bascule RS
Une entrée J (mise à un) Une entrée K (Kill mise à zéro)Une sortie Q , valeur de la bascule
Fonctionnement: la valeur de Q bascule si immédiatement avant le front, J=K=1
Q
Q
J
K
CLK
Table de vérité bascule JK
• On appelle Qn la valeur de la bascule à l’instant n et Qn+1 la nouvelle valeur après évolution.
• J=K = 0 mémoire• J=K=1 flip flop
0111
1011
1101
1001
0110
0010
1100
0000
Qn+1QnKJ
Table de vérité bascule JK
• Karnaugh pour Qn+1
• Lecture sur les uns: Qn+1 =J Qn+ KQn
0
1
11
1011
1000
100100Qn\ JK
Table de transition: bascule JK
0φ11
1φ01
φ110
φ000
KJQn+1Qn
Bascule T ou Toggle (déclenchement)
• Une seule entrée
Q
Q
T
Fonctionnement: la valeur de Q bascule si T = 1 , et reste inchangée (mémoire) si T = 0Qn+1 =T Qn+ TQn
CLK
Bascule D ou Data Latch (bascule de recopie)
• Une seule entrée
Q
Q
D
Fonctionnement: la valeur de Q après le top horloge est recopiée sur la valeur de D avant le topQn+1 = D
CLK
D est une mémoire ou registre élémentaire (1bit)
Les registres
• Ce sont des cases mémoires propres aux processeurs
• Ils contiennent le plus souvent le résultat d’instructions mathématiques
• On distingue les registres élémentaires (mémorisation) des registres à décalage qui font propager une information dans un but arithmétique (ex multiplication) ou transmission (série ou parallèle)
Registre 1 bit
• Une bascule D, en tant que mémoire élémentaire, constitue un registre élémentaire (register)
Qn+1 = DnD
CLK
L’horloge constitue un signal de chargement, permettant la synchronisation
Registre X bits
• Capable de stocker un mot binaire de X bits– On juxtapose X registres 1 bit
– Les données circulent sur un bus (ensemble de X bits)
– Registre à chargement parallèle
QD
CLK
REG[X]
Registre à décalage (shift registers)
• Permet de décaler les bits au sein du registre c’est-à-dire de faire propager la valeur mémorisée au voisin (à droite par exemple)
• On distingue les – SR SISO (Serial In , Serial Out)– SR SIPO (Parallel Out)– SR PISO– SR PIPO
Registre SISO
D1
CLK
D2
CLK
D3
CLK
SLI SRO
H
Chronogrammes associés
H ↑
SLI
Q1
Q2
SRO
Registre SIPO
H ↑
SLI
Q1
Q2
Q3
D1
CLK
D2
CLK
D3
CLK
SLI
H
Q1 Q2 Q3
CE
0
0
1
Les compteurs
• Utilité: par exemple, éléments clef dans une chaîne de mux/demux
• Circuits conçus a partir d’assemblages de bascules
• Synchrones: toutes les entrée horloge sont reliées ensemble
• Ou asynchrone: l’horloge de la bascule n+1 est prise sur la sortie de la bascule n
• Inconvénients compteurs asynchrones: génèrent des états transitoires dus aux retards de propagation qui s’accumulent d’étages en étages. Ils restent utiles pour diviser des fréquences
Compteurs asynchrones
• Ne permettent que de compter dans un ordre monotone, croissant ou décroissant.
• Basés sur le constat d’alternance 0/1 dans les nombres binaires: Xn …. X0– X0 = 0/1/0/1/0/1/0/1….– X1 = 0/0/1/1/0/0/1/1 …– ….
• Il faut donc utiliser n bascules dont les fréquences horloge sont successivement divisées par 2.
Comme tout circuit logique, une bascule ne réagit pas immédiatement à un changement sur son entrée d'horloge. Il existe un temps de transfert (quelques nano secondes) entre Q0 et Clk. Le même écart existe entre Q1 et Q0, et entre Q2 et Q1. Pour n bits, le dernier signal est décalé de n fois cet écart élémentaire, ce qui peut devenir un décalage assez important. Les signaux ne sont plus synchrones, et si une combinaison logique de ces signaux doit être réalisée, des glitchs apparaissent (transitions parasites 0-1-0 ou 1-0-1).
État parasiteGLITCHS
Compteurs asynchrones
D
CLK
H
Q
Q
Chronogramme associé:
H ↑
Q
D
Structure élémentaire
Compteurs asynchrones
J
CLKH
Q
Q
Chronogramme associé:
H ↑
Q
Structure élémentaireK1
1
Compteurs asynchrones
D0
CLK
H
Q0
Q0
H ↑
X0
X0
D1
CLK
Q1
Q1
X1
D2
CLK
Q2
Q2
X2
X1
X2
0 1 2 3 4 5 6 7 0 1
Compteurs asynchrones
D0
CLK
H
Q0
Q0
H ↓
X0
X0
D1
CLK
Q1
Q1
X1
D2
CLK
Q2
Q2
X2
X1
X2
0 1 2 3 4 5 6 7 0 1
décompteurs asynchrones
D0
CLK
H
Q0
Q0
H ↑
X0
D1
CLK
Q1
Q1
X1
D2
CLK
Q2
Q2
X2
X0
X1
X2
0 7 6 5 4 3 2 1 0 7
Compteur asynchrone modulo n ≠ 2k
• On fait appel aux entrées d’initialisation CLEAR et PRESET (asynchrones, prioritaires)
• Elles sont activées lorsque n est atteint
• Exemple: compteur modulo 10– 4 bascules– Test: détection de 10 Q3Q1 = 11– Effectuer alors une RAZ (CLR) des bascules 1 et 3– Exercice: câbler le compteur correspondant en JK
Compteurs synchrones
JA
CLK
H
QA
QAKA
JB
CLK
QB
QBKB
JC
CLK
QC
QCKC
• Une seule horloge H• Les câblages des J/K= f(Q) sont déterminés par synthèse via les
tables de transitions Qn / Qn+1• On peut compter dans un ordre quelconque (non monotone)• Remarque: on numérote les bascules ABCD… pour éviter les
confusions
Compteur synchrone: séquence quelconque
• Réaliser la synthèse d’un compteur 0-1-6-2-4-3-0…. en bascules JK
• Combien de bascules ?– 3
• Séquence à décrire
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0QA
0QB
0QC
0φ11
1φ01
φ110
φ000
KJQn+1Qn
QC1φ10φφKB
QBφ100φ1JA
0100010QA
QA⊕ QB0φ1φ10JC
1φ1φ1φφKC
QA⊕ QCφ1φφ10JB
1
1
0
1
0
0
1
0
0
φ
1
1
φ
1
0
φ
0
1
φKA
0QB
0QC
Exercice: que réalise ce circuit ?
Machines à Etats• Objectif: synthétiser de manière cablee des circuits
séquentiels quelconques• Description en états: à partir d’un état donné, telles
entrées appliquées sur le circuit le feront evoluer vers tel autre état dans lequel les sorties évolueront comme tel…
• Il faut décomposer tous les états possibles• Le temps intervient sous la forme Etat Courant/ Etat
Futur• Outil: le graphe d’état qui décrit la loi d’évolution• Machine de Moore: les sorties dépendent uniquement
de l’etat present• Machine de Mealy: dépendent état présent + entrées
Schéma de principe d’une MAE
Circuit 1
Registre d’état(bascules D)
entrées
H
État courantÉtatfutur
Circuit 2
La MAE par l’exemple
• La machine à laver
rinçage
lavage
essorage
prélavage
arrêt
On dessine les 5 états puis les transitions possibles avec des flèches
Les entrées qui influent sur l’état
• M : marche / arrêt• P: info si prélavage ou non• C: valeur non booléenne mais entier:
temps d’une action– C (prélav) = 10– C (lavage) = 30
– C (rincage) = 10 – C (essorage) = 5
Les sorties
• Servent à piloter les moteurs : 5 états donc 3 signaux booléens – codage arbitraire
00110Y
10100Z
11110X
Esso-rage
rinçageLavagePré-lavage
arrêt
La MAE par l’exemple
• La machine à laver
Rinçage100
Lavage111
Essorage101
Prélavage110
Arrêt000
Graphe d’état final –Machine de Moore
C<10
C<5
C<30
C<10
C>10
C>30C>5
C>10
M = 1P = 1
M =1P = 0
M =0RESET
Spécifications de l’interface
Vaut 1 si lavage ou essoragesortieZ
Vaut 1 si prélavage ou lavagesortieY
Vaut 0 si arret, 1 si autre étatsortieX
Chrono supérieur à 30mnentréeC30
Chrono supérieur à 10mnentréeC10
Chrono supérieur à 5mnentréeC5
Prélavage actifentréeP
Bouton marche / arretentréeM
Reset, actif à0, initialise l’etat arretentréeR
horlogeEntréeH
Conception des circuits
• A partir des entrées et de l’état courant EC, on calcule l’état futur
EC: 000 arret - 001 prélavage – 010 lavage – 110 rincage -100 essorage
Circuit 1
Registre d’état(bascules D)
entrées
H
État courantÉtatfutur
Circuit 2 sorties
Reste à réaliser
• Circuit 1 EF = f( EC, M, P, C5, C10,C30, H)avec EC -> EF
Logique séquentielle• Circuit 2XYZ = f(EC)
logique combinatoire
EC=110RinçageXYZ=100
EC=010Lavage
XYZ=111
EC=100EssorageXYZ=101
EC=001PrélavageXYZ=110
EC=000Arrêt
XYZ=000
C10 = 0
C5 =0
C30 = 0
C10 = 0
C10 = 1
C30 = 1C5 = 1
C10 = 1
M = 1P = 1
M =1P = 0
M =0
• Coder EC/EF
DDDEF1
EF2 EF3
EC1 EC2 EC3
Table d’évolution
001XX0XX001
000XX1XX001
001X1XXX011
011X0XXX011
0111XXXX010
0100XXXX010
010X1XXX100
100X0XXX100
010XXX01000
100XXX11000
000XXXX0000
EF0EF1EF2C30C10C5PMEC0EC1EC2
Equations logiques
Exercice complémentaire
• On souhaite concevoir le système de contrôle de remplissage d’un réservoir.– 2 capteurs de niveaux B et H
– Si on est au niveau bas (fuite), ordre R pour ouvrir la vanne de remplissage jusqu’au niveau haut
– Créer le système de contrôle par synthèse en bascules T
Contrôle de remplissage de réservoir
H
B
X
R
Etat 0arrêt vanne
R = 0
B = 0
H = 0
B= 1
H =1
Etat 1remplissage
R = 1
H = 1 : on atteint le niveau hautB = 1 on est sous le niveau bas
reset
Conception des circuits
• A partir des entrées et de l’état courant EC, on calcule l’état futur
Circuit 1
Registre d’état(bascule T)
H et B
CLK
ECEF
EC: 0 vanne fermée - 1 vanne ouverte
Circuit 2 R
Table de transition EC -> EF
0111
0011
1101
1001
1110
0010
1100
0000
EFBHEC
101
110
1
0
EF TEC
01
00
détermination de T
0
0
1
1
1
0
1
0
EF
1111
1011
0101
0001
1110
0010
1100
0000
TBHEC
T = B . NOT(EC) + EC. H
et R = EC
T
T = f(EC, H, B)
Diagramme final
T
RH
B
CLK
CLR
Exercice élèves
• Concevoir un système de feux tricolores qui réagit a la présence P d’un véhicule (synthèse en bascule D)
• Une entrée binaire , une sortie sur 2 bits
• État rouge– Si P=1, feu passe au vert
– Sinon feu reste rouge
• Etat vert– Si P=1 , feu reste vert
– Sinon si vehicule absent un 2eme fois, feu passe a l’orange
• Etat orange: le feu passe au rouge au prochain cycle
Conversion Analogique Numérique
Et inversement…
Introduction
• Grandeur numérique : signal présentable sous forme binaire
• Grandeur analogique: signal pouvant varier continûment dans le temps
• CAN: information en sortie numérisée sur n bits représentative de la grandeur analogique en entrée
• CNA: conversion inverse numérique ->analogique
CAN
• 2 opérations sont nécessaires– la quantification qui transforme la valeur
analogique de la grandeur d'entrée en une valeur continue (utilisation d'un échantillonneur bloqueur).
– le codage qui assigne une valeur numérique à chacune de ces valeurs continues.
CAN simple rampe
+
-
E
comparateur
Générateur de rampe
Logique de commande
& compteur
Valeur numérique
Etude du CAN simple rampe
+
-
E >0
comparateur
Générateur de rampe
Logique de commande
& compteur
temps
1
0 0 0 00
0
0
0 0 0 10
1
1
Etude du CAN simple rampe
+
-
E >0
comparateur
Générateur de rampe
Logique de commande
& compteur
temps
1
0 0 0 10
1
1
0 0 1 00
0
0
Etude du CAN simple rampe
+
-
E >0
comparateur
Générateur de rampe
Logique de commande
& compteur
temps
0
e d b ac
0
V > Eedcba est l’image digitale de E
CAN simple rampe
• Fréquence horloge connue• V= f(t) du générateur de rampe connue• ⇒ on remonte à la valeur de la tension
numérisée• Inconvénient: l’horloge et le générateur de
rampe ne sont pas forcément bien réglés. La précision obtenue dépend de la stabilité de CLK + génér. rampe
CAN double rampe
E >0 intégrateur
Logique de commande
compteur
e d b ac
∫
-Eref
+
-
horloge
CAN double rampe
E >0 intégrateur
Logique de commande
compteur
e d b ac
∫
-Eref
+
-
0
t
intégrateur
t
comparateur
t
compteur
N1 impulsions
pente α E
Logique de commande:Niveau 0 pendant une durée fixe =remplissage compteur
CAN double rampe
E >0 intégrateur
Logique de commande
compteur
e d b ac
∫
-Eref
+
-
1
t
intégrateur
t
comparateur
t
compteur
N2 impulsions
Pente -αEref
pente α E
CAN double rampe
• E = Eref N2 /N1• La rampe ascendante est à durée fixe (donc N1
fixe)• La seconde rampe est à pente fixe ( mais a durée
N2 variable)• Inconvénients communs: temps de numérisation !• Et …temps de conversion variable avec E
CAN parallèle
Vref Ve
Cp1
Cp2
Cpm
décodeur Dn
D1
3R/2
R
R
R/2
Codage sur n bitsavec m = 2n -1 comparateurs
Niveau haut si VCp > Ve
CAN flash ou parallèle
Bruit de quantification
Minimalisation de l’erreur de décalage
CNA : résolution
• Le convertisseur numérique-analogiquetransforme une valeur numérique exprimée par un mot de n bits, en un signal analogique. La résolution d'un C.N.A. est définie par la plus petite variation qui se répercute sur la sortie analogique à la suite d'un changement de l'entrée numérique. La résolution est toujours égale au poids du bit le plus faible, et on l'appelle pas de progression.
CNA
• si le mot de n bits est signé, la tension (ou courant) de sortie est une grandeur algébrique = convertisseur bipolaire
• si le mot de n bits est non signé, on a un convertisseur unipolaire
CNA à résistances pondérées
CNA à réseau R-2R
Variante du R-2R
ELECTRONIQUE
Top Related