Vous êtes sur la page 1sur 242

Cours d’´lectronique num´riqueee

Cours d’´lectronique num´riqueee

Aur´lie Gensbittele
Enseignante-Chercheuse
Bertrand Granado
Enseignant-Chercheur

Universit´ Pierre et Marie Curiee


Mel : Aurelie.Gensbittel@upmc.fr
Mel : Bertrand.Granado@upmc.fr

Hiver 2007
Cours d’´lectronique num´riqueee

Plan du Cours

Introduction
Alg`bre de Boole et Codagee
Introduction au vhdl
Fonctions Combinatoire Simples
Fonctions Combinatoires Complexes
Fonctions S´quentielles Simplese
Fonctions S´quentielles Complexese
Pipeline
Technologie des circuits num´riquese
Les Convertisseurs Analogiques-Num´riques ete
Num´riques-Analogiquese
Cours d’´lectronique num´riqueee

Les enseignants de l’UE201 ...

Cours A. Gensbittel
TD P. Ravary - H. Kokabi
TP P. Ravary - H. Kokabi
Cours d’´lectronique num´riqueee

Evaluation des connaissances ...

Le Contrˆle Continu : Type QCM, Questions de Courso


L’examen Final : R´flexion (Les TD ne servent pas ` Bachoterea
!)
Le Mini-Projet
Cours d’´lectronique num´riqueee

Evaluation des connaissances: Le Mini-Projet

Rapport Final ` la fin de toutes les sc´ances de TPae


Evaluation durant le TP
Soutenance de Mini-Projet
Cours d’´lectronique num´riqueee

Evaluation des connaissances : Coefficients

Note de l’´crit E : E = sup((0, 2CC + 0, 8Ex), Ex) o` CC esteu


la note du contrˆle continu et Ex la note de l’examen finalo
Note Finale F : F = 0, 65 ∗ E + 0, 25 ∗ TP + 0, 1 ∗ CC o` TPu
est la note des travaux pratiques.
Cours d’´lectronique num´riqueee

Polycopi´ de TDe

Disponible ` la reprographie la semainea


2i`me ´tage - bˆtiment Esclangoneea
Horaires : 12 h 45 - 14 h 15 - Mardi - Mercredi - Vendredi

A avoir avant le TD !
Cours d’´lectronique num´riqueee
Introduction

Un peu d’histoire ... Le boulier chinois


Cours d’´lectronique num´riqueee
Introduction

Un peu d’histoire ... La machine de Babbage


Cours d’´lectronique num´riqueee
Introduction

Un peu d’histoire ... Une Lampe Triode


Cours d’´lectronique num´riqueee
Introduction

Un peu d’histoire ... Le transistor de 1947


Cours d’´lectronique num´riqueee
Introduction

Un peu d’histoire ... Le 4004 d’Intel


Cours d’´lectronique num´riqueee
Introduction

Un peu d’histoire ... Le 4004 d’Intel


Cours d’´lectronique num´riqueee
Introduction

Aujourd’hui : Un Monde Num´rique ?e

Le monde num´rique est un monde discr´tis´ee e


Le monde r´el est un monde continue
Le monde n’est pas num´riquee
Alors pourquoi l’´lectronique num´rique ?ee
Discr´tisation permet de se pr´munir du bruitee
Il est possible de quantifier les erreurs
Possibilit´ de mise en oeuvre d’une arithm´tique bas´e sur laeee
logique
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Plan du Cours

Introduction
Alg`bre de Boole et Logique Combinatoiree
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

R´f´rencesee

Architecture des Ordinateurs - Philippe Darche - Vuibert,


Collection Passeport pour l’informatique - 77.8 DAR - MIE
Circuits Num´riques - Ronald J. Tocci - Dunod - PEe
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Alg`bre de Boolee

Alg`bre de Boolee
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Mister G. Boole

eMath´maticien Anglais du 19i `me si`cle.ee

1815 − 1864
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

La g´n`see e

Georges Boole introduit un formalise math´matique de lae


logique
The Calculus of Logic
Cambridge and Dublin Mathematical Journal
Vol. III (1848), pp. 183–9

(3) That those laws are capable of mathematical expression,


and that they thus constitute the basis of an interpretable
calculus.

Au d´part beaucoup utilis´ dans les jeux de salonsee


Mais ` l’arriv´e : V´ritable r´volution qui est devenue leaeee
fondement de l’´lectronique num´riqueee
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

L’alg`bre - Les bases - 1e

L’alg`bre de Boole manipule des variables qui ne peuvente


prendre que deux ´tats : Vrai ou Fauxe
Une telle variable est appel´e variable Bool´enneee
Il est possible aussi d’associer le chiffre 1 ` la valeur Vrai et lea
chiffre 0 ` la valeur Fauxa
Les variables Bool´ennes dans ce cas sont des variablese
Binaires
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

L’alg`bre - Les basese

exemples
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Alg`bre de Boole - D´finitionsee

Alg`bre de Boole Be
B =< E , +, .,− , 0, 1 >
+, . sont des lois de composition interne
−est la loi de compl´mentatione
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Alg`bre de Boole - Lois de Compositione

loi de composition .
. 0 1
0 0 0
1 0 1

loi de composition +
+ 0 1
0 0 1
1 1 1
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Alg`bre de Boole - Loi de compl´mentationee

Le compl´ment a d’une variable a est d´fini par :ee


si a = 1 → a = 0
si a = 0 → a = 1

La variable a, lorsqu’elle est not´e a, est dite sous sa formee


normale
La variable a, lorsqu’elle est not´e a, est dite sous sa formee
compl´ment´eee
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Axiomes de bases - 1

Commutativit´e
∀(a, b) ∈ E 2
a+b =b+a
a.b = b.a

Distributivit´e
∀(a, b, c) ∈ E 3
a + (b.c) = (a + b).(a + c)
a.(b + c) = (a.b) + (a.c)
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Axiomes de bases - 2

El´ments Neutree
∀a ∈ E
a+0=a
a.1 = a

Compl´mentatione
∀a ∈ E
a+a =1
a.a = 0
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Propri´t´s - 1ee

A partir des axiomes de base des propri´t´s fondamentalesee


sont d´duites.e
El´ments Absorbantse

∀a ∈ E
a+1=1
a.0 = 0

Loi d’idempotence
∀a ∈ E
a+a =a
a.a = a
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Propri´t´s - 2ee
Loi d’involution
∀a ∈ E
a=a
Loi d’absorption
∀(a, b) ∈ E 2
a + (a.b) = a
a.(a + b) = a
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Propri´t´s - 5ee

Loi d’associativit´e
∀(a, b, c) ∈ E 3
a + (b + c) = (a + b) + c
a.(b.c) = (a.b).c

Loi de De Morgan
∀(a, b) ∈ E 2
a + b = a.b
a.b = a + b
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

L’alg`bre - Ordre et Fonctione

Relation d’ordre :
Ordre Total : 0 < 1
Ordre Lexicographique : 00 < 01 < 10 < 11 Utile pour les
tables de v´rit´e e

Definition d’une fonction logique :


f (xn−1 , xn−2 , . . . , x1 , x0 ) : 0, 1n → 0, 1, n ∈ N∗
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Fonctions Logiques ` une variable aa

1 variable soit 4 fonctions possibles :


f =0 : fonction constante nulle
f =1 : fonction constante ` una
f =a : fonction identit´e
f =a : fonction compl´ment ou fonction NONe
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Fonctions Logiques ` deux variables a et ba

2 variables soit 16 fonctions possibles


f = a.b : fonction ET
f = a + b : fonction OU
f = a ⊕ b : fonction OU-EXCLUSIF
f = a.b : fonction NON-ET
f = a + b : fonction NON-OU
f = a ⊕ b : fonction NON-OU-EXCLUSIF
etc...
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Fonctions Logiques ` n variablesa

n
n variables soit 22 fonctions possibles
3 variables → 256 fonctions possibles
4 variables → 65536 fonctions possibles
etc ...
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Repr´sentation des fonctions logiquese

La Table de V´rit´e e
Repr´sentation sous forme de tableau des valeurs de lae
fonction logique pour toutes les combinaisons de ses variables
abf
0 0 f0
0 1 f1
1 0 f2
1 1 f3
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Repr´sentation des fonctions logiquese

