Électronique Numérique 2006-2007 EEA-1-C-ENflemarchand.perso.centrale-marseille.fr/en/tot.pdf ·...

Post on 03-Jun-2020

1 views 0 download

Transcript of Électronique Numérique 2006-2007 EEA-1-C-ENflemarchand.perso.centrale-marseille.fr/en/tot.pdf ·...

É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