Le Tableau de Karnaugh
Repr´sentation sous forme de matrice des valeurs de lae
fonction logique pour toutes les combinaisons de ses variables
en exploitant la propri´t´ d’adjacenceee

b 0 1
a c
0 0
f0 f1
0 1
f2 f3
1 1
f6 f7
1 0
f4 f5
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Repr´sentation des fonctions logiquese

Diagramme de Veitch
Diagramme de Venn
Arbre de d´cision binairee
Logigramme Partie technologie
Repr´sentation alg´brique Ecriture logiqueee
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Ecriture Alg´briquee

La repr´sentation sous forme de tableau ou de matrice este


limit´e ∼ 5 variables.e
N´cessit´ d’utiliser une ´criture alg´briqueeeee
La fonction logique s’exprime alors sous la forme de variables
bool´ennes reli´es entre elles par des op´rateurs de l’alg`breeeee
de Boole

f (a) = a Fonction NON


f (a, b, c) = cb + ab
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Ecriture Alg´brique - Minterme et Maxtermee

Un produit bool´en de variables bool´ennes est appel´ p-termeeee


Une somme bool´enne de variables bool´ennes est appel´eeee
s-terme
Un Minterme est un p-terme de degr´ ne

n−1
mj = ai , ai ∈ (ai , ai )˜ ˜
i =0

Un Maxterme est un s-terme de degr´ ne

n−1
Mj = ai , ai ∈ (ai , ai )˜ ˜
i =0
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Ecriture Alg´brique - Minterme et Maxtermee

La somme logique de tous les Mintermes est ´gale ` 1 si laea


fonction r´alis´e est diff´rente de la fonction constante 0e ee
p−1

mj = 1
j=0

Le produit logique de tous les Maxtermes est ´gal ` 0 si laea


fonction r´alis´e est diff´rente de la fonction constante 1e ee
p−1

Mj = 0
j=0

Relation entre Minterme et Maxterme

mj = Mj
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Ecriture Alg´brique - Minterme et Maxtermee

Exemples
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Ecriture Alg´brique - Forme Canoniquee

Ecriture alg´brique d’une fonction logique n’utilisant que dese


Mintermes ou des Maxtermes.
Il existe deux possibilit´s d’´criture :e e
Forme Canonique Disjonctive ou premi`re forme canonique :e
Elle s’exprime sous forme d’une somme de Mintermes
Forme Canonique Conjonctive ou seconde forme canonique :
Elle s’exprime sous forme d’un produit de Maxtermes
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Ecriture Alg´brique - Forme Canoniquee

Fonction Ou-exclusif ⊕ : la valeur de la fonction est un si une


et une seule des deux variables a la valeur un.
abf
000
011
101
110
Forme Canonique Disjonctive :
f (a, b) = ab + ba → Somme des Mintermes tel que f(a,b)=1, lu

directement de la table

Forme Canonique Conjonctive :


f (a, b) = (a + b).(a + b) → Produit des Maxtermes tel que
f(a,b)=1, cherche les mintermes pour lesquels f(a,b)=0 et on d´terminee
les valeurs de a et de b li´es ` ce minterme qui nie f(a,b)=0e a
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Ecriture Alg´brique - Forme Canoniquee

Exemples
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Domaine de d´finition des fonctionse

Un fonction logique peut-ˆtre soit compl´tement soitee


incompl´tement d´finieee
Une fonction est compl´tement d´finie lorsque pour toutes lesee
combinaisons de ses variables la valeur de la fonction est
d´finiee

Une fonction est compl´tement d´finie lorsque pour toutes lesee


combinaisons de ses variables la valeur de la fonction est
d´finiee
abf
000
010
100
111
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Domaine de d´finition des fonctionse

Une fonction est incompl´tement d´finie lorsque pour toutesee


les combinaisons de ses variables la valeur de la fonction n’est
pas d´finiee

Une fonction est incompl´tement d´finie lorsque pour toutesee


les combinaisons de ses variables la valeur de la fonction n’est
pas d´finiee
abf
001
01X
10X
111
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Minimisation de Fonctions
Utilisation des axiomes de base et des Propri´t´s qui enee
d´coulente
f (a, b, c) = ab + bc + c en utilisant la loi d’absorption
bc + c = c on obtient f (a, b, c) = ab + c
f (a, b) = a.(a + b) en utilisant l’axiome de la
compl´mentation a.a = 0 on obtient f (a, b) = ab.e
f (a, b, c) = (a + bc)ab = aab + abbc = ab + abc = ab en
utilisant successivement la loi d’idempotence et la loi
d’absorption.
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Minimisation de Fonctions

Exemples
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Minimisation de Fonctions

Une m´thode graphique : Les Tableaux de Karnaughe


Les variables sont pr´sent´es de fa¸on ` faire apparaˆ la loieec aıtre
d’absorption
a.b + a.b = a
Pour ce faire le code binaire r´fl´chi ou code de Gray est utilis´e ee
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Minimisation de Fonctions

Les Tableaux de Karnaugh : ´tapese


Regroupement d’ensembles de 2i cases de mˆme valeur (ene
g´n´ral de valeur 1) en maximisant i ` chaque fois. Possibilit´e eae
de regrouper les cases extrˆmese

Regrouper les cases de mˆme valeur restantes avec des casese


d’ensembles d´j` ´tablis pour avoir 2j cases en maximisant jea e
Ecrire l’´quation bool´enne alg´brique.eee
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Minimisation de Fonctions

Exemples
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Minimisation de Fonctions

Les Tableaux de Karnaugh : remarques


Dans le cas de fonctions incompl´tement d´finies, consid´rereee
X comme un 1 afin de maximiser les ensembles
M´thode limit´e ` ∼ 5 variables.ee a
Cours d’´lectronique num´riqueee
Alg`bre de Boolee

Minimisation de Fonctions

Exemples
Cours d’´lectronique num´riqueee
Codage

Codage

Codage
Cours d’´lectronique num´riqueee
Codage

Codage

Syst`me de base : codage d´cimalee


Conversion d´cimal-binaire et binaire-d´cimalee
∄n ⇒ 2n = 10, n´cessit´ codage octal ou h´xad´cimaleee e
Codage DCB : D´cimal Cod´ Binaireee
Code de Gray ou binaire r´fl´chie e
Code ASCII
Cours d’´lectronique num´riqueee
Codage

Conversion binaire-d´cimale

La conversion binaire-d´cimal s’effectue simplement ene


r´alisant la somme des bits pond´r´s par leur positioneee
n−1
∗ 2i o` bi est la valeur du bit de position iu
i =0 bi

Nombre Binaire 1 0 1 1 0
Position du bit 4 3 2 1 0
Nombre D´cimale 24 0 22 21 0
= 16 + 0 + 4 + 2 + 0 = 22
Cours d’´lectronique num´riqueee
Codage

Conversion d´cimal-binairee

La conversion d´cimal-binaire peut s’effectuer en utilisant lae


m´thode inverse de celle ´nonc´e pr´c´demment. Exemples.eeee e
Fastidieux pour de grand nombre.

R´alise un division par 2e


29 2
1 14 2
072
132
112
10

Nombre binaire = 11101


Cours d’´lectronique num´riqueee
Codage

Codage Hexad´cimale

Travaille avec des quartets binaires : 1010


Int´ressant la taille du mot binaire de base est l’octete
Un octet = Deux Quartets
Cours d’´lectronique num´riqueee
Codage

Codage Hexad´cimale

La base du syst`me H´xad´cimal est la base 16ee e


Il faut donc 16 symboles
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Cours d’´lectronique num´riqueee
Codage

Codage Hexad´cimale

Hexa D´cimale Binaire Hexa D´cimale Binaire


0 0 0000 8 8 1000
1 1 0001 9 9 1001
2 2 0010 A 10 1010
3 3 0011 B 11 1011
4 4 0100 C 12 1100
5 5 0101 D 13 1101
6 6 0110 E 14 1110
7 7 0111 F 15 1111
Cours d’´lectronique num´riqueee
Codage

Conversion Hexad´cimal-D´cimalee

De mˆme que pour la conversion binaire-d´cimal, il s’agit iciee


de faire une sommation pond´r´ des symbolesee

Nombre Hexad´cimale A 2 E
Position du symbole 2 1 0
Puissance associ´ee 162 161 160
Nombre D´cimale 10 ∗ 162 +2 ∗ 161 +14 ∗ 160
= 2606
Cours d’´lectronique num´riqueee
Codage

Conversion D´cimal-Hexad´cimalee

De mˆme que pour la conversion d´cimal-binaire on a recourtee


a` la division
311 16
7 19 16
3 1 16
10

Nombre H´xad´cimal = 137e e


Cours d’´lectronique num´riqueee
Codage

Conversion Hexad´cimal-Binairee

Le nombre binaire est d´duit en rempla¸ant chaque chiffreec


hexad´cimal par son quartet binairee

Nombre Hexad´cimale E 3 B 1
Nombre Binaire 1110 0011 1011 0001
Cours d’´lectronique num´riqueee
Codage

Conversion Binaire-Hexad´cimale

La m´thode est l’inverse de la pr´c´denteee e


on regroupe les bits par quartet et on remplace les quartets
par leur ´quivalent hexad´cimal.ee

Nombre Binaire 0101 1010 1100 1011


Nombre Hexad´cimale 5 A C B
Cours d’´lectronique num´riqueee
Codage

Notations

Les symboles 0,1 appartiennent au code binaire, d´cimal ete


hexad´cimale
les symboles 0,1,2,3,4,5,6,7,8 et 9 appartiennent au code
d´cimal et hexad´cimalee
N´cessit´ d’une convention d’´criture pour diff´renciereeee
Binaire 100B
D´cimale 100
Hexad´cimale 100H
Cours d’´lectronique num´riqueee
Codage

D´cimal Cod´ Binaire : DCBee

Remplacer chaque chiffre d’un nombre d´cimal par sone


´quivalent binairee
Faire une correspondance directe entre binaire et d´cimale
Nombre D´cimale5371
Nombre Binaire0101 0011 0111 0001
Nombre Binaire0101 1001 1000 0011
Nombre D´cimale5983
Cours d’´lectronique num´riqueee
Codage

D´cimal Cod´ Binaireee

Sous-Utilisation de l’espace de repr´sentation binairee


6 repr´sentations interditese
1010B ,1011B ,1100B ,1101B ,1110B ,1111B
Diff´rence entre codage binaire et DCBe
231 =11100111B en binaire
231 =001000110001B en DCB
Cours d’´lectronique num´riqueee
Codage

Code de Gray

Une repr´sentation ne diff`re de la pr´c´dente que d’un biteee e


D´cimale Binaire Gray D´cimale Binaire Gray
0 0000 0000 8 1000 1100
1 0001 0001 9 1001 1101
2 0010 0011 10 1010 1111
3 0011 0010 11 1011 1110
4 0100 0110 12 1100 1010
5 0101 0111 13 1101 1011
6 0110 0101 14 1110 1001
7 0111 0100 15 1111 1000
Cours d’´lectronique num´riqueee
Codage

Code ASCII

Besoin de traiter de l’information non num´riquee


Information Alphanum´rique : , ? R t je
Mise en place d’un codage sur 7 bits : l’ASCII
American Standard Code for Information Interchange
7 bits : 26 lettres minuscules, 26 lettres majuscules, 10
chiffres, 7 signes de ponctuation soit 69 signes ` coder. Lea
reste sert pour des caract`res sp´ciauxee

ASCII ´tendu : 8 bitse


Cours d’´lectronique num´riqueee
Codage

ASCII

Caract`ree Code Hexad´cimale


A 41H
E 45H
I 49H
M 4DH
N 4EH
Q 51H
R 52H
U 55H

4EH 55H 4DH 45H 52H 49H 51H 55H 45H


NUMERIQUE
Cours d’´lectronique num´riqueee
Introduction a VHDL`

Conception

Conception
Cours d’´lectronique num´riqueee
Introduction a VHDL`

Comment Concevoir un Circuit ?

Cela d´pend du circuit.e


petits circuits : A la main, en sch´matiquee
circuits moyens : A la main ` l’aide de composants discretsa
gros circuits : A l’aide de langage de Description de circuits
num´riquese
Cours d’´lectronique num´riqueee
Introduction a VHDL`

Les Langages de description

Langage de type HDL : Hardware Description Language


VHDL : Volont´ d’Industriels et de Chercheurs de d´finir unee
langage HDL
Verilog : Issu de la soci´t´ Cadence Inc.ee
System C : Mettre au mˆme niveau Logiciel et Mat´rielee
Cours d’´lectronique num´riqueee
Introduction a VHDL`

VHDL

Existe depuis 1987 date de la premi`re norme. 1993 secondee


norme.
Langage Mˆr et couramment utilis´ue
3 Niveaux :
Niveau Structurel
Niveau Flot de Donn´ese
Niveau Comportemental
Cours d’´lectronique num´riqueee
Introduction a VHDL`

VHDL - RTL

RTL : Register Transfert Level


Description Synth´tisablee
Utilisable pour fondre un circuit
Utilis´e dans ce course
Cours d’´lectronique num´riqueee
Introduction a VHDL`

VHDL - Base

3 blocs de base:
Les biblioth`quese
L’entit´ : D´crit l’interfa¸age du composanteec
L’architecture : D´crit le fonctionnement du composante
Cours d’´lectronique num´riqueee
Introduction a VHDL`

VHDL - Biblioth`quee

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
Cours d’´lectronique num´riqueee
Introduction a VHDL`

VHDL - Entit´e

entity MON-ET is
port( A : in std_logic;
B : in std_logic;
S : out std_logic);
end entity MON-ET;
Cours d’´lectronique num´riqueee
Introduction a VHDL`

VHDL - L’architecture

S = A et B
architecture FLOT of MON-ET is
begin
S <= A and B;
end architecture FLOT;
Cours d’´lectronique num´riqueee
Introduction a VHDL`

flot de conception

De la description au circuit
D´crit en VHDL le circuite
Simule le circuit
Synth´tise le circuite
Placement-Routage du circuit
R´alise un masquee
Cuisson du circuit
Cours d’´lectronique num´riqueee
Introduction a VHDL`

Langage HDL, a quoi ca sert ?¸

A la conception d’ASIC
A la programmation de FPGA (cours SSN)
A la v´rification fonctionnelle de circuits num´riques.ee
Cours d’´lectronique num´riqueee
Logique Combinatoire

Logique Combinatoire

Logique Combinatoire
Cours d’´lectronique num´riqueee
Logique Combinatoire

Logique Combinatoire

Transposition de l’alg`bre de Boole ` l’´lectroniqueea e


Rendu possible grˆce au composant tel que le transistora
command´ en tensione
Le domaine de validit´ de ce qui suit est l’´lectroniqueee
num´riquee
Cours d’´lectronique num´riqueee
Logique Combinatoire

Logique Combinatoire

D´finition :e
Un circuit ´lectronique est dit combinatoire si ses sorties sonte
ed´termin´es par la combinaison de ses
variables d’entr´es et ceciee
apr`s un temps fini. L’´tat d’un syst`me est donc d´fini par laeeee
combinaison des variables e1 , . . . , ei , . . . , en .
Cours d’´lectronique num´riqueee
Logique Combinatoire

Logique Combinatoire

e1
ei Circuit
s1
en Combinatoire
si
sn
tp
Cours d’´lectronique num´riqueee
Logique Combinatoire

Les Al´as Temporelse

a+a=0 ?
Cours d’´lectronique num´riqueee
Logique Combinatoire

Logique Combinatoire - Op´rateurs de basee

Fonctions ` une variablea


Buffer (identit´) : s = ae

Inverseur : s = a

1
Cours d’´lectronique num´riqueee
Logique Combinatoire

Logique Combinatoire - Op´rateurs de basee

Fonctions ` deux variablesa


ET (AND) : s = a.b

&
NON-ET (NAND) : s = a.b

&
Cours d’´lectronique num´riqueee
Logique Combinatoire

Logique Combinatoire - Op´rateurs de basee

Fonctions ` deux variablesa


OU (OR) : s = a + b

1
NON-OU (NOR) : s = a + b

1
Cours d’´lectronique num´riqueee
Logique Combinatoire

Logique Combinatoire - Op´rateurs de basee

Fonctions ` deux variablesa


OU-EXCLUSIF : s = a ⊕ b = ab + ab

1
NON-OU-EXCLUSIF : s = a ⊕ b = ab + ab = ab + ab

1
Cours d’´lectronique num´riqueee
Logique Combinatoire

Plan du Cours

Introduction
Alg`bre de Boole et Logique Combinatoiree
Fonctions Combinatoires Complexes
Cours d’´lectronique num´riqueee
Logique Combinatoire

Fonctions Combinatoires Complexes

Fonctions Combinatoires Complexes


Cours d’´lectronique num´riqueee
Logique Combinatoire

introduction

Compos´es ` partir des op´rateurs de basee ae


Conditionnement de donn´ese
Contrˆle de donn´esoe
D´finies par leur table de v´rit´ee e
Cours d’´lectronique num´riqueee
Logique Combinatoire

Fonction Egalit´e

Egalit´ 2 bitse
a b s
0 0 1
0 1 0
s =a⊕b
1 0 0
1 1 1
Cours d’´lectronique num´riqueee
Logique Combinatoire

Egalit´ - VHDLe

entity egalite is
port( a,b : in std_logic;
s : out std_logic);
end entity egalite;

architecture flot of egalite is


begin
s <= not(a xor b);
end architecture flot;
Cours d’´lectronique num´riqueee
Logique Combinatoire

Fonction Egalit´e

Egalit´ 2 mots de 2 bitse


a = a1 , a0 et b = b1 , b0
a1 0 0 1 1
a0 0 1 1 0
b1b0

00 1

01 1

11 1

10 1

s = (a1 ⊕ b1 )(a0 ⊕ b0 )
Egalit´ de 2 mots de n bits :e
s = (an−1 ⊕ bn−1 )(an−2 ⊕ bn−2 )(...)(a1 ⊕ b1 )(a0 ⊕ b0 )
Cours d’´lectronique num´riqueee
Logique Combinatoire

Egalit´ - VHDLe

entity egalite is
port( a,b : in std_logic_vector(1 downto 0);
s : out std_logic);
end entity egalite;

architecture flot of egalite is


begin
s <= not(a(1) xor b(1)) and not(a(0) xor b(0));
end architecture flot;
Cours d’´lectronique num´riqueee
Logique Combinatoire

Egalit´ - VHDLe

VHDL apres l’UE LE201


Ce que peut faire VHDL
Hors du cadre du cours LE201

entity egalite is
port( a,b : in std_logic_vector(1 downto 0);
s : out std_logic);
end entity egalite;

architecture comp of egalite is


begin
process(a,b) is
begin
if a= b then
s<=’1’;
else
s<=’0’;
end if;
end process;
end architecture comp;
Cours d’´lectronique num´riqueee
Logique Combinatoire

Multiplexeurs

Multiplexeur = Aiguillage
Une commande choisie l’entr´ee
Entr´e choisie recopi´e sur la sortieee
Partie Commande : p bits
Partie Donn´e : 2p = n entr´es, 1 sortieee
Cours d’´lectronique num´riqueee
Logique Combinatoire

Multiplexeurs 2 vers 1 - Table de v´rit´e e

a 0 0 1 1
b 0 1 1 0
sel
0 1 1

1 1 1

s = sel .a + sel .b
Cours d’´lectronique num´riqueee
Logique Combinatoire

Multiplexeurs 2 vers 1

Sch´mae

sel

a
s
b
Cours d’´lectronique num´riqueee
Logique Combinatoire

VHDL - mux2v1

entity m2v1 is
port(a,b,sel : in std_logic;
s: out std_logic);
end entity m2v1;

architecture flot of m2v1 is


begin
s <= (a and not(sel)) or (b and sel);
end architecture flot;
Cours d’´lectronique num´riqueee
Logique Combinatoire

VHDL - mux2v1

VHDL un petit cran en plus


Ou l’on utilise des constructions VHDL un peu plus expressives

entity m2v1 is
port(a,b,sel : in std_logic;
s: out std_logic);
end entity m2v1;

architecture flot of m2v1 is


begin
s <= a when sel=’0’ else b; -- s prend la valeur de a s
-- sinon si sel <> ’0’ s pr
end architecture flot;
Cours d’´lectronique num´riqueee
Logique Combinatoire

Multiplexeurs 4 vers 1

4 donn´es et 2 commandese
26 = 64 lignes dans la table de v´rit´e e
Toutes les lignes ne sont pas int´ressantese
Une commande ⇒ Une variable pertinente
Cours d’´lectronique num´riqueee
Logique Combinatoire

Multiplexeurs 4 vers 1

sel1 sel0 s
00a
b01
c10
d11
s = sel 1.sel 0.a + sel 1.sel 0.b + sel 1.sel 0.c + sel 1.sel 0.d
Cours d’´lectronique num´riqueee
Logique Combinatoire

Multiplexeurs 4 vers 1

sel0
sel1

a
s
b

d
Cours d’´lectronique num´riqueee
Logique Combinatoire

Multiplexeurs

Permet de r´aliser des fonctions logiquese


Un Multiplexeur n vers 1 r´alise 2n fonctionse
Valeurs des entr´es = valeurs de la fonctione
Un Multiplexeur 4 vers 1
x y s entr´e muxe
0 0 0 a=0
0 1 0 b=0
1 0 0 c=0
1 1 1 d=1

x et y commandes du multiplexeur
Cours d’´lectronique num´riqueee
Logique Combinatoire

D´multiplexeurse

Inverse du Multiplexeurs
1 donn´es, p commandes, 2p = n sortiese
D´multiplexeur 1 vers 2e
sel a s1 s0
0 0 0 0
0 1 0 1
1 0 0 0
1 1 1 0
Cours d’´lectronique num´riqueee
Logique Combinatoire

D´multiplexeurse

sel a s1 s0
0 0 0 0
0 1 0 1
1 0 0 0
1 1 1 0

s0 = sel.a et s1 = sel .a
Cours d’´lectronique num´riqueee
Logique Combinatoire

D´multiplexeurse

sel

a s0

s1
Cours d’´lectronique num´riqueee
Logique Combinatoire

D´multiplexeurs - VHDLe

entity demux is
port ( sel,a : in std_logic;
s0,s1 : out std_logic);
end entity demux;

architecture flot of demux is


begin
s0 <= a when sel = ’0’ else ’0’;
s1 <= a when sel = ’1’ else ’0’;
end architecture flot;
Cours d’´lectronique num´riqueee
Logique Combinatoire

D´codeurse

D´codage Binaire → Codage 1 parmi ne


n entr´es, 2n sortiese
a b s3 s2 s1 s0
0 0 0 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0
1 1 1 0 0 0

Autant de tableaux de Karnaugh que de sorties !


Trivial :
s0 = a.b,
s1 = a.b,
s2 = a.b,
s3 = a.b
Cours d’´lectronique num´riqueee
Logique Combinatoire

D´codeure

b
a

s0

s1

s2

s3
Cours d’´lectronique num´riqueee
Logique Combinatoire

D´codeure

D´codeur Binaire Base ne

a0 0
1

{
2
3
4
Nombre a1 5
Décodeur 6
Binaire 7
4 vers 16 8
a a2 9
A
B
C
a3 D
E
F
Cours d’´lectronique num´riqueee
Logique Combinatoire

Encodeurs

inverseur des d´codeurs :codeurse


2n entr´es, n sortiese
s3
s2 s1 s0 a b
0
0 0 1 0 0
0
0 1 0 0 1
0
1 0 0 1 0
1
0 0 0 1 1

b = s3.s2.s1.s0 + s3.s2.s1.s0 = s2.s0(s3 ⊕ s1)


a = s3.s2.s1.s0 + s3.s2.s1.s0 = s1.s0.(s3 ⊕ s2)
Cours d’´lectronique num´riqueee
Logique Combinatoire

Encodeurs

s0

s1 a

s2

s3

b
Cours d’´lectronique num´riqueee
Logique Combinatoire

Fonctions Combinatoires Complexes

Fonctions Combinatoires Arithm´tiquese


Cours d’´lectronique num´riqueee
Logique Combinatoire

Nombres Sign´se

Comment Coder les Nombres Sign´s en Binaire ?e


Introduire un bit de signe : bit de poids fort
Nombre sur 4 bits
b3 b2 b1 b0 signe valeur d´cimalee
0 100+ 4
1 -100 -4
Codage Signe + Valeur Absolue

N´cessite trop de logique pour r´aliser des op´rateurseee


arithm´tiquese
Cours d’´lectronique num´riqueee
Logique Combinatoire

Compl´ment ` 2ea

Utilisation d’un codage qui permet de limiter les op´rateure


Compl´ment ` 2 :ea
Bit de signe : bit de poids fort
Si bit de signe = 0 : Le nombre est cod´e
Si bit de signe = 1 : Compl´ment ` 2 pour avoir la valeurea

Principe : Pour un nombre de n bits compl´menter le nombree


npour arriver ` 2a
Cours d’´lectronique num´riqueee
Logique Combinatoire

Compl´ment ` 2ea

Codage de 7 :
b3 b2 b1 b0 signe valeur d´cimalee
01 1 1 + 7
Codage de -7 :
b3 b2
10
b1 b0 signe valeur d´cimalee
0 1 - -7
Cours d’´lectronique num´riqueee
Logique Combinatoire

Compl´ment ` 2ea

Etapes pour compl´menter ` 2ea


Faire le compl´ment ` 1 du nombre : compl´mentation bit `eaea
bit
Ajouter 1 au nombre
Exemple : codage de -5

b3 b2 b1 b0 Commentaires
0 1 0 1 Valeur Absolue
1 0 1 0 Compl´ment ` 1ea
+ 1 Ajout de 1
1 1 Compl´ment ` 2ea
0 1
Cours d’´lectronique num´riqueee
Logique Combinatoire

Compl´ment ` 2ea

Avantage :
Unicit´ du 0e
Utilisation du mˆme op´rateur pour l’addition et laee
soustraction
Modulo : 9H - 4H = (9H + CH )modulo(10H ) = 5H
Exemples en binaire.
Cours d’´lectronique num´riqueee
Logique Combinatoire

Compl´ment ` 2ea

Codage sur N bits, N fini


On veut coder un nombre n´gatif −P sur N bits, P ∈ [0, 2N ]e
On sait que 2N = CP + P
On pose −P = CPmod2N
Ce qui donne −P = (2N − P)mod2N
On sait que P ∈ [0, 2N ] donc on a bien (2N − P)mod2N = −P
Cours d’´lectronique num´riqueee
Logique Combinatoire

Compl´ment ` 2ea

Si P positif on le code
P =N−1P = ii =0 bi ∗ 2i
P =N−2P = bN−1 ∗ 2N−1 + ii =0 bi ∗ 2i avec bN−1 = 0

Si P n´gatif on le codee
P =N−1P = −(2N − ii =0 bi ∗ 2i )
P =N−2P = −(2N − bN−1 ∗ 2N−1 − ii =0 bi ∗ 2i ) avec bN−1 = 1
P =N−2P = −(2N − 2N−1 − ii =0 bi ∗ 2i )
P =N−2P = −(2N−1 (2 − 1) − ii =0 bi ∗ 2i )
P =N−2P = −(2N−1 − ii =0 bi ∗ 2i )
P =N−2P = −bN−1 ∗ 2N−1 + ii =0 bi ∗ 2i avec bN−1 = 1

Nombre en compl´ment ` 2ea


Pi =N−2P = −bN−1 ∗ 2N−1 + i =0 bi ∗ 2i
Cours d’´lectronique num´riqueee
Logique Combinatoire

Demi-Additionneur

R´alisation d’un demi-additionneure


abs r
000 0
011 0
101 0
110 1
s =a⊕b

r = a.b
Cours d’´lectronique num´riqueee
Logique Combinatoire

Demi-Additionneur

a
s
b

c
Cours d’´lectronique num´riqueee
Logique Combinatoire

Demi-Additionneur

entity demi-add is
port( a,b : in std_logic;
s,c : out std_logic);
end entity demi-add;
architecture flot of demi-add is
begin
s<= a xor b;
c<= a and b;
end architecture flot;
Cours d’´lectronique num´riqueee
Logique Combinatoire

Additionneur 1 bit

Introduction d’une retenue d’entr´ee


Trois variables d’entr´es, deux de sortiese
ai ,bi ,ci et si ,ci +1
si = ai ⊕ bi ⊕ ci
ci +1 = ai .bi + ai .ci + bi .ci
Utilisation de deux demi-additionneurs
Cours d’´lectronique num´riqueee
Logique Combinatoire

Additionneur 1 bit

ai si
Demi Demi
bi Additionn Additionn ci+1
eur eur
ci
Cours d’´lectronique num´riqueee
Logique Combinatoire

Additionneur 1 bit

entity add1 is
port( a,b,cin : in std_logic;
s,cout : out std_logic);
end entity add1;
architecture struct of add1 is
signal stemp,ctemp1,ctemp2 : std_logic;
begin
demi-add1 : entity work.demi-add(flot)
port map(a,b,stemp,ctemp1);
demi-add2 : entity work.demi-add(flot)
port map(stemp,cin,s,ctemp2);
cout <= ctemp1 or ctemp2
end architecture struct;
Cours d’´lectronique num´riqueee
Logique Combinatoire

Additionneur 1 bit

entity add1 is
port( a,b,cin : in std_logic;
s,cout : out std_logic);
end entity add1;
architecture flot of add1 is
begin
s<= a xor b xor cin;
cout<= (a and b) or (a and cin)
or (b and cin);
end architecture flot;
Cours d’´lectronique num´riqueee
Logique Combinatoire

Additionneur 1 bit

VHDL apres l’UE LE201


Ce que peut faire VHDL
Hors du cadre du cours LE201

entity add1 is
port( a,b : in std_logic;
s : out std_logic);
end entity add1;
architecture comport of add1 is
begin
s<= a + b;
end architecture comport;
Cours d’´lectronique num´riqueee
Logique Combinatoire

Additionneur 4 bits

s0 s1 s2 s3

a0 a1 a2 a3
b0 b1 b2 b3
c0 c1 c2 c3
c4
Cours d’´lectronique num´riqueee
Logique Combinatoire

Additionneur 4 bits : Entit´e

ENTITY add4 IS
port (a,b : in std_logic_vector(3 downto 0);
cin : in std_logic;
s : out std_logic_vector(3 downto 0);
cout : out std_logic);
END ENTITY add4;
Cours d’´lectronique num´riqueee
Logique Combinatoire

Additionneur 4 bits : Architecture Simple

ARCHITECTURE struct_simple OF add4 IS


signal c : std_logic_vector(4 downto 0);
BEGIN

c(0) <= cin;


cout <= c(4);

add1_0 : entity work.add1(flot)


port map (a(0),b(0),c(0),s(0),c(1));

add1_1 : entity work.add1(flot)


port map (a(1),b(1),c(1),s(1),c(2));

add1_2 : entity work.add1(flot)


port map (a(2),b(2),c(2),s(2),c(3));

add1_3 : entity work.add1(flot)


port map (a(3),b(3),c(3),s(3),c(4));
END ARCHITECTURE struct_simple;
Cours d’´lectronique num´riqueee
Logique Combinatoire

Additionneur 4 bits : Architecture avec G´n´ratione e

ARCHITECTURE struct_generate OF add4 IS


signal c : std_logic_vector(4 downto 0);
BEGIN

c(0) <= cin;


cout <= c(4);

instance : for i in 0 to 3 generate


add1_i : entity work.add1(flot)
port map (a(i),b(i),c(i),s(i),c(i+1));
end generate;

END ARCHITECTURE struct_generate;


Cours d’´lectronique num´riqueee
Logique Combinatoire

Multiplieur

Utilisation de l’algorithme de Multiplication


n ∗ m m additions de n
a0 p1 p0
0
ci

a1 ai
bi
ci+1
si

p2
ci ci
ai si
a2
ai si
bi bi
ci+1 ci+1

p3
ci
ci
ai si
ai si
bi
0 bi
ci+1
ci+1

p5 p4
ci
ai si
bi
ci+1

b0 b1 b2
Cours d’´lectronique num´riqueee
Logique Combinatoire

Compl´ment VHDL : Mod´lisation du tempsee

library ieee;
use ieee.std_logic_1164.all;

entity mon-et is
port(a,b : in std_logic;
s : out std_logic);
end entity mon-et;

architecture flot of mon-et is


begin
s <= a and b after 25 ns;
end architecture flot;
Cours d’´lectronique num´riqueee
Logique Combinatoire

Compl´ment VHDL : D´calage et mise ` l’´chelleeea e

library ieee;
use ieee.std_logic_1164.all;

entity conversion is
port(a : in std_logic_vector(5 downto 0);
s,s2,s3 : out std_logic_vector(11 downto 0));
end entity conversion;

architecture flot of conversion is


begin
a <= "010101";
s <= "0000" & a & "00"; -- s = "000001010100"
s2 <= "00000" & a & ’0’; -- s2 = "000000101010"
s3 <= a & "000000"; -- s3 = "010101000000"
end architecture flot;
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Plan du Cours

Introduction
Alg`bre de Boole et Logique Combinatoiree
Fonctions Combinatoires Complexes
El´ments s´quentiels de base : Les Basculesee
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Les ´l´ments s´quentiels de baseeee

El´ments de basee
R´gulation du flux des donn´esee
Fonction M´morisatione
El´ments Asynchronese
El´ments Synchronese
Cours d’´lectronique num´riqueee
Logique S´quentiellee

El´ments Asynchronese

Les Bascules Asynchrones


Cours d’´lectronique num´riqueee
Logique S´quentiellee

Le bascule RS

0
0

0
0
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Le bascule RS

R S Q Q
0 0 Q Q
Table de V´rit´ 0e e 1 1 0
1 0 0 1
1 1 Etat Interdit
El´ment Asynchronee

Base de toutes les bascules


Cours d’´lectronique num´riqueee
Logique S´quentiellee

La bascule D

1 1
0

1
0
Cours d’´lectronique num´riqueee
Logique S´quentiellee

La bascule D

D Q

Q
Cours d’´lectronique num´riqueee
Logique S´quentiellee

El´ments Synchronee

Bascules Synchrones
Cours d’´lectronique num´riqueee
Logique S´quentiellee

La bascule D active sur niveau

D
0
Q

0 Q
0
Cours d’´lectronique num´riqueee
Logique S´quentiellee

La bascule D active sur niveau

Q
Cours d’´lectronique num´riqueee
Logique S´quentiellee

La bascule D active sur niveau

D Q

CK Q
Cours d’´lectronique num´riqueee
Logique S´quentiellee

La bascule D active sur niveau

Table de V´rit´e e
D H Qn+1 Qn+1
0 0Qn Qn D H Qn+1 Qn+1
00 1 1 X 0 Qn Qn
Qn1 0 Qn 0 1 0 1
1 11 0 1 1 1 0
Cours d’´lectronique num´riqueee
Logique S´quentiellee

La bascule D active sur niveau : chenillar

1 1 1 1 1
D Q D Q D Q D Q

1 CK Q CK Q CK Q CK Q
Cours d’´lectronique num´riqueee
Logique S´quentiellee

La bascule D active sur front

D
S

S
Q

H
R
Q
R

Maitre Esclave
Architecture Maˆıtre-Esclave
Cours d’´lectronique num´riqueee
Logique S´quentiellee

La bascule D active sur front

D Q

CK Q
Cours d’´lectronique num´riqueee
Logique S´quentiellee

La bascule D active sur front

Table de V´rit´e e
Front Montant
D H Q Q
X 0 Q Q
Front Descendant 0 ↓ 0 1
1 ↓ 1 0
Cours d’´lectronique num´riqueee
Logique S´quentiellee

La bascule D active sur front : chenillar

1 0 1 0
D Q D Q D Q D Q

1 -> 0 CK Q Q Q Q
CK CK CK
Cours d’´lectronique num´riqueee
Logique S´quentiellee

La bascule D active sur front : Consid´rations Temporellese

CK

D STABLE

ts th

ts est le temps de pr´positionement (setup en anglais)e


th est le temps de maintien (hold en anglais)
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Vhdl : Bascule D active sur front

entity bascule is
port ( d, clk : in std_logic;
q : out std_logic );
end entity bascule;

architecture comport of bascule is


begin
stockage : process(d,clk) is
begin
if clk=’1’ and clk’event then
q <= d;
end if;
end process stockage;
end architecture comport;
Cours d’´lectronique num´riqueee
Logique S´quentiellee

La bascule JK

J K H Qn+1 Qn+1
0 0 ↑ Qn Qn
0 1 ↑ 0 1
Front Montant
1 0 ↑ 1 0
1 1 ↑ Qn Qn

J K H Qn+1 Qn+1
0 0 ↓ Qn Qn
0 1 ↓ 0 1
Front Descendant
1 0 ↓ 1 0
1 1 ↓ Qn Qn
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Symbole Bascule JK

J Q

CK

K Q
Cours d’´lectronique num´riqueee
Logique S´quentiellee

La bascule T

T H Qn+1 Qn+1
Front Montant 0 ↑ Qn Qn
1 ↑ Qn Qn

T H Qn+1 Qn+1
Front Descendant 0 ↓ Qn Qn
1 ↓ Qn Qn
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Symbole Bascule JK

T Q

CK Q
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Entr´es Asynchronese

N´cessit´ de forcer les sortiesee


Ajout d’entr´es asynchronese
RAU : Remise ` Un ou entr´e Set en anglaisae
RAZ : Remise ` Z´ro ou entr´e Reset en anglaisa ee
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Entr´es Asynchronese

RAU

D Q

DH
CKQ RAU RAZ Qn+1 Qn+1
X X10 1 0
RAZX X01 0 1
O ↑00 0 1
1 ↑00 1 0
Combinaison RAU=RAZ=1 interdite

Entr´es RAU et RAZ souvent actives ` 0ea


Cours d’´lectronique num´riqueee
Logique S´quentiellee

Entr´es Asynchronese

RAU

D Q

CK Q

RAZ
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Et apr`s ?e

Les registres
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Les registres

Taille des donn´es 1 bitse


Associer des Bascules pour augmenter la taille
El´ments importants dans les micro-processeurs : permet dee
r´aliser un pipelinee
R´alise des barri`res de synchronisationee
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Registre bascules D
Registre ` D´calagea e

D Q D Q D Q D Q

CK Q CK Q CK Q CK Q
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Registre bascules D
Registre ` chargement parall`leae

D3 D2 D1 D0
D Q D Q D Q D Q

CK Q CK Q CK Q CK Q

Q3 Q2 Q1 Q0
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Registre bascules JK

J Q J Q J Q J Q

CK CK CK CK

K Q K Q K Q K Q
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Vhdl : registre

entity reg8generic is
generic (N : natural := 8);
port ( d :in std_logic_vector(N-1 downto 0);
clk : in std_logic;
q: out std_logic_vector(N-1 downto 0) );
end entity reg8generic;

architecture comport of reg8generic is


begin
stockage : process(clk,d) is
begin
if (clk=’1’ and clk’event) then
q <= d;
end if;
end process stockage;
end architecture comport;
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Les monostables
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Monostable simple

Circuit ne poss´dant qu’un ´tat stableee


Q QEtat
Souvent :0 1Stable
1 0 Quasi Stable
Etat Quasi Stable est momentan´e

Dur´e Quasi Stable fix´e par circuit RCee


Cours d’´lectronique num´riqueee
Logique S´quentiellee

Monostable simple

τ=RC Q

C
R
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Monostable simple

τ=f(RC) τ=f(RC) τ=f(RC)


τ=f(RC)
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Monostable red´clencheablee

Monostable Simple : Dur´e Etat Quasi Stable Fixee

τ=f(RC) τ=f(RC) τ=f(RC)

N´cessit´ de pouvoir rester Quasi Stableee

τ=f(RC)τ=f(RC)
2τ=2f(RC)
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Les portes 3 ´tatse

Boole = 2 ´tats : 0 et 1e
Connexion de 2 composants sur le mˆme fil ?e
Premi`re Solution : Court Circuit PERDUe
Seconde Solution : multiplexeur encombrant
Troisi`me Solution : Composant d’interface La porte 3 ´tatsee
GAGNE
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Les portes 3 ´tatse

Introduction d’un Etat Z


Etat Haute Imp´dancee
Tout ce passe comme si le fil n’´tait pas connect´ee
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Vhdl : registre

entity reg8generic is
generic (N : natural := 8);
port ( d :in std_logic_vector(N-1 downto 0);
en, clk : in std_logic;
q: out std_logic_vector(N-1 downto 0) );
end entity reg8generic;

architecture comport of reg8generic is


begin
stockage : process(d,en,clk) is
begin
if (clk=’1’ and clk’event) then
if en = ’1’ then
q <= d;
else
q<= (others=>’Z’);
end if;
end if;
end process stockage;
end architecture comport;
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Syst`mes S´quentiels Complexesee

Syst`mes S´quentielsee
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Syst`mes S´quentielsee

Les registres (D´j` vus)ea


Les m´moirese
Les compteurs
Le contrˆle (les pipelines)o
Les Machines ` Etats (Cours Synth`se des Syst`mesaee
Num´riques)e
What Else ?
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Les m´moirese

Association de plusieurs Registres


Utilisation de Bascules D souvent
M´moires Asychrones ⇒ Bascules Asynchronese
M´moires Synchrones ⇒ Bascules Synchronese
Ajout d’une entr´e de s´lectionee
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Les m´moirese

S´lection ⇒ sortie 3 ´tatsee


Enable

D Q

CK Q
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Les m´moirese

M´moire 2 mots de 2 bitse


Adresse

E E
D Q D Q

CK Q CK Q

2 Donnée
Donnée 2 Sortante
Entrante

E E
D Q D Q

CK Q CK Q

Horloge
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Les Compteurs

Syst`me s´quentiel dont les sorties sont une suiteee


pr´-d´termin´e d’´tatse eee
Bascules D ou JK
Plus ou Moins Complexes
Simple (Bˆte) compte de 0 ` N − 1 en boucleea
log2 (N) bascules
Complexes
Initialisation
Arrˆt - Reprisee
Compteur - D´compteure
Fonctions n´cessaires ` l’applicationea
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Le contrˆleo

Contrˆle du flux des donn´esoe


Un registre entre 2 op´rateurse
R´alisation d’un pipelinee
A

Registre S Registre
Additionneur Multiplieur
B

Sn = (An−1 + Bn−1 ) ∗ Bn
Cours d’´lectronique num´riqueee
Logique S´quentiellee

Les Al´ase

D Q S

CK Q
Cours d’´lectronique num´riqueee
Le pipeline

Pipeline
Cours d’´lectronique num´riqueee
Le pipeline

Pipeline

Principe :
D´couper l’op´rateur en plusieurs ´tages isol´s les uns des autres.eeee
C’est le signal d’horloge qui autorise les transfert des donn´es d’une
´tage ` l’autre. Cette technique permet d’acc´l´rer la cadence deeaee
production des r´sultats.e

Latence
La latence (dur´e d’ex´cution totale) de l’op´rateur est sup´rieureeeee
d’au moins ǫ ` celle d’un op´rateur non pipelin´e. Si la dur´eaeee
maximale d’un ´tage de l’op´rateur pipelin´ est de tmax et qu’il y aeee
n ´tages, alors la latence de l’op´rateur est T = n ∗ tC LK avecee
tc lk > tm ax + th + ts avec ts et th les temps de pr´positionnemente
et de maintien des bascules.
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

R´f´rencesee

Conception des ASICS - P. Naish et P. Bishop - Masson


Logic Reference Guide 4Q2001 - Texas Instrument -
http://www.ti.com
Des Liens Utiles pour tous les Electroniciens -
http://perso.wanadoo.fr/xcotton/electron/index.htm
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Vocabulaire

Quelques grandeurs caract´ristiquese


F Fr´quence de Fonctionnemente
P Puissance Dissip´ee
Tp Temps de Propagation
Sortance : nombre maximal d’entr´es qui peuvent ˆtreee
pilot´es par une sortie.e
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Int´gration ?e

Plusieurs niveaux d’int´gratione


SSI: Small Scale Integration < 12 portes logiques
MSI: Mean Scale Integration de 12 ` 99 portes logiquesa
LSI: Large Scale Integration de 100 ` 9999 portes logiquesa
VLSI: Very Large Scale Integration de 10000 ` 99999 portesa
logiques
ULSI: Ultra Large Scale Integration 100000 et plus de portes
logiques
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Technologie - 1

Comment r´aliser des fonctions logiques ?e


N´cessit´ de composants command´s ´lectriquementeee e
Les Diodes (Famille DTL)
Vdd = 5V

B S

Vss = 0V

Les Transistors
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Technologie - 2

La logique Bi-polaire
Famille originelle des transistors
Bipolaire=Rapidit´e
Bipolaire=Consommation
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Bipolaire

La Famille TTL : Transistor - Transistor - Logic


Vdd = 5V

R1 R2 R4

A
B
S

R3

Vss = 0V
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

T.T.L 1

Historique : premi`re famille : 1964 - Texas Instrument -e


Famille 54/74
Famille 74 : Famille de r´f´renceee
Tous les fabricants utilisent cette r´f´renceee
Compatibilit´ des circuits entre euxe
Tension d’alimentation : 0-5V
1 logique : Vih > 2V
0 logique : Vil < 0, 8V
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

T.T.L 2

Plusieurs Variantes de la famille 74


74L : Famille Faible consommation
74H : Famille rapide
74S : Famille rapide bas´e sur des Diodes Schottkye
74LS : Famille Schottky Faible consommation
74AS et 74 ALS : Famille Avanc´e Schottkye
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

T.T.L 3

74 74L 74S 74LS 74ALS


tp (ns) 9 33 3 9,5 4
P (mW) 10 1 20 2 1,2
Fmax (MHz) 35 3 125 45 70 (200 pour AS)
Sortance 10 20 20 20 20 (40 pour AS)
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Bipolaire

Il existe d’autres technologies bipolaire pour le num´riquee


ECL : Emitter Coupled Logic - Plus Rapide et Plus ch`ree
I2L : Utilis´ dans des circuits logiques complexese
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Maintenant et Demain

Quelle technologie aujourd’hui et demain ?


Hasardeux de pr´dire l’avenire
Mais ...
Pr´visions Texas Instrumentse
PRODUCT LIFE CYCLE

AC BCT
HC
ALS
ABT Bipolar
FCT
F
CMOS
GTL FB+ AS BiCMOS
LVC CD4000
LVT

CBT LV LS

AHC ALVC S
CBTLV
TTL
AV C ALVT
GTLP
Little Logic

AUC
Introduction Growth Maturity D ecline Obsolescence
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

CMOS

Avantage du CMOS
Faible Coˆtu
Facilit´ de fabricatione
Petite Dimension, jusqu’` un rapport 50 par rapport aua
bipolaire
Pas d’´l´ment r´sistifeee
Faible consommation originale
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Principe de Base du CMOS - 1

Il existe deux types de transistors dans le CMOS

le PMOS le NMOS
Mise en oeuvre de charges mobiles de polarit´ compl´mentaireee
=⇒ ComplementaryMOS
NMOS conduit si Vg > Vs de plus de VT
PMOS conduit si Vg < Vs de plus de VT
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Principe de Base du CMOS - 2

Num´rique =⇒ Fonctionnement en mode interrupteure


NMOS Vg = 0 =⇒ transistor bloqu´, interrupteur ouverte
NMOS Vg = Vdd =⇒ transistor passant, interrupteur ferm´e
PMOS Vg = 0 =⇒ transistor passant, interrupteur ferm´e
PMOS Vg = Vdd =⇒ transistor bloqu´, interrupteur ouverte
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Utilisation du CMOS - l’Inverseur


R´alisatione

1
Vdd

Vss
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Utilisation du CMOS - l’Inverseur


Mod´lisatione

Vdd Vdd

1 00 1

Vss Vss
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Caract´ristique d’un inverseur CMOSe


Courbe de Transfert

Vdd

Vout

0 Vin Vdd
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Caract´ristique d’un inverseur CMOSe


Courant Consomm´e

Imax

Ic

0 Vdd
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Sch´ma Equivalent d’un inverseur CMOSe

Vdd = 5V

out

in

Vss = 0v

Mod`le coh´rent jusqu’` 20 MHzeea


Permet de mod´liser la sortance d’une portee
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

La compl´mentarit´ - La porte Non-ETee

&
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

La compl´mentarit´ - La porte Non-ETee

Vdd

PMOS Parallèle

B
NMOS Série

Vss
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

La compl´mentarit´ - La porte Non-OUee

1
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

La compl´mentarit´ - La porte Non-OUee

Vdd

PMOS Série

B
S

NMOS Parallèle

Vss
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

CMOS - limites ?

2P ≡ Vdd ∗ C ∗ F o` C est la capacit´ totale du circuitue


Du ` la commutationa
A technologie constante, le CMOS finit par consommer plus
que le bipolaire si F ou C augmente
Baisser la tension d’alimentation
Modifier les proc´d´s technologiques de fabrication de CI.e e
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Famille CMOS

Plusieurs familles CMOS


74HC : Compatibilit´ TTLe
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Famille CMOS
Cours d’´lectronique num´riqueee
Technologie de circuits num´riquese

Famille CMOS
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

R´f´rencesee

Michel Hubin -
http://perso.wanadoo.fr/michel.hubin/physique/elec/chap can
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

Communication

Le monde num´rique est un monde discr´tis´ee e


Le monde r´el est un monde continue
Le monde n’est pas num´riquee
Comment Interfacer les 2 mondes ?
A travers des Capteurs
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

Communication

Capteur = Fonction de conversion du Monde en grandeur


´lectriquee
Capteur renvoie une Valeur Analogique
N´cessit´ d’une fonction de conversion Analogique -ee
Num´riquee
Conversion Analogique Num´rique : CANe
Conversion Num´rique Analogique : CNAe
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

Communication

Grandeur
Grandeur
Physique
Electrique
Capteur

CAN N bits

Système de Traitement

Numérique
eur
nn
tio CNA M bits
Ac
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

CAN : D´finitionse

La conversion analogique num´rique consiste ` transformer uneea


grandeur ´lectrique repr´sent´e par un signal en une grandeureee
num´rique exprim´e sur N bits apr`s ´chantillonage eteee e
quantification du signal. Cette valeur est une valeur cod´ee
repr´sentant un nombre proportionnel ` la grandeur ´lectrique.eae
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

CAN : D´finitionse

Echantillonage : prise p´riodique de valeur du signal,e


attention ` Shannon Fe > 2 ∗ Fsignala
Quantification : association d’une mesure ` la valeura
´chantillonn´e, c’est une fonction de m´morisation.eee
Pour le traitement Echantillonage/Quantification on parle
aussi d’´chantillonnage-blocage oue
d’´chantillonage-m´morisation.ee

Codage : repr´sentation de la valeur quantifi´e dans unee


alphabet interpr´table par un circuit num´riqueee
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

CAN : D´finitionse

Signal continu
Signal échantillonné
Signal quantifié
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

CAN : Caract´ristiquese

R´solution : Amplitude de la plus petite variation. Corresponde


au LSB (Least Significant Bit)
Temps de conversion : Temps de stabilisation de la donn´e ene
sortie
Erreur de Quantification : Incertitude du ` la conversiona
Pleine Echelle : Etendue de la grandeur Analogique d’entr´ee
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

CAN : Types

Il exite diff´rents type de conversione


La conversion ` rampea
La conversion ` double rampea
La conversion ` approximation successivea
La conversion Flash
La conversion Sigma-Delta
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

La conversion ` rampea

Vin
-
Compteur
+ Raz

Horloge

Controle
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

La conversion ` rampea

Phase 1 : Vc , tension aux bornes de C mis ` 0 ainsi que Na


1 Phase 2 : Int´gration aux bornes de C ,Idt
Vc= ICt
= Ce
tant que Vin > Vc le compteur est incr´ment´ee
Vin = Vc le comparateur passe de 1 ` 0 et bloque le compteura
sur la valeur N correspondant au nombre binaire recherch´e
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

La conversion ` rampe num´riqueae

Utilisation d’un CNA pour g´n´rer une rampe num´rique.e ee


Vin
-
Compteur
+ Raz

Horloge N
CNA

Controle
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

La conversion double rampe

Vin

R
-
Vref
-
+ Compteur
+ Raz

Controle
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

La conversion double rampe

Phase 1 : Connexion du montage sur Vin . Chargement de C


pendant un temps fixe T0
Phase 2 : Connexion du montage sur Vref , de polarit´ inversee
a` Vin . D´chargement de C jusqu’` 0. Durant ce temps onea
incr´mente le compteur jusqu’` N. N est la valeur binaireea
recherch´e.e
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

La conversion ` approximations successivesa

Vin
-
Registre
+
Horloge N
CNA

Controle
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

La conversion ` approximations successivesa

D´termination des valeurs de bits de N les unes apr`s lesee


autres en commen¸ant par le bit de poids fortc
On fixe le bit de poids fort ` 1 et les autres a 0. Conversiona`
NA du registre et comparaison ` Vina
Si Vin est plus grand alors le bit reste ` 1 sinon il passe ` 0.aa
On garde la valeur du bit de poids fort et on passe au bit
suivant
On r´rˆte le mˆme traitement que pr´c´demment pour ce biteeee e
et ainsi de suite jusqu’au bit de poids faible.
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

La conversion ` approximations successivesa

Exemple : Convertisseur 8 bits, Vref =10 V


Tension ` convertir 6,92 Va
10000000 = 5V < 6, 92 → B7 = 1
11000000 = 7, 5V > 6, 92 → B6 = 0
10100000 = 6, 25V < 6, 92 → B5 = 1
10110000 = 6, 675V < 6, 92 → B4 = 1
10111000 = 7, 1875V > 6, 92 → B3 = 0
10110100 = 7, 03125V > 6, 92 → B2 = 0
10110010 = 6, 95312V > 6, 92 → B1 = 0
10110001 = 6, 91406V < 6, 92 → B0 = 1
Valeur Num´rique :10110001e
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

La conversion Flash
Vref Vin

R1
-
+

S1
R2
-
Codeur
+
S0

R3
- S2

R4
-
+

R4
-
+

R4

-
+

R4
-
+
R4
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

La conversion Flash

Flash = Parall`lee
Principe : Comparer Vin ` un ensemble de tensions pr´d´finieae e
Utiliser un codeur pour g´n´rer le nombre binairee e
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

La conversion Flash : Exemple


10V Vin

3k - C7
7V +

1k -
6V +
C6
Codeur
1k - C5
5V +
S1

1k - C4 S0
4V +

S2
1k - C3
3V +

1k
- C2
2V +

1k - C1
1V +

1k
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

La conversion Flash : Exemple

Vi n C1 C2 C3 C4 C5 C6 C7 S2 S1 S0
<1 1 1 1 1 1 1 1 0 0 0
>1, <2 0 1 1 1 1 1 1 0 0 1
>2, <3 0 0 1 1 1 1 1 0 1 0
>3, <4 0 0 0 1 1 1 1 0 1 1
>4, <5 0 0 0 0 1 1 1 1 0 0
>5, <6 0 0 0 0 0 1 1 1 0 1
>6, <7 0 0 0 0 0 0 1 1 1 0
>7 0 0 0 0 0 0 0 1 1 1
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

La conversion Sigma-Delta

Convertisseur Sigma-Delta : peut ˆtre vu comme un convertisseure


double rampe en commutation continue pour maintenir la charge
int´gr´e nulle en moyenne.e e
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

CAN : Comparaison

Type Vitesse Erreur R´solutione


Simple Faible Elev´ee Moyenne ` ´lev´eae e
Rampe (ms) Elev´ee (7 ` 14 bits)a
Double Faible Faible Elev´ee
Rampe (ms) Faible (10 a 18 bits)`
Appro- Moyenne Moyenne Moyenne ` ´lev´eae e
-ximation ( ≈ 10µs) Moyenne (8 ` 6 bits)a
Flash Elev´ee Moyenne Faible ` Moyennea
(ns,µs) Moyenne (4 ` 10 bits)a
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

CNA : Types

Il existe diff´rents type de Conversion Num´rique Analogiqueee


R´sistances Poids Proportionnelse
R´seau R2Re
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

CNA : R´sistances Poids Proportionnelse

2R
a1

4R a2

Vref 8R -
a3
+
N
2R
aN
Cours d’´lectronique num´riqueee
Conversion Analogique-Num´rique - Num´rique-Analogiqueee

CNA : Comparaison
R´sistances R2Re

Type Vitesse Erreur R´solutione


Poids Pond´r´see Elev´e (µs)e Elev´ee Faible
R2R Elev´e (µs)e Faible Elev´ee

Vous aimerez peut-être aussi