Vous êtes sur la page 1sur 254

Electronique Numrique 2009 - 2010

EISTI Guy Almouzni






















ELECTRONIQUE

NUMERIQUE












Electronique Numrique 0. Prambule
0. 0
0. Prambule
ELECTRONIQUE NUMERIQUE
Diffrentes solutions lectroniques :
. cble : - avantage : rapidit - inconvnient : solution fige
. microprocesseur/microcontrleur : - avantage : souplesse - inconvnient : lenteur/cot
. ordinateur embarqu : - avantage : souplesse - inconvnient : lenteur/cot
. FPGA (VHDL) : - avantage : souplesse - inconvnient : cot

Plan du cours
1. Logique combinatoire 1. Fonctions logiques combinatoires basiques. Technologie (C + TD + TP)
- Algbre de Boole
- Reprsentation des fonctions logiques
- Minimisation des fonctions logiques
- Matrialisation des fonctions logiques - Technologie
2. Logique combinatoire 2. Applications (C + TD + TP)
- Les Applications directes (Codeur / Dcodeur / Transcodeur / Multiplexeur / Dmultiplexeur / Circuits arithmtiques)
- Les Rseaux Logiques Programmables (ROM / PROM / PAL-GAL / PLA-PLD / FGPA / RAM / ASIC)
3. Logique squentielle 1. Fonctions logiques squentielles basiques (C + TD + TP)
- Les bascules synchrones (RST /D /T / JK)
4. Logique squentielle 2. Applications (C + TD + TP)
- Registre
- Compteur
- Squenceur
5. Le langage VHDL.
Le langage (C + TD + TP)
- Elments du langage / Units de conception / Sous-programmes / Types de donnes / Dclarations & Spcifications / Instructions squentielles /
Instructions concurrentes / Gnricit / Attributs / Paquetage
Modlisation / Synthse (TD + TP)
- Modlisation (Registre & Additionneur / Cicuits linaires / Automate dtas finis / ALU / RAM / ROM)
- Synthse (Circuits combinatoires / Circuits synchrones)
Projet
Annexe
6. Circuits Programmables.
7. Microprocesseur
- Matriel (Achitecture / Squencement des instructions / ALU / Registres / Pile)
- Logiciel (Assembleur / Jeu dinstructions / Modes dadressage / Adressage des priphriques / Interruptions)
- Interfaces
- Microcontrleur (Achitecture / Systme de dveloppement / Familles de microcontrleurs)

Bibliographie
[1] R. Airiau & al. VHDL langage, modlisation, synthse PPUR
[2] J. Auvray Electronique des signaux chantillonns et numriques Dunod
[3] G. Baudouin/F. Virolleau Les processeurs de traitement de signal: famille 320C5X Dunod
[4] B. Beghyn Le microcontrleur 68HC11 Herms
[5] Dietsche/Ohsmann Manuel des microcontrleurs 8032/805/80535 Publitronic
[6] M. Gindre / D. Roux Electronique numrique McGraw-Hill
[7] R.D. Hersch Informatique industrielle: microprocesseurs/temps rel PPUR
[8] H. Lilen Microprocesseurs : du CISC au RISC Dunod
[9] E. Martin/J.L. Philippe Ingnierie des systmes microprocesseurs Masson
[10] M. Meaudre J. Weber VHDL du langage au circuit, du circuit au langage Masson
[11] B. Mitton Interfaces et bus microprocesseurs 68000/68070 Mentor sciences
[12] B. Mitton Microprocesseur 68000 Mentor sciences
[13] B. Odant Microcontrleurs 8051/8052 Dunod Tech
[14] C. Tavernier Microcontrleurs Radio
[15] R.L. Tokheim Les microprocesseurs Srie Schaum
PPUR : Presses Polytechniques et Universitaires Romandes
__________
Electronique Numrique 1. Logique combinatoire 1

1. 1
1. LOGIQUE COMBINATOIRE 1 - LES BASES

0. Introduction
Llectronique logique ( lectronique numrique) met en jeu des signaux binaires (nayant que 2 tats possibles)
appels bits et nots 0 (tat logique bas) et 1 (tat logique haut).

Systme logique


p entres m sorties
p
Systme Logique
s
j
e
i
m
1 i p 1 j m


Systme logique combinatoire

A linstant discret n, une sortie
j
s , note s
j
n
, dun systme logique combinatoire ne dpend que de ses entres
e e
n
p
n
1
, ... , au mme instant : (la seule connaissance des entres suffit dterminer les sorties)
s f e e
j
n n
p
n
= ( , ... , )
1
(1 j m)


Systme Logique
Combinatoire
Entres logiques
Sorties logiques
p m
1 i p
1 j m
n
j j
s s
n
i i
e e


Systme logique squentiel

A linstant discret n, une sortie s
j
n
dun systme logique squentiel dpend de ses entres e e
n
p
n
1
, ... , mais aussi de
ltat antrieur des sorties ( s s
n
m
n
1
1 1
, ... , ) qui peuvent tre considres comme des entres secondaires, alors que les
entres e e
n
p
n
1
, ... , sont appeles primaires. (Notion de mmoire, car les systmes squentiels sont boucls, ou encore
rcursifs) : (la seule connaissance des entres (primaires) ne suffit pas dterminer ltat des sorties)
s f e e s s
j
n n
p
n n
m
n
=

( , ... , , , ... , )
1 1
1 1
(1 j m)


Systme Logique
Squentiel
Sorties logiques antrieures
Sorties logiques
Entres logiques
p
1 i p
1 j m
m
1
m
2
m m
1
m
2
+ =
n
j
s
n
i
e
1 n
j
s


Logique combinatoire

1. Algbre de Boole

1.1. Oprateurs Fondamentaux (ET, OU, NON)

En algbre de Boole, une variable, ou une fonction, ne peut prendre que deux valeurs binaires que l'on note
symboliquement 0 et 1.

A laide de variables binaires (donc 2 tats) on peut nanmoins dcrire des variables ayant un plus grand nombre
dtats, en constituant ces dernires comme des mots binaires. Un mot binaire est une association de variables binaires.
Ainsi un mot constitu de m bits ou variables binaires peut dcrire 2
m
combinaisons logiques.

Ex: Mot binaire M form de m= 3 variables logiques binaires a a a
2 1 0
, ,
0 1 2
a a a M = peut prendre 2
3
= 8
valeurs.
Electronique Numrique 1. Logique combinatoire 1

1. 2
On dfinit les oprateurs fondamentaux : (dans tout ce qui suit, x, a, b, c ... reprsentent des variables binaires (bits))

a) Le complment ( oprateur NON (NOT)) x de x
qui vaut 0 si 1
qui vaut 1 si 0
x
x
=
=


Un oprateur peut tre associe une reprsentation gomtrique issue de la thorie des ensembles que l'on appelle
diagramme de Venn (ou d'Euler) :


a = 1
a = 1
a = 1



b) La somme logique ( oprateur OU (OR)) de deux variables boolennes.

Cet oprateur est not par le signe + (mais aussi par le signe ou encore )

a b a b + = 1 si ou (ou les deux) vaut 1 et sinon 0 = + b a . a b a b a b +

Le signe + n'a pas ici la signification habituelle, il est vident en effet qu'en algbre de Boole : 1 + 1 = 1
Si une ambiguit peut exister, il vaut mieux alors utiliser la notation usuelle de la thorie des ensembles : a b

.
On considre un plan dans lequel on dlimite une rgion o la variable a vaut 1 et une autre rgion dans laquelle b vaut
1. La somme logique a pour valeur 1 dans la surface forme par la runion des deux rgions prcdentes :


a = 1
b = 1
a + b = 1



c) Le produit logique ( oprateur ET (AND)) de deux variables boolennes :

Cet oprateur est not par le signe (mais aussi par le signe ou encore ou mme pas de signe)

b a b a et si 1 = valent 1 et sinon 0 = b a . a b a b a b ab

Le diagramme de Venn correspondant conduit crire a b :


a = 1
b = 1
= 1 a b

Electronique Numrique 1. Logique combinatoire 1

1. 3
1.2. Proprits des oprations logiques lmentaires ET, OU, NON

a) Elment neutre :
a a
a a
+ =
=
0
1


b) Elment absorbant :
a
a
+ =
=
1 1
0 0


c) Complment :
( )
a a
a a
a a
=
+ =
=
1
0


d) Idempotence :
a a a
a a a
+ =
=



Les oprations d'addition et de multiplication logiques ont les proprits des oprations de mme nom en arithmtique
classique : commutativit, associativit, distributivit :

e) Associativit :
( ) ( )
( ) ( )
a b c a b c a b c
a b c a b c a b c
+ + = + + = + +
= =


f) Commutativit :
a b b a
a b b a
+ = +
=


g) Double distributivit :
( )
( ) ( ) ( )
a b c a b a c
a b c a b a c
+ = +
+ = + +
(Distributivite de par rapport a )
(Distributivite de par rapport a )
+
+

(en arithmtique classique, on na que la distributivit de par rapport + )

Parmi les relations simples les plus utilises nous citerons les relations suivantes :

h) Absorption :
( )
a a b a
a a b a
a a b a b
x a x a x
+ =
+ =
+ = +
+ =
( )
( )
( )
( )
1
2
3
4

Explications :
(1) : ( ) a a b a b a a + = + = = 1 1 car : ( ) 1 1 + = b
(2) : ( ) a a b a a a b a a b + = + = + (et relation prcdente)
(3) : ( ) ( ) b a a a b a a + + = + ) ( (double distributivit) ( ) b a b a b a a + = + = + 1 ) ( .
(4) : ( ) x x a a x a x a x = = + = + 1 : Cette relation est importante car elle permet l'limination d'une variable.
Electronique Numrique 1. Logique combinatoire 1

1. 4
1.3. Les thormes de De Morgan
Ils dfinissent les relations entre l'opration complment et les deux autres oprations de base (OU et ET).


a b a b
a b a b
+ =
= +

gnralisable n variables
Le complment d'une somme est gal au produit des complments des termes.
Le complment d'un produit est gal la somme des complments des termes.

Ces thormes peuvent tre montrs laide des diagrammes de Venn ou encore des tables de vrit (cf. plus loin).

1.4. Principe de dualit
Une quation logique reste vraie si on remplace + par et 0 par 1 et rciproquement.
Ex. : a b b a a b b a = + = + Autre exemple : 0 0 1 1 = = + a a

1.5. Autres fonctions lmentaires de deux variables
Les trois fonctions prcdentes suffisent elles seules effectuer toutes les oprations logiques. On dfinit cependant
quelques fonctions annexes.

a) Le OU exclusif (XOR)

La fonction a XOR b est note a b .
b a vaut 1 si a ou b vaut 1, mais pas les deux la fois:
a b
a b
a b
=
= =
= =

1
1 0
0 1
si
si et
ou si et


et
sinon 0 = b a .
On a bien videmment la relation : b a b a = .

a b peut videmment s'exprimer partir des oprations lmentaires : a b a b a b = + .

Application : cryptographie
On a les proprits : 1 = x x
0 = x x
x x = 0
x x = 1
x x a a x = = 0
Soit crypter la donne x . La cl de cryptage et de dcryptage est a . Lalgorithme de cryptage/dcryptage est le
OU exclusif entre la donne et la cl de cryptage/dcryptage (Cette mthode bien connue prsente la particularit
dutiliser la mme cl ainsi que le mme algorithme pour le cryptage et le dcryptage).

crypter
x
cl
a
cryptage
a x
dcryptage
( ) x a a x =
0 0 0 0
0 1 1 0
1 0 1 1
1 1 0 1

Le OU exclusif de deux variables a, b traduit l'ingalit de ces deux variables.

La fonction inverse, traduisant l'galit, est la concidence, note
.
: a
.
b = a b

a
.
b = a b a b + car : a b = a b a b a b a b a a a b a b b b a b a b + = + + = + + + = + ( ) ( )
On a bien videmment la relation : a
.
b = a
.
b .
Le symbole utilis pour le OU exclusif est identique celui dsignant en arithmtique une addition modulo 2, il s'agit
en effet de la mme opration : 1 1 0 1 0 0 1 1 = = = 0 0 0 =
Electronique Numrique 1. Logique combinatoire 1

1. 5
b) Les fonctions NOR et NAND

La fonction NOR est le complment de OU (NOR NO OR) : a NOR b = a b + (entre 2 variables a et b)
On la note souvent simplement : a NOR b
On trouve parfois la notation suivante introduite par PIERCE : a b

La fonction NAND (NO AND) est le ET complment : a NAND b = a b (entre 2 variables a et b)
On la note souvent simplement : a NAND b
On trouve parfois la notation introduite par PIERCE : a b ou encore la notation : a b /

La combinaison de ces diverses oprations logiques entre plusieurs variables constitue ce que l'on appelle les fonctions
logiques.

Par exemple, la fonction logique de 3 variables : f f a b c a b c a b c = = + + ( , , )

1.6. Reprsentation des fonctions logiques

a) Diagramme de Venn

C'est la reprsentation issue de la thorie des ensembles.

Ex. :

a = 1
b = 1
a . b = 1


b) Chronogramme

C'est la reprsentation de la fonction logique en fonction du temps pour diverses valeurs des variables d'entre.

Ex. :

a
0
1
t
b
0
1
t
a.b
0
1
t


c) Table de vrit

C'est le tableau des valeurs de la fonction pour toutes les valeurs possibles des variables d'entre.

Ex. :
Fonction NOT
a
a
0 1
1 0
Electronique Numrique 1. Logique combinatoire 1

1. 6
Fonction OR
a b a + b
0 0 0
0 1 1
1 0 1
1 1 1

Fonction AND
a b a.b
0 0 0
0 1 0
1 0 0
1 1 1

Fonction NOR
a b a NOR b
0 0 1
0 1 0
1 0 0
1 1 0

Fonction NAND
a b a NAND b
0 0 1
0 1 1
1 0 1
1 1 0

Fonction OU exclusif
a b
a b
0 0 0
0 1 1
1 0 1
1 1 0

Fonction Concidence
a b
a
.
b
0 0 1
0 1 0
1 0 0
1 1 1

d) Diagramme de Karnaugh

C'est une forme particulire de la table de vrit.
Le diagramme de Karnaugh se compose d'un rectangle divis en 2
n
cases, n tant le nombre de variables de la
fonction considre. Dans chacune de ces cases les variables ont une valeur dtermine et on y place un 0 ou un 1
suivant la valeur correspondante de la fonction.

L'ordre des variables en abscisse et ordonne est tel que lorsque l'on passe d'une case la case adjacente une seule
variable est modifie.

2 cases sont adjacentes si elles sont voisines verticalement, horizontalement ou en coin, mais toujours de telle sorte
quune seule variable dentre est modifie lorsque lon passe dune case une case adjacente.
Electronique Numrique 1. Logique combinatoire 1

1. 7
Diagramme de Karnaugh 2 variables a, b. (2
2
= 4 cases)


b
a
0
1
ici a = 1 b = 0
ici a = 1 b = 1
0 1


Reprsentons la fonction OU exclusif : s a b = sur ce diagramme :


b
a
0
1
s
0 1
0 1
1 0

s a b
a b
a b
= =
= =
= =

1
1 0
0 1
si
si et
ou si et


Ce sont les 2 cases suivant la 2
me
diagonale.

Diagramme de Karnaugh 3 variables a, b, c


bc
a
0
1
0 1
0
1 0
0
1 1

bc
a
ou
ab
c
0
1
0 1
0
1 0
0
1 1
ou

ac
b
0
1
0 1
0
1 0
0
1 1
ou

2
3
= 8 cases, il faut utiliser un rectangle ayant par exemple 4 lignes et 2 colonnes, mais on peut prendre aussi 2
lignes et 4 colonnes. On remarquera que de la deuxime la troisime ligne on passe de (0 1) (1 1) et non
de (0 1) (1 0) de faon ne modifier qu une variable la fois (code Gray).

La fonction s ab ca = + dont la table de vrit est :

a b c
ab ca
s
0 0 0 0 0 0
0 0 1 0 1 1
0 1 0 0 0 0
0 1 1 0 1 1
1 0 0 1 0 1
1 0 1 1 0 1
1 1 0 0 0 0
1 1 1 0 0 0

a pour diagramme de Karnaugh :
Electronique Numrique 1. Logique combinatoire 1

1. 8

bc
a
0
1
0 1
0
1 0
0
1 1
s
0 1
1 1
1 0
0 0



Diagramme de Karnaugh 4 variables a, b, c, d

(2
4
= 16 cases). On retombe sur un carr.


c 0
1
a = 0
b= 0 1 b=
a = 1
1 b= b=0
= 0 d =
1 d =
c =
1 d =
0 d =
cd
ab

00
cd
ab
01 11 10
00
01
11
10


L'ordre des variables est le mme que le prcdent : 0 0 - 0 1 - 1 1 - 1 0

Exemple : s abcd abc = +

On pourra, en tablissant la table de vrit, montrer que le diagramme de Karnaugh est celui ci :


cd
ab
0
1
0 1
0
1 0
0
1 1
0 11
1
0 1 0
0
0
0
0
0
0
0 0
0 0
0 0
0
1
1
s


Diagramme de Karnaugh 5 variables a, b, c, d, e

Lorsque l'on passe d'une case d'un diagramme de Karnaugh la case adjacente, une seule variable est modifie.
Avec 5 variables, il faut que chaque case soit adjacente 5 cases ce qui n'est pas possible dans une reprsentation
plane. Il faut faire appel un volume 2
5
= 32 cases cubiques que l'on peut remplacer par un double tableau carr
:
Electronique Numrique 1. Logique combinatoire 1

1. 9

cd
ab
00 01 11 10
00
01
11
10
e = 0
e = 1

00 01 11 10 00 01 11 10
e = 0 e = 1
Cases adjacentes
ab
cd
ab
cd
00
01
11
10
00
01
11
10


La commodit d'emploi est alors trs rduite car il est plus dlicat de reprer deux cases adjacentes.
La situation est encore pire avec 6 variables o il faut travailler avec un cube ou 4 tableaux carrs.
Au del de 6 variables aucune reprsentation n'est possible et il faudra faire appel d'autres procds
(logiciel de minimisation).

Les diagrammes de Karnaugh permettent comme nous allons le voir de simplifier trs facilement des fonctions
boolennes complexes. Au del de 5 variables des mthodes algbriques peuvent toujours les remplacer mais
sont beaucoup moins souples et d'un intrt contestable.

e) Forme canonique

Toute fonction logique peut tre mise sous forme canonique :

- comme une somme de mintermes ou encore,
- comme un produit de maxtermes.

On appelle minterme ou fonction unit de n variables un produit de ces n variables ou de leur complment.
Par exemple A B C D est un minterme des 4 variables A, B, C, D mais A C D n'en est pas un, car il manque la
variable B.

Une fonction boolnne de p variables est dcrite comme une somme canonique si elle est mise sous la forme d'une
somme de mintermes de ces p variables.

On dfinit galement un produit canonique qui est le produit de sommes contenant chacune toutes les variables.

( )( )( ) D C B A D C B A D C B A + + + + + + + + + est un produit canonique des 4 variables A, B, C, D.
On remarque que chaque parenthse est un maxterme (complment d'un minterme). Ex : D C B A D C B A = + + +

Les diagrammes de Karnaugh permettent trs facilement de mettre une fonction logique sous forme d'une somme
canonique car chaque minterme correspond un 1 dans une seule case du diagramme.

1.7. Minimisation ( simplification) des fonctions logiques

Pourquoi simplifier une fonction logique ? Pour donner lieu une ralisation matrielle la plus simple possible
mettant en jeu un nombre minimal de circuits logiques et de signaux logiques.

1.7.1. Mthode algbrique

Utilisation des proprits des oprations logiques lmentaires et des thormes de De Morgan.

La mise en quation d'un problme de logique peut conduire une fonction boolnne assez complexe pouvant, par des
oprations algbriques simples, se mettre sous une forme beaucoup plus condense.
Electronique Numrique 1. Logique combinatoire 1

1. 10
Soit par exemple, la fonction logique :
{ {
{
{ { {
S A C A B B A D A B D A C A B = + + + + + +
1 2
3
4
5
6 7
123


En groupant les termes 2 et 4:
( )
A B A D A B D A B D + = + =
en ajoutant 5:
( )
A B D A B D A B D B D A + = + = (8)
il reste:
{
{
{ {
{
S A C B A C A B A = + + + +
1
3
6 7
8

mais:
( )
1 6 + + = + = A C A C A C C A
, terme identique 8 donc inutile
( ) A A A + =

il reste:
{ {
{
S A B A B = + +
8 3
7

mais encore: 8 + 7 = A(1 + B) = A

donc finalement : S = A + B (rsultat qui serait obtenu aussi en faisant 3 + 7= B )

De faon gnrale de trs nombreuses fonctions logiques sont susceptibles d'tre simplifies mais la forme la plus
compacte n'est pas toujours trouve immdiatement car la voie de simplification algbrique la plus rapide n'est pas
vidente. Dans le cas de 5 variables au plus, les diagrammes de Karnaugh permettent d'effectuer cette simplification
automatiquement .


1.7.2. Mthode graphique : Diagramme de Karnaugh

La mthode de simplification de Karnaugh consiste mettre profit la relation : x A x A x + =
pour donner une expression simplifie de la fonction laide des oprateurs fondamentaux.

On recherche les termes ne diffrant que par un seul facteur qui apparait complment dans le premier et non
complment dans le second. Ces deux termes s'ils font partie d'une somme canonique correspondent dans le diagramme
de Karnaugh deux 1 placs dans des cases adjacentes. On forme alors ce que l'on appelle une boucle d'ordre 2.
Remarquons que deux cases doivent tre considres comme adjacentes si l'on passe de l'une l'autre en ne modifiant
qu'une seule variable, ce qui est le cas de deux cases places rellement cte cte, mais aussi aux deux extrmits d'une
ligne.

La simplification se fera en regroupant les 1 en boucles d'ordre 2, 4, 8, etc ... ordre 2
n
.


Cases adjacentes


Soit la fonction logique : D C B A D C B A D C B A D C B A S + + + =

case 7 11 2 14
122223 122223
S = A B D + A B D par la mthode algbrique.
Electronique Numrique 1. Logique combinatoire 1

1. 11
a) Boucles d'ordre 2


CD
AB
0
1
0 1
0
1 0
0
1 1
0 11
10
0 1 0
0
0
0
0
0
0 0
0 0
0 0
0
1
1
1
1
2 3 4
5 6
1
7 8
9 11 12
13 14 15 16
S


On peut former deux boucles aves les cases adjacentes 7 - 11 et 2 - 14.

La boucle 7 - 11 donne un terme ABD : en effet la variable C qui change en passant d'une case l'autre s'limine :

ABCD ABCD ABD C C ABD + = + = ( )

La boucle 2 - 14 donne A B D, donc :

S A B D A B D = + ou :
( ) ( )
S B A D A D B A D = + =

Les boucles d'ordre 2 font disparatre 1 variable dans les mintermes de la fonction. Cette variable est celle qui varie
dans ces boucles les variables restantes sont celles qui sont constantes dans ces boucles.

Si on veut crire et simplifier S, tous les 1 du tableau doivent tre groups en boucles (avec des boucles comptant le
plus grand nombre de termes possibles, les boucles pouvant ventuellement se recouper, du fait de la proprit :
x x x = + ) ou si ce n'est pas possible, compts individuellement.

b) Boucles imbriques

Soit la fonction logique : S A B C D A B C D A B C D = + +
case
7 11 10

Deux boucles sont possibles 7 - 11 ou 10 - 11, elles ont la case 11 en commun mais on peut appliquer la rgle
prcdente comme si ces boucles taient disjointes. En effet S ne change pas si on ddouble un de ses termes.

S A B C D A B C D A B C D A B C D = + + +
1222222223 1222222223
boucle 7 - 11 boucle 10 - 11


CD
AB
0
1
0 1
0
1 0
0
1 1
0 11 0 1 0
1
1
1
ABD
BCD
0 0 0 0
0 0 0
0 0
0 0 0 0
S A B D B C D = + ( ) C A BD + =
Electronique Numrique 1. Logique combinatoire 1

1. 12
c) Boucles d'ordre 4

Supposons que deux boucles d'ordre 2 soient adjacentes.

Par exemple : 6 - 7 et 10- 11 soit : A B C D A B C D A B C D A B C D + + +
6 7 10 11
122223 122223

B C D + B C D

Les deux rsultats peuvent de nouveau se combiner et C disparat : B C D + B C D = B D

Les quatre cases ainsi groupes forment une boucle d'ordre 4 :


CD
AB
0
1
0 1
0
1 0
0
1 1
0 11 0 1 0
1
1
1
BD
1


Une boucle d'ordre 4 n'est pas forcment carre. Par exemple :


CD
AB
0
1
0 1
0
1 0
0
1 1
0 11 0 1 0
1
1
1
1
AB


Elle peut tre cartele entre les deux bords ou mme entre les quatre coins :


CD
AB
0
1
0 1
0
1 0
0
1 1
0 11 0 1 0
1
1
1
1
B D


Elle peut tre en partie commune avec une boucle du deuxime ordre comme ci-dessous :


CD
AB
0
1
0 1
0
1 0
0
1 1
0 11 0 1 0
1
1
1
1
1
S
ACD
C B

qui pourrait s'crire : S A B C D A B C D A B C D A B C D A B C D = + + + + = + A C D C B

Les boucles d'ordre 4 font disparatre 2 variables dans les mintermes.
Electronique Numrique 1. Logique combinatoire 1

1. 13
d) Boucles d'ordre 8

Si deux boucles d'ordre 4 sont adjacentes, on peut former une boucle d'ordre 8 pour laquelle trois variables
disparaissent.

Les deux boucles d'ordre 4 : (1 - 5 - 9 - 13) et (4 - 8 - 12 - 16) donnent : B B A B A = + :


CD
AB
0
1
0 1
0
1 0
0
1 1
0 11 0 1 0
1
1
1
1
1
1
1
1

Elles sont adjacentes et forment une boucle d'ordre 8 o seule la variable B est conserve.

Les boucles d'ordre 8 font disparatre 3 variables dans les mintermes.

e) Boucles d'ordre 2
n


Les boucles d'ordre 2
n
regroupent 2
n
variables et font disparatre n variables dans les mintermes de la fonction.

De faon gnrale, on a intrt effectuer les plus grands regroupements possibles ( boucles d'ordre le plus lev)
pour simplifier au maximum la fonction.

f) Fonctions Boolennes X (ou )

Il existe des cas o toutes les combinaisons possibles des n variables ne sont pas utilises, c'est la cas par exemple des 4
variables constituant une ttrade en code DCB (Dcimal Cod Binaire ou encore Binaire pur), les six pseudo ttrades
(10 15) sont exclues :


Chiffre de 0 9 Code DCB : A B C D
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
6 codes restants non utiliss


Dans ces conditions pour simplifier une fonction boolenne de quatre variables dont le champ de variation est limit,
une valeur quelconque peut tre donne la fonction dans les cases interdites de faon constituer des boucles d'ordre
le plus lev possible sur le diagramme de Karnaugh. Le signe X (ou ) tant utilis pour indiquer qu'un 1 aussi bien
qu'un 0 convient. On parle souvent de fonctions boolennes.

Soit par exemple commander un voyant qui doit tre allum lorsque les chiffres 4 ou 5 apparaissent et seulement dans
ces cas. Les chiffres sont cods en DCB sur quatre fils A, B, C et D. La fonction boolenne L crer ne doit valoir 1
que lorsque les configurations 4 (0100) ou 5 (0101) apparaissent.

En toute rigueur : D C B A D C B A L + = correspondant au diagramme de Karnaugh ci-dessous sur lequel
apparat une boucle d'ordre 2 amenant ainsi la simplification : C B A L = .
Electronique Numrique 1. Logique combinatoire 1

1. 14
Mais les cases marques d'une croix (X ou ) correspondent des situations interdites qui ne se prsenterons jamais
sur les quatre fils (pseudo ttrades) et peuvent tre choisies comme on veut (X Don't care (sans effet)).

Les X utiliss dans les regroupements sont mis 1, les X non utiliss sont mis 0.

Ici on peut placer des 1 dans les deux cases correspondant aux tats 1100 (12) et 1101 (13) de faon former une
boucle dordre 4 :


CD
AB
0
1
0 1
0
1 0
0
1 1
0 11 0 1 0
1 1
X X X
X
X
X
BC


Amenant ainsi une simplification optimale de L : L B C =

La lampe L s'allume dans les tats 4 et 5 demands et aussi pour 12 et 13 ce qui n'a pas d'importance puisque ces deux
derniers tats ne se prsentent jamais.

. Ne jamais regrouper uniquement des X ensemble : a ne simplifie pas la fonction mais la complique en ajoutant
un terme inutile la fonction.
. Chaque X a une valeur indpendamment des autres X.
. Ne jamais affecter des valeurs diffrentes un mme X, lors de diffrents regroupements le faisant intervenir.

Complment sur la simplification :

Si le tableau de Karnaugh comporte plus de 0 que de 1, on a alors intrt regrouper les 0 et non les 1 pour exprimer S
plutt que S.

De mme pour une simplification algbrique, la simplification peut se faire plus simplement sur S plutt que S.
Lorsque S est simplifie au maximum, on obtient alors simplement S par complmentation de S .


2. Matrialisation des fonctions logiques

2.1. Logique positive et logique ngative

A toute grandeur physique ayant seulement deux valeurs possibles on peut associer une variable boolenne. En
lectronique, les grandeurs considres sont essentiellement le courant et la tension. Par exemple, la tension collecteur
d'un transistor NPN (T) aliment sous 5 Volts (cas de la famille logique TTL) et fonctionnant en rgime de
commutation (rgime de fonctionnement en logique) peut valoir :


V T
V T
c
c
=
= +

0
5
si est satur
Volts si est bloqu


On peut par convention admettre que la variable boolenne C associe la tension V
c
vaut 1 si V
c
= + 5 V, 0 si V
c
= 0.
La valeur 1 est associe la valeur la plus leve de V
c
; on dit alors que l'on a dfini une logique positive :


C V
C V
c
c
= =
= = +

0 0
1 5
pour
pour Volts


Le contraire, bien que moins courant, est galement possible. la logique est qualifie alors de ngative :


C V
C V
c
c
= =
= = +

1 0
0 5
pour
pour Volts


Dans ce qui suit nous travaillerons toujours en logique positive.
Electronique Numrique 1. Logique combinatoire 1

1. 15
2.2. Symboles logiques

Une fonction (ou oprateur) logique lmentaire ( fondamental) est matrialise par un circuit logique appel porte logique.

Symboles logiques fondamentaux (ancien amricain ; nouveau europen)

Oprateur Ancien symbole Nouveau symbole
Le petit cercle reprsente la complmentation
La flche reprsente la complmentation en plus du sens de l'information
Note :
OR
A
B
A
B
A + B
A + B
1
AND A
B
A . B
A
B
& A . B ou A B
NOR
A
B
A + B
A
B
1
A + B
XOR
A
B
A
B
A + B
= 1 A + B
XNOR
A
B
A + B
A
B
= 1
A + B
ou A B
BUFFER
A A A A
1
DRIVER
ou
NOT
A
ou
A
A
A
A
ou
A
A
A
1
1
NAND
A
B
A B
A
A B &
B
(Un Buffer rhausse au niveau haut une tension de niveau haut diminue)
En l'absence de flche, le signal circule implicitement de la gauche vers la droite.


Symboles logiques de portes lmentaires 3 et 4 entres

OR 4 entres A+B+C+D
1
AND 3 entres
A
B & A B C
C
A
B
C
A B C
A
B
C
D
A+B+C+D
A
B
C
D
Oprateur Ancien symbole Nouveau symbole


Symboles logiques de circuits multiples dune mme porte lmentaire 2 entres

&
Oprateurs ET
Nouveaux symboles
1A
1B
1Y = 1A . 1B
2A
2B
2Y = 2A . 2B
3A
3B
3Y = 3A . 3B
4A
4B
4Y = 4A . 4B
& 1A
1B
1Y = (1A.1B) + (2A.2B)
2A
2B
3A
3B
4A
4B
Circuit 74XX00 4 portes AND 2 entres Circuit 74XX51
&
&
&
1
1 2Y = (3A.3B) + (4A.4B)
Oprateurs ET / OU


Symbole dune fonction logique laide des oprateurs fondamentaux
Exemple : Reprsentation de la fonction logique : A B + :
A
B
1 A B +

Electronique Numrique 1. Logique combinatoire 1

1. 16
2.3. Caractristiques fondamentales d'une porte logique

2.3.1. Dfinition des niveaux logiques : immunit au bruit

Considrons le cas simple d'un inverseur en logique 5 volts, c'est un circuit dont la sortie est 5 volts si l'entre est au
zro et rciproquement, ce qui ne dfinit sur la caractristique de transfert que les deux points A et B de la figure
suivante. En ralit par suite de l'influence des autres circuits qui lui sont connects, les niveaux d'entre et de sortie
d'un tel inverseur n'ont jamais ces valeurs idales et il y a lieu de considrer la courbe de transfert complte suivante :


V
s
V
HM
A
V
Hm
V
L0
V
LM
0
V
Lm
V
LM
V
L0
V
H0
V
Hm
V
HM
V
e
B
Sortie
Entre


En rgime normal, la tension d'entre au niveau zro se trouve entre V
Lm
et V
LM
, la tension de sortie tant alors au
niveau haut (1) entre V
Hm
et V
HM
.
Si une impulsion parasite vient se superposer la tension d'entre, la tension de sortie restera compatible avec le niveau
1 si le niveau V
L0
n'est pas dpass.
M V V
i L LM
=
0
est la marge de bruit admissible l'entre au niveau bas. De mme, si l'entre est au niveau 1, une
impulsion parasite ne doit pas faire tomber V
e
en dessous de V
H0
.
M V V
Hm H 0 0
= est la marge de bruit admissible au niveau haut.
Ces deux marges dfinissent ce que l'on appelle l'immunit au bruit du circuit.

2.3.2. Temps de propagation

Si le niveau d'entre d'un circuit change brutalement, son niveau de sortie ne varie qu'avec un certain retard appel
temps de propagation t
p
.
La figure suivante illustre le cas d'un inverseur. Les temps de propagation sont couramment de 30 ns et peuvent, pour
les circuits les plus rapides, tre infrieurs 1 ns.
La frquence maximale d'utilisation au-del de laquelle les signaux ne sont plus restitus par les circuits (limite haute
de la Bande Passante) est li au temps de propagation.


V
e
V
s
1
0
0
1
t
t
t
p

Electronique Numrique 1. Logique combinatoire 1

1. 17
2.3.3. Tension dalimentation

Par exemple pour les familles TTL et CMOS :

Tolrance sur les niveaux TTL

Tension d'alimentation Vcc 5 V 0.5 V
Tension maxi d'entre pour un niveau bas V
IL
0.8 V
L : Low
Tension mini d'entre pour un niveau haut V
IH
2 V
H : High
Tension maxi de sortie pour un niveau bas V
OL
0.4 V
I : Input
Tension mini de sortie pour un niveau haut V
OH
2.4 V
O : Output

Puissance moyenne absorbe par porte : 10 mW
Courant moyen par porte : qq. mA

CMOS

Tension d'alimentation : TTL elle peut tre de 3 18 Volts (srie 4000)
(les nouvelles gnrations plus performantes n'autorisent que 2 6 Volts).
La puissance consomme est << TTL : de l'ordre de 0.1 mW courant trs faible < 1 mA.
Les tolrances sur les niveaux logiques sont du mme ordre quen TTL.


2.3.4. Entrance (Fan in) et Sortance (Fan out)

La source qui impose l'entre d'un circuit logique un niveau 0 ou 1 doit fournir un certain courant. Ce courant est
diffrent suivant l'tat. Il peut tre suivant le cas, maximal pour l'tat 1 ou l'tat 0. Dans une mme famille de circuits,
ces valeurs sont des constantes, sauf pour certains circuits particuliers dont les exigences peuvent tre plus importantes.

Entrance

On appelle entrance d'un circuit (ou fan in) la valeur du courant de commande dune entre de ce circuit exprime en
une unit qui est le courant de comande typique de la famille (appel charge).

Ex. : un circuit ayant une entrance de 2 consomme (ou fournit) un courant d'entre double de celui d'un circuit
ordinaire de la mme famille. Le courant unit correspond ce qu'on appelle une charge .

Sortance

Il est clair quun circuit logique ne peut garantir sa tension de sortie que si le nombre de charges qui lui sont connectes
est limit (un niveau logique 1 de sortie chute 0 si le nombre de charges est trop lev) :


: circuit logique

Un circuit logique peut d'autre part, sans que le niveau logique de sortie ne sorte des limites permises, fournir un
courant maximal I
S max
. Le rapport entre ce courant maximal et celui correspondant une charge est appel sortance
du circuit (ou fan out, ou facteur pyramidal de sortie) : c'est le nombre maximal de charges que peut commander une
sortie ( entre unitaire) en garantissant les niveaux logiques.

Ex. : un circuit ayant une sortance de 10, on peut connecter 10 charges tout en garantissant les niveaux de sortie
de cette porte.

Le sens des courants est galement trs important. Une famille logique dont les circuits doivent tre pilots par un
courant entrant est dite injection de courant. Dans le cas contraire, on parle de logique extraction de courant :


Injection de courant Extraction de courant

Electronique Numrique 1. Logique combinatoire 1

1. 18
De faon viter l'action des signaux parasites (fil antenne !) les entres non utilises d'un circuit entres multiples
doivent tre polarises, soit en les reliant aux autres, soit en les connectant la source d'alimentation ou la masse
suivant le cas. Ceci est particulirement important dans le cas des circuits ayant des courant d'entre trs faible comme
les circuits MOS. (Une entre enlair a un tat indtermin qui prend en gnral la valeur 1 par effet dantenne).

2.3.5. Circuits expansibles, ET et OU cbls

Soit un circuit ET 2 entres effectuant l'opration : S = A B

Pour raliser un circuit ET 4 entres qui raliserait : S = A B C D

on peut songer utiliser 3 circuits ET 2 entres en faisant le produit des 2 produits partiels AB et CD :.


A
B
C
D
AB
CD
ABCD


Dans certains cas on peut associer plus directement les sorties des 2 circuits ET sans dommage pour les circuits. Si ceci
est possible, les circuits sont qualifis d'expansibles :


A
B
C
D
M
ET cbl
ABCD
A
B
C
D


On a bien un ET 4 entres :
. si 0 = AB et 0 = CD 0 = M (pas de court-circuit)
. si 1 = AB et 1 = CD 1 = M (pas de court-circuit)
. si 0 = AB et 1 = CD 0 = M (court-circuit entre 0 Volt et 5 Volts (en TTL) le rsultat est 0 Volt, soit 0 logique)
. si 1 = AB et 0 = CD 0 = M (court-circuit entre 0 Volt et 5 Volts (en TTL) le rsultat est 0 Volt, soit 0 logique)

La jonction au point M est appele ET cbl .



2.4. Les familles logiques

Toutes les fonctions boolennes peuvent tre construites l'aide des trois oprateurs fondamentaux ET, OU et
complment. Ce groupe de trois oprateurs forme ce que l'on appelle un systme logique complet. La matrialisation
des fonctions logiques ncessite donc de pouvoir raliser des systmes physiques remplissant ces trois fonctions.
Un systme logique complet permettant la construction de toute fonction peut cependant tre ralis en utilisant un
nombre plus faible de structures de base. Par exemple, le groupe des deux fonctions ET et complment constitue un
systme logique complet. En effet, la fonction OU peut tre reconstitue partir de ces deux fonctions seulement
comme le montrent les thormes de De Morgan :


( )
A B A B A B + = + =
soit :

A
B
A
B
A B +


Electronique Numrique 1. Logique combinatoire 1

1. 19
2.4.1. Circuits logiques diodes

Soient, deux diodes et une rsistance connectes comme le montre la figure ci-aprs. Admettons d'abord que les diodes
sont parfaites, de rsistance nulle dans le sens passant : ( ) R V
d
= > 0 0 pour .
Si l'une ou l'autre des entres A ou B est relie la masse ( ) V = 0 , la sortie V
S
= 0 .
La sortie V
S
n'est au potentiel haut (S = 1 en logique positive) que si V
A
et V
B
sont au potentiel haut. On a ralis le
produit logique S = A . B :


E = + 5 V
R
D
1
D
2
A
B
V
A
V
B
V
S
S
PORTE ET (Diodes)
V
A
V
B
V
S
0 + E 0
D
2 bloque mais
D
1
passante
S la masse
0 0
+ E
D
1
bloque
D
2
passante
S la masse
0 0 0
D
1
D
2
passantes
S la masse
+ E + E + E
D
1
D
2
bloques
V
S
= + E
(pas de courant dans ) R


De mme avec le circuit de la figure ci-dessous, la sortie ne vaut + E que si A ou B valent 1. (Somme logique A + B) :


R
D
1
D
2
A
B
PORTE OU (Diodes)
S


Les portes diodes sont expansibles, en effet :


R
R
R / 2


Compatiblit des portes ET et OU diodes

La mise en srie de portes de type diffrent pose un certain nombre de difficults lies au fait que les portes ET sont
extraction de courant alors que les portes OU sont injection de courant. Il faut leur adjoindre un lment actif du type
transistor qui peut par contre lui seul constituer un systme complet comme dans la famille RTL.
Electronique Numrique 1. Logique combinatoire 1

1. 20
2.4.2. La famille RTL (Rsistance Transistor Logic)

Le transistor permet trs simplement d'obtenir le complment d'une variable logique.


E
R
2
R
1
A
V
S
V
A
T
A
PORTE COMPLEMENT (RTL)


Si ( ) V A
A
= = 0 0 le transistor T est bloqu et ( ) V E S
S
= + =1 .
Si V E
A
= , sous rserve que la condition de saturation : R
R
2
1
>

soit satisfaite, T est satur : V S


S
= = 0 0 , .
On a donc ralis le complment S A = . Un transistor associ des rsistances (d'o le nom de ce type de circuits)
permet de raliser des oprations ET et OU (ou plus exactement des ET et OU complments soit des NOR et NAND):


E
R
R
1
A
R
2
B
S
T
1
T
2
PORTE NOR (RTL)

Si V V
A B
= = 0 les deux transistors sont bloqus. Si l'une des tensions d'entre vaut +E, le transistor correspondant se
sature : V
S
= 0. D'o la table de vrit, correspondant la fonction NOR : S A B = + :

A B S
0 0 1
0 1 0
1 0 0
1 1 0

Pour raliser la porte ET, on peut utiliser deux inverseurs et un NOR conformment l'expression AB A B = + .
Pour la porte NAND, on peut faire appel au montage direct de la figure suivante, mais qui est peu utilis car les entres
sont mal dcouples entre elles :


E
A
B
T1
T2
PORTE NAND (RTL)
S AB =

La structure de base en RTL est la porte NOR qui constitue elle seule, comme on l'a vu plus haut, un systme logique
complet. On remarque enfin que la RTL est une logique injection de courant.
Electronique Numrique 1. Logique combinatoire 1

1. 21
2.4.3. Logique DTL (Diode Transistor Logic)

Elle peut tre considre comme l'association d'une logique diodes et d'un transistor inverseur. L'ensemble constitue
alors un circuit NAND qui lui seul forme un systme logique complet. Le schma de principe est prsent sur la
figure suivante :

E
R
2
A
R
1
B
(principe)
PORTE NAND (DTL)
S AB =


Si V V E
A B
= = + , les deux diodes sont bloques et T est satur par le courant base traversant ( ) R V
S 1
0 = . Si
V
A
= 0 la diode d'entre parfaite bloque le transistor ( ) V E
S
= . En ralit si le point A est la masse, l'anode de la
diode correspondante est un potentiel voisin de 0.6 Volt qui est aussi le seuil de conduction du transistor.
Le montage ne peut fonctionner que si le V
BE
limite de conduction du transistor est plus lev que la tension de
conduction de la diode. Cela pourrait se faire avec des diodes au germanium associ un transistor silicium (solution
incompatible avec l'intgration du circuit). Une solution plus efficace consiste utiliser des diodes remontant le seuil de
conduction du transistor. Le circuit rel est reprsent sur la figure suivante. Les deux diodes D D
4 5
et remontent au
voisinage de 1.8 Volts la tension en P ncessaire la conduction de T. Alors : si V
A
= 0, V T
P
= 0 6 . Volt est
bloqu, V E
S
= + :


R
1
B
A
R
2
T
C
P
D
4
D
5
D
1
D
2
D
3
S ABC =
E
PORTE NAND 3 entres (DTL)


Il n'existe pas de circuit spcifiquement NOR en DTL.

La logique DTL est une logique extraction de courant qui n'est donc pas compatible avec la RTL.
Comme pour la logique diodes les portes sont expansibles (on diminue la rsistance de charge du transistor).
Electronique Numrique 1. Logique combinatoire 1

1. 22
2.4.4. La logique TTL (Transistor Transistor Logic) (famille la plus rpandue)

Elle ne diffre de la DTL que par le remplacement du rseau de diodes d'entre par un transistor spcial multi-
metteurs. Cest une logique qui ne se conoit qu'en circuit intgrs, elle est de loin la plus courante actuellement (srie
54/74). Comme en DTL, le circuit de base est une porte NAND.

La figure suivante reprsente le montage de base du circuit d'entre, les diodes sont remplaces par les jonctions EB des
transistors. Les deux transistors d'entre ont leurs bases et collecteurs relis.

B
A
+ E + E PORTE NAND (TTL)
(schma de base)
S AB =
T1 T3
T2
T1 et T2 sont toujours saturs
A=0 B=0 -> 0 sur la base de T3 -> T3 bloqu -> S=1
A=0 B=1 -> court-circuit 0-1 -> 0 sur la base de T3 -> T3 bloqu -> S=1
A=1 B=0 -> court-circuit 0-1 -> 0 sur la base de T3 -> T3 bloqu -> S=1
A=1 B=1 -> 1 sur la base de T3 -> T3 satur -> S=0


Lors de leur fabrication cettre liaison peut aller jusqu' la fusion totale conduisant un transistor multi-metteur qui
ralise la fonction ET. D'o le circuit d'entre de la figure suivante :


B
A
PORTE NAND (TTL)
(principe)
S AB =
E


Pour augmenter les performances, le circuit de sortie n'est pas un simple transistor. En effet un tel montage est trs mal
adapt l'attaque de charges capacitives. Considrons en effet la figure suivante :


V
e
+ 5 V
R
V
s
C
0
+ 5 V
0
Dcharge de C dans T
Recharge de C par R
T
+ 5 V


Lorsque le niveau de sortie passe de + E 0, le courant de dcharge de C traverse le transistor qui en rgime de
saturation se comporte presque comme un commutateur parfait. Lorsque le niveau de sortie passe de 0 + E ce qui
correspond au bloquage du transistor, la charge de C doit se faire grce un courant traversant R, donc avec une
constante de temps RC apprciable. Pour diminuer le temps de monte il faut diminuer R ce qui augmente
proportionnellement la consommation du circuit.

Pour augmenter la vitesse on fait appel un deuxime transistor mont la place de R qui en se saturant branche
directement C + E. Le montage prsente quelques analogies avec le push-pull :
Electronique Numrique 1. Logique combinatoire 1

1. 23

A
B
T
1
4 k
1.6 k 130
E = + 5 V
S
T
2
T
3
1 k
D
1
T
4
Porte NAND (TTL) 7400
+ E
+ E
+ E
T
2
T
4
Cas A = B = 1
S


Si V V
A B
= = +5 V, les diodes metteur-base de T
1
sont bloques, par contre la diode base-collecteur est conductrice.
Un courant circule et T T
2 4
et sont saturs. T
2
tant satur, sa tension collecteur est gale sa tension metteur soit
environ 0.6 Volt. Or T
3
ne peut conduire ( cause de D
1
) que si sa base est porte environ 1.2 V; il est donc bloqu.
Alors V S
S
= = 0 0 , .
Annulons l'une des tensions A ou B (ou les deux). La rsistance de 4 k assure la saturation de T
1
ce qui amne zro
le potentiel base de T
2
donc bloque T
2
et aussi T T
4 3
. se trouve alors satur grce la rsistance de 1.6 k reliant sa
base + E, la sortie est alors au niveau haut. Ce circuit ralise donc bien la fonction NAND : S AB = .

Le montage constitu par les deux transistors de sortie T T
3 4
, est appel totem pole , (pour chacun des 2 tats
logiques on a : T
3
bloqu et T
4
satur, ou l'inverse). Il permet des transitions rapides du niveau de sortie mme sur
charge capacitive. Le temps de transit est couramment de 10 ns.

Comme la logique DTL, la logique TTL est une logique extraction de courant.

Tolrance sur les niveaux TTL

Tension d'alimentation Vcc 5 V 0.5 V
Tension maxi d'entre pour un niveau bas V
IL
0.8 V
L : Low
Tension mini d'entre pour un niveau haut V
IH
2 V
H : High
Tension maxi de sortie pour un niveau bas V
OL
0.4 V
I : Input
Tension mini de sortie pour un niveau haut V
OH
2.4 V
O : Output

Puissance moyenne absorbe par porte : 10 mW
Courant moyen par porte : qq. mA

TTL Schottky

Dans la famille prcdente les transistors travaillent en commutation c'est dire qu'ils sont parfois saturs. Or un
transistor satur stocke des charges dans sa base qui doivent ensuite tre vacues. Ceci limite fortement la vitesse de
commutation.
Pour augmenter la vitesse, il faut viter la saturation, ceci peut se faire en plaant une diode en parallle sur l'espace
base-collecteur, de faon maintenir le collecteur un potentiel trs lgrement infrieur celui de la base :
(T ne peut pas se saturer car D conduirait, ce qui amnerait la base +0.15 volt bloquant T)


T
D


En ralit le gain de vitesse n'est pas grand car la diode elle mme stocke des charges. La solution est trouve en
remplaant D par une diode Schottky. Une telle diode est constitue par un contatct mtal semi-conducteur. Sa tension
de conduction est de l'ordre de 0.4 Volt et elle est trs rapide car le phnomne de stockage est trs rduit.
Electronique Numrique 1. Logique combinatoire 1

1. 24
Dans un circuit TTL le transistor multi-metteur d'entre peut tre galement de type Schottky (c'est dire avec une
diode Schottky en parallle) ou remplac par des diodes Schottky comme en DTL :


A
B
+ E
ou avec entre multi-metteur :
PORTE NAND (TTL S)
S AB =
A
B
Diode Shottky


Le gain en vitesse est important, les temps de transit tant de quelques nanosecondes seulement.

Variantes du circuit de sortie

a) La sortie totem-pole permet d'intressantes performances en vitesse mais interdit le ET et le OU cbls,
l'interconnexion directe des sorties peut en effet conduire la destruction des circuits. Pour remdier cet inconvnient,
deux solutions ont t retenues : les sorties open collector et tri-state.
En sortie totem pole, la charge est fixe par construction. 2 transitors en alternat de commutation (un est bloqu quand
lautre est satur) en sortie augmentent la rapidit du circuit.


+ E
S
Sortie TOTEM POLE

S
"0"
"1"
Commande
des
interrupteurs
Circuit
d'entre
Schma synoptique d'une porte sortie totem pole



A
B
T
1
4 k
1.6 k 130
E = + 5 V
S
T
2
T
3
1 k
D
1
T
4
Porte NAND (TTL) 7400


Symbole : (cest le symbole par dfaut) Exemple: Porte OU totem pole
1

Electronique Numrique 1. Logique combinatoire 1

1. 25
b) Sortie open collector (collecteur ouvert)
Le totem pole est supprim et remplac par un seul transistor dont la rsistance de collecteur n'est pas intgre. Elle doit
tre mise en place par l'utilisateur (en fonction de son problme).
Le collecteur du transistor de sortie du circuit logique nest pas connect une alimentation dans le circuit. Cest
lutilisateur de placer la charge la mieux adapte selon la sortance dsire.
Le OU et le ET cbls deviennent ainsi possible. De plus certains circuits sont prvus avec un transistor de sortie
pouvant supporter une tension de plusieurs dizaines de volts et sont prcieux comme gnrateurs d'impulsions de
grande amplitude.

La sortie S peut avoir 2 tats (0 ou 1) selon que le transistor de sortie est respectivement satur ou bloqu.

+ E
S
Sortie OPEN COLLECTOR
R
Charge extrieure

4 k 1.6 k
A
B
1 k
Circuit "open collector" (7426) NAND 2 entres
E = + 5 V
S
R
Charge extrieure


Symbole : Exemple: Porte OU open collector
1


Applications : - Changement de niveau logique (de TTL +5 Volts + U Volts)


1
+ 5 V
0 0
+ U
+ 5 V + U


- Commande de charge importante


1
+ E
Lampe


- Ralisation dune fonction cble


A
B
C
D
S
1
&
S
2
S = (A+B) (C+D)
A
B
C
D
S
1
S
2
1
1
1
1
S = (A+B) (C+D)
(A+B) (C+D)
Interprtation lectrique
S = (A+B) (C+D)

Electronique Numrique 1. Logique combinatoire 1

1. 26
c) Sortie tri-state (3 tats)

La charge est fixe par construction. Les 2 transitors en alternat de commutation du totem pole sont dsolidariss pour
donner en sortie 3 tats possibles : les 2 tats logiques 0 et 1, et le 3me tat (haute impdance) obtenu lorsque les 2
transistors de sortie sont bloqus.
La sortie peut donc se prsenter sous les 3 tats : 0, 1 et ltat haute impdance (circuit dconnect).


+ E
S
Sortie TRI-STATE
V
Entre de validation

V
A
Signal
Validation
R
1
Q
1
Q
6
R
2
Q
2
R
4
R
3
Q
3
Q
4
A
E = + 5 Volts
Q
5
Circuit inverseur tri-state

Sur le schma de linverseur 3 tats, on peut commenter le fonctionnement :
Si V Q = 0
6
, est bloqu, le systme fonctionne comme un circuit TTL classique :
Si A Q = 0
1
, conduit, la base de Q
2
est au zro donc Q
2
est bloqu ainsi que Q
5
, pendant que Q
3
est conducteur
ainsi que Q
1
, donc S A = = 1.
Si V Q =1
6
, est satur donc Q
1
galement et comme plus haut Q
2
et Q
6
sont bloqus, mais par la diode D relie la
masse Q
3
est maintenu bloqu malgr le courant dans R Q
2 4
, se trouve donc galement bloqu. N'importe quel
potentiel peut tre impos en S par un circuit extrieur sans dtriorer le circuit.

Il est ainsi possible de relier plusieurs sorties condition qu'un seul circuit soit valid la fois.
(OU et ET cbls possibles condition qu'un seul circuit soit valid la fois).

Dans la famille TTL, une sortie passe dans l'tat haute impdance en dsolidarisant les 2 interrupteurs du totem pole :

"0"
"1"
tat "1"
"0"
"1"
tat "0"
"0"
"1"
S = 0
S = Haute Impdance
S = 1
(S dconnecte)
(Haute Impdance)
3me tat

Ce type de circuit est trs utilis dans les systmes logiques complexes dans lesquels les informations circulent sur des
lignes communes auxquelles sont relies de nombreux circuits. Ce sont des BUS.

On voit sur l'exemple de la figure suivante que pour faire circuler l'information de A B il suffit de valider seulement les
portes 1 et 6, toutes les autres portes devant tre inhibes (dconnectes par tat haute impdance) sous peine de
court-circuit destructeur: (les portes 1 6 pouvant tre des circuits drivers dentits informatiques par ex., mmoire, priphrique dordinateur ...).
(driver pilote circuit de commande, de contrle, dinterface)

BUS
A
0
2 3
1 1
4
5 6
1 0
Entre de validation
B
1
1

Symbole : Exemple: Porte OU tri-state
1

Electronique Numrique 1. Logique combinatoire 1

1. 27
Remarque :
Pour viter que plus de 2 entits soient connectes simultanment au bus (ce qui entranerait des courts-circuits), un
circuit programmable spcialis (contrleur de bus) gre ces signaux de validation.

2.4.5. La logique I
2
L

L' I
2
L est une technologie bipolaire rapide utilise exclusivement dans les circuit intgrs trs complexes du type
microprocesseurs. La structure fondamentale est reprsente sur la figure suivante (avec un transistor multi-collecteur) :


Injecteur de courant
+E
S
S
PORTE I2L
Entre


2.4.6. Les familles ECL

Dans les montages prcdents les transistors fonctionnent au blocage et la saturation, or on sait qu'un transistor satur
accumule dans sa base une charge qui doit tre limine pour obtenir le blocage, ce qui prend un certain temps. Pour
augmenter la vitesse de fonctionnement, des familles logiques o les transistors ne sont jamais saturs ont t
dveloppes, c'est la cas de l'ECL (logique metteurs coupls) de Motorola.
Pour permettre la mise la masse des collecteurs de l'tage de sortie, l'alimentation est ngative (- 5 Volts) mais pour
faciliter la liaison avec d'autres logiques une alimentation positive est possible. Les niveaux logiques sont : niveau haut
(1) cod par -0.8 Volt et niveau bas (0) cod par -1.8 Volts.

2.4.7. Les familles MOS

Le Transistor Effet de Champ jontion (FET) n'est pas utilis pour construire des circuits logiques, il n'en est pas de
mme du transistor MOS, Transistor Effet de Champ grille isole. Pour les transistors MOS construits actuellement,
la tension de seuil peut tre infrieure 2 Volts, ce qui permet d'utiliser ces composants avec des tensions
d'alimentation de 3 Volts seulement.

La figure suivante reprsente un inverseur MOS. Sa structure est analogue celle de l'inverseur transistor bipolaire, sa
caractristique de transfert peut tre trace partir du rseau de caractristiques du MOS pour une valeur donne de la
rsistance de charge. La transmission est d'autant plus brutale que la rsistance est leve. On voit que le systme est
compatible avec un niveau logique bas infrieur 3 Volts, et haut suprieur 7 Volts (pour 10 Volts d'alimentation).


E
S
+ 10 Volts
R
I
DS
0
10
V
DS
V
GS
= + 6 V
0.5 10 k
20 k
40 k
10
5
V
DS
R = 10 k
20 k
40 k
V
E
V
GS
= + 5 V
V
GS
= + 4 V
V
GS
= + 3 V
V
GS
= + 2 V
R =

Or en circuit intgr, une rsistance occupe d'autant plus de surface sur la "puce" que sa valeur est importante. On a
donc cherch remplacer la rsistance de charge par un second transistor MOS. Considrons un MOS canal N dont la
grille est relie au drain, il constitue un diple dont la caractristique est trace sur la figure suivante. C'est un
dcalage de tension prs, celle d'une rsistance qui peut tre utilise come charge dans le montage inverseur.


I
V
DS
V
GS
= 6 Volts
5
2
3
4
5 I
V

Electronique Numrique 1. Logique combinatoire 1

1. 28
La figure suivante reprsente le montage fondamental de l'inverseur MOS dans lequel toute rsistance a t bannie.
Nous ne dtaillons pas ici les nombreuses variantes technologiques mises au point depuis quelques annes et qui sont
en constante volution, (grille en aluminium et isolement par de la silice, grille en silicium poly ou monocristallin,
isolement par du nitrure de silicium ayant une constante dilectrique leve etc...).


A
+ E
A
Inverseur MOS
A
+ E
S
B
C
D
NOR MOS 4 entres
+ E
S
A
B
NAND MOS


Une particularit des MOS lie leur impdance d'entre trs leve est la prsence d'une capacit grille-substrat qui
peut tre utilise comme lment de mmoire et limite les performances en vitesse.

2.4.8. La famille CMOS (autre grande famille avec la famille TTL)
CMOS pour MOS Complmentaires : MOS utiliss par paires : MOS canal N; MOS canal P.

L'emploi simultan de MOS complmentaires permet de raliser des circuits dont la consommation au repos est
particulirement basse. La firme amricaine RCA s'est spcialise dans cette technique et commercialise ces circuits
logiques (srie 4000/40000).

Le circuit fondamental est l'inverseur ci-dessous.


A
+ E
A
V
E
V
S
Canal N
Canal P

Lorsque V
E
# +E, niveau haut, le MOS-N ayant sa grille positive est conducteur. Par contre le MOS-P est bloqu.
Donc V
S
est petit (V
S
0) mais le courant consomm est nul, M
2
tant bloqu.

Lorsque V
E
# 0 niveau bas, le MOS-N est bloqu (il s'agit toujours de MOS enrichissement ayant un I
DSS
nul).
Par contre, M
2
de type P est conducteur et V
S
E. L encore M
1
tant bloqu, le courant consomm par la cellule est nul.

Les deux transistors ne sont pas simultanment conducteurs, le circuit ne consomme donc rien l'tat stable. Une
consommation apparat seulement en rgime transitoire car il faut charger et dcharger les capacits de structure. La
consommation typique vitesse moyenne peut tre cent fois infrieure celle de la cellule identique transistors
jonctions mais la vitesse limite est actuellement plus faible, typiquement 10 MHz contre plus de 500 MHz pour des
ECL.

Tension d'alimentation : TTL elle peut tre de 3 18 Volts (srie 4000)
(les nouvelles gnrations plus performantes n'autorisent que 2 6 Volts).
La puissance consomme est << TTL : de l'ordre de 0.1 mW courant trs faible < 1 mA.
Les tolrances sur les niveaux logiques sont du mme ordre quen TTL.
Electronique Numrique 1. Logique combinatoire 1

1. 29
Un des problmes matriser a t la protection des entres contre les surtensions d'origine statique, la couche d'oxyde
des grilles est en effet trs fragile. La solution a t trouve en intgrant des diodes au niveau des entres. Actuellement
ce systme fonctionne bien et enlve tout souci l'utilisateur concernant des manipulations destructrices.


+ V
DD
Circuit de protection d'entre


La figure suivante reprsente un NAND deux entres.


+ V
DD
A
B
S
M
1
M
2
M
3
M
4
PORTE NAND (CMOS)


Si l'une des entres est au zro le MOS correspondant M
1
ou M
2
de type P est conducteur amenant S au +V
DD
.
Si au contraire A et B sont +V
DD
, M
1
et M
2
sont bloqus mais M M
3 4
, conducteurs, fixent S au zro.

Un MOS n'ayant pas de tension d'offset les niveaux de sortie (sans charge) sont rigoureusement +V
DD
et zro, les
impdances de sortie tant les rsistances des canaux, ces rsistances sont de l'ordre du k.

Le courant d'entre est toujours trs faible, typiquement 10 pA, le courant susceptible d'tre dlivr en sortie est au
maximum de l'ordre du milliampre. Au moins en fonctionnement lent, la sortance est donc trs grande. Les
constructeurs l'annoncent suprieure 50.

Comme pour la famille TTL, il y a 3 variantes pour le circuit de sortie : totem pole, open drain, tri-state.

Les principaux circuits de la srie 4000 sont les suivants :

4001 Quadruple NOR deux entres,
4011 Quadruple NAND deux entres,
4009 Six inverseurs (Buffer inverseur),
4010 Six amplis non inverseurs (Buffer),
4013 Double bascule D,
4027 Double bascule JK,
4042 Quadruple bascule D (latche),
4017 Dcade DCB 10 sorties dcodes,
etc ...
Electronique Numrique 1. Logique combinatoire 1

1. 30
Soit la porte analogique (4016) reprsente ci dessous :


S
M
1
M
2
Commande
P
N
E
Vc
I


Si 1 =
C
V ,
2
M canal N est conducteur ainsi que M
1
qui, grce l'inverseur I voit sa grille porte au 0 ; les deux MOS
se comportent alors comme leur rsistance de conduction 200 et V V
out in
= .
Si au contraire 0 =
C
V ,
1
M et M
2
sont bloqus, leur rsistance de fuite tant suprieure 10
11
.

En plaant un systme de ce type en sortie d'un circuit logique, on obtient le mme rsultat qu'avec le montage tri-state
de la TTL.

Le 4016 peut tre utilis avec des signaux d'entre analogiques, son comportement est celui d'un interrupteur
mcanique commande lectrique :

+ 7.5
4016
C
- 7.5
10 k
S
S
C
E
E


Les circuits CMOS sont de plus en plus utiliss grce leur souplesse d'emploi :

- niveaux de sortie trs bien dfinis.
- grande immunit au bruit
(mais en contre partie les impdances d'entre favorisent la rception de signaux parasites rayonns).
- possibilit de fonctionnement dans une large plage de tensions d'alimentation.
- trs faible consommation.
- Une dernire proprit des CMOS, lie leur impdance d'entre et comportement en sortie et la possibilit de les
utiliser dans les configurations o ils fonctionnent de faon pseudo-linaire : amplificateur, oscillateurs, etc ...

Avec les sries 4000 et 40000, on trouve aussi la srie 74C dont les circuts sont compatibles broche broche avec ceux
portant le numro correspondant en logique TTL.

2.4.9. Les interfaces entre familles

Pour des raisons dincompatibilit entre les familles logiques, tous les circuits logiques connects dun montage doivent
tre de la mme famille; dans le cas contraire, il faut en outre prvoir des circuits dinterfaage.
Ce sont des circuits permettant l'association de circuits logiques appartenant des familles logiques diffrentes. Les cas
les plus souvent rencontrs sont :

- l'attaque d'une logique lente, le plus souvent TTL, par une logique ultra rapide (ECL). L'inverse tant sans intrt.
- une association de circuits TTL et CMOS.
Electronique Numrique 1. Logique combinatoire 1

1. 31
2.4.9.1. Interface CMOS - TTL

Il est vident que l'alimentation doit se faire en + 5 Volts cause de la TTL.

2.4.9.1.1. Attaque dun circuit CMOS par un circuit TTL


TTL
+5 V
CMOS
+5 V +5 V
R


Une porte TTL totem pole fournit en sortie :
- au plus 0.4 Volt au niveau 0
- au moins 3.6 Volts au niveau 1

Or sous 5 Volts, il faut pour le CMOS au plus 1.5 Volts au niveau 0 et au moins 3.5 Volts au niveau 1.
En consquence, la TTL pilote sans problme le CMOS au niveau 0. Cest par contre un peu juste au niveau 1.
On utilise alors une rsistance R dite de pull up (R de lodre de 10 k) qui remonte le niveau haut de la TTL.

2.4.9.1.2. Attaque dune entre TTL par une sortie CMOS

Au niveau 1 il ny a pas de problme car lentre TTL se contente dun courant faible.
Il nen est pas de mme au niveau 0 : pour une tension de 0.8 Volt max, il faut extraire dune entre TTL un courant de
1.6 mA. Or une porte CMOS peut tout juste accepter 0.8 mA pour cette valeur de tension. La liaison directe est donc
impossible.


TTL CMOS
1.6 mA 0.8 mA


On peut alors utiliser un circuit dinterface spcialis ou mme un transistor intermdiaire (impliquant alors une
inversion).

+ 5 Volts
TTL
CMOS
0.2 mA
4.7 k
22 k


2.4.9.2. Interface ECL - TTL

La difficult est diffrente suivant que l'ECL est aliment entre 0 et + 5 Volts ou entre - 5 Volts et 0. Dans le cas o une
association avec des circuits TTL est prvue, la premire solution est gnralement retenue.
Des circuits spcialiss ou des montages adaptateurs sont proposs par le constructeur.

2.5. Symbolisme des oprateurs logiques

2.5.1. Forme des symboles


Entres
*1
*1
*1
*1
*2
*2
Sorties
Identificateur gnral (0)
*3
*3

*x : positions possibles pour les spcifications x particulires chaque entre ou sortie.
Electronique Numrique 1. Logique combinatoire 1

1. 32
2.5.2. Identificateur gnral (0)

Symbole Description
& Fonction ET
1 Fonction OU
=1 Fonction OU Exclusif
= Fonction Concidence
2k Le nombre dentres actives doit tre pair (pour activer la sortie)
2k+1 Le nombre dentres actives doit tre impair (pour activer la sortie)
1 Lentre unique doit tre active (pour activer la sortie)

Tampon (amplificateur). Le sens du triangle indique le sens de propagation du signal

Elment prsentant un hystrsis (trigger de Schmitt)
X/Y Codeur, convertisseur (DEC/BCD, BIN/7 segments)
MUX Multiplexeur
MUX ou DX Dmultiplexeur
Additionneur
P-Q Soustracteur (Comparateur numrique)
CPG Gnrateur de retenue anticipe
Multiplieur
COMP Comparateur (amplitude analogique)
ALU Unit arithmtique et logique

Monostable programmable
1 Monostable
G Elment astable (la forme donde est optionnelle)
!G Oscillateur dmarrage synchrone
G! Oscillateur astable arrt command
SRG m Registre dcalage (m = nombre de bits)
CTR m Compteur m bits (cycle de 2
m
tats)
CTR DIV m Compteur de cycle = m
ROM Mmoire morte (Read Only Memory)
RAM Mmoire vive (Random Access Memory)
FIFO Mmoire vive rangement squentiel file dattente (First In First Out)



2.5.3. Symbole externe au contour du circuit (1)

ou

Complment logique en entre (la flche indique aussi le sens du signal)
ou

Complment logique en sortie (la flche indique aussi le sens du signal)

Flux de donnes de la droite vers la gauche
(implicitement, il est de la gauche vers la droite)

Flux bidirectionnel

Entre (sortie) analogique
Electronique Numrique 1. Logique combinatoire 1

1. 33
2.5.4. Symbole interne au contour du circuit pour les entres (2)

Entre active sur front montant
(en labsence du triangle interne au circuit lentre est active sur niveau haut)
ou

Entre active sur front descendant)
(en labsence du triangle interne au circuit lentre est active sur niveau bas)

Entre possdant un hystrsis lectrique
EN

Entre de validation (ENABLE)
m m

Entre de dcalage dun registre; La flche indique le sens
m indique le nombre de dcalage effectus
+ m - m

Entre de comptage (+) ou de dcomptage (-); m prcise lincrment
0
m
}

Entres groupes, pondres de 0 m
Les combinaisons sont repres de 0 2
m
-1
CT 10

Entre de chargement dun compteur la valeur indique (ici 10)
]

Entres groupes : elles ralisent indpendamment la mme fonction
X = G, V, N, Z, C, S, R, EN, M, A
b
c
a
b
c
a
X1
1
1



b
c
a
b
c
a
&
&
G1
1
1


Dpendance dune entre envers une autre entre. Ici, les entres a et c sont
dpendantes de lentre b (mme numro) par la fonction X :
G : ET
V : OU
N : OU Exclusif
Z : relation dinterconnexion
C : relation de contrle (horloge)
S : SET (Mise 1)
R : RESET (Mise 0)
EN : ENABLE (autorisation)
M : Slection dun mode de fonctionnement
A : Slection dune adresse

2.5.5. Symbole interne au contour du circuit pour les sorties (3)

Sortie de technologie collecteur ouvert NPN ou assimil (drain ouvert )

Sortie de technologie collecteur ouvert NPN ou assimil (drain ouvert )
avec rsistance de charge intgre
et
Sortie de technologie metteur ouvert (sans et avec charge intgre)

Sortie de technologie trois tats

Condition dvolution de la sortie :
la sortie est positionne aprs retour de lentre dhorloge son tat
initial (bascule commande par impulsion)
CT = 5

Condition dvolution de la sortie :
la sortie est active si le contenu du compteur est gal la valeur
indique (ici 5)
X = G, V, N, Z, C, S, R, EN, M, A
b
c
a
b
c
a
X1
1
1



b
c
a
b
c
a
G1
1
1 &
&

Dpendance dune sortie envers une autre sortie
Ici, les sorties a et c sont dpendantes de la sortie b (mme numro) par la fonction X:
G : ET
V : OU
N : OU Exclusif
Z : relation dinterconnexion
C : relation de contrle (horloge)
S : SET (Mise 1)
R : RESET (Mise 0)
EN : ENABLE (autorisation)
M : Slection dun mode de fonctionnement
A : Slection dune adresse
Electronique Numrique 1. Logique combinatoire 1

1. 34
Complments sur la dpendance

- Si plusieurs termes affectants portent le mme numro, les termes sont implicitement lis par un OU :


b
c
a
b
c
a
&
G1
1
G1 1


- Un symbole prcisant la fonction dun terme affect est plac droite du numro du terme affectant :


1D
C1
Terme affectant n1
Terme affect


- Si une entre (ou une sortie) est affecte par plusieurs termes affectants, les numros didentification de chacun de ces
termes sont crits spars par des virgules et dans le mme ordre que celui des relations logiques affectantes :


b
c
a
b
c
a
&

G1
C2
1,2 D
D


- Si lcriture dun numro didentification risque dintroduire une confusion, il peut tre remplac par un autre
caractre, par ex. une lettre grecque :


b
c
a
G

b
c
a
G1
1
1


- Il est plus simple, lorsque des entres de dpendance peuvent tre groupes, daffecter chacune delles un poids,
puis didentifier une combinaison donne par le nombre binaire correspondant :


0
m
}
borne infrieure
G
0
2 1
1 m+

a
k
1
b
borne suprieure


Le nombre binaire (k...ba)
2
o (a) a le poids 2
0
, (b) a le poids 2
1
etc ... est alors compris entre 0 et 2
m+1
.
On prcise alors les bornes dutilisation effective.

- Lorsquune entre a plusieurs fonctions, il est possible de prciser ces fonctions sur une mme figure, en sparant les
termes respectifs par des barres obliques (/) :


c
a

G2
2 / C1 b
a
&
C1


__________
Electronique Numrique TD 1. Logique combinatoire 1

TD 1. 1
TD 1. LOGIQUE COMBINATOIRE 1

1. Modlisation dune fonction logique - Simplification - Ralisation
Soit le systme logique d'entres P
L
et P
P
et de sortie S :


S
P
L
P
P
Systme


P
L
= 1 sil pleut; P
L
= 0 sil ne pleut pas.
P
P
= 1 si prsence de parapluie; P
P
= 0 si absence de parapluie.

a) Construire le systme logique pour permettre de sortir ( S =1) quand il ne pleut pas, ou quand il pleut et que
l'on est muni d'un parapluie. Construire galement S directement.

b) Simplifier la fonction logique S :
b1) de faon algbrique
b2) de faon graphique

c) Donner le schma lectrique symbolique de la fonction logique S.

2. Reconnaissance dune fonction logique daprs un chronogramme
On donne le chronogramme suivant dcrivant les signaux A, B et S en fonction du temps :


1
A
0 t
t
1
0
B
t
1
0
S

a) Quelle est la fonction logique f reliant les variables logiques A, B et S : ( ) S f A B = ,
b) Donner le symbole lectrique de f.

3. Simplification dune fonction logique
Soit la fonction logique 4 variables A, B, C, D :

S A B C D A B C D A BC D A BC D AB C D = + + + +

Les mots suivants ( tats logiques du mot ABCD) tant indfinis ( indiffrents pour la sortie S) car ces
combinaisons dentre napparatront jamais :

ABC D ABC D ABC D ABC D AB C D AB C D , , , , et

a) Simplifier la fonction S en regroupant les 1 du diagramme de Karnaugh. En dduire la fonction logique S .
b) Facultatif : Simplifier la fonction S en regroupant les 0. Retrouver le mme rsultat qu'en a) pour la fonction S .
Electronique Numrique TD 1. Logique combinatoire 1

TD 1. 2
4. Synthse dun systme logique combinatoire
La commande des essuie-glace dun vhicule est assure par un bouton de mise en marche M et un contact de fin
de course F. La mise en rotation est provoque par la mise 1 du bouton M, quelle que soit la position des essuie-
glace. Larrt est obtenu si M = 0 et si les essuie-glace sont dans leur position de repos F = 1.


1. Donner lexpression de la variable logique C.
2. Proposer un montage charg de gnrer la variable logique C de commande des essuie-glace.

5. Synthse dune Fonction logique

Soit la fonction logique s de 3 variables a , b, c : s MAX a b c = ( , , ) .
On dfinit le MAX de 3 variables a , b, c comme gal :
0 si parmi a , b, c le nombre de variables ltat 0 est plus lev que celui ltat 1
1 sinon.

. Donner lexpression de la variable logique s en fonction des variables a , b et c .

A prparer pour les Travaux Pratiques :

6. Ralisation dune fonction logique laide de portes NAND exclusivement
En utilisant exclusivement des portes logiques NAND, raliser les fonctions suivantes :

a) NON (NOT) (1 entre)
b) OU (OR) (2 entres)
c) ET (AND) (2 entres)
d) NOU (NOR) (2 entres)
e) OUX ou XOU (XOR) (2 entres)
Electronique Numrique TD 1. Logique combinatoire 1

TD 1. 3
TD 1 ANNEXE. LOGIQUE COMBINATOIRE 1

1. Analyse dun systme logique combinatoire
- Donner lexpression de la variable logique S. - Indiquer le rle du montage.


= 1
B
b
3 b
2 b
1 b
0
{
A
a
3 a
2 a
1 a
0
{
&
= 1 = 1 = 1
S


2. Simplification d'une fonction logique
Le verrou S d'une serrure lectronique sans mmoire (lordre nimporte pas) doit s'ouvrir dans les configurations
suivantes des cls logiques A, B, C, D :
ABC D, ABC D, ABC D, ABC D,

les conditions suivantes tant indiffrentes (ces combinaisons dentre ne peuvent se produire du fait de la
mcanique de la serrure) :

ABC D, ABC D, D C B A , A BC D, ABC D et ABC D.

- Donner, aprs simplification par exemple par la mthode de Karnaugh, lexpression de la fonction logique S sous
une forme autorisant une ralisation laide dune seule porte logique.
__________

Electronique Numrique Tutorial 1. Tutorial Circuit Maker Numrique

Tutorial 1. 1
Tutorial 1. Tutorial Circuit Maker Numrique


0. Circuit Maker tour - Modes de simulation

Mode de simulation numrique :
Vitesse de simulation : Simulation Digital Options Simulation Speed
Instrument Oscilloscope : Device Instruments Digital SCOPE (sonde) + (Waveform)
Instrument Horloge : Device Instruments Digital Pulser
Instrument Data Sequenceur : Device Instruments Digital Data Seq
Instrument +5 Volts : Device Digital Power Logic Switch
Composant LED : Device Digital Animated Displays Logic Display
Instrument Roue codeuse : Device Switches Digital Hex Key


1. Diviseur de frequence par 2






2. Transcodeur


Electronique Numrique Tutorial 1. Tutorial Circuit Maker Numrique

Tutorial 1. 2
3. Compteur



- Chronogrammes simultans de H, Q1, Q2 (temps 0-50 Ticks)




4. Data Sequenceur





__________


Electronique Numrique TP 1. Logique combinatoire 1

TP 1. 1

TP 1. LOGIQUE COMBINATOIRE 1
1. Matriel ncessaire
- Alimentation stabilise ( 2x[ 0-30 V]
&&&
_ + 1x[ 5 V]
&&&
_ )
- Multimtre
- Moniteur MS05 (plaquette de cblage)
- Cbles : 6 fils Banane, petits fils.

- Composants : - 4 Rsistances 1 k (1/4 Watt)
- 4 LEDs rectangulaires (3 Vertes, 1 Rouge)
- 3 mini-interrupteurs

Circuits logiques de la famille CMOS 4000 :
- 1 4071 : 4 OR 2 entres
- 1 4081 : 4 AND 2 entres

- Logiciel de simulation Circuit Maker

Simulation (& Cblage) :
Pour des raisons de compatibilit, nutiliser que des circuits de la mme famille (famille CMOS 4000 ne pas
mlanger avec la famille TTL 74xxx).

2. Notation du TP

Faire examiner par le professeur en fin de sance, les diffrentes parties du TP.

3. Etude Thorique
On reprend lexercice du TD :

3.1. Synthse de la Fonction logique MAX

Soit la fonction logique s de 3 variables a , b, c : s MAX a b c = ( , , ) .
On dfinit le MAX de 3 variables a , b, c comme gal :
0 si parmi a , b, c le nombre de variables ltat 0 est plus lev que celui ltat 1
1 sinon.

. Donner lexpression de la variable logique s en fonction des variables a , b et c .

Synthse de la Fonction logique MAX - Corrig

a
b
c s
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
do : s abc abc abc abc = + + +

Simplification de s :
- algbrique :
( )
( ) s c ab ab abc c a b abc = + + = +
- graphique (Karnaugh) : ac bc ab s + + =


ab
c 00 01 11
0
10
1
1
1 1 1
0 0 0
0

Electronique Numrique TP 1. Logique combinatoire 1

TP 1. 2
3.2. Ralisation dune fonction logique laide de portes NAND exclusivement
En utilisant exclusivement des portes logiques NAND, raliser les fonctions suivantes :

a) NON (NOT) (1 entre)
b) OU (OR) (2 entres)
c) ET (AND) (2 entres)
d) NOU (NOR) (2 entres)
e) OUX ou XOU (XOR) (2 entres)

4. Etude Exprimentale

4.0. Logiciel
- Portes logiques : pour des raisons de compatibilit, prendre uniquement des circuits de la mme famille, par exemple
CMOS (srie 40xx) conseill, ou la rigueur la famille TTL, srie 74xx) :
Library : Digital Digital by function
- Source binaire 0-5V : Analog Power Logic switch
- LED : Digital animated Display Logic display
- Simulation : Simuler en Digital
- Placer des Logic display en entre et en sortie pour vrifier le fonctionnement des montages.

4.1. Synthse de la Fonction logique MAX
Simuler (avec le logiciel de simulation) la fonction simplifie : ac bc ab s + + = avec les circuits de la bibliothque
du logiciel de simulation. Vrifier avec les LEDs la table de vrit tablie.

4.2. Ralisation dune fonction logique laide de portes NAND exclusivement
En utilisant exclusivement des portes logiques NAND, simuler les fonctions suivantes (vrifier avec le logiciel de
simulation) :
a) NON (NOT) (1 entre)
b) OU (OR) (2 entres)
c) ET (AND) (2 entres)
d) NOU (NOR) (2 entres)
e) OUX ou XOU (XOR) (2 entres)

4.3. Facultatif - Ralisation dune fonction logique laide de portes NOR exclusivement

En utilisant exclusivement des portes logiques NOR, simuler les fonctions suivantes (vrifier avec le logiciel de simulation) :
a) NON (NOT) (1 entre)
b) OU (OR) (2 entres)
c) ET (AND) (2 entres)
d) NET (NAND) (2 entres)
e) OUX ou XOU (XOR) (2 entres)

Rangement du poste de travail
Examen des diffrentes parties du TP et rangement ( 0 pour tout le TP sinon).

ANNEXE : DOCUMENTATION DES COMPOSANTS
- LED

A K
Anode Cathode
A K

__________
Electronique Numrique 2. Logique combinatoire 2

2. 1
2. LOGIQUE COMBINATOIRE 2 - APPLICATIONS
1. Les Applications directes

1.1. Codeur

1.1.1. Dfinition

Un codeur est un dispositif qui traduit les valeurs d'une entre dans un code choisi.

Par exemple, un clavier de console ou de machine crire comporte n touches. Chaque touche, reprsentative d'un
caractre, est affecte d'un numro. L'opration de codage consiste donner chaque numro (donc chaque caractre)
un quivalent binaire, c'est dire un mot compos d'lments binaires.


"1"
B
1
B
2
B
i
B
m
m entres
1 seule entre la fois est active
( au niveau 1 )
e
0
e
1
e
m
s
0
s
s
1
n -1
- 1
N = i
n sorties reprsentant le n de
l'entre active dans le code choisi
Codeur
2 2
1 n n
m

<


(Dans la symbolique de ce schma et contrairement la majorit des technologies, une entre en lair est au niveau logique 0).

Si i = 4 Soit
0 1 2 3
S S S S N = on a:
3
S = 0,
2
S = 1,
1
S = 0,
0
S = 0 pour un codeur binaire (pur).
Si seul le bouton numro i est actionn, le nombre binaire 4 lments
0 1 2 3
S S S S N =
est gal i, dans le code choisi.

Les tables de Karnaugh (1 table pour chaque sortie) ne sont pas utilises car le nombre d'ventualits est rduit
(1 seule entre active).

1.1.2 Intrt du codage

Si le nombre de boutons est de 10, cod en binaire pur, 4 variables suffisent. Pour un clavier classique, la centaine de
touches se codent facilement avec 7 variables binaires (en supposant toujours 1 seule touche active la fois).
Le codage des informations apporte une rduction non ngligeable du nombre de variables traiter.

1.1.3. Application : codeur prioritaire

Si maladroitement plusieurs boutons sont enfoncs simultanment, le codeur classique donne un rsultat erron car il ne
sait plus quel numro doit tre cod.
Un codeur prioritaire est un dispositif ralisant le codage du numro le plus lev dans le cas o plusieurs boutons
seraient actionns simultanment. Si une seule commande est envoye sur le codeur prioritaire, celui-ci fonctionne
comme un codeur classique.


"1"
B
1
B
2
B
m
e
0
e
1
e
m
s
0
s
s
1
n -1
- 1
Codeur
B
i
N j j i =
si
prioritaire
B
j

Si 2 entres ou plus sont actives simultanment l'entre slectionne pour le codage est celle ayant le
numro d'entre le plus lev. Sinon le codeur prioritaire se comporte comme un codeur classique.
Electronique Numrique 2. Logique combinatoire 2

2. 2
1.1.4. Ralisation pratique des codeurs

Dans sa version la plus gnrale, un codeur est un ensemble de circuits OU.

Exemple : Codeur Dcimal DCB (en anglais BCD)

Soit la table de codage suivante pour des entres de e
0
e
9
: (code DCB) (clavier 10 touches dun digicode)


i
e est traduite par A B C D :
0
e est traduite par =
3 2 1 0
s s s s 0 0 0 0

1
e est traduite par =
3 2 1 0
s s s s 0 0 0 1

2
e est traduite par =
3 2 1 0
s s s s 0 0 1 0

3
e est traduite par =
3 2 1 0
s s s s 0 0 1 1

4
e est traduite par =
3 2 1 0
s s s s 0 1 0 0

5
e est traduite par =
3 2 1 0
s s s s 0 1 0 1

6
e est traduite par =
3 2 1 0
s s s s 0 1 1 0

7
e est traduite par =
3 2 1 0
s s s s 0 1 1 1

8
e est traduite par =
3 2 1 0
s s s s 1 0 0 0

9
e est traduite par =
3 2 1 0
s s s s 1 0 0 1

et le codage des sorties :
9 7 5 3 1 3
7 6 3 2 2
7 6 5 4 1
9 8 0
e e e e e s
e e e e s
e e e e s
e e s
+ + + + =
+ + + =
+ + + =
+ =


Ralisation Reprsentation symbolique


e
0
e
1
e
2
e
3
e
4
e
5
e
6
e
7
e
8
s
0
s
1
s
2
s
3
e
9

e
0
e
1
e
2
e
3
e
4
e
5
e
6
e
7
e
8
s
0
s
1
s
2
s
3
Matrice diodes ou transistors
pour la ralisation de ces contacts
e
3
s
3
OU

e
9

Electronique Numrique 2. Logique combinatoire 2

2. 3
1.2. Dcodeur

1.2.1. Dfinition

Un dcodeur est un circuit qui dlivre une (ou des) information(s) lorsque la combinaison des variables binaires
dentre est reprsentative du (ou des) mot(s)-code choisi(s).

Un dcodeur ralise la fonction inverse ( duale) du codeur.


m entres
1 seule sortie la fois est active
e
0
e
1
e
m
s
0
s
s
1
n -1
- 1
n sorties
Dcodeur
n
m
2

e
2
e
1
e
0
Dcodeur
s
7
s
6
s
0
Exemple : Dcodeur 3 entres / 8 sorties



1.2.2. Ralisation des dcodeurs

La ralisation des dcodeurs se fait partir d'une matrice ET.

Lexpression dune sortie s
i
dun dcodeur est un minterme sur les entres e
i
: s m
i i
=

Exemple : Dcodeur 3 entres / 8 sorties dfini par (code DCB des entres : DCB Dcimal) :

s e e e
s e e e
s e e e
0 2 1 0
1 2 1 0
7 2 1 0
=
=
=
M


Ralisation Reprsentation symbolique


e
0
e
1
e
2
s
0
...
s
1
s
7

e
0
e
1
e
2
s
0
s
1
s
7
ET
...

Electronique Numrique 2. Logique combinatoire 2

2. 4
1.2.3. Applications des dcodeurs

1.2.3.1. Adressage d'une mmoire (dcodage dadresses) (mmoire pagine)

Reprsentons une mmoire comme un tableau d'lments binaires. Ce tableau est divis en lignes et en colonnes. Pour
lire un mot mmoire, il faut lui envoyer le numro de la ligne souhaite : c'est son adresse. Une mmoire ayant 1 024
lignes, par exemple, ncessite 10 bits d'adresse. Un dcodeur interne la mmoire permet la slection d'une ligne et
d'une seule un instant donn.


dcodeur
binaire
adresse
i
10
autorisation accs mmoire
(Chip Select)
Autorisation accs
ligne 0
ligne 1
ligne i
ligne 1023
0 1 1 1 0 0 0 1
8 lments binaires par ligne = 1 mot
sortie ligne i
0 1 1 1 0 0 0 1


Si un microprocesseur dlivre une adresse sur 16 fils, il possde une capacit d'adressage (espace adressable) de 2
16

soit 65 536 mots. Les 1 024 mots de la mmoire prcdente occupent donc une faible partie de cet espace.
Il est alors commode de partager celui-ci en 64 pages de 1 024 mots, chaque page pouvant correspondre un botier
mmoire. La slection du numro de page, donc du botier correspondant (Chip Select), est effectu par le dcodage de
6 bits parmi les 16 (en gnral les poids forts). Les bits restants permettent la slection interne d'un mot mmoire.


a
9
..... a
0
10
Chip Select
CS
mmoire
sortie
adresse
a
15
.... a
10
6
s
i
dcodeur
a
15
.... a
0


La sortie s
i
du dcodeur est connecte l'entre Chip Select (CS). Si le nombre dcimal quivalent ( ) a a
15 10
2
L
est diffrent de i, la mmoire ne dlivre aucune information en sortie. Dans le cas contraire, la sortie de la mmoire est
le contenu de la ligne dont le numro est fix par les adresses ( ) a a
9 0
L avec 0 63 i .
Avec i = 3, pour accder la mmoire, le microprocesseur doit envoyer une adresse a a
15 10
L telle que :
( ) a a
15 10
2
L = 3
10
ce qui correspond des adresses :
( 0C00 )
H
( 0 0 0 0 1 1 A
9
... A
0
)
2
( 0FFF )
H
(1 caractre Hexa 4 bits car 2 16
4
= )
ou bien : ( ) ( ) 3 072 4 095
10 10
Adresse

1.2.3.2. Gnration de fonction

Comme toute fonction logique s peut s'exprimer comme une somme de mintermes :

=
i
i
m s , il suffit, pour
engendrer s , de faire un OU avec les sorties s m
i i
= dun dcodeur

=
i
i
s s (une sortie de dcodeur est un
minterme).
Electronique Numrique 2. Logique combinatoire 2

2. 5
Exemple :
N e
2
e
1
e
0

( ) s f e e e =
2 1 0
, ,
0 0 0 0 0
1 0 0 1 0
2 0 1 0 0
3 0 1 1 1
4 1 0 0 0
5 1 0 1 1
6 1 1 0 1
7 1 1 1 1


e
2
e
1
0
e
Dcodeur
Binaire
s
0
s
1
s
2
s
3
s
4
s
5
s
6
s
7
s


1.3. Transcodeur

Un transcodeur est un dispositif permettant de passer du nombre N crit dans un code C
1
au mme nombre N crit dand
le code C
2
.

1.3.1. Synthse d'un transcodeur

Le nombre N dans le code C
1
s'exprime l'aide des variables A, B, C, D par exemple, et dans le code C
2
avec les
variables X, Y, Z. (Le nombre des variables dans chaque code n'est pas forcment identique).
Le problme de la synthse d'un transcodeur revient calculer chacune des sorties, c'est dire les variables de C
2
(ici
X, Y, Z) en fonction des entres ou variables du code C
1
(ici A, B, C, D), soit :

( )
( )
( )
X f A B C D
Y f A B C D
Z f A B C D
=
=
=
1
2
3
, , ,
, , ,
, , ,


Exemple : Transcodage d'un nombre N (code Gray) en code binaire pur de la moiti entire du nombre N :
(le code de Gray est dfini tel qu1 seul bit change au passage dun mot au suivant)

N ABCD
Code Gray

XYZ
Moiti entire
en binaire pur
0 0000 000
1 0001 000
2 0011 001
3 0010 001
4 0110 010
5 0111 010
6 0101 011
7 0100 011
8 1100 100
9 1101 100
10 1111 101
11 1110 101
12 1010 110
13 1011 110
14 1001 111
15 1000 111
Electronique Numrique 2. Logique combinatoire 2

2. 6
X est gale 1 si les variables ABCD prennent les valeurs 1 1 0 0, 1 1 0 1, 1 1 1 1, 1 1 1 0, 1 0 1 0, 1 0 1 1, 1 0 0 1, ou 1
0 0 0, ce que l'on peut reporter dans un tableau de Karnaugh pour obtenir l'expression la plus simple de la fonction f
1
.
On procde de la mme faon pour Y, Z ce qui donne :


CD
AB
00 01 11 10
00
01
11
10
1
1
1 1 1
1 1 1
CD
AB
00 01 11 10
00
01
11
10 1
1 1 1 1
1 1 1
X Y
CD
AB
00 01 11 10
00
01
11
10 1
1 1
1 1
1
Z
1 1 0 0
0 0
0 0
0 0
0
0
0 0 0
0 0 0
0 0 0 0
0 0 0 0

X = A Y AB AB A B = + = Z A B C =
D'o le schma :


A
B
C
X
Y
Z
= 1
= 1


1.3.2. Application : transcodeur BCD / 7 segments

On appelle transcodeur BCD / 7 segments le dispositif de transcodage permettant de passer du code BCD (Dcimal
Cod Binaire encore appel binaire pur) ou du code Hexadcimal Cod Binaire au code d'affichage du chiffre sur un
afficheur 7 segments. L'opration de dcodage du chiffre est ralis visuellement (interprtation visuelle de la forme du
chiffre form par l'allumage des segments).
Soient a, b, c, d, e, f et g les variables correspondant aux 7 segments. Si une variable est au niveau actif (par exemple
1), le segment correspondant est allum. Les segments sont rpartis comme l'indique la figure ci-aprs :

a
f b
g
e c
d


Les chiffres tant forms de la faon suivante :


Le code 7 segments correspondant est donn par la table :

N
code BCD
ABCD
code 7 segments
abcdefg
0 0000 1111110
1 0001 0110000
2 0010 1101101
3 0011 1111001
4 0100 0110011
5 0101 1011011
6 0110 1011111
7 0111 1110000
8 1000 1111111
9 1001 1111011

La synthse d'un dcodeur 7 segments s'effectue comme pour un transcodeur classique. Le code C
2
de reprsentation
du nombre N ayant 7 variables, il y a 7 fonctions calculer (a,b,c,d,e,f,g) en fonction des variables du code C
1
.
a N
cod
en
BCD
A
C
B
D
b
c
d
e
f
g
Transcodeur BCD - 7 segments

Electronique Numrique 2. Logique combinatoire 2

2. 7
1.4. Multiplexeur (ou slecteur ou aiguilleur)

1.4.1. Dfinition

Un multiplexeur est un circuit ralisant un aiguillage (recopie) de l'une des entres de donnes (par la commande des
entres d'adresse) vers une sortie unique. Il y a slection d'une donne parmi 2
n
( n entres dadresses).


2
n
entres de donnes
D D D
7 1 0
....
A
2
A
1
A
0
n entres d'adresse
S
1 sortie S
MUX 2 1
n



Exemples : Multiplexeur 2 1 : Multiplexeur 4 1 :


D
D
S
0
1
A
0
MUX 2 1

D
D
S
0
1
A
0
A
1
D
2
D
3
MUX 4 1


Table de vrit : Table de vrit :


A
0
S
0
1 D
1
D
0

A
0
S
0
1 D
1
D
0
A
1
0
0
1
1
0
1
D
2
D
3


Equation de S : Equation de S :


S D A
S D A
= =
= =
0 0
1 0
0
1
si
si

S D A A
S D A A
S D A A
S D A A
= =
= =
= =
= =
0 1 0
1 1 0
2 1 0
3 1 0
00
01
10
11
si
si
si
si


soit : S D A D A = +
0 0 1 0
soit : S D A A D A A D A A D A A = + + +
0 1 0 1 1 0 2 1 0 3 1 0


De faon gnrale, la sortie dun multiplexeur n entres dadresses sexprime en fonction des entres de donnes D
i

et des mintermes m
i
sur les entres dadresses :

S D m
i i
i
n
=
=

1
2

Electronique Numrique 2. Logique combinatoire 2

2. 8
1.4.2. Ralisation

Exemple : Multiplexeur 4 1 :

Ralisation Reprsentation symbolique


A
0
A
1
S
D
0
D
1
D
2
D
3

A
0
A
1
S
ET
D
0
D
1
D
2
D
3
OU

1.4.3. Applications

1.4.3.1. Slection d'un bit parmi plusieurs bits & slection d'un mot binaire parmi plusieurs mots binaires

Exemple: Slection d'un mot de 3 bits parmi les 4 mots de 3 bits :

il faut autant de multiplexeurs qu'il y a de bits dans le mot (ici 3 multiplexeurs) :


Source
d'infos
1
A B C D
MUX
Destination
Source
d'infos
2
Source
d'infos
3
Source
d'infos
4
issus de 4 lecteurs de bande par exemple 4 mots de donnes A,B,C,D
S
Principe Ralisation
MUX
MUX
A B C D S
S
S
S
2
1
0
Slection d'adresses
MUX
S = A ou B ou C ou D
en fonction de la slection sur les fils d'adresses
a
2
a
1
a
0
b
2
b
1
b
0
c
2
c
1
c
0
d
2
d
1
d
0
S
2
S
1
S
0
e
1
e
0
A S
a s
a s
a s
e e =
=
=
=
=
0 0
1 1
2 2
0 1
00 B S
b s
b s
b s
e e =
=
=
=
=
0 0
1 1
2 2
0 1
01
C S
c s
c s
c s
e e =
=
=
=
=
0 0
1 1
2 2
0 1
10 D S
d s
d s
d s
e e =
=
=
=
=
0 0
1 1
2 2
0 1
11


1.4.3.2. Transmission de plusieurs conversations sur une seule ligne tlphonique (numrique)

s
m
( ) t
1
t
s
m
1
s
m
1
*
s
m
( ) t
2
t
s
m
2
s
m
2
*
MUX
Multiplexeur temporel Echantillonneurs
s
*
0 T
e
t
s
*
DEMUX
Dmultiplexeur temporel
s
m
1
*
s
m
1
s
m
2
s
m
2
*
Entres d'adresses
CAN CNA
Filtre
Passe-bas
Bloqueur
+
Filtre
Passe-bas
Bloqueur
+

Electronique Numrique 2. Logique combinatoire 2

2. 9
1.4.3.3. Gnration (matrialisation) d'une fonction logique

La sortie dun multiplexeur sexprimant comme une somme de mintermes (forme canonique), et comme toute fonction
logique peut se mettre sous forme canonique, elle peut donc sexprimer comme la sortie dun multiplexeur.

Exemple : fonction f de 2 variables a et b exprime sous forme canonique (somme de mintermes) :
( ) ( ) ( ) ( ) ( ) f a b a b f a b f a b f a b f , , , , , = + + + 0 0 0 1 1 0 11
avec : ( ) f i j , = valeur particulire fonction logique f lorsque a i b j = = et
utilisation d'un multiplexeur 4 entres de donnes donc 2 entres d'adresses :

Exemple 1 : oprateur ET :
3 2 1 0
1 0 0 0 D ab D b a D b a D b a ab b a b a b a ab + + + = + + + =


a b s = ab
0
0
1
0
0
1
1 1
= 0
= 0
D
0
D
1
D
D
2
3
= 0
= 1
f (0, 0)
f (0, 1)
f (1, 0)
f (1, 1)
f ( a, b )
a b
MUX
4 1
D
0
D
1
D
D
2
3
a b
0
0
0
1
s = a . b
MUX
4 1
D
0
D
1
D
D
2
3

Exemple 2 : oprateur OU exclusif :
3 2 1 0
0 1 1 0 D ab D b a D b a D b a ab b a b a b a b a b a b a + + + = + + + = + =


a b
0
0
1
0
0
1
1 1
= 0
= 1
D
0
D
1
D
D
2
3
= 1
= 0
f (0, 0)
f (0, 1)
f (1, 0)
f (1, 1)
f ( a, b )
a b
MUX
4 1
D
0
D
1
D
D
2
3
a b
0
1
1
0
MUX
4 1
b a s =
D
0
D
1
D
D
2
3
b a s =

Le multiplexeur est un oprateur programmable.
Pour matrialiser par un multiplexeur une fonction de n variables, il faut un multiplexeur 2
n
entres de donnes
donc n entres d'adresses : MUX 2
n
1.

1.4.3.4. Conversion parallle-srie (registre dcalage)

Soit un mot binaire D d d d d =
3 2 1 0
disponible en mode parallle, c'est dire sur quatre fils, chaque fil tant affect
un lment binaire (bit) du mot.

Pour transmettre les lments binaires en srie, c'est dire les uns la suite des autres sur un seul fil, il faut d'abord (en
commenant par exemple par le LSB (Less Significant Bit), bit de plus faible poids) transmettre d
0
, puis d
1
, puis d
2
et
enfin d
3
. Ceci revient slectionner (ou aiguiller) l'un des lments binaires de D sur le fil unique de sortie srie. Le
multiplexeur est capable d'effectuer cette tche si les combinaisons correspondantes sont places successivement sur les
commandes de slection.

Comme le montre le le chronogrammme ci-dessous :
Dans le premier temps il faut que A A
1 0
0 = = pour que S D d = =
0 0
.
Ensuite A
0
passe 1 ce qui impose S D d = =
1 1
.
Puis A A
1 0
1 0 = = et d'o S D d = =
2 2
.
Et enfin A A
1 0
= = 1 alors S D d = =
3 3
.


D
0
D
1
D
2
D
3
S
d
0
d
1
d
2
d
3
A
1
A
0
Parallle
Srie

t
A
0
0
1
t
A
1
0
1
S
t
d
0
d
1
d
2
d
3

Le mcanisme de changement simultan dtat pour A
0
et
1
A doit tre fait laide dune synchronisation (horloge).
Electronique Numrique 2. Logique combinatoire 2

2. 10
1.5. Dmultiplexeur

1.5.1. Dfinition

Un dmultiplexeur ralise lopration duale du multiplexeur : il aiguille 1 donne sur 1 parmi 2
n
sorties
( n entres dadresses).


1 entre de donne
S S S
7 1 0
....
A
2
A
1
A
0
n entres d'adresse
d
2
n
sorties
DEMUX
2 1
n



Les sorties non aiguilles sont non actives.
Par convention on les suppose au niveau 0 (en fait, cela peut tre 0 ou 1 ou z (haute impdance) suivant la technologie
utilise par le constructeur).

Exemple : Dmultiplexeur 1 8 : Table de vrit :


S S S
7 1 0
....
A
2
A
1
A
0
d
DEMUX
8 1

000
001
...
111
A A A
2 1 0 S
i
S d
0
=
S d
1
=
S d
7
=
...


Equation de S
i
: (exemple : S
3
) S A A A d
3
2
1 0
=

De faon gnrale, la sortie S
i
dun dmultiplexeur n entres dadresses sexprime en fonction de lentre de donne
d et dun minterme m
i
sur les entres dadresses :

S m d
i i
=

1.5.2. Ralisation

Exemple : Dmultiplexeur 1 8 :

Ralisation Reprsentation symbolique


A
0
A
1
d
S
7
S S
1 0
A
2
...

A
0
A
1
ET
d
A
2
...
S
7
S
1
S
0

Electronique Numrique 2. Logique combinatoire 2

2. 11
1.5.3. Applications

1.5.3.1. Conversion srie/parallle (registre dcalage)


MUX
1 4
a
1 0
a
d
d
d
2
1
0
d
3
d
d
d
2
1
0
d
3
DEMUX Mmoire
Parallle Srie Parallle a
1 0
a
1 4


1.5.3.2. Affichage multiplex

Soit 4 chiffres afficher, on peut afficher les chiffres l'un aprs l'autre trs vite pour donner l'impression de simultanit
l'oeil.



1.6. Circuits intgrs arithmtiques

1.6.1. Additionneur

C'est un circuit ralisant l'addition de deux nombres binaires. La table d'addition de deux nombres un lment binaire
est la suivante :


b
a 0 1
1 0 0
1 1 10
r


Le rsultat de l'opration comporte deux parties :

- la somme : - et la retenue gnre r :


b
a 0 1
1 0 0
1 1 0
= a b

b
a 0 1
0 0 0
1 1 0
=
a b r


Le circuit lmentaire ralisant cette opration est le demi-additionneur :


a
b
= 1
&
r


La structure de l'additionneur de deux mots est alors rptitive. Une cellule lmentaire peut donc tre utilise pour
chaque poids. Elle est appele additionneur complet. L'addition globale est ralise par la mise en cascade des cellules
au sens des retenues.
Electronique Numrique 2. Logique combinatoire 2

2. 12
L'additionneur complet est dfini par la table de vrit ci-aprs :
( r
i
: retenue propage de ltage prcdent du mot; r
i +1
: retenue gnre)


a
i
b
i
r
i
r
i +1 i
0 0 0 0 0
0 0 1 0 1
0 0 1 0 1
0 1 1 0 1
1 0 0 0 1
1 0 1 0 1
1 0 1 0 1
1 1 1 1 1
a
i
b
i
r
i
i
r
i + 1
ADD
Somme ( ) = r
i +1 i
, a
i
+ b
i
+ r
i
plus arithmtique



a
i
b
i
r
i
1
00 01 11 10
0
1 1 1
1
i
a
i
b
i
r
i
1
00 01 11 10
0
1 1 1 1
r
i +1
0
0 0
0
0
0
0 0


=
i i i i
a b r ( ) r a b r a b
i i i i i i +
= +
1

(diagonales de 1 significatives de fonctions OUX)


Ce qui donne le schma de ralisation :


r
i
a
i
b
i
= 1
&
= 1
&
r
i +1
i
1


L'addition de deux mots de n bits ncessite n additionneurs complets, la retenue applique sur les plus faibles poids est
nulle et chaque retenue calcule est applique au chiffre de poids immdiatement suprieur.

A D D A D D
a
n - 1
b
n - 1
a
n - 2
b
n - 2
r
n - 1
r
n - 2
r
n
n n - 1 n - 2
A D D A D D
a
1
b
1
a
0
b
0
r
1
r
0
r
2
1 0
r
n - 1
= 0 a
n - 1
................
r
0 = 0
a
0
b
0
................ b
n - 1
n n - 1
................
0
+
(+ arithmtique)


Cette solution est intressante d'un point de vue du matriel parce que rptitive. Par contre, comme le rsultat d'une
addition ne peut pas tre obtenu instantanment, le temps maximum mis pour obtenir le rsultat est directement
proportionnel au nombre d'additionneurs. En effet, aprs le premier temps de calcul la retenue r
1
est applique au
second additionneur. Ce n'est qu'aprs le second temps de calcul que la retenue r
2
est dlivre et ainsi de suite, jusqu'au
dernier additionneur. Pour cette raison, l'additionneur ainsi ralise porte le nom d' additionneur propagation de la
retenue ou additionneur retenue srie .
Electronique Numrique 2. Logique combinatoire 2

2. 13
Pour liminer cet inconvnient, la seconde technique consiste calculer toutes les retenues en parallle, directement
partir des donnes sans mme calculer les sommes partielles. Le circuit ainsi ralis est alors appel additionneur
retenue anticipe .

En reprenant le tableau de Karnaugh relatif au calcul de la retenue il vient : ( ) r a b r a b
i i i i i i +
= + +
1



a
i
b
i
r
i
1
00 01 11 10
0
1
r
i +1
1 1 1
0 0 0
0


Afin d'viter des temps de calcul cumulatifs, il ne faut pas utiliser la relation en tant que relation de rcurrence, c'est
dire qu'il ne faut pas utiliser un rsultat de calcul pour le calcul suivant. Il faut systmatiquement recalculer chaque
terme, ce qui donne, en posant S a b p a b
i i i i i i
= + = et : r p r S
1 0 0 0
= +


p
0
S
0
r
0
&
r
1

1

2
1


De mme : ( ) r p r S p p r S S p p S r S S
2 1 1 1 1 0 0 0 1 1 0 1 0 0 1
= + = + + = + +


p
1
S
0
r
0
&
r
2

1

2
&
p
0
S
1
1


Et ainsi de suite : ( ) r p r S p p p S r S S S p p S r S S S
3 2 2 2 2 1 0 1 0 0 1 2 2 1 2 0 0 1 2
= + = + + + = + +
et : r p r S p p S p S S p S S S r S S S S
4 3 3 3 3 2 3 1 2 3 0 1 2 3 0 0 1 2 3
= + = + + + +

On constate que les temps de calcul des retenues sont tous gaux. Ils correspondent au temps de transit de l'information
dans une porte ET ( )
1
et une porte OU ( )
2
en cascade (le nombre d'entre d'une porte n'affectant pas son temps de
transit).

La structure d'un additionneur 4 bits utilisant la technique de calcul anticip des retenues est la suivante :

Calcul des P
i
et S
i
Calcul des retenues
Calcul des sommes
a
3
b
3
a
2
b
2
a
1
b
1
a
0
b
0
r
0
P
3
S
3
P
2
S
2
P
1
S
1
P
0
S
0
r
4
a
3
b
3
a
2
b
2
a
1
b
1
a
0
b
0
r
0
r
1
r
2
r
3
r
4
=
4 3 2 1 0

Format des mots
(en bits)
Temps de calcul en ns (logique TTL srie N)
Propagation
de la retenue
Retenue
anticipe
avec additionneur 4 bits intgr 4 24 24
8 36 36
12 48 36
16 60 36
64 192 60
avec utilisation d'un gnrateur de retenue
avec 2 gnrateurs de retenue en cascade
}
Comparaison des retenues propage et anticipe


Electronique Numrique 2. Logique combinatoire 2

2. 14
1.6.2. Soustraction

Pour la soustraction, on se ramne une addition. Le nombre ngatif est cod en code complment 2 :
B B + 1
1001 0110 + 1 = 0111 (+ arithmtique et non logique).

) 1 ( ) (
2
+ + = + = + = B A B C A B A B A

1.6.3. Comparateur

Un comparateur est un dispositif capable de dtecter l'galit de deux nombres et ventuellement d'indiquer le nombre
le plus grand ou le plus petit.

Principe : Pour effectuer la comparaison de deux nombres A et B, deux techniques sont couramment utilises :

- la soustraction des deux nombres. Si le rsultat de l'opration A - B est positif, cela signifie que A est suprieur
B. Si le rsultat est nul, les deux nombres sont gaux.

- une comparaison bit bit. C'est cette mthode qui est utilise dans la plupart des circuits intgrs commercialiss.
La comparaison s'effectue poids poids en commenant par le chiffre le plus significatif.

Les nombres A et B ayant le mme format, le nombre A est forcment suprieur B si son lment binaire le plus
significatif (MBS) est suprieur au MSB de B. Si ces deux bits sont gaux, la supriorit (ou l'infriorit) ne peut tre
dtermine que par l'examen des bits de poids immdiatement infrieur et ainsi de suite. L'examen des poids successifs
s'arrte ds que l'un des lments binaires est suprieur ou infrieur l'autre. Les deux nombres A et B sont gaux si,
aprs avoir examin tous les lments binaires, il n'a pas t dtect de supriorit ou d'infriorit.

Comparateur donnant l'galit des deux nombres

C'est le comparateur le plus simple. Deux nombres sont gaux si tous les chiffres sont gaux deux deux. Pour dtecter
l'galit de deux lments binaires, un oprateur OU exclusif complment est indispensable. Un oprateur ET indique
la simultanit de toutes les ingalits partielles.

Soient deux nombres A et B de quatre lments binaires chacun, A a a a a =
3 2 1 0
et B b b bb =
3 2 1 0
:

A = B si
( ) ( ) ( ) ( ) a b a b a b a b
3 3 2 2 1 1 0 0
= = = = ET ET ET

Ce qui donne le schma :


= 1
= 1
= 1
= 1
&
a
3
b
3
a
2
b
2
a
1
b
1
a
0
b
0
A = B


Electronique Numrique 2. Logique combinatoire 2

2. 15
Comparateur complet

Par analogie avec l'additionneur, la conception d'un comparateur complet pour des nombres de quatre lments binaires
peut se faire de deux faons diffrentes :

- Premire solution : En cascade, c'est dire avec propagation des galits partielles. Les poids de A et de B sont
compars en commenant par le plus lev. La comparaison sur les poids faibles ne peut tre faite que si tous les bits de
poids plus levs sont gaux deux deux.

La cellule lmentaire de comparaison comporte trois entres, les lments binaires a et b de mme poids de chaque
nombre et une entre E pour autoriser la comparaison, ce qui donne la table de vrit ci-aprs :


E a
i
b
i
a
i
= b
i
E
i
a
i
> b
i
S
i
a
i
< b
i
I
i
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
Pas de comparaison
S
i
E
i
I
i
= 1
= 1
= 1
si
si
si
a
i
> b
i
a
i
= b
i
a
i
< b
i



( )
( )
( ) ( )
S E a b
I E a b
E E a b E a b E a b E S I
i i
i
i
i
i
i i i i i
i i
i i
=
=
= = + = +


D'o le schma d'une cellule de comparaison, note C
i
:


&
&
&
a
i
b
i
E
S
i
E
i
I
i
1
C
i

Electronique Numrique 2. Logique combinatoire 2

2. 16
L'entre d'autorisation E est en fait la dtection d'galit des lments binaires de poids suprieurs; le schma de
l'ensemble est alors le suivant :


a
3
b
3
a
2
b
2
a
1
b
1
E
E
A = a
3
a
2
a
1
B = b
3
b
2
b
1
S
3
E
3
I
3
S
2
E
2
I
2
S
1
E
1
I
1
A > B
A < B
A = B
1
1
C
1
C
2
C
3


Remarque : Comme pour l'additionneur propagation de la retenue, le rsultat de la comparaison apparat aprs un
temps directement li au nombres de cellules traverser cause de la mise en cascade (calcul srie). Pour palier cet
inconvnient, c'est une structure parallle qu'il faut adopter.

- Deuxime solution : Comparaison parallle. Tous les lments binaires de mme poids sont systmatiquement et
simultanment compars. Le blocage s'effectue alors sur les rsultats de chaque comparaison.

La cellule lmentaire C
i
devient :


&
&
&
&
&
A < B
A > B
a
i
b
i
Blocage
des poids > i
Blocage
des poids > i
a
i
= b
i
Blocage des poids < i
a
i
< b
i
b
i
> a
i
1
1
1


Le blocage des sorties b a
i i
> (ou b a
i i
< ) se fait par une porte ET recevant toutes les sorties dtectant les galits
b a
j j
= des poids suprieurs au rang ( ) i j i > . Le nombre d'entres de cette porte augmente donc au fur et
mesure que l'on s'loigne du MSB.
L'information A = B est fournie par une porte ET vrifiant la simultanit des galits partielles.
Electronique Numrique 2. Logique combinatoire 2

2. 17
Le schma du circuit 7485 ci-aprs montre l'ensemble d'un comparateur 4 bits cascadable.

A > B
A = B
A < B
A
3
B
3
A
2
B
2
A < B
A = B
A > B
A
1
B
1
A
0
B
0
0
3
} A
<
=
>
0
3
} B
A<B
A>B
A=B
comp
Symbole


Les entres a b a b a b < = > , et , dites entres de mise en cascade, sont reprsentatives des rsultats des
comparaisons sur les lments binaires d'indice infrieur. Ainsi, pour effectuer la comparaison de deux nombres de huit
lments binaires, on adopte le montage ci-aprs :


0
3
} A
<
=
>
0
3
} B
A<B
A>B
A=B
comp 0
3
} A
<
=
>
0
3
} B
A<B
A>B
A=B
comp
N
1
0
0
1
N
2
N
1
N
2
<
N
1
N
2
=
N
1
N
2
>
MSB
MSB

Electronique Numrique 2. Logique combinatoire 2

2. 18
1.6.4. Gnrateur de parit

On appelle parit d'un mot binaire N le nombre de 1 contenus dans ce mot; le mot a une parit paire si ce nombre de 1
est pair. Afin de rendre les transmissions numriques plus robustes au bruit, on adjoint un bit tous les mots transmis.
Ce bit, dit de parit, est choisi de faon ce que le mot complet form du mot et du bit de parit ait une parit paire
(dans le cas de la parit paire). Le principe utilis pour engendrer ce bit de parit repose sur la proprit du OU exclusif
: a b c m L vaut 1 si un nombre impair de variables est au niveau 1 :


N
Bit de parit
gnr


1.6.5. Unit Arithmtique et Logique (UAL / ALU)

Ce circuit est utilis dans quasiment tous les processeurs de calcul. C'est un oprateur capable d'effectuer, comme son
nom l'indique, un ensemble de traitements arithmtiques (addition, soustraction, multiplication (par 2 par dcalage d1
cran vers la gauche des bits du mot), division (par 2 par dcalage d1 cran vers la droite des bits du mot) etc ...) ou
logiques (ET, OU ...) sur des mots binaires de longueur donne.
Le choix de l'opration est dtermin par des bits de commande. C'est donc un oprateur programmable.
Il n'est pas intressant de prsenter en dtail l'architecture interne de l'ALU, qui rsulte d'une grande partie des circuits
dj prsents. Par contre, il est important de comprendre l'action de l'unit arithmtique et logique sur les mots binaires
(chemin des donnes ...).

Exemple d'unit logique et arithmtique intgre 74181


S
C
0
4
A
Oprandes
B
4
4
P
G
Rsultat F
C
4
Slection Opration
Reprsentation fonctionnelle
0
4
M
0
31
CI
ALU
(0 ... 15) CP
(0 ... 15) CG
6 (P = Q)
(0 ... 15) CO
P
Q
P
Q
P
Q
P
Q
(1)
(2)
(8)
(4)
S 0
1 S
S 2
3 S
M
C
n
P
G
A = B
C
n +4
F
F
0
1
F
2
F
3
A
B
0
0
B 1
A 1
A 2
B 2
A 3
B 3
Symbole logique
5

Electronique Numrique 2. Logique combinatoire 2

2. 19
Ce circuit intgr utilise des mots de quatre lments binaires. Cinq fils de slection permettent un choix parmi 32
fonctions groupes en 16 oprations arithmtiques et 16 oprations logiques. Indpendamment de la fonction ralise,
ce circuit dispose d'une sortie dtectant l'galit des donnes en entre.
Lors des oprations arithmtiques sur des nombres de plus de quatre bits, il existe la possibilit de mise en cascade des
botiers avec la technique de la propagation de la retenue (C
0
retenue entrante, C
4
retenue sortante).

A B
C
0
Poids FORTS
A B
C
0
C
4
Rsultat
Poids FAIBLES

On peut galement utiliser la technique de la retenue anticipe en utilisant un circuit supplmentaire spcialis dans le
calcul des retenues (utilisation de P et G) :


ALU
C
0
P G
ALU
C
0
P G
ALU
C
0
P G
ALU
C
0
P G
C
0
P
0
G
0
P
1
G
1
C
4
C
8
P
2
G
2
C
12
P
3
G
3
C
16
Gnrateur de retenue anticipe


2. Les rseaux logiques programmables
2.1. Structure
Les rseaux logiques programmables sont des circuits qui se programment partir dun logiciel qui, aprs saisie de
lquation logique, engendre un fichier JEDEC (.JED). Celui-ci permet la programmation du composant par une carte
spcialise.

Une approche comme celle que propose le langage VHDL est similaire mais plus puissante car la programmation se fait
laide dun langage puissant par sa modularit. Lentre peut tre le source VHDL ou un fichier graphique des circuits
logiques ou encore une machine dtats. Un compilateur VHDL accepte lune ou lautre de ces entres et permet mme la
gnration du code source VHDL partir dune entre base de portes logiques ou de machines dtats.

Toute fonction logique de n variables peut se mettre sous la forme dune somme logique de produits logiques (somme
de mintermes) ou sous la forme dun produit logique de sommes logiques (produit de maxtermes).
utilisation de 2 matrices : - matrice OU - matrice ET
Matrice ET Matrice ET
Ralisation Reprsentation symbolique

B
+ V
A
R
C
S = AB
fusible intact
fusible dtruit

B
ET
A
C
X fusible intact
X

X
S = AB

Matrice OU Matrice OU
Ralisation Reprsentation symbolique

B
A
R
C
S = A+C
fusible intact
fusible dtruit

B
OU
A
C
X fusible intact
X

X
S = A+C
Electronique Numrique 2. Logique combinatoire 2

2. 20
On adjoint parfois un circuit de sortie la matrice OU :

a) Circuit dinversion (command par lentre C)


C =
XOR
0
Pas d'inversion : S S
i i
= 0 S S i
i
= 1
Si
S
i
S
i
C =
XOR
1
Inversion :
S
i


b) Circuit 3 tats (command par lentre E de mise en haute impdance)


S
i
Matrice
OU
E


2.2. Mmoire Morte (ROM) (Read only Memory) (elle contient un dcodeur)


ROM
CS
OE
a
m -1
a
0
d
n -1
d
0
Sorties de donnes
Entres d'adresses
CS : Chip Select (slection de boitier)
OE : Output Enable (contrle l'activit, la disponibilit des sorties)
( OE =0 : sorties disponibles)
( CS = 0 : boitier mmoire slection) actif l'tat bas
actif l'tat bas



Pour chaque adresse apparat une donne particulire dfinie par son adresse.

Ex. : m = 4, n = 4, avec le contenu de mmoire :

Adresse Donne
a a a a
3 2 1 0
d d d d
3 2 1 0

0 0 0 0 0 0 1 1
0 0 0 1 0 1 1 0
... ...
1 1 1 1 1 1 1 0


X X
X
X X
X
X X
X
X X
X
...
X
X X
X
X
X
X
d
3
d
2
d
1
d
0
OU
a
3
a
2
a
1
a
0
ET
X fusible intact

Les ROMs sont crites en usine selon l'application voulue et sont figes (pas deffacement ni rcriture des donnes).
Dans une ROM la matrice ET est fixe et la matrice OU est programmable.
Electronique Numrique 2. Logique combinatoire 2

2. 21
Capacit d'une ROM : couramment au minimum de l'ordre de 16 KOctets = 2
14
Octets
m = 14 (14 entres d'adresse)
n = 8 (8 sorties de donnes)

Rapidit d'une ROM : de l'ordre de 100 ns (dpendant de la technologie)

2.3. PROM - EPROM (Programmable ROM - Erasable PROM)

PROM : ROM programmer par l'utilisateur
EPROM : PROM effaable (aux UV (UltraViolets)) et reprogrammable
EEPROM : EPROM effaable non pas aux UV mais lectriquement.

Dans une PROM (ou une EPROM, ou une EEPROM) la matrice ET est fixe et la matrice OU est programmable.


...
X
X
X
X
X
X
d
3
d
2
d
1
d
0
OU
ET fixe
a
3
a
2
a
1
a
0
programmable
X
X
X
X
X
X
fusible remplac par une liaison
X fusible intact


2.4. PAL / GAL (Programmable / Gate Array Logic)

Les rseaux PALs et GALs ont une structure oppose celle d'une PROM.
La matrice ET est programmable. La matrice OU est fixe.

Utilisation des circuits PALs
Un circuit PAL peut lui seul assurer toutes les fonctions combinatoires conventionnelles.

on peut l'aide d'un rseau PAL raliser plusieurs portes lmentaires et ainsi remplacer plusieurs circuits intgrs.

Exemples dapplication :
a) Ralisation des portes lmentaires l'aide d'un rseau PAL

Soit le rseau PAL suivant, programm pour figurer les portes combinatoires reprsentes :


1
2
3
4
5
6
7
8
9
10 11
12
13
14
15
16
17
18
19
20
GND
PAL 12H6
VCC
A
B
C
D
E
F
G
H M
N
P
Q
I
O
R
L
K
J

L'tat interne de la matrice ET est alors la suivante :
Electronique Numrique 2. Logique combinatoire 2

2. 22

X
X
X
X
X
X
C
1
D
F
G
M
N
P
Q
I
2
3
4
5
6
7
8
9
8
9
10
11
16
17
24
25
32
33
40
41
48
49
50
51
X
X X
X
X
X X
X
X X
X
X
X
X
A
B
19
E
18
17
H
16
O
15
R
14
L
13
K
12
J
11
0 1 2 3 4 5 6 7 8 9 12 13 16 17 20 21 24 25 26 27 28 30 29 31
0 1 2 3 4 5 6 7 8 9 12 13 16 17 20 21 24 25 26 27 28 30 29 31



X X
Fusible intact Tous fusibles intacts Fusible dtruit Lgende
Electronique Numrique 2. Logique combinatoire 2

2. 23
b) Ralisation d'un gnrateur de parit


Y
A
B
C
D
A
B
C
D
A
B
C
D
A
B
C
D
A
B
C
D
A
B
C
D
A
B
C
D
A
B
C
D


Y A B C D A B C D A BC D A BC D ABC D ABC D AB C D AB CD = + + + + + + +

c) Ralisation d'un multiplexeur 4 vers 1


Z
S
1
S
0
D
0
S
1
S
0
D
1
S
1
D
2
S
1
S
0
D
3
S
0


Z S S D S S D S S D S S D = + + +
1 0 0 1 0 1 1 0 2 1 0 3


Ltat interne des fusibles est donn ci-aprs :
Electronique Numrique 2. Logique combinatoire 2

2. 24

X X
X X
X X
XX
X X
X X
XX
X X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X X
X
X
X
A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
B
C
D
0
D
1
D
2
D
3
S
1
S
0
D
NC
NC
NC
NC
NC
NC
Z
Y
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1617 18 19 20 2122 23 24 25 26 27 28 29 30 31
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63



X X
NC
Fusible intact Tous fusibles intacts Fusible dtruit Non Connect
Lgende
Electronique Numrique 2. Logique combinatoire 2

2. 25
2.5. PLA (Programmable Logic Array) ou PLD (Programmable Logic Device) ou CPLD (Complex PLD)
ou EPLD (Erasable PLD)

Dans un rseau PLA, les matrices ET et OU sont toutes les deux programmables.

2.6. FPGA (Field Programmable Gate Array)

Composs d'une matrice ET programmable, les rseaux FPGA n'ont pas de matrice OU. Chaque produit est reli
directement une sortie. La densit peut atteindre le million de portes logiques par circuit FPGA.

Utilisation des FPGAs

Le FPGA est un oprateur programmable spcialis dans le dcodage.

Exemple : Dcodage des adresses fournies par un microprocesseur (microprocesseur MOTOROLA 6809)


Dcodage
erreur
Initialisation
Horloge
RESET
6809
EXTAL
Bus de donnes
IRQ
R / W
E
Dcodage
E
F
ROM
(E000 FFFF)
8 KOctets
CS
F
0
1
CS RAM
(0000 03FF)
1 KOctet
R / W
R / W
F 2
ACIA
(1008 1009)
2 Octets A 0
IRQ
A 0
F 3
A 1
A 0
PIA 2
(1004 1007)
4 Octets
IRQ
R / W
R / W
IRQ
A 1
A 0
F 4
PIA 1
(1000 1003)
4 Octets
E
E
E
CS
CS
A 1
A 0
A 1
A 0
CS
Bus d'adresses

Electronique Numrique 2. Logique combinatoire 2

2. 26
Table du FPGA


A A A A A A A A A A A A A A A A
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0



Sorties Niveau actif Variables d'entre
I I I I I I I I I I I I I I I I
A B C D E F 0 1 2 3 4 5 6 7 8 9

F
0
0
1 1 1
dcodage ROM
F
1
0 0 0 0 0 0 0 dcodage RAM
F
2
0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 dcodage ACIA
F
3
0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 dcodage PIA 1
F
4
0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 dcodage PIA 2
F
5



F
6


Non utilis
F
7



F
8




Lgende : 0 : Niveau bas - : Etat initial des fusibles
1 : Niveau haut : Variables n'tant pas utilises.

2.7. RAM (Random Access Memory)

Par opposition aux ROMs, les mmoires vives (appeles RAM) peuvent tre lues et crites. Contrairement aux
PROMs, leur criture n'est pas dfinitive dans le sens o le contenu des RAMs est perdu l'extinction de l'alimentation
lectrique.
Le botier des RAMs possde, en plus de celui des ROMs, une entre R W (Read/Write) :
R W = 1 lecture
R W = 0 criture

On distingue : - les RAMs statiques, constitues de Bascules lmentaires (Bascules D (cf. logique squentielle)),
- les RAMs dynamiques, constitues de condensateurs (intgrables plus grande chelle) mais quil
est ncessaire de rafrachir priodiquement pour en garder le contenu.
- les mmoires flash rapides et ne ncessitant pas dalimentation pour sauvegarder leur contenu.
2.8. ASIC (Application Specific Integrated Circuit) (Composant spcifique, ddi)

Un composant ASIC est dvelopp spcifiquement pour une application analogique, numrique ou mixte, et destin
une exploitation en nombre assez important. Quelques millions de portes peuvent tre intgres dans un ASIC. Des
formats de bibliothques dASICs sont dvelopps (ALFAdvanced Library Format, OVI Open Verilog International).
Leur rendement conomique vaut la condition dune production grande chelle.

2.9. Conception de PLD, de FPGA

Des langages (compilateurs) de conception ( spcification), de simulation et de programmation de ces composants ont
t dvelopps (langage VHDL, Verilog, C ...).

2.10. Application

Le synoptique dune application montique dune carte puce (avec ou sans contact) est prsente titre dexemple.
Electronique Numrique 2. Logique combinatoire 2

2. 27

RAM
Mmoire de travail
(ROM)
Systme d'Exploitation
mcanisme de scurit
(EEPROM - RAM)
Informations relatives au
porteur et l'application
Donnes Adresses
Interface Entre/Sortie
Unit Centrale
Carte puce
Borne de paiement
(sans contact)
Borne de chargement des droits
Terminal de paiement



__________

Electronique Numrique TD 2. Logique combinatoire 2

TD 2. 1
TD 2. LOGIQUE COMBINATOIRE 2

Transcodage

1. Transcodeur BCD - 7 segments
On dsire afficher un chiffre de 0 9 cod en BCD (Dcimal Cod Binaire) sur 4 bits ABCD laide dun
afficheur 7 segments (A est le bit de plus fort poids MSB). Laffichage se fait de la faon suivante :


0 1 2 3 4 5 6 7 8 9
a
f b
g
e c
d
ABCD = 0001 0010 0000 0011 0100 0101 0110 0111 1000 1001

a) Ecrire la table de transcodage.
b) Donner la fonction logique associe au segment a.
c) Donner la structure de ralisation du transcodeur.


Multiplexage

2. Multiplexeur pour fonction logique
Un multiplexeur peut matrialiser une fonction logique quelconque: Ex: ( ) b a b a f + = ,
2
. Schma de ralisation ?


Transmission

3. Construction d'un code dtecteur d'erreur
Les mots-code utiliss dans les transmissions numriques ont la structure gnrale suivante :

m bits d'information k bits de contrle

Le systme de dtection d'erreur le plus simple consiste n'utiliser qu'un seul lment binaire de contrle (k = 1).
Cet lment est dtermin de telle sorte que le nombre de 1 parmi les (m+k) bits d'information est pair (cas du
contrle de parit, dit encore de parit paire), ou impair (cas du contrle de parit impaire dit encore de parit
impaire).

a) Emission : Dterminer un systme capable de calculer cet lment de contrle dans le cas m = 3 et k = 1 avec un
contrle de parit impaire.

b) Rception : Dterminer un systme capable de dtecter une erreur (1 seul bit modifi au maximum) de
transmission dans ce mme cas de figure : (on suppose que les bits de contrle ne sont pas modifis)

dtecteur
d'erreur
T
2
m
1
m
0
m
1
k
perturbation
m
2 1
m
0
m
1
k
Emission Rception

Electronique Numrique TD 2. Logique combinatoire 2

TD 2. 2
4. Systme de transmission numrique avec correction d'une erreur
Dans un systme de transmission, on veut une certaine scurit, c'est dire tre capable de dtecter et de corriger
une erreur. Pour cela on utilise un codage particulier appel code de Hamming .
Pour transmettre les quatre lments binaires correspondant un chiffre du systme dcimal, on ajoute trois
lments binaires pour assurer des contrles de parit. Soient k
1
, k
2
, k
3
les trois bits de contrle et m
1
, m
2
,
m
3
et m
4
les quatre bits du message utile. La position relative des bits k
i
et m
j
est donne par le tableau :
Numro du bit 1 2 3 4 5 6 7

k
1
k
2
k
3
m
1
m
2
m
3
m
4

On effectue trois tests de parit pour la dtection de lerreur :
- le test de parit (test T
1
sur k
1
) se fait sur les bits : 1, 4, 5, 7
- le test de parit (test T
2
sur k
2
) se fait sur les bits : 2, 4, 6, 7
- le test de parit (test T
3
sur k
3
) se fait sur les bits : 3, 5, 6, 7

On rappelle que le rsultat dun test de parit est gal 0 si le nombre de 1 dans la zone considre est pair (parit
paire). La disposition est choisie de telle faon que le nombre binaire (T
3
T
2
T
1
)
2
form par les rsultats des tests T
1
,
T
2
et T
3
donne la position du bit erronn.

1. Donner le schma du dispositif metteur permettant de gnrer les bits k
1
, k
2
et k
3
.
2. Donner le schma du dispositif rcepteur permettant de gnrer les bits T
1
, T
2
et T
3
.
3. Proposer un dispositif simple ralisant la correction du bit erron (1 seul bit au maximum peut tre erron ; on
suppose que les bits de contrle ne sont pas modifis).

Emetteur
m
1
m
2
m
3
m
4
k
1
k
2
m
1
k
3
m
2
m
3
m
4
Perturbations
m'
1
m'
2
m'
4
m'
3
Rcepteur
T
1
T
2
T
3
m'
1
m'
2
m'
4
m'
3
m
1
m
2
m
3
m
4
Correcteur


Code de Hamming (pour 0 N 9)
N
k
1
k
2
k
3
m
1
m
2
m
3
m
4
0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 1
2 0 1 1 0 0 1 0
3 1 0 0 0 0 1 1
4 1 0 1 0 1 0 0
5 0 1 0 0 1 0 1
6 1 1 0 0 1 1 0
7 0 0 1 0 1 1 1
8 1 1 0 1 0 0 0
9 0 0 1 1 0 0 1
Exemple

Emetteur
m
1
m
2
m
3
m
4
k
1
k
2
m
1
k
3
m
2
m
3
m
4
Perturbations
Rcepteur
T
1
T
2
T
3
Message mis = 4 N
0
1
0
1
0
1
0
X
1 erreur
Message reu
1
0
1
0
0
0
1
0
1
0

(T
3
T
2
T
1
)
2
= (101)
2
= (5)
10

Conclusion : le bit 5 (soit m
2
) est erronn.
Electronique Numrique TD 2. Logique combinatoire 2

TD 2. 3
TD 2 ANNEXE. LOGIQUE COMBINATOIRE 2

Codage
1. Codeur BCD (dj fait en cours)
Donner le schma de ralisation du codeur en BCD ( Binary Coded Decimal) d'un chiffre N compris entre 0 et 9.
codeur 10 entres : N 0 9 et 4 sorties : A B C D (A : MSB (Most Significant Bit))


Dcodage
2. Dcodeur BCD (dj fait en cours)
Donner le schma de ralisation du dcodeur d'un mot crit en BCD sur 3 bits : e e e
2 1 0
.
dcodeur 3 entres : e e e
2 1 0
et 8 sorties : s
0
s
7
( e
0
: LSB (Less Significant Bit))

3. Dcodeur dadresses (dj fait en cours)
Soit un microprocesseur dlivrant une adresse sur 16 bits. Sa capacit d'adressage est donc : 2
16
= 65 536 mots
de la mmoire.
Il est commode de partager cette mmoire en 64 pages de 1024 mots, chaque page pouvant correspondre un
botier mmoire.
La slection du numro de page, donc du botier correspondant (Chip Select CS) est effectue par le dcodage des
6 bits de poids fort parmi les 16 bits.
Les 10 bits restant permettant la slection interne d'un mot mmoire : (de 8 bits par exemple)


n fils
.
.
.
n
ou
n
Lgende :
Adresse 16 bits
A
0
A
9
A
10
A
15
10
6
CS
CS
CS
Botier
mmoire
n 0
Botier
mmoire
n 1
Botier
mmoire
n 63
10
8
8
8
Mot mmoire 8 bits
1 0 0 1 1 0 0 1
Dcodeur
d'adresses
10
10
(Bus)

Donner la structure du dcodeur d'adresses.

Transcodage
4. Codeur de parit dcimale (Transcodeur)
Donner le schma de ralisation du codeur dont la sortie est 0 si lentre N (chiffre entre 0 et 9 cod en BCD) est
paire et 1 sinon.

5. Transcodeur BCD / partie entire (dj fait en cours)
Soit N crit en BCD sur 4 bits ABCD. On dsire obtenir en sortie du transcodeur un mot M de 3 bits XYZ
reprsentant en code BCD la partie entire de la moiti du nombre N. Donner le schma de ralisation du
transcodeur. (A et X : MSBs (Most Significant Bits))
Electronique Numrique TD 2. Logique combinatoire 2

TD 2. 4
6. Transcodeur hexadcimal - 7 segments
On dsire afficher un caractre hexadcimal de 0 F (0 9 puis A F) cod en hexadcimal sur 4 bits ABCD
laide dun afficheur 7 segments (A est le bit de plus fort poids). Laffichage se fait de la faon suivante :

0 1 2 3 4 5 6 7 8 A B C D E F 9
a
f b
g
e c
d

a) Ecrire la table de transcodage.
b) Donner la fonction logique associe au segment a.
c) Donner la structure de ralisation du transcodeur.

7. Transcodeur SVA / C2
Soit N crit en code SVA (Signe et Valeur Absolue) sur 3 bits ABC. On dsire obtenir en sortie du transcodeur un mot
M de 3 bits XYZ reprsentant N en code C2 (Complment 2). (A et X : MSBs (Most Significant Bits))
N
Code SVA
ABC
Code C2
XYZ
+3 011 011
+2 010 010
+1 001 001
+0 000 000
-0 100 000
-1 101 111
-2 110 110
-3 111 101
-4 - 100

Multiplexage
8. Multiplexeur de mot (dj fait en cours)
Donner le schma de ralisation du circuit de slection d'un mot de 3 bits parmi 4 mots de 3 bits.

9. Multiplexeur pour fonction logique
Soit la fonction logique y dfinie par sa table de Karnaugh. Utiliser un mutliplexeur pour engendrer y :


y a b
c d
0 0
0
0
1 1
1 1
0
0
0 0 0
1 1
0
00 01 10 11
00
01
10
11
s = y
MUX
4 1
s = y
MUX
16 1
Remarque : il est aussi possible d'utiliser un MUX 4 -> 1


10. Multiplexeur pour conversion parallle / srie (dj fait en cours)
Donner le chronogramme de la squence A A
1 0
envoyer sur les entres d'adresses du multiplexeur pour convertir
le mot D D D D
3 2 1 0
de parallle en srie.

Dmultiplexage
11. Dmultiplexeur pour conversion srie / parallle (dj fait en cours)
Mme question que prcdemment pour convertir la squence D D D D
0 1 2 3
de srie en parallle.
Quelle fonction est en plus ncessaire
Electronique Numrique TD 2. Logique combinatoire 2

TD 2. 5
Circuits arithmtiques
12. Addition - Comparaison - Parit (dj fait en cours)
Addition
1. Soient 2 bits a et b. Donner le circuit lmentaire ralisant la somme arithmtique entre a et b (appel demi-
additionneur) : (1/2 ADD).
2. Soit en plus de a b
i i
et , le bit r
i
figurant la retenue de la somme lmentaire prcdente entre a b
i i 1 1
et
lorsque l'on dsire faire la somme de 2 mots A a a a B b b b
n n n n
= =
1 2 0 1 2 0
L L et
a) Donner le circuit additionneur complet (ADD) entre a b r
i i i
et .
b) Donner l'additionneur propagation de retenue entre les mots A et B.
c) Donner l'additionneur retenue anticipe (plus rapide) entre les mots A et B.
Comparaison
3. Soient 2 nombres A a a a a B b b b b = =
3 2 1 0 3 2 1 0
et .
Donner le circuit dont la sortie vaut 1 si les nombres A et B sont gaux.
Parit
4. On appelle parit d'un mot binaire N le nombre de 1 contenus dans ce mot : le mot a une parit paire si ce
nombre de 1 est pair. Afin de rendre les transmissions numriques plus robustes au bruit, on adjoint N (et
chaque mot transmis) un bit dit de parit, dont la valeur est telle que le mot global form de N et de ce bit
de parit, ait une parit paire.
Donner le circuit gnrant ce bit de parit.
__________
Electronique Numrique TP 2. Logique combinatoire 2

TP 2. 1
TP 2. LOGIQUE COMBINATOIRE 2
1. Matriel ncessaire
- Oscilloscope
- Gnrateur de signaux Basses Frquences (GBF)
- Alimentation stabilise ( 2x[ 0-30 V]
&&&
_ + 1x[ 5 V]
&&&
_ )
- Multimtre
- Moniteur MS05 (plaquette de cblage)
- Cbles : - 1 T, 1 BNC-BNC, 1 BNC-Banane, 1sonde oscilloscope, 6 fils Banane, petits fils.

- Composants : - 7 Rsistances 1 k (1/4 Watt)
- 1 afficheur 7 segments cathodes communes :
Rf.: HDSP-5503 (10 mA) ou HDSP-7513 (2 mA).
- (1 minuterie NE 555 (circuit compatible TTL et CMOS))
- 5 LEDs rectangulaires (4 Vertes + 1 Rouge)
- 5 mini-interrupteurs

Circuits logiques de la famille CMOS 4000 :
- 1 4030 : 4 XOR 2 entres
- 1 4071 : 4 OR 2 entres
- 1 4081 : 4 AND 2 entres
- 1 4511 : Transcodeur BCD / 7 segments
- 1 4520 : Compteur binaire
- 1 MUX 41
- 1 DEMUX 14

2. Notation du TP

Faire examiner par le professeur en fin de sance, les diffrentes parties du TP.

3. Etude Thorique

Additionneurs - Codeurs - Comparateurs

3.0. Technologie
2 grandes familles se dgagent principalement :

- la famille TTL (sries 74 et 54) qui matrialise un 1 logique par une tension de + 5 Volts ( 1 Volt prs)
- la famille CMOS (sries 4000 et 40000) qui tolre des tensions suprieures, mais pour laquelle on code
en gnral galement un 1 logique par une tension de + 5 Volts.

Dans les 2 cas, le 0 logique est matrialis par une tension nulle ( 1 Volt prs).

On rappelle quune entre dun circuit laisse en lair ( non connecte) se comporte comme une antenne, et prendra donc gnralement le niveau
logique 1 (du fait du rayonnement lectromagntique) ou bien le niveau logique 0 en cas de rception faible. Il est donc ncessaire de fixer les
potentiels des entres des portes utilises pour les contrler.

Ne pas oublier quune porte logique dont la sortie est au niveau logique haut (1) se comporte comme toujours comme un gnrateur de tension avec
rsistance interne. Le niveau 1 (+ 5 Volts) est maintenu tant que le courant de sortie ne dpasse pas lordre de la dizaine de mA, suffisant pour
attaquer une LED par ex.

On pourra intercaler une rsistance ( 1 k) de limitation de courant entre la sortie visualiser et la LED, ou connecter
directement la LED la sortie du circuit logique, la rsistance interne de la porte logique faisant office de limiteur de
courant sans perdre le niveau logique (pour une LED connecte en sortie).

Simulation (& Cblage) :
Pour des raisons de compatibilit, nutiliser que des circuits de la mme famille (famille CMOS 4000 ne pas
mlanger avec la famille TTL 74xxx).
Electronique Numrique TP 2. Logique combinatoire 2

TP 2. 2
3.1. Les additionneurs
a) Demi-additionneur

Soient a
n
et b
n
2 bits additionner.
L'expression binaire de (a
n
+ b
n
) s'crit (r
n
, s
n
) o r
n
reprsente la retenue gnre de l'opration et s
n
la
somme.


1/2 ADD
a
n
b
n
s
n
r
n

- Donner la table de vrit du demi-additionneur (i.e. pas de prise en compte de lventuelle retenue r
n-1

issue dun tage additionneur prcdent dans le cadre dune addition de 2 mots binaires).
- Tracer le tableau de Karnaugh des deux fontions r
n
et s
n
.
- Donner les fonctions logiques correspondantes r
n
et s
n
en utilisant de prfrence des portes OUX.
- Donner le schma symbolique de ralisation.

b) Additionneur complet

Soient a
n
et b
n
2 bits additionner en tenant compte ici de la retenue prcdente r
n-1
issue dun tage
additionneur prcdent (dans le cadre dune addition de 2 mots binaires).


ADD
a
n
b
n
s
n
r
n
r
n-1

- Donner la table de vrit de ladditionneur complet.
- Tracer le tableau de Karnaugh des deux fontions r
n
et s
n
.
- Donner les fonctions logiques correspondantes r
n
et s
n
en faisant de prfrence apparatre des portes
OUX plutt quen simplifiant les fonctions au maximum.
- Donner le schma symbolique de ralisation.

c) Additionneur de 2 mots de 2 bits

Soient 2 mots de 2 bits A = a
1
a
0
et B = b
1
b
0
additionner (a
1
, b
1
: MSB). En utilisant les rsultats
prcdents, donner les expressions des sorties et de la retenue gnre : s
1
s
0
et r
1
de ladditionneur de 2
mots de 2 bits (s
1
: MSB ) aprs avoir tablit sa table de vrit.


ADD_MOT
2 mots
de 2 bits
a
1
a
0
A
b
1
b
0
B
r
1
s
1
s
0
S

- Donner le schma symbolique de ralisation.

3.2. Les codeurs
Rappels

Un code est la reprsentation dun nombre tel qu chaque nombre corresponde une configuration et une
seule, et qu' chaque configuration ne corresponde qu'un seul nombre.

En gnral, le codage d'un nombre dcimal s'effectue en codant chaque chiffre qui le compose. Le nombre
cod est obtenu en juxtaposant leurs reprsentations.

Pour coder en binaire les chiffres de 0 9, il faut au moins 4 bits. Il existe de nombreuses possibilits pour
coder ces chiffres. Cependant, seuls quelques uns revtent une grande importance.

Le transcodage est une opration qui consiste passer d'un code un autre code.
Electronique Numrique TP 2. Logique combinatoire 2

TP 2. 3
Transcodeur BCD - 7 segments

Un afficheur 7 segments est constitu de 7 LEDs ayant toutes un point commun : l'anode (A) ou la cathode
(C). Si lafficheur est anodes communes, il est ncessaire dinverser ( de complmenter) le signal
afficher pour quune LED allume corresponde un 1 logique.

a
f b
g
e c
d

- Donner la table de vrit d'un transcodeur permettant de passer du code BCD (Dcimal Cod Binaire) au
code permettant l'affichage sur 7 segments a g dun mot ABCD de 4 bits (A : MSB).
- Tracer les tableaux de Karnaugh de chaque segment en simplifiant les fonctions au maximum, et en
faisant apparatre si-possible des OU exclusifs.
- En dduire les fonctions correspondantes.
- Donner le schma symbolique de ralisation du transcodeur.

3.3. Les comparateurs
On dsire raliser un montage permettant de comparer 2 mots binaires de 2 bits A = a
1
a
0
et B = b
1
b
0

(a
1
, b
1
: MSB).

Ce montage doit permettre d'identifier les 3 cas suivants : A > B, A = B, A < B.

- Donner la table de vrit du montage.
- Tracer les tableaux de Karnaugh des 3 fonctions de comparaison en les simplifiant au maximum.
- Donner les fonctions correspondantes.
- Donner le schma symbolique de ralisation du comparateur.

Multiplexeur - Dmultiplexeur

3.4. Multiplexeur

a) Rappeler la dfinition dun multiplexeur 4 entres de donnes D
3
D
2
D
1
D
0
, 2 entres dadresses A
1
A
0

(D
3
et A
1
sont les MSB) et de sortie s.

b) Donner sa table de vrit.
c) Donner lquation de la sortie.
d) Etablir le schma logique permettant de le raliser en utilisant exclusivement des portes logiques ET 4
entres, OU 4 entres et NON plutt que dutiliser un multiplexeur tout fait.
e) Proposer un schma, base dune minuterie NE 555 mont en oscillateur carr et dune bascule D,
permettant de raliser dans le montage de la figure 3, la slection automatique des adresses dans la
squence : A
1
A
0
= 00 01 10 11 ...
note :
1

2

3

4
...
avec une frquence de changement dadresse (passage de
1

2
, de
2

3
, ...) denviron 1 Hz.
(On pourra saider en traant pralablement le chronogramme des variables A
0
et A
1
supposes
initialement ltat bas).

3.5. Dmultiplexeur

a) Rappeler la dfinition dun multiplexeur 4 sorties de donnes D
3
D
2
D
1
D
0
, 2 entres dadresses A
1
A
0

(D
3
et A
1
sont les MSB) et dentre e.

b) Donner sa table de vrit.
c) Donner lquation des sorties.
d) Etablir le schma logique permettant de le raliser en utilisant exclusivement des portes logiques ET 4
entres et NON plutt que dutiliser un dmultiplexeur tout fait.
Electronique Numrique TP 2. Logique combinatoire 2

TP 2. 4
4. Etude Exprimentale

4.0. Test des composants (en cblage uniquement)
En connectant le mini-interrupteur alternativement la masse et la tension + 5 Volts, on obtient ainsi des transitions franches permettant de simuler
une horloge lente de test des composants synchrones (compteur ...).
Tester chaque module dun circuit sparment des autres modules.

Additionneurs - Codeurs - Comparateurs

4.1. Les additionneurs (facultatif)
a) Demi-additionneur (facultatif)

Soient a
1
et b
1
2 bits additionner.


1/2 ADD
a
1
b
1
s
1
r
1


Simuler le montage suivant [en simulation numrique, remplacer lensemble (rsistance-LED) par un simple logic display)] :


a
1
b
1
= 1
&
1 k
1 k
s
1
r
1

1/2 ADD

Vrifier la table de vrit du montage.


b) Additionneur complet (facultatif)

Soient a
1
et b
1
2 bits additionner en tenant compte ici de la retenue prcdente r
0.



ADD
a
1
b
1
s
1
r
1
r
0


Raliser le montage suivant (simulation) : [en simulation numrique, remplacer lensemble (rsistance-LED) par
un simple logic display)]


= 1
&
= 1
&
a
1
b
1
1 k
s
1

r
1
r
0
1
1 k
ADD


Vrifier la table de vrit du montage.
Electronique Numrique TP 2. Logique combinatoire 2

TP 2. 5
c) Additionneur de 2 mots de 2 bits (simulation) (facultatif)

Soient 2 mots de 2 bits A = a
1
a
0
et B = b
1
b
0
additionner (a
1
, b
1
: MSB).

ADD_MOT
2 mots
de 2 bits
a
1
a
0
A
b
1
b
0
B
r
1
s
1
s
0
S


Le schma synoptique suivant utilise avantageusement les tages prcdents demi-additionneur et additionneur :


ADD a
1
b
1
s
1
r
1
r
0
1/2 ADD
a
0
b
0
s
0
r
0
ADD_MOT
S


Raliser le montage suivant (simulation) : [en simulation numrique, remplacer lensemble (rsistance-LED) par un simple logic display)]

= 1
&
1 k s
0
a
0
b
0
r
0
1/2 ADD
= 1
= 1
&
&
1
a
1
b
1
s
1
r
1
1 k
1 k
ADD
ADD_MOT

Vrifier la table de vrit du montage.

4.2. Les codeurs
a) (facultatif) - Vrifier le bon fonctionnement du transcodeur BCD/7 segments dtermin dans la partie thorique pour le seul segment a)
(simulation).

b) Tester le transcodeur BCD/7 segments tout fait (circuit 4511) pour lequel on cblera (simulation) tous les
segments (a g). (Tlcharger au pralable le datasheet du circuit Transcodeur BCD/7 segments 4511).

Lafficheur 7 segments ( cathodes communes) sera connect directement aux sorties du transcodeur ou des portes
logiques sans intercaler de rsistances de limitation de courant dans les LEDs de lafficheur, la limitation se faisant
dj par la rsistance interne du transcodeur ou des portes.

Note : Le Test du Transcodeur BCD/7 segments (4511) peut tre fait avec lobjet Hexkey du simulateur
(Switches -> Digital -> Hexkey) qui transforme un chiffre (de 0 9) en son code BCD sur 4 bits :

Application


EL
BI
LT
N (0 9)
4511
Transcodeur
BCD /
7 segments
a
c
d
f
e
b
g
GND
Afficheur 7 segments
cathodes communes
HexKey
N en code BCD

Electronique Numrique TP 2. Logique combinatoire 2

TP 2. 6
4.3. Les comparateurs (facultatif)

a) - (facultatif) Comparer, laide du simulateur, avec le montage suivant, ralisant la mme opration de comparaison, mais pour lequel les
fonctions logiques dcrivant les sorties nont pas t simplifies au maximum (ne pas utiliser les LEDs tmoins pour la simulation) :
[en simulation numrique, remplacer lensemble (rsistance-LED) par un simple logic display)]

a
1
b
1
a
0
b
0
A > B
< A B
= B A
1 k
1 k
1 k
a b
0 0

a b
1 1

) : (
1 0 1
MSB a a a A =

) : (
1 0 1
MSB b b b B =

Note : Plutt que dutiliser des portes 3 entres, on pourra utiliser des portes 2 ou 4 entres :


1
0

b) - (facultatif) Utiliser le simulateur numrique pour tester le montage tabli en cours.

Multiplexeur - Dmultiplexeur
4.4. Multiplexeur


Schma de principe :



Gnrateur GBF
Frquence 4 Hz
H :
H
D
3
D2
D1
D
0
R
L3
R
L
2
R
L1
R
L0
R
L
MUX 4 > 1
A0 A1
s
D = H divise par 2 0
D = H divise par 4 1
D = H divise par 8 2
D = H divise par 16 3
R = 1 k
Figure 3
Compteur
binaire
incrmental


Simuler le multiplexeur 4 entres ralis selon le schma vu en cours avec des portes lmentaires et linsrer dans
le montage suivant :
Electronique Numrique TP 2. Logique combinatoire 2

TP 2. 7
Schma de simulation :

D3
D2
D1
D0
L3 L2 L1 L0
L
MUX 4 > 1
A0 A1
s
Figure 3'
Data
sequencer avec portes
logic switches
logic display logic display
logic display
logic display
logic display
Oscilloscope =Instruments / Digital / Scope
1
2
3
4
Rglages du Data sequencer :
address 0001 00001001
address 0002 00001000
address 0003 00001011
address 0004 00001110
start address : 1
stop address : 4
Rsultat :
La LED L3 clignote le plus rapidement
La LED L2 clignote un peu moins vite que L3
La LED L1 clignote un peu moins vite que L2
La LED L0 est toujours allume
La LED L clignote au mme rythme que la LED Li selon l'adresse A1A0 slectionne


Schma du MUX 4 > 1 vu en cours :

A
0
A
1
S
D
0
D
1
D
2
D
3

Un compteur binaire incrmental est un circuit squentiel dont le mot de sortie D
3
D
2
D
1
D
0
(D
3
= MSB)
est incrment (ou dcrment sil sagit dun dcompteur ou compteur dcrmental) chaque fois que
lentre dhorloge H est active (activation sur front ou sur niveau).
Le compteur utilis, synchronisation sur front montant de H, incrmente le mot D
3
D
2
D
1
D
0
chaque
front montant de H. Le comptage seffectue de faon circulaire : ainsi au mot 1111 succde le mot 0000 puis
0001, 0010, 0011 ...
Ltat initial du compteur peut tre, si on le dsire, mais a nest pas ncessaire dans lutilisation que lon
fait ici, rgl au mot voulu, 0000 par exemple.

a) En essayant les diffrentes combinaisons dadresses, vrifier le bon fonctionnement du multiplexeur en
comparant la sortie s lentre de donne slectionne.
b) (facultatif) Complter le montage par le circuit de slection automatique des adresses avec comme valeurs de composants de la minuterie
monte en astable : R
A
= 1 k, R
B
= 1 M et C = 1 F.

c) (facultatif) Remplacer le multiplexeur 4 > 1 discret (avec les portes ci-dessus) par un multiplexeur 4 > 1 intgr du simulateur.

4.5. Dmultiplexeur


Schma de principe :


Gnrateur GBF
Frquence 2 Hz
H :
H
D
0
D
1
D
2
D
3
R
L
0
R
L
1
R
L
2
R
L
3
R
L
e
DEMUX 1 > 4
A
0
A
1
Figure 4
R = 1 k


Simuler le dmultiplexeur 4 sorties ralis selon le schma vu en cours avec des portes lmentaires et
linsrer dans le montage suivant :
Electronique Numrique TP 2. Logique combinatoire 2

TP 2. 8
Schma de simulation :

H
L
DEMUX 1 > 4
A
0
A
1
Figure 4'
Pulser
avec portes
logic switches
logic display
D
0
D
1
D
2
D
3
L
0
L
1
L
2
L
3
logic display
logic display
logic display
logic display Oscilloscope =Instruments / Digital / Scope
Horloge = Digital / Instruments / Pulser
e



Schma du DEMUX 1 > 4 vu en cours :

A
0
A
1
e
D
3
D D
1 0
D
2



a) En essayant les diffrentes combinaisons dadresses, vrifier le bon fonctionnement du dmultiplexeur
en comparant une donne de sortie lentre e.
b) (facultatif) Complter le montage par le circuit de slection automatique des adresses avec les mmes valeurs de composants de la minuterie
monte en astable : R
A
= 1 k, R
B
= 1 M et C = 1 F.

c) (facultatif) Remplacer le dmultiplexeur 1 > 4 discret (avec les portes ci-dessus) par un dmultiplexeur 1 > 4 intgr du simulateur.






Rangement du poste de travail
Examen des diffrentes parties du TP et rangement ( 0 pour tout le TP sinon).



ANNEXE : DOCUMENTATION DES COMPOSANTS
Electronique Numrique TP 2. Logique combinatoire 2

TP 2. 9
ANNEXE
- LED

A
K
Anode Cathode
A K

- Brochage de l'afficheur 7 segments (cathodes communes K): Rf.: HDSP-5503 (10 mA) ou HDSP-7513 (2 mA)


g f a b
e d GND c p
10 9 8 7 6
1 2 3 4 5
a
f b
g
e
d
c
p
GND : masse (Cathodes K communes)
b ...
g
K
Sortie Commande segment
a
...
g Sortie Commande segment
b Sortie Commande segment
a Sortie Commande segment
GND
(Les pins 3 et 8 sont connectes de faon interne)


- Minuterie NE 555 monte en astable ( oscillateur) CI NE 555 ou quivalent (SN 72555 ou SFC 2555)

V
cc
R
A
R
B
4 8
7
2
6
1
5
NE 555
C
1
C
s
v 3
(Sortie)
+
-
V
cc
C
1
= + 5 Volts
= 10 nF
+
-
R doit tre diffrent de 0
A



L'allure du signal de sortie est la suivante :


t
H B
t
T
v
s
t
0
V
cc

Sachant que : t
H
correspond la charge de C travers ( ) R R
A B
+ : t
H
= 0.693( ) R R
A B
+ C
t
B
correspond la dcharge de C dans R
B
: t
B
= 0.693 R
B
C
T = t
H
+ t
B
= 0.693
( )
R R
A B
+ 2 C : priode de ( ) v t
s
f = 1/T
( )
144
2
.
R R C
A B
+
: frq. de ( ) v t
s

Rapport cyclique de ( ) v t
s
: R
t
T
R R
R R
H A B
A B
0
100
2
= =
+
+
% 50 % < R
0
< 100 %
R
0
= 50 % pour R R
B A
>> R
0
= 100 % pour R
B
= 0
__________
Electronique Numrique 3. Logique squentielle 1

3. 1
3. LOGIQUE SEQUENTIELLE 1 - LES BASES

1. RAPPELS

Systme logique

p entres m sorties
p
Systme Logique
s
j
e
i
m
1 i p 1 j m


Systme logique combinatoire

A linstant discret n, une sortie
j
s , note s
j
n
, dun systme logique combinatoire ne dpend que de ses entres
e e
n
p
n
1
, ... , au mme instant : (la seule connaissance des entres suffit dterminer les sorties)
s f e e
j
n n
p
n
= ( , ... , )
1
(1 j m)


Systme Logique
Combinatoire
Entres logiques
Sorties logiques
p m
1 i p
1 j m
n
j j
s s
n
i i
e e

Exemple

e
1
e
2
s
1 1
e
1
e
2
= +


Systme logique squentiel ( systme logique combinatoire boucl)

A linstant discret n, une sortie s
j
n
dun systme logique squentiel dpend de ses entres e e
n
p
n
1
, ... , mais aussi de
ltat antrieur des sorties ( s s
n
m
n
1
1 1
, ... , ) qui peuvent tre considres comme des entres secondaires, alors que les
entres e e
n
p
n
1
, ... , sont appeles primaires. (Notion de mmoire, car les systmes squentiels sont boucls, ou encore
rcursifs) : (la seule connaissance des entres (primaires) ne suffit pas dterminer ltat des sorties)
s f e e s s
j
n n
p
n n
m
n
=

( , ... , , , ... , )
1 1
1 1
(1 j m)


Systme Logique
Squentiel
Sorties logiques antrieures
Sorties logiques
Entres logiques
p
1 i p
1 j m
m
1
m
2
m m
1
m
2
+ =
n
j
s
n
i
e
1 n
j
s

Exemple

e
1 s
1 1


e
1
s
1
t
t

Supposons s
1
0 = initialement (tat initial li la technologie employe) s
1
= mmorisation de (e
1
1 = )
(ds que
1
e passe 1,
1
s passe 1 et y reste ensuite
1
e ).

Dfinition

Bascule : circuit squentiel dont les sorties possdent 2 tats stables, ces sorties tant complmentaires Q et Q.
(Bascule Bistable Flip- flop)
Electronique Numrique 3. Logique squentielle 1

3. 2
2. EXEMPLE FONDAMENTAL : LA BASCULE RS

Soit le systme squentiel (bascule RS) : (R Reset Mise 0 / S Set Mise 1)


R
S
Q'
Q
1
1



pouvant tre reprsent plus simplement :


R
S
Q'
Q 1
1


Soit la squence d'entre suivante :


1 2 3 4 5 6
t
t
S
R



Supposons ltat initial suivant des sorties : Initialement : sortie Q au repos (Q = 0) et sortie Q = 1. On a :

Phase S R Q Observations (lgende : : passe : reste ) Conclusion
Phase
0 0 0 Etat initial stable : Q 0; Q 1; Mmorisation de ltat prcdent
Q = Q
Phase
1 0 1 S 1 donc Q 0 donc Q 1;
Etats stables
Set de Q (Mise 1 de Q)
Q = Q
Phase
0 0 1 S 0 donc Q 0 donc Q 1;
Etats stables
Mmorisation de ltat prcdent
Q = Q
Phase
0 1 0 R 1 donc Q 0 donc Q 1;
Etats stables
Reset de Q (Mise 0 de Q)
Q = Q
Phase
1 1 0 S 1 donc Q 0 donc Q 0;
Etats stables
Combinaison interdite, car
Q Q
Phase
0 0 Ala de fonctionnement : ltat Q dpend de la rapidit relative entre les 2 portes,
car les 2 entres S et R changent dtat simultanment.
(Si la porte NOR dentre R est plus rapide que celle dentre S, on a : Q = 1 et Q = 0.
Sinon on a : Q = 0 et Q = 1. Dans les 2 cas, Q = Q).
Etats stables

- La combinaison dentres (S = 1, R = 1) de la phase est proscrire car elle ne conduit pas Q = Q (les bascules
ont leurs sorties complmentes Q et Q).

- Les configurations pour lesquelles les 2 entres changent dtat simultanment (comme la phase ) sont proscrire
car elles conduisent un ala de fonctionnement.
Electronique Numrique 3. Logique squentielle 1

3. 3
Table de vrit de la bascule RS :
(Q
n
reprsente ltat stable de Q linstant discret n;
Q
n-1
reprsente ltat stable de Q linstant prcdant la configuration dentre courante : cest donc ltat prcdent
de la sortie Q avant changement des entres aux nouvelles valeurs que sont les valeurs courantes spcifies.
Ce changement place Q ltat Q
n
)

Restriction de fonctionnement : 1 seule des 2 entres doit changer d'tat la fois. Si les 2 entres changent
dtat en mme temps (impossible cependant en asynchrone) ala pour
Q.

S R Q
n
Fonction Complmentarit
0 0 Q
n-1
Mmorisation
Q = Q
0 1 0 RESET (Mise 0 de Q)
Q = Q
1 0 1 SET (Mise 1 de Q)
Q = Q
1 1
Combinaison interdite car Q Q Q Q


Autre ralisation de la bascule RS avec des NAND :


S
R
Q'
Q &
&


La combinaison interdite engendre Q = Q = 1, contrairement la ralisation portes NOR pour laquelle elle
engendre Q = Q = 0.


Symbole de la bascule RS


R
S
Q
(Q n'est pas systmatiquement reprsent)

La bascule RS est l'lment de base de la logique squentielle. C'est la seule bascule asynchrone.

Fonctionnement asynchrone :

En asynchrone, la sortie de la bascule change d'tat uniquement en fonction des grandeurs d'entre.
Le systme livr lui-mme, est ainsi plus rapide que les sytmes synchrones, mais il prsente des temps de
propagation ( dlais) difficiles matriser on prfre l'utilisation de systmes synchrones.

Fonctionnement synchrone :

La prise en compte des entres est conditionne par une autorisation donne par un signal d'horloge. Ainsi, les entres
du systme sont prises en compte (provoquant alors ltat de sortie correspondant) uniquement sil y a autorisation par
lhorloge (lhorloge est alors dite active). Sinon (pas dautorisation de la part de lhorloge), les entres sont ignores et
leur changement dtat ne peut entraner le basculement de la sortie : celle-ci demeure son tat antrieur (mmoire).
Electronique Numrique 3. Logique squentielle 1

3. 4
Lautorisation ( synchronisation) de lhorloge peut se faire de 3 faons : (exemple sur une bascule D)

- Synchronisation sur niveau : il suffit d'appliquer le niveau logique convenable, dit niveau actif, sur lentre
( latch) dhorloge, pour que la sortie de la bascule puisse ragir aux entres de donnes :
(H : signal dhorloge (not aussi CK); D : entre de donne)


H
Synchro. sur niveau haut
D
H
Synchro. sur niveau bas
D
( positive latch) ( negative latch)
Q
Q
Q
Q

- Synchronisation sur front : la sortie de la bascule ragira aux entres de donnes linstant o se produit un
ou flanc ou transition front ( une transition dtat) de lhorloge.
( edge triggered) Ce front actif peut tre montant ( positif) ou descendant ( ngatif) :


H
Synchro. sur front montant
D
H
D
Synchro. sur front descendant
( positive edge triggered) ( negative edge triggered)
Q
Q
Q
Q

- Synchronisation par impulsion : une impulsion de synchronisation de lhorloge est compose de 2 fronts
( pulse triggered) (lun positif et lautre ngatif) : le 1er front sert la synchronisation des
entres, le 2nd front sert la synchronisation des sorties.
Ce type de synchronisation est utilis pour les systmes matre-esclave - sas).


H
Matre-esclave sur niveau (haut)
D
H
D
( positive pulse triggered) ( positive pulse edge triggered)
Q
Q
Q
Q
Matre-esclave sur front (montant)


Un systme constitu de plusieurs bascules synchrones est dit synchrone si toutes les bascules sont pilotes par une
horloge et si cette horloge est identique pour toutes les bascules.

3. LES BASCULES SYNCHRONES

3.1. La bascule RST ( bascule RS synchronise)
Du fait de la synchronisation, elle constitue une amlioration de la bascule RS asynchrone.
Bien que plus lents que les systmes asynchrones (il faut attendre la validation dhorloge pour prendre en compte les
donnes), les systmes synchrones ont lavantage dintroduire un certain dterminisme (prvision, rgularit, matrise
des squences) dans les traitements, et sont ainsi beaucoup plus utiliss que les systmes asynchrones.

Exemple: Bascule RST synchronise sur niveau haut de lhorloge T (bascule RST latch > 0):

Symbole

T
R
S
Q

. T = 0 : la sortie ne change pas quelles que soient les entres R et S.
C'est le fonctionnement en mmoire. La bascule n'est pas synchronise.
. T = 1 : la bascule est alors synchronise. Sa sortie respecte la table de fonctionnement de la
bascule RS (asynchrone) avec les mmes restrictions.

Table de fonctionnement de la bascule RST synchronise sur niveau haut de lhorloge T :
(X signifie indiffremment 0 ou 1 (valeur quelconque binaire))
Horloge T T S R Q
n
Fonction
Horloge T inactive 0 X X Q
n-1
Mmorisation
Horloge T active 1 0 0 Q
n-1
Mmorisation
Horloge T active 1 0 1 0 RESET (Remise 0 de Q)
Horloge T active 1 1 0 1 SET (Mise 1 de Q)
Horloge T active 1 1 1 Interdit
Electronique Numrique 3. Logique squentielle 1

3. 5
Exemple de fonctionnement (bascule RST latch > 0)


t
t
t
t
Commandes non prises en compte
Mmoire
Mise 1
Mmoire
Mise 0
Mmoire
S
R
T
Q
Le lger retard de Q par rapport S et R tmoigne du temps de rponse du circuit
1 2 3 4 5
t
non synchronis
Q
Stop car combinaison interdite
synchronis latch > 0


Constitution (bascule RST latch > 0) (pour une RST latch < 0, il suffit de complmenter lhorloge)

Etant donn que pour la combinaison R = S = 0 avec T = 1, on a un fonctionnement indentique la
combinaison T = 0 quels que soient R et S, il faut fabriquer deux variables r et s entres d'une bascule RS
asynchrone telles que les tables de vrit suivantes soient vrifies :

T S s
0
0
1
0
0
1
0
0
0
T R r
0
0
1
0
0
1
0
0
0
}
Fonction mmoire
1 1 1 Mise 1 1 1 1 Mise 0


Ceci est facilement ralis l'aide d'une porte ET qui permet de bloquer les commandes R et S tant que T = 0.
Le schma de la bascule RST synchronise sur niveau haut de T peut donc tre le suivant :

&
&
& &
S
T
R
s
r
Q


Le circuit ET suivi de l'inverseur peut avantageusement tre remplac par un oprateur NAND.

3.2. La bascule D
Elle constitue un lment mmoire. Elle supprime la configuration interdite de la bascule RST . Elle possde 1 entre de
donne D (Data) et est ralise partir d'une bascule RST avec les entres R et S lies par la relation : D S R = = .

Fonctionnement

Cette bascule dispose d'une seule entre appele D. Le signal de synchronisation peut tre actif soit sur un niveau - la
bascule est alors appele D latch - soit sur un front (bascule edge triggered). C est lhorloge de synchronisation.


D latch > 0
(= synchro. sur niveau haut)
D positive edge triggered
(= front > 0 ou encore montant)
D
C
Q
D
C
Q
Exemple

Electronique Numrique 3. Logique squentielle 1

3. 6
Avec une seule entre on ne peut trouver que deux modes de fonctionnement :
- le signal de synchronisation est actif, la sortie Q recopie l'entre D.
- le signal de synchronisation n'est pas actif, la sortie Q ne change pas.

C'est le fonctionnement en mmoire. Lors du passage en position mmoire, la dernire valeur recopie est mmorise.

Exemple avec une bascule D latch > 0


D
1
0
1
0
Q
Mmoire Recopie Mmoire Recopie
t
1
0
C
t
t
Le lger retard de Q par rapport D tmoigne du temps de propagation travers la bascule


Exemple avec une bascule D edge triggered synchronise sur front positif


D
1
0
1
0
Q
Mmoire Mmoire
t
1
0
C
t
t
Le lger retard de Q par rapport la prise en compte de D tmoigne du temps de propagation travers la bascule
Recopie Recopie
Mmoire


Constitution d'une bascule D latch > 0 (pour une D latch < 0, il suffit de complmenter lhorloge)

Une bascule D est issue d'une bascule RST avec les entres R et S lies par la relation : D S R = =
Pendant la phase o l'horloge de synchronisation est inactive, on a : Q Q
n n
=
1
: fonction mmoire
L'quation de fonctionnement dans la phase d'activit de lhorloge est : Q S R Q D
n n
= + =
1
: fonction recopie

Le schma de ralisation peut tre le suivant :


&
&
& &
T
R
Q
Horloge
D = S


Table de vrit de la bascule D latch > 0

Horloge C C D Q
n
Fonction ou encore : Horloge C C D Q
n
Fonction
Horloge C inactive 0 X Q
n-1
Mmorisation Horloge C inactive 0 X Q
n-1
Mmorisation
Horloge C active 1 0 0 Recopie Horloge C active 1 D Recopie
Horloge C active 1 1 1 Recopie
Electronique Numrique 3. Logique squentielle 1

3. 7
Constitution d'une bascule D >0 edge triggered (pour une D <0 edge triggered, il suffit de complmenter lhorloge)

La discrimination du front, c'est dire du changement de niveau, ne s'effectue pas avec un circuit drivateur mais par le
jeu de trois mmoires internes la bascule La ralisation simplifie d'une bascule D >0 edge triggered est donn par :


&
&
&
&
&
&
Q
Horloge
D


Table de vrit de la bascule D > 0 edge triggered

Horloge C C D Q
n
Fonction ou encore : Horloge C C D Q
n
Fonction
C inactive
X (0 ou 1 ou )
X Q
n-1
Mmoire C inactive
X (0 ou 1 ou )
X Q
n-1
Mmoire
C active

0 0 Recopie C active

D Recopie
C active

1 1 Recopie


L'analyse du fonctionnement de cette bascule peut tre faite comme s'il s'agissait d'un systme squentiel asynchrone
ayant deux variables d'entres D et C.

La bascule D impose une restriction pour le bon fonctionnement :

Exemple : pour une bascule D latch > 0, D ne doit pas changer d'tat pendant que C = 1 (sinon le problme dala
asynchrone RS rapparat, R et S changeant simultanment dtat) la bascule JK va apporter une
amlioration.

3.3. La bascule T

Fonctionnement

Une bascule fonctionnant suivant le type T dispose d'une seule commande : lentre dhorloge (T).
La sortie Q de la bascule change d'tat chaque impulsion de la commande.

Exemple d'un fonctionnement en type T synchronis sur front montant :


T
Q
t
t
H
T
2
H
T
Le lger retard de Q par rapport la prise en compte de T tmoigne du temps de propagation travers la bascule

Remarque : Si le signal de commande est priodique de priode T
H
(frquence f), le signal de sortie est galement
priodique mais de priode 2T
H
(frquence
f
2
).
Ce mode de fonctionnement ralise une division par 2 de la frquence.
Electronique Numrique 3. Logique squentielle 1

3. 8
Constitution

L'quation de fonctionnement est donne par : Q Q
n n
=
1


En effet, aprs chaque commande la sortie change d'tat, ce qui signifie qu'elle prend la valeur du complment.
Il n'est pas commercialis de bascules T. Il faut les fabriquer l'aide des autres bascules.

Exemple : Transformation d'une bascule D (> 0 edge triggered) en bascule T (> 0 edge triggered).
L'quation de la bascule D tant : Q D
n
= , il suffit de relier l'entre D la sortie Q pour obtenir :

( )
Q Q Q
n n
=
1



T > 0 edge triggered
Q
D
T
Q


Table de vrit de la bascule T latch > 0

Horloge T T Q
n
Fonction
Horloge T inactive 0
Q
n1 Mmorisation
Horloge T active 1 Q
n 1 Complmentation

Prcaution d'usage

Il ne faut pas raliser un rebouclage qui provoque une instabilit de la sortie du montage. Par ex. , avec une bascule D
latch > 0, la dure du niveau actif (1) de lhorloge doit tre de courte dure: lorsque l'horloge passe au niveau actif (1),
la sortie change aprs le temps ncessaire la propagation de l'information. Comme la sortie Q est runie l'entre D,
le changement de la sortie provoque un autre changement de celle-ci aprs le mme dcalage temporel.

Q
D
T
Q
T latch > 0

Temps de raction de la sortie
T
t
Q
t

Rappel : Table de vrit de la bascule D latch > 0
Horloge T T D Q
n
Fonction
C inactive 0 X Q
n -1
Mmoire
C active 1 D Recopie


3.4. La bascule JK

Fonctionnement

C'est une bascule disposant de deux entres, respectivement appeles J et K. Comme pour la bascule RS, l'entre J sert
la mise 1 et l'entre K la remise 0.

La diffrence entre la bascule JK et la bascule RS rside dans le fait qu'il n'y a plus d'tat interdit pour les entres, au
profit de la combinaison J = K = 1 utilise pour obtenir un fonctionnement type T.

Bascule JK = bascule RS avec : J = S , K = R et la combinaison J = K = 1 est non interdite ( Q Q = ) et de type
bascule T.

Exemple: Bascule JK synchronise sur front montant de lhorloge H (bascule JK > 0 edge triggered) :

Symbole


H
J
K
Q

La table de fonctionnement est la suivante (table de vrit) :
Electronique Numrique 3. Logique squentielle 1

3. 9
Table de vrit (Analyse)

Horloge H H J K Q
n
Fonction
H inactive
X (0 ou 1 ou )
X X Q
n-1
Mmoire
H active

0 0 Q
n-1
Mmoire
H active

0 1 0 RESET (Remise 0 de Q)
H active

1 0 1 SET (Mise 1 de Q)
H active

1 1 Q
n1
Complmentation (fonctionnement type T)

ou encore,

Table des transitions (Synthse) - (Horloge active)


Transition Q
n-1
Q
n
J K
0

0 0 X
0

1 1 X
1

1 X 0
1

0 X 1

La table des transitions est utile en synthse car :

- en analyse on regarde quel effet les entres provoquent sur les sorties (raisonnement dductif),
- en synthse on regarde quelles entres il faut appliquer en fonction des sorties dsires (raisonnement inductif)

On remarque sur cette table de fonctionnement que la bascule JK peut se substituer n'importe quelle autre bascule :

- Bascule JK comme bascule RST :
Il est facile de fabriquer une bascule RST en faisant la correspondance J = S, K = R et en s'interdisant J = K = 1:

J
K
Q
S
R
H C

- Bascule JK comme bascule D :
Dans le cas o J = K = D, on obtient une bascule D :

J
K
Q
D
H C

- Bascule JK comme bascule T :
Si J = K = 1 ou si D = Q (c'est dire J = Q et K = Q), la bascule JK fonctionne suivant le type T :

J
K
Q
1
H C
J
K
Q
H C
1
Q



Electronique Numrique 3. Logique squentielle 1

3. 10
Constitution des bascules JK

A priori une bascule JK est fabrique partir d'une bascule RS synchrone o il est fait un rebouclage tel que :
S J Q R K Q = = et :

&
&
S
R Q
Q
K
T
J



L'quation de fonctionnement de la bascule RS devient : Q S R Q J Q K Q
n n n n
= + = +
1 1 1


A cause du fonctionnement en type T, il y a le risque d'instabilit dcrit lors de l'tude de cette bascule.

Afin d'liminer toute instabilit il existe plusieurs solutions :
a) Limiter la dure du fonctionnement autonome du systme en rduisant la priode de sensibilit. Ceci conduit
rendre minimum la largeur de l'impulsion d'horloge. A la limite, cette solution consiste synchroniser la
bascule sur un front (solution utilisable galement pour les bascules de type RS ou D).
b) Ouvrir la boucle du systme. Cette solution impose l'utilisation d'une mmoire intermdiaire pour conserver le
rsultat prcdent alors que la boucle est ouverte. C'est la structure matre-esclave ( SAS entre 2 bascules).
(Ex. bascule JK matre-esclave : matre bascule RS, esclave bascule D). Cette structure peut aussi tre
utilise pour les bascules de type RS ou D.

Initialisation dune bascule (exemple dune bascule JK)
En plus des entres de donnes, les bascules possdent des entres dites asynchrones permettant dinitialiser les sorties,
ou mme de fixer celles-ci un tat constant quelquesoit les entres de donnes ou dhorloge.
Les entres asynchrones
i
a de mise 0 et mise 1 souvent actives ltat bas (donc notes
i
a ) sont telles que lorsque
lordre mise 0 par ex. est activ, Q est plac ltat 0 quelles que soient les entres dhorloge et de donnes J, K. Ce
sont des commandes deffacement et dinitialisation (appeles aussi Clear et Preset ou encore Reset et Set) qui peuvent
tre actives pour fixer ltat initial de la sortie et qui doivent ensuite tre inactives pour permettre le fonctionnement
normal de la bascule.
Un simple circuit RC connect lentre Preset par ex. pour fixer ltat initial Q peut tre utilis :

Cas dentres asynchrones actives ltat haut : (linitialisation se fait en un temps de lordre de la Constant de temps RC)
A laide dun circuit RC, on active lentre asynchrone un court instant au dmarrage par un niveau haut, puis on
ramne le signal asynchrone dinitialisation 0. Appliqu lentre Clear, ceci initialise Q 0, mais appliqu lentre
Preset, ceci initialise Q 1. A chaque fois lentre asynchrone non utilise est plac ltat inactif, soit ltat 0. (Le
maintien prolong dune entre asynchrone son niveau actif fixe Q constant : 0 si Clear est actif, 1 si Preset lest).


t
RC
U
V
U V e
t
RC
=


Preset
R
C
C initialement dcharg
U
= + 5 Volts V
Q init = 1
Clear Preset
R
C
C initialement dcharg
U
= + 5 Volts V
Q init = 0 Clear
"1" furtif


Cas dentres asynchrones actives ltat bas :
A laide dun circuit RC, on active lentre asynchrone un court instant au dmarrage par un niveau bas, puis on ramne
le signal asynchrone dinitialisation 1. Appliqu lentre Clear , ceci initialise Q 0, mais appliqu lentre eset Pr ,
ceci initialise Q 1. A chaque fois lentre asynchrone non utilise est plac ltat inactif, soit ltat 1. (Le maintien
prolong dune entre asynchrone son niveau actif fixe Q constant : 0 si Clear est actif, 1 si eset Pr lest).


Clear
R
C
C initialement dcharg
U
= + 5 Volts V
t
RC
U
V
U V e
t
RC
=

( ) 1

Q init = 0
Preset
V
Clear
R
C
C initialement dcharg
U
= + 5 Volts V
Q init = 1 Preset
V
"0" furtif

Electronique Numrique 3. Logique squentielle 1

3. 11
a) La bascule JK dclenchement sur front

Il existe dans les circuits actuellement commercialiss deux faons de slectionner un front :
- Le signal d'horloge est driv (exemple : 5470)
- Le signal d'horloge n'est pas driv. La discrimination du front s'effectue comme pour la bascule D edge triggered
l'aide de mmoires internes.

Par exemple le circuit type 54/74 109 qui est dcrit l'aide du schma suivant constitue une bascule JK qui est
synchronise sur les fronts positifs. On peut tudier son fonctionnement en considrant cette bascule comme un systme
squentiel asynchrone trois variables d'entre (J, K, Horloge).
Les entres asynchrones a de mise 0 et mise 1 gnralement actives ltat bas (donc notes a ) sont telles que
lorsque mise 0 par ex. est active, Q est plac ltat 0 quelles que soient les entres dhorloge et de donnes J, K. Ce
sont des commandes deffacement et dinitialisation (appeles aussi Clear et Preset) qui peuvent tre actives pour
fixer ltat initial de la sortie et qui doivent ensuite tre inactives pour permettre le fonctionnement normal de la
bascule. Un simple circuit RC connect lentre Preset par ex. pour fixer ltat initial Q = 1 peut tre utilis :

Preset
R
C
C initialement dcharg
U
= + 5 Volts
V
t
RC
U
V
U V e
t
RC
=

( ) 1


Preset
R
C
C initialement dcharg
U
= + 5 Volts
V
t
RC
U
V
U V e
t
RC
=






&
& &
& &
&
&
Mise 1
Horloge
J
K
Mise 0
(Entre asynchrone)
Q
Q
(Entre asynchrone)
1


b) Structure matre-esclave (ralise une sorte de sas )

La structure matre-esclave est une structure deux bascules synchrones. L'une, appele le matre, est place l'entre,
l'autre, l'esclave, de type D est place en sortie.

Pour simplifier l'tude du fonctionnement de cet ensemble, la synchronisation de chaque bascule est symbolise par un
interrupteur qui se ferme pendant la phase active de l'horloge.


Matre Esclave
I
M
I
E


Les interrupteurs I I
M E
et sont commands par le niveau du signal d'horloge par rapport un seuil dtermin.
Electronique Numrique 3. Logique squentielle 1

3. 12
Le signal d'horloge tant une impulsion, les niveaux correspondant aux seuils dfinissent 4 points (5 zones distinctes) :


zone 1 2 3 4 5
t
H
B
A
C
D
Seuil du matre
Seuil de l'esclave



Dans la zone temporelle
1
les interrupteurs du matre et de l'esclave sont respectivement ouverts et ferms. Le matre
fonctionne alors en mmoire, l'esclave recopie la sortie du matre.


M E
I
M
I
E
e
1
Q
M
= e
0
(tat antrieur)
Q
E
= e
0
H = 0
I
M
H
I
E
H


Pour accder dans la zone
2
, le seuil de l'esclave est franchi et l'interrupteur correspondant change d'tat.
L'esclave est alors spar du matre et fonctionne en mmoire.


M E
I
M
I
E
e
1
Q
M
= e
0
Q
E
= e
0
entre tats Bas et Haut H
I
M
0
I
E
0


Dans la zone
3
l'esclave mmorise toujours la mme information et le signal de sortie n'a pas encore chang. Par
contre, le matre prend en compte l'information d'entre.


M E
I
M
I
E
e
1
Q
M
= e
1
Q
E
= e
0
H = 1
I
M
H
I
E
H


Dans la zone
4
le matre est de nouveau isol de l'entre. Il a mmoris la nouvelle valeur de la sortie ( ) e
1
.
L'esclave reste encore isol du matre. par consquent la valeur de la premire sortie n'est pas encore modifie.


M E
I
M
I
E
e
2
Q
M
= e
1
Q
E
= e
0
entre tats Haut et Bas H
I
M
0
I
E
0


C'est seulement dans la zone
5
que le matre communique la nouvelle valeur l'esclave qui la transmet en sortie.


M E
I
M
I
E
e
2
Q
M
= e
1
Q
E
= e
1
H = 0
I
M
H
I
E
H


On peut remarquer qu'il n'existe pas de configuration o les deux interrupteurs sont simultanment ferms, ce qui
permet d'effectuer un rebouclage sortie entre sans craindre une instabilit (systme de sas ralis).

D'autre part le dcalage temporel entre les commandes des interrupteurs I I
M E
et est invitable puisqu'il est
impossible d'obtenir des signaux d'horloge capables de passer instantanment du niveau 0 au niveau 1 (ou
inversement). En d'autres termes, on peut dire que la qualit des fronts
dv
dt
du signal d'horloge v t ( ) n'influence pas le
principe dcrit. Nanmoins, il faut que l'impulsion de l'horloge ait une dure suffisante compte tenu de la vitesse
d'volution de la bascule.
Electronique Numrique 3. Logique squentielle 1

3. 13
Enfin, on remarque que si le signal d'horloge est suprieur au seuil de l'esclave, alors l'interrupteur I
E
est ouvert. Et si
le signal d'horloge est suprieur au seuil du matre, I
M
est ferm. Les deux interrupteurs peuvent donc tre
commands par des signaux complmentaires.
( H H et ; les phases
2
et
4
o les interrupteurs sont ouverts simultanment sont des la transition H de 1 0
et H de 0 1).

Le schma d'une bascule RST matre-esclave est donn par la figure suivante :


I
M
e
M E
I
E
Q
&
&
&
&
&
&
&
1
&
S
R
T
Q


La bascule JK matre-esclave se dduit de la bascule prcdente en ralisant le rebouclage S J Q R K Q = = et :


&
&
&
&
&
&
1
&
J
K
T
&
Q
Q


Suivant le mode de synchronisation du matre lors de la phase
3
, il existe deux types de bascules matre-esclave.

En effet, l'acquisition de la nouvelle valeur peut tre faite sur le front montant du signal de synchronisation ou sur son
niveau.

Pour distinguer ces deux types de bascules, on appelle bascule matre-esclave verrouillage la structure dont le matre
est synchronis sur le front montant de l'horloge.

Enfin, il faut remarquer que la stabilit apporte une bascule par une structure matre-esclave se fait au prix dun cot
en temps de propagation de la bascule.
Electronique Numrique 3. Logique squentielle 1

3. 14
Tableau rcapitulatif
Chaque type de bascule est donne avec table de fonctionnement et parfois un ex. de CI (circuit intgr) (Texas Instr.).

Bascule RS

S
R
Q
Q
S R Q
n
Q
n - 1
0 0
0 1
1 0
0
1
1 1 Interdit car
}Recopie de S
Mmoire
Q
n
Q
n
=

La bascule RS est sujette des alas de
fonctionnement (sorties imprvisibles)
lorsque les 2 entres S et R changent
d'tat simultanment.


Bascule D Latch > 0

D
C
Q
Q
D C Q
n
Q
n - 1
X 0
0 1
1 1
0
1
Mmoire
}Recopie
C : Horloge

1 D
1 C , 2 C
2 D
3 D
3 C , 4 C
4 D
1 Q
1 Q
2 Q
2 Q
3 Q
3 Q
4 Q
4 Q
1 D
1 C
C 2
2 D
3 D
C 3
C 4
4 D
Exemple 74XX75


Bascule D > 0 edge triggered

D
C
Q
Q
D C Q
n
Q
n - 1
X X Mmoire
0
1
0
1
}Recopie
C : Horloge

1 D
2 D
1 Q
1 Q
2 Q
2 Q
Exemple 74XX74
S
C 1
R
1 D
1 PRE
1 CLK
1 CLR
2 PRE
2 CLK
2 CLR

Les entres asynchrones Preset et Clear, actives l'tat bas, de mise 1 et 0 servent linitialisation ou leffacement

Bascule T

T > 0 edge triggered
Q
T
Q


Table de vrit
Horloge T T Q
n
Fonction
Horloge T inactive 0
Q
n1 Mmorisation
Horloge T active
Q
n 1 Complmentation

Bascule JK > 0 edge triggered

J
C
Q
Q K
K C Q
n
Q
n - 1
X X
Mmoire
0
1 0
1
}Recopie de
J
X
0
0
0 1
1 1
Q
n - 1
Q
n - 1 Complment
}
C : Horloge
J

1 K
2 K
1 Q
1 Q
2 Q
2 Q
Exemple 74XX109
S
C 1
R
1 K
1 PRE
1 CLK
1 CLR
2 PRE
2 CLK
2 CLR
1 J 1 J
2 J

Les entres asynchrones Preset et Clear, actives l'tat bas, de mise 1 et 0 servent linitialisation ou leffacement
Electronique Numrique 3. Logique squentielle 1

3. 15
Bascule JK matre-esclave

J
C
Q
Q K
K C Q
n
Q
n - 1
X X
Mmoire
0
1 0
1
}Recopie de
J
X
0
0
0 1
1 1
Q
n - 1
Q
n - 1 Complment
}
C : Horloge
J

S
PRE
J 1
J 2
J 3
CLK
K1
K2
K3
CLR R
&
&
1J
1K
Q
Q
Exemple 74XX72
.
J = J 1 J 2
.
J 2
.
K = K 1 K 2
.
K 2
C1

J et K sont calculs l'aide d'une porte ET 3 entres.
Le symbole indique que la sortie n'volue qu'aprs le retour l'tat initial de lhorloge C.

Bascule JK avec verrouillage de la donne

J
C
Q
Q K
K C Q
n
Q
n - 1
X X
Mmoire
0
1 0
1
}Recopie de
J
X
0
0
0 1
1 1
Q
n - 1
Q
n - 1 Complment
}
C : Horloge
J

S
PRE
J 1
J 2
J 3
CLK
K1
K2
K3
CLR R
&
&
1J
1K
Q
Q
Exemple 74X110
.
J = J 1 J 2
.
J 2
.
K = K 1 K 2
.
K 2
C1

Par rapport la bascule JK matre-esclave, l'entre de contrle C est munie du triangle, symbole d'une activit sur un
front positif, ce qui signifie que les entres J et K sont chantillonns sur le front montant de C. Le rsultat n'est
transmis en sortie qu'aprs le retour l'tat initial de l'information d'horloge C.

Bascule RS matre-esclave

Q
Q
R C Q
n
Q
n - 1
X X
Mmoire
0
1 0
1
}Recopie de
S
X
0
0
0 1
1 1
Q
n - 1
Interdit
}
C : Horloge
S
S
R
C


__________
Electronique Numrique TD 3. Logique squentielle 1

TD 3. 1

TD 3. LOGIQUE SEQUENTIELLE 1

1. Logique combinatoire et squentielle
Les systmes a, b, c, dont le fonctionnement est dcrit par les chronogrammes suivants sont-ils combinatoires ou
squentiels ?



0
1
H
t
a.
E
t
S
t
?
H
E
S
0
1
H
t
b.
A
t
B
t
?
H
B
S A
S
t
0
1
H
t
c.
A
t
B
t
?
H
B
S A
S
t
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5


2. Bascules
Complter les chronogrammes pour chacun des schmas suivants :


a.
0
1
H
t
Q
t
H C
D
Q
Q
H C
D
Q
Q
1
1
H
K
J
Q
Q
C
H
K
J
Q
Q
C
H
K
J
Q
Q
C
1
K
J
Q
Q
C H
1
b.
0
1
H
t
Q
t
c.
0
1
H
t
Q
t
d.
0
1
H
t
Q
t
e.
0
1
H
t
Q
t
f.
0
1
H
t
Q
t


Rappel

Bascule D > 0 edge triggered

D
C
Q
Q
D C Q
n
Q
n - 1
X X Mmoire
0
1
0
1
}Recopie
C : Horloge

1 D
2 D
1 Q
1 Q
2 Q
2 Q
Exemple 74XX74
S
C 1
R
1 D
1 PRE
1 CLK
1 CLR
2 PRE
2 CLK
2 CLR

Electronique Numrique TD 3. Logique squentielle 1

TD 3. 2
Bascule JK > 0 edge triggered

J
C
Q
Q K
K C Q
n
Q
n - 1
X X
Mmoire
0
1 0
1
}Recopie de
J
X
0
0
0 1
1 1
Q
n - 1
Q
n - 1 Complment
}
C : Horloge
J

1 K
2 K
1 Q
1 Q
2 Q
2 Q
Exemple 74XX109
S
C 1
R
1 K
1 PRE
1 CLK
1 CLR
2 PRE
2 CLK
2 CLR
1 J 1 J
2 J


3. Systme squentiel
Soit le systme squentiel :


H
J
A
K
A
A
A
J
B
K
B
B
B
&
1
&
1 =
X
Z


Complter le chronogramme suivant (A et B sont initialement ltat 0) et donner la squence (automate) des
tats AB du compteur:


H
X
t
t
Z
t
1 2 3 4 5


4. Bascule RS entres complmentes
On considre le systme suivant, engendrant les signaux x et y. Dterminer lallure du signal m issu de la bascule RS:
+ 5 V + 5 V
R R
1
1
m
R
S
R R
x
y
t1 t2 t3 t0
rebond

Rappel : Table de vrit de la bascule RS :
S R Q
n
Fonction Complmentarit
0 0 Q
n-1
Mmorisation
Q = Q
0 1 0 RESET (Mise 0 de Q)
Q = Q
1 0 1 SET (Mise 1 de Q)
Q = Q
1 1
Combinaison interdite car Q Q Q Q
Electronique Numrique TD 3. Logique squentielle 1

TD 3. 3
TD 3 ANNEXE. LOGIQUE SEQUENTIELLE 1

1. Dtection synchrone dune squence (serrure lectronique)
Sur une ligne lectrique de transmission L arrivent des donnes binaires en srie. Chaque bit est synchronis, cest--
dire pris en compte, au front montant dun signal dhorloge H . La squence binaire dtecter (cl) compte 4 bits
nots a b c d . La dtection de la squence a pour effet de placer quasi instantanment (cest--dire au temps de retard
dune porte logique lmentaire prs) aprs la dtection de la prsence du 4me bit de la squence au front montant
dhorloge, au niveau logique haut ltat dune ligne Z initialement ltat bas (une impulsion de sortie 1 = Z , de
largeur sensiblement gale une demi-priode dhorloge, est produite).

1. Solution logique cble (1)
La synthse dun systme squentiel base de bascules JK autorise la dtection de la squence et conduit
larchitecture suivante :


H
J
A
K
A
A
A
J
B
K
B
B
B
&
L
Z


1.1. Complter le chronogramme fourni.
1.2. En dduire la squence a b c d dtecter.

Solution logique cble (1)
1.1. Les bascules ont un tat initial bas : 0 = A , 0 = B 1.2. Squence dtecter :

H
L
t
t
Z
t
A
t B
t
? ? ? ?
Squence dtecter a b c d

2. Solution logique cble (2)

Une synthse plus intuitive utilisant un registre dcalage est galement possible. On donne la table de fonctionnement
du circuit 74164 (registre dcalage 8 bits) :

A B
A
Q
B
Q
C
Q
D
Q
E
Q
F
Q
G
Q
H
Q
74164
CL
CK

CK (CLOCK)
Entres Sorties
A B
0 0 0 0 0 0 0 0
0
1
0
X X X 0
1 X sauf X X
1 1 1
1 X 0
0 X 1
(front montant)
Table de fonctionnement 74164
n
B
Q
n
A
Q
n
C
Q
n
D
Q
n
E
Q
n
F
Q
n
G
Q
n
H
Q
n-1
A
Q
n-1
C
Q
n-1
D
Q
n-1
E
Q
n-1
F
Q
n-1
G
Q
n-1
H
Q
n-1
B
Q
n-1
A
Q
n-1
C
Q
n-1
D
Q
n-1
E
Q
n-1
F
Q
n-1
G
Q
n-1
B
Q
n-1
A
Q
n-1
C
Q
n-1
D
Q
n-1
E
Q
n-1
F
Q
n-1
G
Q
n-1
B
Q
n-1
A
Q
n-1
C
Q
n-1
D
Q
n-1
E
Q
n-1
F
Q
n-1
G
Q
n-1
B
Q
CL ) (CLEAR

Electronique Numrique TD 3. Logique squentielle 1

TD 3. 4
2.1. Complter le schma lectrique (en compltant le cblage et en remplaant chaque ? par un bit 0 ou 1, ou
par un oprateur logique) pour permettre la dtection de la squence a b c d .

Solution logique cble (2)


CK
A B
A
Q
B
Q
C
Q
D
Q
E
Q
F
Q
G
Q
H
Q
74164
H
L
? Z
?
?
? ? ? ?
a b c d
CL


2.2. Donner deux avantages fonctionnels de cette solution par rapport la prcdente.
Avantage 1 Avantage 2




3. Solution logique programme (1)
On utilise un microcontrleur pour la dtection de la squence a b c d .
3.1. Complter le schma synoptique en indiquant :
- le circuit interne au microcontrleur ralisant lacquisition des donnes de la ligne L
- le type dinstruction (symbolise dans lUnit Arithmtique et Logique) au coeur du programme
ralisant la dtection de la squence.


H
L
z
?
?
RAM PROM
UAL
MICROCONTRLEUR
M
S
M
S
z
: mot dtecter (4 bits)
: code de la squence dtecter
: rsultat de la dtection (bit indicateur)
abcd

3.2. Quel avantage fonctionnel peut-on attribuer cette solution par rapport la prcdente ?
Dire aussi quel peut tre linconvnient principal de cette solution par rapport aux prcdentes.
Avantage



4. Solution logique programme (2)
Solution VHDL.
__________
Electronique Numrique TP 3. Logique squentielle 1

TP 3. 1

TP 3. LOGIQUE SEQUENTIELLE 1
1. Matriel ncessaire
- Oscilloscope
- Gnrateur de signaux Basses Frquences (GBF)
- Alimentation stabilise ( 2x[ 0-30 V]
&&&
_ + 1x[ 5 V]
&&&
_ )
- Multimtre
- Moniteur MS05 (plaquette de cblage)
- Cbles : - 1 T, 1 BNC-BNC, 1 BNC-Banane, 1sonde oscilloscope, 6 fils Banane, petits fils.

Composants
- 1 Rsistance 1M
- 1 Condensateur 100 nF
- 1 mini-interrupteur (horloge manuelle)

Circuits logiques de la famille CMOS srie 4000 :
- 2 4027 : 2 Bascules JK positive edge triggered

2. Notation du TP

Faire examiner par le professeur en fin de sance, les diffrentes parties du TP.


Rappel : Initialisation dune bascule (exemple dune bascule JK)
Les entres asynchrones a de mise 0 et mise 1 gnralement actives ltat bas (donc notes a ) sont telles que lorsque mise 0 par ex. est
active, Q est plac ltat 0 quelles que soient les entres dhorloge et de donnes J, K. Ce sont des commandes deffacement et dinitialisation
(appeles aussi Clear et Preset ou encore Reset et Set) qui peuvent tre actives pour fixer ltat initial de la sortie et qui doivent ensuite tre
inactives pour permettre le fonctionnement normal de la bascule.
Un simple circuit RC connect lentre Preset par ex. pour fixer ltat initial Q peut tre utilis :

Cas dentres asynchrones actives ltat haut :

A laide dun circuit RC, on active lentre asynchrone un court instant au dmarrage par un niveau haut, puis on ramne le signal asynchrone
dinitialisation 0. Appliqu lentre Clear, ceci initialise Q 0, mais appliqu lentre Preset, ceci initialise Q 1. A chaque fois lentre
asynchrone non utilise est plac ltat inactif, soit ltat 0. (Le maintien prolong dune entre asynchrone son niveau actif fixe Q constant : 0 si
Clear est actif, 1 si Preset lest).


t
RC
U
V
U V e
t
RC
=


Preset
R
C
C initialement dcharg
U
= + 5 Volts
V
Q init = 1
Clear Preset
R
C
C initialement dcharg
U
= + 5 Volts
V
Q init = 0 Clear


Cas dentres asynchrones actives ltat bas :

A laide dun circuit RC, on active lentre asynchrone un court instant au dmarrage par un niveau bas, puis on ramne le signal asynchrone
dinitialisation 1. Appliqu lentre Clear , ceci initialise Q 0, mais appliqu lentre eset Pr , ceci initialise Q 1. A chaque fois lentre
asynchrone non utilise est plac ltat inactif, soit ltat 1. (Le maintien prolong dune entre asynchrone son niveau actif fixe Q constant : 0 si
Clear est actif, 1 si eset Pr lest).
Electronique Numrique TP 3. Logique squentielle 1

TP 3. 2


Clear
R
C
C initialement dcharg
U
= + 5 Volts
V
t
RC
U
V
U V e
t
RC
=

( ) 1

Q init = 0
Preset
V
Clear
R
C
C initialement dcharg
U
= + 5 Volts
V
Q init = 1 Preset
V


Etude exprimentale
Simulation (& Cblage) :
Pour des raisons de compatibilit, nutiliser que des circuits de la mme famille (famille CMOS 4000 ne pas
mlanger avec la famille TTL 74xxx).

3. Bascules JK (1)
Etude thorique
En traant le chronogramme faisant figurer les signaux H (Horloge), Q
1
et Q
0
, prvoir la squence (automate) des
tats Q
1
Q
0
du compteur 3 tats: ( Etat initial suppos : Q
0
= Q
1
= 0 )


J
K
Q
0 1
Q
1
Q
J
K
1 1
Horloge
C C
Bascules JK 4027

Etude thorique - Corrig

H
Q
0
Q
1
t
t
t
0
0
1
0
0
1
0
0
1
0

On a un compteur par 3 : Q
1
Q
0
= 00 Q
1
Q
0
= 01 Q
1
Q
0
= 10 Q
1
Q
0
= 00 ...

Etude exprimentale
- Raliser le cblage et cadencer laide du mini-interrupteur pour horloge.
- Vrifier par la simulation (Circuit Maker) avec un Pulser pour horloge.
(Avec le logiciel de simulation assez permissif, les entres asynchrones dinitialisation R et S des bascules JK laisses
en lair sont quivalentes R=0 et S=0 ce qui initialise la sortie de la bascule Q 0. - En cblage, il faudrait cbler
effectivement R=0, S=0)
- Complter le schma pour un tat initial garanti Q
1
Q
0
= 00.
- Le compteur est-il autocorrecteur ? (Initialiser les sorties un tat hors cycle normal de comptage, par exemple
Q
1
Q
0
= 11 et observer si le compteur revient son cycle normal de comptage : si oui, le compteur est
autocorrecteur). Vrifier la thorie par la simulation en traant le chronogramme.

Note : 1. En simulation , linitialisation de la sortie Q = 1 dune bascule JK sobtient en jouant sur les entres
asynchrones dinitialisation R et S de faon envoyer un 1 furtif sur lentre S, R tant 0 :
J
K
Q
C
R
S
1
0
logic switch command manuellement
t
S
"1" furtif



2. Rappel - Pour tracer un chronogramme laide du simulateur, utiliser le composant :
Instruments Digital Scope et licne :
- Lhorloge est constitue du composant : Instruments Digital Pulser (sortie sur Q1)
- Linterrupteur, commutant entre +5V et 0, est constitu du composant : Digital Power Logic switch
Electronique Numrique TP 3. Logique squentielle 1

TP 3. 3


4. Bascules JK (2)
Le schma du circuit considr est le suivant :


J
K
Q
0
J
K
Q
1
Q
1

Horloge
Q
0
Bascules JK 4027

Etude thorique

- Par une tude thorique, prvoir partir de ltat initial Q Q
1 0
= 00, la squence (automate) des tats Q Q
1 0
du
compteur 4 tats (Tracer le chronogramme faisant figurer les signaux H (Horloge), Q
1
et Q
0
).

Etude thorique - Corrig (Avec un tat initial Q
1
Q
0
= 11)


t
Horloge
t
Q
1
t
Q
0
etc
Q
1
Q
0
= 1 1
= 1 0
= 0 0
= 0 1
Q
1
Q
0
Q
1
Q
0
Q
1
Q
0
Q
1
Q
0
= 1 1


Etude exprimentale

- Vrifier exprimentalement par cblage et simulation ce rsultat en visualisant avec des LEDs et avec le
chronogramme les tats Q
1
et Q
0
du compteur et en utilisant le Gnrateur Basse Frquence (GBF) pour
horloge en cblage (Pulser de Circuit Maker pour la simulation).




Rangement du poste de travail
Examen des diffrentes parties du TP et rangement ( 0 pour tout le TP sinon).

__________
Electronique Numrique 4. Logique squentielle 2

4. 1
4. LOGIQUE SEQUENTIELLE 2 - APPLICATIONS

1. LES REGISTRES

1.1. Prsentation

Un registre est d'abord un ensemble de cases ou cellules mmoire capables de stocker une information ( un mot
binaire). La position des cases mmoire entre elles est responsable de l'ordre des chiffres, c'est dire de la structure de
l'information. Dans le systme binaire, une case mmoire est dfinie l'aide d'une bascule. Un registre est donc un
ensemble ordonn de bascules.
De plus, l'interconnexion entre les bascules permet certaines manipulations de l'information stocke.

1.2. Fonctionnement

Un registre sert mmoriser un mot ou un nombre binaire. Le schma d'un tel systme comporte autant de bascule type
D que d'lments binaires mmoriser. Toutes les bascules sont commandes par le mme signal d'horloge.

Exemple : registre 4 bits Fonctions Chargement en mmoire et Mmorisation

D
Q
C
D
Q
C
D
Q
C
D
Q
C
Horloge
D
0
Q
0
D
1
Q
1
D
2
Q
2
D
3
Q
3


Rappel : Bascule D =
sinon
active horloge si
1
=
=
n n
n
Q Q
D Q

Mmoire
Chargement



Moyennant une interconnexion entre les cellules, le registre prcdent devient capable d'oprer une translation des
chiffres ( bits) du nombre ( mot) initialement stock. Le dplacement s'effectue soit vers la droite soit vers la gauche.
Le registre est alors appel registre dcalage.
De nombreuses applications rsultent de cette possibilit de dcalage, par exemple :

- la conversion srie-parallle d'une information numrique ;
- les oprations de multiplication et division par 2 ;
- la ligne retard numrique.

Plus gnralement un registre peut se reprsenter par le schma suivant : Fonctions Dcalage en plus

Entres parallles
E
0
E
1
E
1 n -
SRG n
(registre dcalage n bits)
Entre Srie Gauche ESG
Horloge
S
0
S
1
S
n - 1
Sorties parallles
Entre Srie Droite ESD
Sortie srie
Commandes
(chargement, dcalage ...)

Electronique Numrique 4. Logique squentielle 2

4. 2
Les registres disposant de toutes ces entres, sorties et commandes sont appels registres universels n cellules. Tous
les registres actuellement commercialiss n'ont pas toutes les possibilits de commande du registre universel
essentiellement cause de la limitation du nombre de broches disponibles par botier. Les sorties S S
n 0 1
L

sont les
sorties des bascules constituant les cellules du registre.

Les signaux de commande du registre permettent de :

- Garder une information en mmoire. Chaque bascule conserve sa valeur malgr les impulsions d'horloge.

Exemple :

1 1 1 0 0
S
0
S
1
S
2
S
3
S
4
1 1 1 0 0
Etat initial
Aprs une impulsion d'horloge


- Dcaler une information de la gauche vers la droite. Le contenu de la bascule de rang i est transmis celle de rang
i +1 chaque impulsion d'horloge.

Exemple :

1 1 1 0 0
S
0
S
1
S
2
S
3
S
4
1 1 1 0
Etat initial
Aprs une impulsion d'horloge
ESG
ESG



La sortie S
0
de la premire bascule prend alors la valeur de l'entre du registre appel entre srie gauche (ESG).

- Dcaler une information de la droite vers la gauche. Le fonctionnement est semblable celui dcrit ci-dessus en
inversant le sens d'volution des lments binaires de chaque sortie. La bascule de rang i prend la valeur de la sortie
i +1 chaque impulsion d'horloge.

Exemple :

1 1 1 0 0
S
0
S
1
S
2
S
3
S
4
1 1 0
Etat initial
Aprs une impulsion d'horloge
ESD
ESD
0


Cette fois c'est la valeur de l'entre srie droite (ESD) qui est inscrite dans la dernire bascule S
4
.

1.3. Constitution d'un registre

Pour assurer correctement la fonction de dcalage, un registre doit comporter des cellules constitues de bascules de
type matre-esclave ou dclenchement par front (sans quoi le dcalage n'est pas contrl).

Le dcalage n'est pas la seule fonction que doit pouvoir accomplir un registre.
Electronique Numrique 4. Logique squentielle 2

4. 3
1.3.1. La fonction dcalage droite

La bascule D de rang i doit recopier la sortie de la bascule de rang i - 1.
Son entre D doit donc tre connecte la sortie i - 1. Le schma de l'interconnexion entre les bascules est donn ci-
aprs :

D
0
Q
0
C
D
1
C
D
i
Q
i
C
D
C
Q
1 i + 1
Q
i + 1
D
n
Q
n
C
Horloge
ESG


1.3.2. La fonction dcalage gauche

Si l'on suppose que la position de chaque bascule est fixe, c'est la cblage qui doit raliser le dcalage vers la gauche.
Par consquent, l'entre D de la bascule de rang i est relie la sortie de rang i + 1 :

Horloge
D
0
Q
0
C
D
i - 1
Q
i - 1
D
i + 1
Q
i + 1
C
D
i
Q
i
C C
D
n
Q
n
C
ESD


1.3.3. La fonction mmoire

Suivant la nature de la bascule utilise dans chaque cellule, la fonction mmoire peut se raliser de diffrentes faons.
La table suivante donne la combinaison des entres des bascules qui ralise la fonction mmoire :

Type Entres
RS R = S = 0
JK J = K = 0
ou
J = K = Q
D D = Q


Une autre solution consiste interdire l'action de l'horloge en intercalant une porte ET en srie. Cette dernire solution
est proscrire car elle cre un dcalage entre les diffrents signaux d'horloge d'un mme systme cause du temps de
propagation travers la porte ET (phnomne de Skew). Le fonctionnement du registre nest alors plus synchrone avec
les autres circuits du systme.

D Q
C
D Q
C
D Q
C
D Q
C
Horloge
&
Mmoire si A = 0
Dcalage si A = 1
A

Electronique Numrique 4. Logique squentielle 2

4. 4
1.3.4. Ecriture asynchrone

Il faut utiliser les entres asynchrones (entres prioritaires PreSet PRE de mise 1 et Clear CLR de mise 0) de chaque
bascule pour forcer l'information qui doit tre crite.
Le forage ne doit se faire qu'au moment de l'criture, ce qui signifie qu'il est ncessaire d'ajouter des circuits chaque
bascule de faon synchroniser les entres de forage par un ordre particulier gnralement appel ordre d'criture ou
de chargement (LOAD).

La commande d'criture est dans ce cas gnralement asynchrone. Le principe de la synchronisation consiste
transformer une bascule asynchrone en une bascule D latch. Le schma correspondant est donn par les figures ci-aprs
:


1
&
& PRE
CLR
d
Ordre
d'criture

&
&
PRE
d
Ordre
d'criture
CLR

Cas dune bascule sensible sur les niveaux 1 des entres asynchrones. Cas dune bascule sensible sur les niveaux 0 des entres asynchrones.

On remarque que l'utilisation d'un oprateur NAND permet la fois la synchronisation avec l'ordre d'criture et la
complmentation de l'information d'entre d.

1.3.5. L'criture synchrone

La sortie d'une bascule D recopie son entre au moment de la phase active de l'horloge. Pour provoquer l'criture d'une
donne en synchronisme avec l'horloge il faut placer cette donne sur l'entre D de la bascule.

d
Horloge
Commande d'criture ( )
ou de dcalage ( )
D Q
C C
D Q


1.3.6. L'initialisation

Cette initialisation consiste imposer pour toutes les bascules du registre la mme valeur, en gnral 0, l'aide d'une
commande asynchrone.

Le schma d'un registre disposant d'une remise zro RAZ gnrale est donn par la figure ci-aprs :

D Q
C
D Q
C
D Q
C
1
RAZ
Entre Srie
Horloge
CLR CLR CLR

Electronique Numrique 4. Logique squentielle 2

4. 5
1.3.7. Schma d'un registre universel

Pour permettre la ralisation de l'une des fonctions possibles du registre, l'interconnexion entre les bascules doit tre
modifie. Le choix de cette interconnexion est facilement ralis en utilisant un circuit multiplexeur devant chaque
entre D des bascules. Le schma d'un systme commercialis est donn par la figure suivante.
On distingue facilement les multiplexeurs ralisant la slection des interconnexions et le blocage de l'horloge pour
raliser la fonction mmoire. Ce circuit dispose galement d'une remise zro globale pour une ventuelle initialisation.
R S
CK
R S
CK
R S
CK
R S
CK
R S
CK
R S
CK
R S
CK
R S
CK
horloge
entre srie gauche
S
1
S
2
A
Q
A
B
C
D
E
F
G
H
entre srie droite
RAZ
Q
B
Q
C
Q
D
Q
E
Q
F
Q
G
Q
H

Electronique Numrique 4. Logique squentielle 2

4. 6
2. LES COMPTEURS (gnralisation de la notion de registre)
Un compteur est un ensemble de bascules dont les sorties forment un mot binaire et qui compte dans une squence
donne chaque coup d'horloge. Il est reprsent par un automate dtats fini encore appel machines dtats : cest
lhorloge qui fait passer dun tat au suivant, contrairement au squenceur dont les changements dtat sont soumis
aussi des actions et des transitions.

2.1. Prsentation
Les compteurs sont des lments essentiels de logique squentielle ; ils permettent en effet d'tablir une relation d'ordre
de succession d'vnements.
Leur emploi ne se limite pas, loin de l, aux systmes arithmtiques. Ils sont utiles partout o il est souhaitable de
dfinir facilement une suite d'tats.
L'lment de base des compteurs est, comme pour les registres, une bascule. L'tat du compteur est dfini par le nombre
binaire form avec l'ensemble des sorties des bascules.
La synthse d'un compteur consiste dfinir les niveaux logiques des commandes des bascules pour assurer le passage
successif d'un tat l'autre suivant l'ordre du cycle prvu (chelle de comptage).

Ils sont classs en deux catgories suivant leur mode de fonctionnement.

- Les compteurs asynchrones ou compteurs srie. La caractristique principale des compteurs asynchrones est la
propagation en cascade de l'ordre de changement d'tat des bascules. L'horloge synchronise la 1re bascule, dont la
sortie va synchroniser la bascule suivante.

- Les compteurs synchrones ou compteurs parallles. Le signal d'horloge synchronise toutes les bascules
simultanment.

2.2. Les compteurs asynchrones
Dans un compteur asynchrone, l'horloge dclenche la bascule B
1
dont la sortie sert de signal d'horloge la bascule B
2
.
Plus gnralement, le signal d'horloge d'une bascule B
i
est issu d'une combinaison logique des sorties des bascules
j
B
(avec j infrieur i).
Comme les sorties changent en cascade aprs le signal d'horloge, il va exister un dsynchronisme dans l'volution des
sorties des bascules. Ceci justifie le nom de ces compteurs.

2.2.1. Compteur binaire
C'est le plus simple des compteurs asynchrones : les sorties des bascules qui le composent voluent, au rythme de
l'horloge, de manire reprsenter la succession croissante des nombres exprims en base 2 (binaire pur).

Ex.: Compteur binaire 4 bits :
Les retards ne sont pas reprsents pour des raisons de lisibilit.
Tous les tats possibles (16) sont ici prsents dans lautomate mais on peut interrompre la squence du compteur.

t
Horloge
t
A : Sortie Bascule
B
1
( LSB )
t
B : Sortie Bascule
B
2
t
C : Sortie Bascule
B
3
t
D : Sortie Bascule
B
4
( MSB )
t
0 1 2 3 4 5 6 7 8 9
N
10
0 1 0 1 0 1 0 1 0 1 0
0 0 1 1 0 1 0 1 0 1 0
0 0 0 0 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 1 1 1
B
1
B
2
B
3
B
4
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
. . . .
D C B A N
0
1
2
3
4
5
6
7
15 1 1 1 1
. . . .

Temps de propagation non reprsents
Si l'on affecte les poids 1, 2, 4, 8 respectivement aux sorties A, B, C, D des bascules B B B B
1 2 3 4
, , , , le nombre binaire
ainsi reprsent suit l'ordre croissant de 0 15.
Un compteur binaire m bits compte donc de 0
1
2
m
.
Electronique Numrique 4. Logique squentielle 2

4. 7
On remarque facilement que la premire bascule B
1
(A) change d'tat chaque impulsion d'horloge, que la sortie B
change d'tat chaque fois que la sortie A prsente une transition descendante (1 0) et ainsi de suite. En d'autres
termes, la priode de la sortie A est gale au double de la priode d'horloge, la priode de B est gale 2 fois celle de la
sortie A, etc ...
Ceci est facilement ralis en utilisant des bascules cbles en type T, par exemple des bascules JK avec J = K = 1.

Rappel : Bascule JK cble en Diviseur par 2 (fonctionnement type T)


J
K
1
1
H
Q
B
1
Q

H
Q
t
t



Le schma d'un compteur binaire est dans ce cas :

J
K
1
1
Horloge
J
K
B
4
J
K
B
2
J
K
B
3
A B
1
1 1
1
1
1
C D
Q
1
Q
2
Q
3
Q
4
B
1


Afin d'illustrer le dsynchronisme qui apparat entre les sorties, examinons la transition entre 7 et 8. Ce cas est
particulirement perturb puisque toutes les sorties changent.

t
t
t
7 7 6 4 0 8
Etats transitoires
t Horloge
B
C
D
t
A


La structure en cascade implique l'accumulation des retards entre la transition descendante de l'horloge et la
stabilisation des sorties des bascules.

Comme les sorties changent les unes aprs les autres, il apparat des tats transitoires indsirables.
Sur le chronogramme ci-dessus, ces diffrents tats sont reprs par leur quivalent dcimal.

Pour un compteur asynchrone, si n bascules changent d'tat aprs une impulsion d'horloge, il existe (n -1) tats
transitoires.
Electronique Numrique 4. Logique squentielle 2

4. 8
2.2.2. Compteur modulo N (Interruption de la squence)

On appelle compteur modulo N, un compteur dcrivant la succession des nombres binaires compris entre 0 et N -1, c'est
dire la suite des chiffres d'une base N traduite en binaire.

Par exemple, pour N = 10, la succession des tats du compteur est donne par le cycle suivant (N = 10 tats), alors que
le cycle complet non interrompu compte jusqu 16 tats :
0
1
2
3
4
5
6
7
8
9


Pour raliser un tel compteur il existe deux types de solutions :

- Un rebouclage asynchrone,
- Un conditionnement des entres des bascules.

Rebouclage asynchrone

Le compteur modulo N est dans ce cas considr comme un compteur binaire m bits comptant de 0
1
2
m
dont le
cycle est interrompu
1
2

=
m
N . En effet, entre 0 et 9 par exemple, la succession des tats est identique pour les deux
types de compteurs : compteur binaire 4 bits et compteur modulo 10.

Si, dans l'tat 9, une impulsion d'horloge est applique au compteur, celui-ci inscrira la combinaison 10 en binaire. Cet
tat est indsirable. Par consquent, ds qu'il est dtect par dcodage, une remise zro (Clear CLR) est
automatiquement impose au compteur pour satisfaire le cyle voulu. Ce qui donne le schma suivant :

C
Q
1
C
Q
2
C
Q
3
C
Q
4
&
CLR CLR CLR CLR
A B C D
Horloge
J
K
1
1
J
K
1
1
J
K
1
1
J
K
1
1
B
4
B
2
B
3
B
1


Remarques :

- Le dcodage de 10 se limite vrifier que B et D sont 1, les combinaisons 11 15 ne devant pas apparatre en
fonctionnement normal.
- Il ne faut pas limiter la remise zro aux seules bascules qui sont 1. En effet, si seules les bascules B et D sont
remises 0, le changement d'tat de B provoque le changement d'tat de C.
- Enfin cette solution ne donne satisfaction que si toutes les bascules ont des temps de raction semblables.
Electronique Numrique 4. Logique squentielle 2

4. 9
Conditionnement des entres

Dans un compteur asynchrone il existe deux possibilits de commander une bascule :

- par action sur l'horloge,
- par action sur les entres des bascules.

La succession des tats dans lexemple prcdent (N = 10) est donn par la table suivante dans laquelle le passage d'une
ligne la suivante est conditionn par une impulsion d'horloge.

N D C B A
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
0 0 0 0 0


La bascule A change d'tat chaque impulsion d'horloge. Elle est donc cble en type T.
La bascule B change d'tat sur chaque transition 1 0 de la sortie A sauf pour la transition 9 0.
Dans ce cas particulier il faut agir sur les entres de la bascule pour qu'elle ne change pas d'tat malgr la transistion
active sur son horloge.

Pour tous les tats de 0 7 inclus il faut imprativement que les entres soient telles que le fonctionnement
correspondant soit du type T.
Pour la combinaison 9 il faut conditionner la bascule pour qu'elle reste en mmoire.
Pour la combinaison 8 il existe un degr de libert.
Pour une bascule JK par exemple, la solution consiste imposer les entres :
J = K = 1 pour les tats 0 7, et J = K = 0 pour l'tat 9 et ventuellement 8

La bascule C change d'tat chaque transition ngative de la sortie B.
Enfin la bascule D ne peut pas tre commande uniquement par la sortie C. En effet, cette sortie prsente une transition
ngative qui va provoquer le passage de 7 8 mais il n'existe pas d'autre transition ngative pour le changement de 9
0.
Il faut donc trouver un autre signal qui prsente une transition ngative aprs l'tat 9 et aprs l'tat 7, pour commander
la bascule de sortie D. Le signal fabriqu avec l'quation logique C + DA satisfait cette condition.

t
C + DA
0 1 2 3 4 5 6 7 8 9 0 1


Le schma du compteur modulo 10 ralis par la mthode du conditionnement des entres est le suivant :

J
H
C
K
1
1
J
C
K
J
C
K
J
C
K
&
1
1
1
1
A B C D
D
1

Electronique Numrique 4. Logique squentielle 2

4. 10
2.3. Les compteurs synchrones
Les compteurs synchrones permettent d'une part d'liminer les tats transitoires des sorties et d'autre part de rendre
possible lexcution dun cycle quelconque. Pour satisfaire ces exigences et en particulier la premire, il est
indispensable que toutes les bascules soient synchronises par le mme signal : le signal d'horloge. En consquence, il
ne reste plus qu'un seul degr de libert pour conditionner l'volution de chaque bascule. Les entres synchrones de
chaque bascule doivent tre calcules pour que le compteur suive la succession d'tat prvue.

La synthse dun compteur synchrone, qui consiste concevoir un systme squentiel partir du cycle de fonctionnement souhait, peut tre effectue
par exemple par la mthode de Marcus.

Exemple : Raliser la squence suivante avec des bascules JK : N = 0, 8, 12, 14, 7, 11, 13, 6, 3, 9, 4, 10, 5, 2, 1, 0, ...

Compteur 15 tats ( 4 bits A,B,C,D 4 bascules de sorties respectives A,B,C,D)

Ces nombres dcimaux s'crivent en binaire avec 4 bits. En consquence, cette squence impose lutilisation de quatre
bascules, do la table suivante (utilisant la table des transitions dune bascule JK et o ABCD sont codes en code BCD) :

A B C D
Entres
J
A
K
A
J
B
K
B
J
C
K
C
J
D
K
D
0 0 0 0 0
8 1 0 0 0
12 1 1 0 0
1 1 1 0 14
7 0 1 1 1
11 1 0 1 1
13 1 1 0 1
6 0 1 1 0
3 0 0 1 1
9 1 0 0 1
4 0 1 0 0
10 1 0 1 0
5 0 1 0 1
2 0 0 1 0
1 0 0 0 1
1 0 0 0
0 1 0 0
0 0 1 0
1 0 0 1
1 1 0 0
0 1 1 0
0 1 1 1
0 1 0 1
0 1 0 1
1 1 0 1
1 1 0 1
1 1 1 1
1 1 1 0
1 0 1 0
0 0 1 0
Sorties
N
Table des transitions Bascule JK (Synthse) - (Horloge active)




Transition Qn-1 Qn J K
0 0 0 X
0 1 1 X
1 1 X 0
1 0 X 1
Rappel
X X X X
X X X X
X X X X
X X X X
X X X X
X X X X
X X X X
X X X X
X
X
X X
X
X
X
X
X
X
X
X
X
X
X
X
X
X X
X X
X X
X X
X
X
X

X

: tat indiffrent (0 ou 1) galement not 0

La combinaison 1111 (15 en dcimal) n'apparat jamais dans la squence dsire. C'est donc une combinaison
disponible pour la simplification et dans les tableaux de Karnaugh cette case sera remplie avec un X.

Squelette du circuit (incomplet) : Synthse avec des bascules JK negative edge triggered par exemple
(lutilisation de bascules JK positive edge triggered est reviendrait au mme)

Horloge
J
K
Q
A
A
A ...
...
J
K
Q
B
B
B ...
...
J
K
Q
C
C
C ...
...
J
K
Q
D
D
D ...
...
A B C D

Aprs simplification des tats quivalents et des fonctions logiques, les entres J et K des bascules ont pour quation
(8 tables de Karnaugh dentres A, B , C , D et de sortie
A
J ,
A
K ,
B
J ,
B
K , ...,
D
J ,
D
K ) :

Exemple : Calcul de
A
J /
A
K : Calcul de
A
J :
(double table de Karnaugh) (simple table de Karnaugh)

AB
00 01
00
01
1X 10
0X 0X
CD
11 10
X0 X0
X1 X1
11
10
1X 1X XX X0
0X 0X X1 X1
J
A

K
A
/

AB
00 01
00
01
1 1
0 0
CD
11 10
X X
X X
11
10
1 1 X X
0 0 X X
J
A
D C CD D C J
A
= + =

J C D
J A
J B
J C
A
B
C
D
=
=
=
=

K C D
K A
K B
K C
A
B
C
D
=
=
=
=

Electronique Numrique 4. Logique squentielle 2

4. 11

Circuit (final)

J Q
C
J Q
C
J Q
C
J Q
C
1
= 1
Horloge
A
K
B
K
C
K
D
K
A
A
B
B C
C D
D


Automate des tats du compteur

On retrouve bien le cycle voulu :
N = 0, 8, 12, 14, 7, 11, 13, 6, 3, 9, 4, 10, 5, 2, 1, 0, ...
avec la squence des tats du compteur :
ABCD = 00010001100111001111011011000111001010010100101001000010000

Si, la mise sous tension, le compteur se positionne dans la combinaison interdite (15 1111) compte tenu du schma,
il y restera malgr les impulsions d'horloge.

Il faut donc prvoir une action manuelle ou automatique pour retourner dans le cycle (utilisation des entres
asynchrones dinitialisation S et R dune bascule JK).

J
R
Q
C
J
R
Q
C
J
R
Q
C
J
R
Q
C
1
= 1
&
Dcodage de
(15)
10
RAZ Dbut de cycle
CLR
Horloge
A
K
B
K
C
K
D
K
pour rendre le
compteur
autocorrecteur
A
A
B
B C
C D
D
S S S S

Un circuit de dcodage de la combinaison interdite permet de remettre le compteur dans son cycle (compteur
autocorrecteur) si par malheur cette combinaison apparaissait. Dans le schma ci-dessus la remise en cycle est faite
par une remise zro de toutes les bascules puisque la combinaison ( ) 0
10
appartient au cycle.

Initialisation dun compteur

Ltat initial dun compteur est dfini laide des entres asynchrones dinitialisation (Preset et Clear).

2.4. Mise en cascade de compteur
(ex : chronomtre plusieurs digits, chaque digit est un compteur les compteurs doivent tre connects entre eux
mise en cascade)

Les compteurs commercialiss dlivrent bien videmment la valeur contenue dans le compteur, et ventuellement une
information supplmentaire permettant la mise en cascade de plusieurs botiers, soit RCE cette sortie (galement
appele TC : Terminal Count).

La commande des diffrents botiers de comptage peut se faire suivant deux grands principes :

- La mise en cascade asynchrone. La sortie RCE (ripple count enable) d'un botier sert d'horloge du botier suivant.

A B C D
RCE CP
En
A B C D
RCE CP
En
A B C D
RCE CP
En
Up / Down
Horloge
Autorisation
Comptage
' 0 ' ' 0 '

La consquence de la mise en cascade asynchrone est que les sorties du second botier sont dcales dans le temps par
rapport aux sorties du premier.
Electronique Numrique 4. Logique squentielle 2

4. 12
- La mise en cascade synchrone. Comme l'horloge est commune tous les botiers, il faut conditionner l'volution du
second botier par la commande (En ou CE) d'autorisation de comptage.

A B C D
RCE CP
En
A B C D
RCE CP
En
A B C D
RCE CP
En
Up / Down
Horloge
' 0 '


3. LES SEQUENCEURS (gnralisation de la notion de compteur)

3.1. Prsentation

Les squenceurs sont des systmes squentiels dont l'tat volue en fonction d'vnements (qui peuvent tre divers :
horloge, contact, interruption ... et non plus seulement lhorloge comme pour les compteurs) appels actions. La
squence des tats et des transitions marquant les changements d'tats (les actions) s'appelle un automate ou squenceur
ou encore machine dtats. (Ex.: distributeur de boissons)

On trouve principalement des squenceurs :

- Dans les automatismes ou processus automatiques industriels o ils jouent le rle d'un automate capable de diriger les
oprations qui doivent se drouler dans un ordre prvu l'avance;

- Dans les calculateurs o ils sont chargs d'un rle d'organisateur de la succession des oprations raliser selon un
programme prtabli.

Un squenceur n'est qu'exceptionnellement seul. En gnral il commande un systme. Dans la plupart des cas, ce
dernier l'informe de son tat, par exemple la fin d'excution d'un tche, la prsence d'un dbordement ou d'un rsultat
nul, etc . Le squenceur doit pouvoir, si ncessaire, prendre des dcisions suivant l'tat du systme.

Squenceur
Systme
sous contrle


3.2. Synthse d'un squenceur (cbl bascules JK)

Exemple : Train lectrique

Soit un train lectrique devant effectuer 3 boucles A, B, C selectionnables par aiguillages p et q. Le passage dans une
boucle est dtect par un contact (T) remontant aprs le passage du train (le train roule en marche avant uniquement
(pas de marche arrire) ou peut aussi se trouver larrt).

T
a
A
p q
Dpart
B
T
b
C T
c

Electronique Numrique 4. Logique squentielle 2

4. 13
Aiguillages :

p
q
=

0
1
:
:
non devie
devie

Contacts : (T)

a
b
c
=

0
1
:
:
repos
passage du train(retombee a 0 apres passage)

Etat initial :
Train au dpart sorties p et q 0

Si on change ditinraire, il faut refaire toute la synthse ( nouveau circuit base de bascules JK) solution
programmable o seul le programme change.

Les contacts a, b, c sont exclusifs (le train ne peut tre la fois en a, en b et en c).

3.2.0. Automate (des tats) Graphe de fluence pour litinraire dsir :
A, B, C



1
2
3
X00
0X0
100
1X
010
01
Sorties
p q
00
Etat
Transition d'tat abc
001
00X

Note : Il y a changement dtat chaque fois que les sorties changent. Les tats sont lis aux sorties. Les transitions sont
lies aux entres : une modification des entres provoque (ventuellement) une transition dtat (modification des sorties).

Etude pour un second itinraire dsir :
A, B, B, C


3.2.1. Automate (des tats) Graphe de fluence :

Entres du systme : a, b, c
Sorties du systme : p, q


1
2
3
4
X00
010
000
100
1X
010
1X
1X
000
010
01
Sorties
p q
00
Etat
Transition d'tat abc
001
0X0 5
00X
(X : 0 ou 1 : sans importance)
Electronique Numrique 4. Logique squentielle 2

4. 14
3.2.2. Table des tats :

tat
transition
c
b
a
1 2
2 2 3
4
4
5 5
5
3
1
1
1
2
3
4
5
a b c
000 100 110 010 011 111 101 001
Sorties
p q
0 0
1
1
1
0 1
Etat
rsultant
X
X
X

Les cases vides sont des X (cases indiffrentes)

3.2.3. Simplification de la table : (Recherche des tats quivalents)

2 tats sont quivalents s'ils ont mmes sorties et mmes transitions.

Etats pouvant tre quivalents : 2 -3 si 2 - 4 le sont
2 - 4 si 3 - 5 le sont
3 - 4 si 3 - 5 le sont
or 3 et 5 ne sont pas quivalents 2 - 4 ne le sont pas
2 - 3 ne le sont pas
pas d'tats quivalents pas de simplification de la table (la simplification aurait conduit remplacer dans la table
les tats quivalents un tat donn par cet tat donn et runir les transitions correspondantes)

3.2.4. Attribution des variables de sortie des bascules ( ) Q
i
: table des adresses

On a d'autant plus besoin de variables Q
i
(sorties de bascules) qu'il y a d'tats adresser dans la proportion :


n tats adresser
m variables Q
i
n = 2
m

On doit donc avoir suffisamment de variables Q
i
pour adresser tous les tats :
m
n 2 .

Ici : n = 5 au moins m = 3 variables sont ncessaires : Q Q Q
2 1 0
pour le codage des tats.

c
b
a
Q
1
Q
2
Q
0
0 0 0 0 0 1
0 0 1 0 0 1 0 1 1
0 0 0
0 1 0 0 1 1
0 1 0
1 1 0 1 1 0
1 1 0
0 0 0
p q
0 0
1
1
1
0 1
0 0 0 1
0 0 1 2
0 1 1 3
0 1 0 4
1 1 0 5
tat
transition
X
X
X

Electronique Numrique 4. Logique squentielle 2

4. 15
Exemple Synthse avec des bascules J K synchrones (possibilit aussi avec des bascules asynchrones)


3.2.5. Table de Karnaugh des bascules J K
i i
(1 bascule JK par variable Q)
3 variables Q 3 bascules J K : 3 doubles tables de Karnaugh :
0 0
K J ,
1 1
K J , J K
2 2


Ex : Table de Karnaugh de J K
2 2
( bit MSB) pour la sortie
2
Q

rappel : transition J K
0 0
0 1
1 1
1 0
0
1
0
1
X
X
X
X


c
b
a
Q
1
Q
2
Q
0
0 0
0 0 0
0
0 0
0 1
1 0 0
J
2
K
2
X X
X X
X
X
X
X
X
X
X
X
X

c b a Q Q Q K
c b a Q Q Q J
0 1 2 2
0 1 2 2
=
=


sans simplifier au maximum car ici la table est 6 variables (>4) mthode de Karnaugh inutilisable.

J
0
Q
0
K
0
J
1
Q
1
K
1
J
2
Q
2
K
2
H


Entres Sorties
a
b
c
. . .
. . .
. . .

p
q
. . .
. . .


3.2.6. Equation des sorties :
Daprs la table 3.2.4. :
Q
1
Q
0
Q
2
00
0 1
p q
X X X X X X
1 X 1 X 1 X

= +
=
p Q Q Q
q Q
0 1 2
1

Electronique Numrique 4. Logique squentielle 2

4. 16
4 ANNEXE. LOGIQUE SEQUENTIELLE 2

LES SEQUENCEURS PROGRAMMABLES

1. Utilisation d'un compteur programmable

Toute transition d'tat est du type gnral :

n
n
+1
1 1
m
1 1 1
0 1
1 1
0 1
1 0

(inhibition)
Enable RAZ Load
Data
(chargement) (donnes)
T
Compteur
programmable


Commandes appliques : - on reste dans l'tat n : enable
- on passe n + 1 : rien (fonctionnement normal du compteur) horloge
- on passe m : load data
- initialisation du compteur : RAZ

Plus de table de Karnaugh calculer, ni entres J K, mais il faut programmer les bonnes instructions sur les entres :


Enable
RAZ
Load
Data


1.1. Codage et dcodage des actions

- actions sur les sorties :
mise 0
mise 1
il suffit d'un bit


mais il faut prciser sur quelle sortie porte l'action :

code opration (1 bit) oprande
instruction


code opration : 1 : mise 1
0 : mise 0
oprande : 0 0 : sortie s
1

0 1 : sortie s
2

1 0 : sortie s
3

1 1 : sortie s
4

(exemple 4 sorties)
Electronique Numrique 4. Logique squentielle 2

4. 17
Ex : mise 1 de s
2

dcodage de :

dcodeur dcodeur
mise 0
mise 1
S
R
s
1
1 0 1
s
1
s
2
s
3
s
4
.
.
.
s
2
s
3
s
4

Architecture interne du squenceur programmable

- oprations - inhibition conditionnelle
- rupture de squence (load) conditionnelle ou inconditionelle
- mise 0 conditionnelle ou inconditionelle

5 oprations : 3 bits pour le code opration

opration : 0 0 0 mise 0 d'une sortie
0 0 1 mise 1 d'une sortie
0 1 0 inhibition conditionnelle
0 1 1 rupture conditionnelle
1 0 0 rupture inconditionnelle
1 0 1 RAZ conditionnelle
1 1 0 RAZ inconditionnelle

oprande : sortie
condition
adresse de rupture

Ex : Rupture de squence l'adresse 0 1 1 0 (conditionnel)

dcodage de :
0 1 1 0 1 0 1 1 0
condition code sur 2 bits


dcodeur
dcod dcodeur
dcodeur
0 1
MUX
n
adresse de rupture
Data
Load Compteur
programmable
entres
d'adresse
saut
conditionnel
0 1 0 1 1 0 1 1 0

Electronique Numrique 4. Logique squentielle 2

4. 18
2. Application sur l'exemple du train lectrique

1
mise 0 de p
2
mise 0 de q
3
a = 0
a = 1
inhibition conditionnelle a = 0
mise 1 de p
4
b = 0 inhibition conditionnelle b = 0
b = 1
b = 1 inhibition conditionnelle b = 1
b = 0
b = 0
inhibition conditionnelle b = 0
7
8
mise 0 de p
mise 1 de q
9
10
11
c = 0 inhibition conditionnelle c = 0
saut inconditionnel 2
5
6

codage :
actions :
Mise 0 de sorties
mnmorique :
MAZ
code binaire :
Mise 1 de sorties MAU
0 0
0 1
Inhibition conditionnelle INH 1 0
Saut Inconditionnel JMP 1 1
oprandes :
Sortie p P
Sortie q Q
0 0
0 1
conditions :
a = 0
b = 0
A 0
B 0
0 0
0 1
c = 0
b = 1
C 0
B 1
1 0
1 1
adresse de saut 2 2 0 0



Programme :
mnmorique
MAZ
code binaire
MAZ
0 0 0 0
0 0 0 1
INH 1 0 0 0
0 1 0 0
Q
A 0
B 0
C 0
tat
0 0 0 0
0 0 0 1
P
0 0 1 0
MAU P 0 0 1 1
INH 0 1 0 0 1 0 0 1
B 1 INH 0 1 0 1 1 0 1 1
B 0 INH 0 1 1 0 1 0 0 1
MAZ P 0 1 1 1 0 0 0 0
MAU Q 1 0 0 0 0 1 0 1
INH 1 0 0 1 1 0 1 0
JMP 2 1 0 1 0 1 1 0 0

Electronique Numrique 4. Logique squentielle 2

4. 19
Matrialisation :

mmoire
Q
3
Q
2
Q
1
Q
0
code
opr.
oprande instruction
a b c
dcodeur
MUX
Mise 0
Mise 1
inhibition
saut
n
S
R
p
Enable
Load
Data
Compteur
programmable
Q
0
Q
1
Q
2
Q
3
4



LES MICROPROCESSEURS

3. Utilisation d'un microprocesseur

Structure

Bus d'adresses
H
Horloge
Unit de
Contrle
ALU
Dcodeur
Registre
d'instruction
Bus de donnes
R W Ad
Mmoire
Accumu-
lateur
Compteur
ordinal

Electronique Numrique 4. Logique squentielle 2

4. 20
Circuits associs

Bus
d'a-
dres-
-ses
p
Bus
de
don-
-nes
p ( micro - processeur)
Mmoire
ROM
Mmoire
RAM
Interfaces
d'entres /
sorties
Entres Sorties

Le programme excuter (code machine) peut tre dvelopp en langage assembleur (codes mnmoniques symbolisant
les codes binaires) ou en langage volu soumis un compilateur.

Les microproceseurs les plus rpandus sont notamment base dune architecture 32 bits :
. Pentium de la famille INTEL,
. srie 68000 de la famille MOTOROLA.

Des processeurs spcialiss ont des performances (puissance, rapidit ...) optimales pour des applications ddies :
.Traitement du signal : processeur TMS de TEXAS INSTRUMENTS
.Graphisme ...


LES MICROCONTROLEURS

4. Utilisation d'un microcontrleur
Un microcontrleur est un mini-systme, constitu de l'ensemble microprocesseur avec RAM, ROM, EEPROM,
convertisseurs CAN/CNA et interfaces ( gestionnaires) d'Entres/Sorties sries/parallles, intgr dans une mme
structure (une mme puce, un mme circuit de silicium). Des programmes peuvent tre dvelopps sur mulateur
(systmes de dveloppement) en langage assembleur du microcontrleur (ou mme en langage volu laide dun
compilateur), et excuts autour dun systme dexploitation log galement dans la mmoire du microcontrleur.

Du fait de la richesse de sa constitution, un microcontrleur est bien un mini systme et peut tre envisag comme une
solution gnrale une majorit dapplications analogiques, numriques, mixtes, informatiques , embarques ... ne
ncessitant pas une vitesse extrme, pour laquelle il est prfrable dutiliser des circuits cbls, ou la rigueur, des
circuits programmables FPGA.

Les microcontrleurs les plus rpandus sont notamment base dune architecture 8 bits :
. 80C51 de la famille INTEL,
. 68HC11 de la famille MOTOROLA,
. les microcontrleurs PICS intressants pour leurs faibles encombrement et cot.

LES COMPOSANTS PROGRAMMABLES

5. Les composants programmables

Lutilisation de composants programmables (FPGA), programmables via un compilateur VHDL, prsente lavantage
par rapport aux circuits cbls (bascules, portes logiques) de la souplesse tout en nayant pas linconvnient de lenteur
dexcution des autres solutions programmables puisque le composant programmable nexcute pas un programme
mais est constitu de matrices ET et OU programmes volont en bascules et portes logiques (synthse effectue par
le compilateur VHDL).
Electronique Numrique 4. Logique squentielle 2

4. 21
6. Conclusion
Logique cble utilisation de portes combinatoires et squentielles.
- Avantage : rapidit du sytme.
- Inconvnient : structure fige manque de souplesse pour une modification ou adaptation du systme.

Logique programme utilisation de squenceur (compteur), d'un microprocesseur, dun microcontrleur ou dun
composant programmable (FPGA ...).
- Avantage : plus souple modifier et concevoir.
- Inconvnient : plus lent que la logique cble cause du temps de dcodage des instructions requis.
__________
Electronique Numrique TD 4. Logique squentielle 2

TD 4. 1
TD 4. LOGIQUE SEQUENTIELLE 2

1. Registres (Analyse)
Analyser le fonctionnement du montage suivant et complter le chronogramme : (Q
0
et Q
1
sont ltat initial 0)


H
C
D
Q
0
Q
1
S
C
D
&
E
0
1
H
t
E
t
t
S
t
t
Q
0
Q
1
1 2 3 4 5 6


Rappel
Bascule D > 0 edge triggered

D
C
Q
Q
D C Q
n
Q
n - 1
X X Mmoire
0
1
0
1
}Recopie
C : Horloge

1 D
2 D
1 Q
1 Q
2 Q
2 Q
Exemple 74XX74
S
C 1
R
1 D
1 PRE
1 CLK
1 CLR
2 PRE
2 CLK
2 CLR


2. Compteur asynchrone (Analyse)
- Donner la succession des tats du compteur suivant, celui-ci tant suppos ltat Q
2
Q
1
Q
0
= 000 initialement :


Q
0
Q
1 &
1
1 K
J
C
H
K
J
C
1
Q
2
K
J
C

(les tats furtifs ne sont pas prendre en compte - leur dure est trs petite devant la priode dHorloge car due au
temps de propagation, au temps de rponse des circuits qui lui, nest jamais ngliger)

- Sagit-il dun compteur modulo 8 ? (un compteur 3 bits compte au maximum 2
3
= 8 tats possibles)
- Le compteur est-il autocorrecteur ?


Rappel

Bascule JK > 0 edge triggered

J
C
Q
Q K
K C Q
n
Q
n - 1
X X
Mmoire
0
1 0
1
}Recopie de
J
X
0
0
0 1
1 1
Q
n - 1
Q
n - 1 Complment
}
C : Horloge
J

1 K
2 K
1 Q
1 Q
2 Q
2 Q
Exemple 74XX109
S
C 1
R
1 K
1 PRE
1 CLK
1 CLR
2 PRE
2 CLK
2 CLR
1 J 1 J
2 J

Electronique Numrique TD 4. Logique squentielle 2

TD 4. 2
3. Compteur synchrone (Synthse)
a) Synthtiser un compteur 2 bits synchrone avec des bascules JK positive edge triggered, qui compte selon le cycle
suivant (Initialisation Q
1
Q
0
= 00) : Q
1
Q
0
= 00 01 11 00

Chronogramme obtenir :



0
1
H
t
t
t
Q
0
Q
1

1 2 3 4 5 6
0
1
0
0
1
1 0
0 0
1
1
0

b) Vrifier en faisant lanalyse (chronogramme)
c) Que se passe-t-il si on dmarre ltat Q
1
Q
0
= 10 ? Y-a-t-il autocorrection ?
d) Sil ny a pas autocorrection, rendre le compteur autocorrecteur en reprenant la synthse a) et en liminant les choix
xx effectus dans les tables de Karnaugh pour les forcer selon le cycle autocorrig.



Rappel : Dmarche de Synthse

1. Se demander combien dtats n dans la squence : n = 3
2. Combien de variables m de sortie utiliser : 2 2 2
1
= <

m n
m m

3. Combien de bascules JK utiliser : m
4. Schma squelette dun compteur synchrone bascules JK :
J
K
Q
0 1
Q
1
Q
J
K
H
C C
0
Q
0
J
1
J
0
K
1
K

5. Tables de Karnaugh pour dterminer les entres
i i
K J des bascules en se servant de la table des transitions dune
bascule JK :


Transition Q
n-1
Q
n
J K
0

0 0 X
0

1 1 X
1

1 X 0
1

0 X 1
Electronique Numrique TD 4. Logique squentielle 2

TD 4. 3
TD 4 ANNEXE. LOGIQUE SEQUENTIELLE 2

1. Squenceur (commande de train lectrique)
On considre un train lectrique devant effectuer 3 boucles A, B, C slectionnables par les aiguillages p et q.
Le passage dans une boucle est dtect par un contact ( T ) remontant aprs le passage du train :

T
T
T
p q
A
B C
a
b
c
Dpart
(Train en marche avant ou larrt; pas de marche arrire)

Les contacts a, b, c reprsentent les entres du systme logique, avec la convention :
a, b, c = 0 ltat de repos; a, b, c = 1 pendant le passage du train.

Les aiguillages p et q en constituent les sorties :
p, q = 0 si non dviation; p, q = 1 si dviation.

Litinraire dsir est le suivant :
A, B, B, C


avec ltat initial : Train en position de Dpart et les sorties p et q sont 0.

Etablir le graphe de fluence ( graphe des tats et ransitions) du systme et effectuer la synthse de ce systme
logique : - en utilisant des bascules JK (logique cble)
- partir dun compteur programmable (logique programme).

2. Squenceur (serrure lectronique)
On considre une serrure lectronique 3 entres x
1
, x
2
, x
3
et 2 sorties y
1
, y
2
:


x
1
x
2
x
3
y
1
y
2
Serrure

En squence, une entre x
i
ne peut tre active ( mise 1) quune seule fois.
A un instant donn, 1 seule entre x
i
est 1 la fois.

Squence reconnatre : x
1
= 1 puis x
2
= 1 puis x
3
= 1, avec passages intermdiaires par 0, soit :
x
1
x
2
x
3
= 100 010 001.
y
1
1 la fin de la squence; y
2
1 pour toute autre squence.
( 1 signifie mise 1 et stabilisation cet tat, et non passage momentan la valeur 1).

Etat initial : x
1
x
2
x
3
= 000 et y
1
y
2
= 00

Etablir le graphe de fluence ( graphe des tats et transitions) du systme et effectuer la synthse de ce systme
logique : - en utilisant des bascules JK (logique cble)
- partir dun compteur programmable (logique programme).
Electronique Numrique TD 4. Logique squentielle 2

TD 4. 4
3. Compteurs synchrones en anneau et non boucl (Analyse)

Un compteur est dit autocorrecteur si, se trouvant dans un tat hors de son cycle normal de comptage, il revient dans le
cycle, ventuellement en plusieurs coups dhologe.

1. Compteur en anneau bascules JK
Soit le compteur :


H
1
J
A
K
A
A
A 1
J
B
K
B
B
B 1
J
C
K
C
C
C 1
J
D
K
D
D
D

1. Initialis ltat 0001 = DCBA , tracer le chronogramme des signaux A B C D , , , .
2. En dduire son cycle de comptage (cycle normal de comptage) reprsent comme une machine dtats
(automate dtats finis).
3. Ltat initial du compteur nest plus prcis. Donner pour les 16 tats initiaux possibles DCBA du
compteur, ltat DCBA immdiatement futur (au coup dhorloge actif suivant ltat initial).
4. Dire si le compteur est autocorrecteur en justifiant votre rponse.

2. Compteur en anneau bascules D
Soit le compteur :


H
D
A
A
A
D
B
B
B
D
C
C
C
D
D
D
D

1. Initialis ltat 0001 = DCBA , tracer le chronogramme des signaux A B C D , , , .
2. En dduire son cycle de comptage (cycle normal de comptage) reprsent comme une machine dtats
(automate dtats finis).
3. Ltat initial du compteur nest plus prcis. Donner pour les 16 tats initiaux possibles DCBA du
compteur, ltat DCBA immdiatement futur (au coup dhorloge actif suivant ltat initial).
4. Dire si le compteur est autocorrecteur en justifiant votre rponse.

3. Compteur ouvert bascules D
Soit le compteur :


H
D
A
A
A
D
B
B
B
D
C
C
C
D
D
D
D
&

1. Initialis ltat 0001 = DCBA , tracer le chronogramme des signaux A B C D , , , .
2. En dduire son cycle de comptage (cycle normal de comptage) reprsent comme une machine dtats
(automate dtats finis).
3. Ltat initial du compteur nest plus prcis. Donner pour les 16 tats initiaux possibles DCBA du
compteur, ltat DCBA immdiatement futur (au coup dhorloge actif suivant ltat initial).
4. Dire si le compteur est autocorrecteur en justifiant votre rponse.
__________
Electronique Numrique TP 4. Logique squentielle 2

TP 4. 1

TP 4. LOGIQUE SEQUENTIELLE 2
1. Matriel ncessaire
- Oscilloscope
- Gnrateur de signaux Basses Frquences (GBF)
- Alimentation stabilise ( 2x[ 0-30 V]
&&&
_ + 1x[ 5 V]
&&&
_ )
- Multimtre
- Moniteur MS05 (plaquette de cblage)
- Cbles : - 1 T, 1 BNC-BNC, 1 BNC-Banane, 1sonde oscilloscope, 6 fils Banane, petits fils.

- Composants : - 1 Rsistances 1 k (1/4 Watt)
- 1 Rsistance 1M
- 1 Condensateur 100 nF
- 1 LED
- 1 mini-interrupteur (horloge manuelle)

Circuits logiques de la famille CMOS 4000

- 1 4049 : 6 NOT
- 2 4027 : 2 Bascules JK positive edge triggered

2. Notation du TP

Faire examiner par le professeur en fin de sance, les diffrentes parties du TP.


Rappel : Initialisation dune bascule (exemple dune bascule JK)
Les entres asynchrones a de mise 0 et mise 1 gnralement actives ltat bas (donc notes a ) sont telles que
lorsque mise 0 par ex. est active, Q est plac ltat 0 quelles que soient les entres dhorloge et de donnes J, K. Ce
sont des commandes deffacement et dinitialisation (appeles aussi Clear et Preset ou encore Reset et Set) qui peuvent
tre actives pour fixer ltat initial de la sortie et qui doivent ensuite tre inactives pour permettre le fonctionnement
normal de la bascule.
Un simple circuit RC connect lentre Preset par ex. pour fixer ltat initial Q peut tre utilis :

Cas dentres asynchrones actives ltat haut :
A laide dun circuit RC, on active lentre asynchrone un court instant au dmarrage par un niveau haut, puis on
ramne le signal asynchrone dinitialisation 0. Appliqu lentre Clear, ceci initialise Q 0, mais appliqu lentre
Preset, ceci initialise Q 1. A chaque fois lentre asynchrone non utilise est plac ltat inactif, soit ltat 0. (Le
maintien prolong dune entre asynchrone son niveau actif fixe Q constant : 0 si Clear est actif, 1 si Preset lest).

t
RC
U
V
U V e
t
RC
=


Preset
R
C
C initialement dcharg
U
= + 5 Volts
V
Q init = 1
Clear Preset
R
C
C initialement dcharg
U
= + 5 Volts
V
Q init = 0 Clear


Cas dentres asynchrones actives ltat bas :
A laide dun circuit RC, on active lentre asynchrone un court instant au dmarrage par un niveau bas, puis on ramne
le signal asynchrone dinitialisation 1. Appliqu lentre Clear , ceci initialise Q 0, mais appliqu lentre eset Pr ,
ceci initialise Q 1. A chaque fois lentre asynchrone non utilise est plac ltat inactif, soit ltat 1. (Le maintien
prolong dune entre asynchrone son niveau actif fixe Q constant : 0 si Clear est actif, 1 si eset Pr lest).


Clear
R
C
C initialement dcharg
U
= + 5 Volts
V
t
RC
U
V
U V e
t
RC
=

( ) 1

Q init = 0
Preset
V
Clear
R
C
C initialement dcharg
U
= + 5 Volts
V
Q init = 1 Preset
V


Electronique Numrique TP 4. Logique squentielle 2

TP 4. 2

Simulation (& Cblage) :
Pour des raisons de compatibilit, nutiliser que des circuits de la mme famille (famille CMOS 4000 ne pas
mlanger avec la famille TTL 74xxx).

3. Compteurs

Etude thorique

Donner la succession des tats du compteur suivant (automate des tats), avec la notation Q
2
Q
1
Q
0
, celui-ci tant
suppos l'tat initial: Q
2
Q
1
Q
0
= 000 :



J
K
Q
0 1
Q
1
Q
J
K
1 1
H
2
Q
J
K
1
1
C C C
(0)


Etude thorique - Corrig

H
Q
0
Q
1
Q
2
t
t
t
t
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
Compteur modulo 6

Etat initial : Q
2
Q
1
Q
0
= 000
Aprs la 1re impulsion de H : Q
2
Q
1
Q
0
= 001
Aprs la 2nde impulsion de H : Q
2
Q
1
Q
0
= 010
Aprs la 3me impulsion de H : Q
2
Q
1
Q
0
= 100
Aprs la 4me impulsion de H : Q
2
Q
1
Q
0
= 101
Aprs la 5me impulsion de H : Q
2
Q
1
Q
0
= 110
Aprs la 6me impulsion de H : Q
2
Q
1
Q
0
= 000 ... et le cycle recommence

Etude exprimentale

- Cblage : Raliser le cblage et cadencer laide du mini-interrupteur pour horloge.
- Simulation : Effectuer la simulation (Circuit Maker) (prendre un pulser pour horloge) en effectuant le choix de
montage (1) ou (2), quivalents au montage de base (0) :


1 1

1
1
C C C
2
Q
1
Q 0
Q
2
K
2
J
1
K
1
J
0
K
0
J
1
Q
1
q
2
q
Pulser
H
4049
1
4027 4027 4027
4049
1
(1)
1 1 1
1
C C C
2
Q
1
Q
0
Q
2
K
2
J
1
K
1
J
0
K
0
J
1
Q
1
q
2
q
Pulser
H H
(2)

Le schma initial (1) peut tre remplac par le schma (2) identique, mettant en jeu des bascules JK > 0 edge triggered (4027).
Si le choix du schma (1) est fait, lutilisation de bascules JK > 0 edge triggered (4027) implique dintercaler avant chaque entre dhorloge des bascules un
circuit inverseur 4049 (mme famille CMOS que les bascules JK).
Electronique Numrique TP 4. Logique squentielle 2

TP 4. 3

4. Synthse de Compteur 2 bits

Etude thorique

Synthtiser un compteur 2 bits synchrone avec des bascules JK positive edge triggered, qui compte selon le cycle
suivant : Q
1
Q
0
= 00 01 11 10 00


Etude thorique - Corrig

Rappel : Table de transitions dune bascule JK :

Transition Q
n-1
Q
n
J K
0

0 0 X
0

1 1 X
1

1 X 0
1

0 X 1

. Table de Karnaugh tablissant les entres J
0
K
0
de la bascule de sortie Q
0
:
J0K0
Q0
Q1
0 1
0
1
1X X0
0X X1

=
=
1 0
1 0
Q K
Q J


. Table de Karnaugh tablissant les entres J
1
K
1
de la bascule de sortie Q
1
:
J1K1
Q0
Q1
0 1
0
1
0X 1X
X1 X0

=
=
0 1
0 1
Q K
Q J

. Schma de cblage :

J
K
Q
0 1
Q
1
Q
J
K
H
C C
0
Q
0
J 1
J
0
K
1
K

H
Q
0
Q
1
t
t
t
0
0
1
1
0
1
1
0
0
0



Etude exprimentale

- Cblage : Raliser le cblage et cadencer laide du mini-interrupteur pour horloge.
- Simulation :Vrifier par la simulation (Circuit Maker) (prendre un pulser pour horloge).

5. Squenceur Train lectrique (facultatif)
a) Donner lautomate des tats correspondant la trajectoire
A, C, B

b) Effectuer la synthse avec des bascules JK synchrones positive edge triggered, permettant de commander les aiguilleurs p et q.
c) Vrifier par la simulation.


Rangement du poste de travail
Examen des diffrentes parties du TP et rangement ( 0 pour tout le TP sinon).
__________
Electronique Numrique TD 4R. Rvision Logique Combinatoire &
Squentielle

TD4R. 1
TD 4R. REVISION LOGIQUE COMBINATOIRE & SEQUENTIELLE
1. Transcodeur Grey sur 3 bits abc BCD sur 3 bits xyz
On donne la table de Transcodage permettant de passer du code BCD au code Grey sur 3 bits. Complter les tables
suivantes, afin de dterminer les quations dcrivant les sorties y et z du Transcodeur :


000
Table de Transcodage
abc
010
001
011
xyz
111
101
100
110
000
001
010
011
100
101
110
111
code Grey code BCD

y
0
1
00 01
bc
a 11 10

z
0
1
00 01
bc
a 11 10

= y = z

2. Inhibition
On rappelle la dfinition de la fonction logique Inhibition :

I
Inhibition A Y

Si le signal de contrle I vaut 0 alors le signal de sortie Y est gal au signal dentre A, sinon le signal de sortie Y vaut
0, quelle que soit la valeur du signal dentre A.
- Etablir lexpression la plus simple de la sortie Y en fonction de lentre A et du signal de contrle I

3. Dmultiplexeur 18
Les bits
0 1 2
b b b reprsentent le code BCD sur 3 bits (
2
b : MSB : bit de plus fort poids).
En choisissant le bit d la valeur 1 et en considrant le dmultiplexeur 18 ci-dessous comme systme dentre
0 1 2
b b b et de sortie
7 6 5 4 3 2 1 0
s s s s s s s s , dcrire la fonction ainsi ralise :

DEMUX
1 8
d
0
b
1
b
2
b
7
s
6
s
5
s
4
s
3
s
2
s
1
s
0
s

???
0
b
1
b
2
b
7
s
6
s
5
s
4
s
3
s
2
s
1
s
0
s


4. Multiplexeur 2 1
On rappelle la dfinition dun Multiplexeur 2 1 :

S
MUX
2 1
1
0
B
A
Y

Si le signal de contrle S vaut 0 alors le multiplexeur transmet le signal dentre A vers la sortie Y, sinon le
multiplexeur transmet le signal dentre B vers la sortie Y.
a- Exprimer la sortie Y sous la forme dune somme de produits logiques
b- Exprimer la sortie Y sous la forme dun produit de sommes logiques
Electronique Numrique TD 4R. Rvision Logique Combinatoire &
Squentielle

TD4R. 2
5. Multiplexeurs 41
On souhaite raliser le transcodeur CBAFED suivant, avec 3 multiplexeurs 41 (
0 0
, e a :LSB:bits de plus faible poids)
TRANSCODEUR
C
B
A
F
E
D

MUX
4 1
s
0
e
1
e
2
e
3
e
1
a
0
a

On donne la table du transcodeur . Complter les 3 tables suivantes dcrivant les 3 multiplexeurs 41 :

6. Synthse de Compteur synchrone 2 bits bascules JK
a- Synthtiser le compteur synchrone 2 bits avec 2 bascules JK positive edge triggered qui compte dans la squence :

00
11
0 1
Q Q
en compltant les tables suivantes ainsi que le schma ci-dessous :
J
0
K
0
0
1
0 1
Q
0
Q
1

0
1
0 1
J
1
K
1
Q
1
Q
0

=
=
0
0
K
J

=
=
1
1
K
J

H
J
0
K
0
Q
0
Q
0
J
1
K
1
Q
1
Q
1


Rappel : Table de synthse pour une bascule JK
Transition Q
n-1
Q
n
J K
0

0 0 X
0

1 1 X
1

1 X 0
1

0 X 1
b- Vrifier que la squence voulue est bien obtenue en faisant lanalyse du circuit synthtis.
Rappel : Table danalyse pour une bascule JK

J
C
Q
Q K
K C Q
n
Q
n - 1
X X
Mmoire
0
1 0
1
}Recopie de
J
X
0
0
0 1
1 1
Q
n - 1
Q
n - 1 Complment
}
C : Horloge
J

__________
C B A F E D Multiplexeur 1 Multiplexeur 2 Multiplexeur 3
0 0 0 0 1 1 s = F s = E s = D
0 0 1 0 0 0
0
a = B

0
a = B

0
a = B
0 1 0 0 0 0
1
a = A

1
a = A

1
a = A
0 1 1 1 0 0
1 0 0 0 1 1
0
e =

0
e =

0
e =
1 0 1 0 0 1
1
e =

1
e =

1
e =
1 1 0 0 0 0
2
e =

2
e =

2
e =
1 1 1 1 0 0
3
e =

3
e =

3
e =
Electronique Numrique 5. VHDL

5. 1
5. VHDL


Introduction

VHDL est labrviation de Very high speed integrated circuits Hardware Description Langage . Lambition des
concepteurs du langage est de fournir un outil de description homogne des circuits, qui permette de crer des modles
de simulation et de compiler le silicium (cest--dire synthtiser une fonction lectronique dans un circuit
programmable) partir dun programme unique.
Initialement rserv au monde des circuits numriques, VHDL est en passe dtre dune part tendu aux circuits
analogiques, et dautre part rattach un langage de plus haut niveau : SystemC.

Deux des intrts majeurs du langage sont :

Des niveaux de description trs divers : VHDL permet de reprsenter le fonctionnement dune application
tant du point de vue systme que du point de vue circuit, en descendant jusquaux oprateurs les plus lmentaires. A
chaque niveau, la description (architecture) peut tre structurelle (portrait des interconnexions entre des sous
fonctions), flot de donnes (portrait des signaux dentres/sorties) ou comportementale (langage volu).

Son aspect non propritaire : le dveloppement des circuits logiques a conduit chaque fabriquant de
composants programmables (FPGAs : Field Programmable Gate Array ...) dvelopper son propre langage de
description. VHDL est en passe de devenir le langage commun de nombreux systmes de CAO, indpendants ou lis
des producteurs de circuits, des (relativement) simples outils daide la programmation des PALs aux ASICs, en
passant par les FPGAs.

Hritier dADA, VHDL est un gros langage.



Historique

Au cours des 15 dernires annes, les mthodes de conception des fonctions numriques ont subi une volution
importante. Dans les annes 70, la majorit des applications de la logique cble taient construites autour de circuits
intgrs standard, souvent pris dans la famille TTL. Au dbut des annes 80 apparurent, paralllement, les premiers
circuits programmables par lutilisateur (PALs : Programmable Array Logic) du ct des circuits simples, et les circuits
intgrs spcifiques (ASICs : Application Specific Integrated Circuit) pour les fonctions complexes fabriques en
grande srie. La complexit de ces derniers a ncessit la cration doutils logiciels de haut niveau qui sont la
description structurelle (schmas au niveau des portes lmentaires) ce que les langages volus sont au langage
machine dans le domaine de la programmation. Les premires gnrations de circuits programmables taient conues
au moyen de simples programmes de traduction dquations logiques en table de fusibles. A lheure actuelle, lcart de
complexit entre circuits programmables et ASICs sest restreint : on trouve une gamme continue de circuits qui vont
des hritiers des premiers PALs, quivalents de quelques centaines de portes, des FPGAs (Field Programmable Gate
Array) ou des LCAs (Logic Cell Array) de quelques dizaines de milliers de portes quivalentes. Les outils daide la
conception se sont unifis : un mme langage, VHDL par exemple, peut tre employ quels que soient les circuits
utiliss, des PALs aux ASICs.

La dmarche de conception dun circuit est alors simple : on spcifie en langage VHDL les fonctionnalits du circuit
raliser en termes dentre/sortie. Le compilateur VHDL engendre un fichier JEDEC (.JED) autorisant une simulation
(visualisation des signaux dentre/sortie) en fonction du composant programmable choisi pour matrialiser le circuit
dsir. Enfin, Il ne reste plus qu programmer ledit composant laide dune carte spcialise fournie par le
constructeur de composants programmables (FPGAs ...). Les principaux constructeurs : XILINX, ACTEL, CYPRESS,
MENTOR GRAPHICS, CADENCE, VIEW LOGIC, ALTERA ... fournissent leur propre compilateur VHDL en
grande partie portable (Warp de CYPRESS, Max+Plus dALTERA ...).
Electronique Numrique 5. VHDL

5. 2
Mthodes de synthse

Le remplacement, dans la plupart des applications, des fonctions standard complexes par des circuits programmables,
saccompagne dun changement dans les mthodes de conception :

on constate un retour aux sources : le concepteur dune application labore sa solution en descendant au
niveau des bascules lmentaires, au mme titre que larchitecte dun circuit intgr.

lutilisation systmatique doutils de conception assiste par ordinateur (CAO), sans lesquels la tche serait
irralisable, rend caducs les fastidieux calculs de minimisation dquations logiques. Le concepteur peut se consacrer
entirement aux choix darchitecture qui sont eux, essentiels.

la complexit des fonctions ralisables dans un seul circuit pose le problme du test. Les outils traditionnels
de test de cartes imprimes, du simple oscilloscope la planche clous en passant par lanalyseur dtats logiques
ne sont plus dun grand secours, ds lors que la grande majorit des quipotentielles sont inaccessibles de lextrieur.
L encore, la CAO joue un rle essentiel. Encore faut-il que les solutions choisies soient analysables de faon sre.
Cela interdit formellement certaines astuces, parfois rencontres dans des schmas traditionnels de logique cble,
comme des commandes asynchrones utilises autrement que pour une initialisation lors de la mise sous tension, par
exemple.

les langages de haut niveau comme VHDL privilgient une approche globale des solutions. Ds lors que
larchitecture gnrale dune application est arrte, que les algorithmes qui dcrivent le fonctionnement de chaque
partie sont labors, le reste du travail de synthse est extrmement simple et rapide.



1. Principes gnraux

1.0. Description descendante : le top down design

Une application un tant soit peu complexe est dcoupe en sous-ensembles qui changent des informations suivant un
protocole bien dfini. Chaque sous-ensemble est, son tour, subdivis, et ainsi de suite jusquaux oprateurs
lmentaires.

Un systme est construit comme une hirarchie dobjets, les dtails de ralisation se prcisant au fur et mesure que
lon descend dans cette hirarchie. A un niveau donn de la hirarchie, les dtails de fonctionnement interne des
niveaux infrieurs sont invisibles. Cest le principe mme de la programmation structure.
Plusieurs ralisations dune mme fonction pourront tre envisages, sans quil soit ncessaire de remettre en cause la
conception des niveaux suprieurs; plusieurs personnes pourront collaborer un mme projet, sans que chacun ait
connatre tous les dtails de lensemble.

La conception descendante consiste dfinir le systme en partant du sommet de la hirarchie, en allant du gnral au
particulier. VHDL permet, par exemple, de tester la validit de la conception densemble, avant que les dtails des sous
fonctions ne soient compltement dfinis. A titre dexemple, larchitecture gnrale dun processeur peut tre value
sans que le mode de ralisation de ses registres internes ne soit connu, le fonctionnement des registres en question sera
alors dcrit au niveau comportemental.
Electronique Numrique 5. VHDL

5. 3
1.1. Simulation et/ou synthse

VHDL a t, initialement, connu comme un langage de simulation, il est fortement marqu par cet hritage trs
informatique, ce qui est parfois un peu droutant pour llectronicien, proche du matriel, qui nest pas toujours un
spcialiste des langages de programmation. Citons quelques exemples :

Contrairement C ou PASCAL, VHDL est un langage qui comprend le paralllisme , cest dire que des
blocs dinstructions peuvent tre excuts simultanment, par opposition squentiellement comme dans un langage
procdural traditionnel. Autant ce paralllisme est fondamental pour comprendre le fonctionnement dun simulateur
logique, et peut tre droutant pour un programmeur habitu au droulement squentiel des instructions quil crit,
autant il est vident que le fonctionnement dun circuit ne dpend pas de 1ordre dans lequel ont t tablies les
connexions. Lutilisateur de VHDL gagnera beaucoup en ne se laissant pas enfermer dans laspect langage de
programmation, en se souvenant quil est en train de crer un vrai circuit. Les parties squentielles du langage, car il y
en a, doivent, dans ce contexte, tre comprises soit comme une facilit offerte dans lcriture de certaines fonctions,
soit comme le moyen de dcrire des oprateurs fondamentalement squentiels : les oprateurs synchrones.

La modlisation correcte dun systme suppose de prendre en compte, au niveau du simulateur, les
imperfections du monde rel. VHDL offre donc la possibilit de spcifier des retards, de prciser ce qui se passe lors
dun conflit de bus, etc. Pour simuler toutes ces vicissitudes, le langage offre toute une gamme doutils : signaux qui
prennent une valeur inconnue, messages derreurs quand un circuit dtecte une violation de set up time,
changements dtats retards pour simuler les temps de propagation. Toutes les constructions associes de ce type ne
sont videmment pas synthtisables! La difficult principale est que, suivant les compilateurs, la frontire entre ce qui
est synthtisable et ce qui ne lest pas nest pas toujours la mme, mme pour des compilateurs qui respectent la norme
IEEE-1076. Avant dutiliser un outil de synthse, le concepteur de circuit a tout gagner lire trs attentivement la
prsentation du sous-ensemble de VHDL accept par cet outil.

Trois classes de donnes existent en VHDL : les constantes, les variables (affectation par le symbole := ) et
les signaux (affectation par le symbole <= ). La nature des signaux ne prsente aucune ambigut, ce sont des objets qui
vhiculent une information logique tant du point de vue simulation que dans la ralit. Les signaux qui ont chapp aux
simplifications logiques, apportes par loptimiseur toujours prsent, sont des vraies quipotentielles du schma final.
Les variables sont destines, comme dans tout langage, stocker temporairement des valeurs, dans loptique
dune utilisation future, sans chercher reprsenter la ralit. Certains compilateurs considrent que les variables nont
aucune existence relle, au niveau du circuit, quelles ne sont que des outils de description fonctionnelle. Dautres
transforment, ventuellement (cela dpend de loptimiseur), les variables en cellules mmoires ...

Il est clair que VHDL, les outils de synthse et doptimisation ne peuvent pas transformer un mauvais concepteur en un
bon. Ce sont de simples outils supplmentaires qui peuvent aider un ingnieur raliser plus rapidement et plus
efficacement un matriel quand ils sont utiliss correctement.

Il est toujours ncessaire de comprendre les dtails physiques de la faon dont est implmente une ralisation.
Lingnieur doit regarder par dessus 1paule de loutil pour sassurer que le rsultat est conforme ses exigences
et sa philosophie, et que le rsultat est obtenu en un temps raisonnable.
Electronique Numrique 5. VHDL

5. 4
1.2. Exemples

Des tautologies

Les exemples de code source VHDL ci-dessous ne nous apprennent rien sur les proprits des oprateurs concerns, ils
nous montrent laspect dun programme VHDL et nous rappellent que les oprations NON, ET et OU sont dfinies sur
les objets de type bit (appartenant la classe signal) comme sur ceux de type boolean, avec une convention
logique positive (1 TRUE, 0 FALSE).

-- inverseur (ceci est un commentaire)
entity inverseur is
port (e : in bit ; -- les entrees
s : out bit) ; -- les sorties
end inverseur;
architecture dataflowlowlevel of inverseur is
begin
s <= not e ;
end dataflowlowlevel;


De mme :

-- operateur et
entity et is
port (e1, e2 : in bit ;
s : out bit) ;
end et ;
architecture dataflowlowlevel of et is
begin
s <= e1 and e2 ;
end dataflowlowlevel;


Ou encore :

-- operateur ou
entity ou is
port (e1, e2 : in bit ;
s : out bit) ;
end ou ;
architecture dataflowlowlevel of ou is
begin
s <= e1 or e2 ;
end dataflowlowlevel;


On notera la structure gnrale dun programme et le symbole daffectation particulier aux objets de nature signal
(s, e, el, e2). La dclaration entity correspond au prototype dune fonction en langage C, elle dcrit linteraction entre
loprateur et le monde environnant. La partie architecture du programme correspond la description interne de
loprateur, elle dcrit donc son fonctionnement. Larchitecture peut tre de type structurel, flot de donnes ou
comportemental. Plusieurs architectures peuvent dcrire une mme entit. Les mots cls du langage sont nots en non
italique ou en MAJUSCULES, cest une habitude de certains, pas une obligation.
Electronique Numrique 5. VHDL

5. 5
Des affectations conditionnelles

Dans les programmes qui suivent on voit apparatre la notion de haut niveau du langage. Des expressions purement
boolennes sont utilises pour dcrire le fonctionnement dun circuit. Ici elles traduisent strictement les tables de vrit,
mais permettent videmment des constructions beaucoup plus labores.


-- inverseur
entity inverseur is
port (e : in bit ;
s : out bit) ;
end inverseur ;
architecture dataflowhighlevel of inverseur is
begin
s <= 1 when (e = 0) else 0 ;
end dataflowhighlevel;


De mme :


-- operateur et
entity et is
port (e1, e2 : in bit ;
s : out bit) ;
end et ;
architecture dataflowhighlevel of et is
begin
s <= 0 when (e1 = 0 or e2 = 0) else 1 ;
end dataflowhighlevel;


ou encore :


-- operateur ou
entity ou is
port (e1, e2 : in bit ;
s : out bit) ;
end ou ;
architecture dataflowhighlevel of ou is
begin
s <= 0 when (e1 = 0 and e2 = 0) else 1 ;
end dataflowhighlevel;
Electronique Numrique 5. VHDL

5. 6
Des exemples de modles comportementaux

Terminons cette premire dcouverte de VHDL par 2 descriptions darchitecture purement comportementales des
oprateurs ET et OU :

entity et is -- operateur et
port (e1, e2 : in bit ;
s : out bit) ;
end et ;
architecture behaviour of et is
begin
process (el, e2)
begin
if (e1 = 0 or e2 = 0) then
s <= 0 ;
else
s <= 1 ;
end if ;
end process ;
end behaviour;


ou encore :


entity ou is -- operateur ou
port (e : in bit_vector (0 to 1);
s : out bit );
end ou ;
architecture behaviour of ou is
begin
process ( e )
begin
case e is
when ("00") =>
s <= 0 ;
when others =>
s <= 1 ;
end case ;
end process ;
end behaviour;


Le rle de linstruction process est de dcrire explicitement un processus dfini par un algorithme squentiel ( non
parallle, contrairement aux descriptions structurelle et flot de donnes).
Electronique Numrique 5. VHDL

5. 7
1.3. Lextrieur de la bote noire : une ENTITE

Dans une construction hirarchique, les niveaux suprieurs n'ont pas connatre les dtails des niveaux infrieurs. Une
fonction logique sera vue, dans cette optique, comme un assemblage de botes noires dont, syntaxiquement parlant,
seules les modes d'accs sont ncessaires l'utilisateur.

La construction qui dcrit l'extrieur d'une fonction est l'entit (entity). La dclaration correspondante lui donne un
nom et prcise la liste des signaux d'entre et de sortie (quivalent en langage C du prototypage) :

entree1
entree2
entree3
entree4
sortie1
sortie2
sortie3
mon_circuit
4 6


entity mon_circuit is port (
entree1 : in bit ;
entree2, entree3 : in bit ;
entree4 : in bit_vector ( 0 to 3 ) ;
sortie1, sortie2 : out bit ;
sortie3 : out bit_vector ( 0 to 5 ) )
end mon_circuit ;

Dans lexemple qui prcde, les noms des objets, qui dpendent du choix de lutilisateur, sont crits en italique, les
autres mots sont des mots-cls du langage (ces derniers peuvent indiffremment tre crits en minuscules ou en
MAJUSCULES).
Les choix possibles pour le sens de transfert sont : in, out, inout et buffer (une sortie qui peut tre lue par
lintrieur du circuit).
Les choix possibles pour les types de donnes changes sont les mmes que pour les signaux.

1.4. Le fonctionnement interne : une ARCHITECTURE

L'architecture est la matrialisation de la fonction dfinie dans lentit. Elle dcrit le fonctionnement interne d'un circuit
auquel est attach une entit. Ce fonctionnement peut tre dcrit de diffrentes faons :

Description structurelle

Le circuit est vu comme un assemblage de composants de niveau infrieur, c'est une description schmatique .
Souvent ce mode de description est utilis au niveau le plus lev de la hirarchie, chaque composant tant lui-mme
dfini par un programme VHDL (entit et architecture).

Description comportementale

Le comportement matriel du circuit est dcrit par un algorithme, indpendamment de la faon dont il est ralis au
niveau structurel.

Description par un flot de donnes

Le fonctionnement du circuit est dcrit par un flot de donnes qui vont des entres vers les sorties, en subissant, tape
par tape, des transformations lmentaires successives. Ce mode de description permet de reproduire l'architecture
logique, en couches successives, des oprateurs combinatoires.

Flot de donnes et reprsentation comportementale sont trs voisines, dans les deux cas le concepteur peut faire appel
des instructions de haut niveau. La premire mthode utilise un grand nombre de signaux internes qui conduisent au
rsultat par des transformations de proche en proche. La seconde utilise des blocs de programme (les processus
explicites), qui manipulent de nombreux signaux avec des algorithmes squentiels.
Electronique Numrique 5. VHDL

5. 8
La syntaxe gnrale d'une architecture comporte une partie de dclaration et un corps de programme :

architecture exemple of mon_circuit is
partie dclarative optionnelle : types, constantes, signaux locaux, composants.
begin
corps de l'architecture.
suite d'instructions parallles :
affectations de signaux ;
processus explicites ; -- mais lintrieur dun processus est squentiel
blocs ;
instanciation (i.e. importation dans un schma) de composants (appel de sous-
programmes).
end exemple ;


1.5. Des algorithmes squentiels dcrivent un cblage parallle : les PROCESSUS

Un processus est une instruction concurrente (deux instructions concurrentes sont simultanes) qui dfinit un
comportement qui doit avoir lieu quand ce processus devient actif. Le comportement est spcifi par une suite
d'instructions squentielles excutes dans le processus.

Quest-ce que cela signifie ? Trois choses :

1. Les diffrentes parties d'une ralisation interagissent simultanment, peu importe l'ordre dans lequel un cbleur soude
ses composants, le rsultat sera le mme. Le langage doit donc comporter une contrainte de paralllisme entre ses
instructions. Cela implique des diffrences notables avec un langage procdural comme le langage C.

En langage VHDL :

a <= b ;
c <= a + d ;
et
c <= a + d ;
a <= b ;

reprsentent la mme chose, ce qui est notablement diffrent de ce qui se passerait en langage C pour :

a = b ;
c = a + d;
et
c = a + d ;
a = b ;

Les affectations de signaux, l'extrieur d'un processus explicite, sont traites comme des processus tellement
lmentaires qu'il est inutile de les dclarer comme tels. Ces affectations sont traites en parallle, de la mme faon
que plusieurs processus indpendants.

2. L'algorithmique fait grand usage d'instructions squentielles pour dcrire le monde. VHDL offre cette facilit
l'intrieur d'un processus explicitement dclar. Dans le corps dun processus il sera possible dutiliser des variables,
des boucles, des conditions, dont le sens est le mme que dans les langages squentiels. Mme les affectations entre
signaux sont des instructions squentielles quand elles apparaissent lintrieur dun processus. Seul sera visible de
l'extrieur le rsultat final obtenu la fin du processus.
Electronique Numrique 5. VHDL

5. 9
3. Les oprateurs squentiels, surtout synchrones, mais pas exclusivement eux, comportent naturellement la notion
de mmoire, qui est le fondement de l'algorithmique traditionnelle. Les processus sont la reprsentation privilgie de
ces oprateurs (ce n'est pas la seule, les descriptions structurelle et flot de donnes, plus proches du cblage du circuit, permettent de dcrire tous
les oprateurs squentiels avec des oprateurs combinatoires lmentaires. Pour les circuits qui comportent des bascules comme lments primitifs,
connus de l'outil de synthse, les deux seules faons d'utiliser ces bascules sont les processus et leur instanciation comme composants dans une
description structurelle).

Mais attention, la rciproque n'est pas vraie, il est parfaitement possible de dcrire un oprateur purement combinatoire
par un processus, le programmeur utilise alors de cet objet la seule facilit d'criture de l'algorithme.
Outre les simples affectations de signaux, qui sont en elles mmes des processus implicites part entire, la description
d'un processus obit la syntaxe suivante (en particulier, la structure squentielle if then est inclure
obligatoirement dant un processus) :

Processus : syntaxe gnrale avec liste de sensibilit (liste de paramtres dactivation du processus)
[tiquette : ] process [ (liste de sensibilit) ]
partie dclarative optionnelle : variables notamment
begin
corps du processus
instructions squentielles
end process [ tiquette ] ;

Les lments mis entre crochets sont optionnels, ils peuvent tre omis sans qu'il y ait d'erreur de syntaxe. La liste de
sensibilit est la liste des signaux qui dclenchent, par le changement de valeur de l'un quelconque d'entre eux, l'activit
du processus (paramtres ou arguments du processus). Cette liste peut tre remplace par une instruction wait dans
le corps du processus : la syntaxe du processus devient alors la suivante :

Processus : syntaxe gnrale sans liste de sensibilit mais avec linstruction wait
[tiquette : ] process
partie dclarative optionnelle : variables notamment
begin
wait [on liste_de_signaux ] [ until condition] ;
instructions squentielles
end process [ tiquette ] ;

Linstruction wait
Cette instruction indique au processus que son droulement doit tre suspendu dans l'attente d'un vnement sur un
signal (un signal change de valeur), et tant qu'une condition n'est pas ralise.

Sa syntaxe gnrale est :
wait [on liste_de_signaux ] [ until condition] ;

On peut spcifier un temps dattente maximum (wait for temps), mais cette clause nest pas synthtisable.

La liste des signaux dont l'instruction attend le changement de valeur joue exactement le mme rle que la liste de
sensibilit du processus, mais l'instruction wait ne peut pas tre utilise en mme temps qu'une liste de sensibilit. La
tendance, pour les volutions futures du langage, semble tre la suppression des listes de sensibilits, pour n'utiliser
que les instructions d'attente.

Description d'un oprateur squentiel

La reprsentation des horloges : pour reprsenter les oprateurs synchrones de faon comportementale, il faut
introduire l'horloge dans la liste de sensibilit, ou insrer dans le code du processus une instruction wait explicite.
Rappelons qu'il est interdit d'utiliser la fois une liste de sensibilit et une instruction wait. Quand on modlise un
oprateur qui comporte la fois des commandes synchrones et des commandes asynchrones, il faut, avec certains
compilateurs, mettre ces commandes dans la liste de sensibilit.
Electronique Numrique 5. VHDL

5. 10
Exemple :
architecture fsm of jk_raz is
signal etat : bit ;
begin -- la dclaration de q a eu lieu prcdemment dans lentit
q <= etat ; -- ltat va tre dfini ci-dessous (paralllisme)
-- linstruction q <= etat et le processus sont 2 instructions concurrentes
-- (parallles) alors que lintrieur dun processus est squentiel
process (clock, raz) -- deux signaux d'activation externe
begin
if (raz = '1') then -- raz asynchrone
etat <= '0';
elseif (clock = 'l' and clock 'event) then -- front montant dhorloge
case etat is
when '0' =>
if (j = '1' ) then
etat <= '1';
end if ;
when '1' =>
if (k = '1' ) then
etat <= '0';
end if ;
end case ;
end if ;
end process ;
end fsm ;

Dans lexemple prcdent, la priorit de la mise zro asynchrone sur le fonctionnement synchrone normal de la bascule JK, apparat par lordre des
instructions de la structure if ... elseif. Le processus est utilis l la fois pour modliser un oprateur essentiellement squentiel, la bascule, et pour
faciliter la description de leffet de ses commandes par un algorithme squentiel. Pour modliser un comportement purement synchrone on peut
indiffremment utiliser la liste de sensibilit ou une instruction wait :

architecture fsm_liste of jk_simple is
signal etat : bit ;
begin
q <= etat ; -- la dclaration de q a eu lieu prcdemment dans lentit
process (clock) -- un seul signal d'activation
begin
if (clock = 'l' and clock 'event) then
case etat is
when '0' =>
if (j = 'l' ) then
etat <= 'l' ;
end if;
when 'l' =>
if (k = 'l' ) then
etat <= '0' ;
end if;
end case ;
end if ;
end process ;
end fsm_liste ;
Electronique Numrique 5. VHDL

5. 11
Ou, de faon strictement quivalente, en utilisant une instruction wait :

architecture fsm_wait of jk_simple is
signal etat : bit ;
begin
q <= etat ;
process -- pas de liste de sensibilit
begin
wait until (clock = 'l') ;
case etat is
when '0' =>
if (j = 'l' ) then
etat <= 'l' ;
end if;
when 'l' =>
if (k = 'l' ) then
etat <= '0' ;
end if ;
end case ;
end process ;
end fsm_wait ;


Description par un processus dun oprateur combinatoire ou asynchrone

Un processus permet de dcrire un oprateur purement combinatoire ou un oprateur squentiel asynchrone, en utilisant
une dmarche algorithmique.
Dans ces deux cas la liste de sensibilit, ou l'instruction wait quivalente, est obligatoire; le caractre combinatoire ou
squentiel de l'oprateur ralis va dpendre du code interne au processus. On considre un signal qui fait l'objet d'une
affectation dans le corps d'un processus :
- si au bout de l'excution du processus, pour toutes les combinaisons possibles des valeurs de la liste de sensibilit, la
valeur de ce signal, objet d'une affectation, est connue, l'oprateur correspondant est combinatoire.
- si certaines des combinaisons prcdentes de la liste de sensibilit conduisent une indtermination concernant la
valeur du signal examin, objet d'une affectation, ce signal est associ une cellule mmoire (oprateur squentiel).

Prcisons ce point par un exemple :
Electronique Numrique 5. VHDL

5. 12
entity comb_seq is
port (
el, e2 : in bit ;
s_et, s_latch, s_edge : out bit
) ;
end comb_seq ;

architecture exproc of comb_seq is
begin

-- porte logique et
et : process (e1, e2) -- ou encore process (e1)
begin
if ( e1 = 'l' ) then
s_et <= e2 ;
else
s_et <= '0' ; -- quivalent s_et <= e1 and e2 ;
end if ;
end process ; -- oprateur combinatoire

-- bascule D latch, e1 est la commande
latch : process (e1,e2) -- ou encore process (e1)
begin
if ( e1 = '1' ) then
s_latch <= e2 ;
end if; -- si e1 = '0' la valeur de s_latch est inconnue ( mmorisation).
end process ; -- oprateur squentiel

-- bascule D edge, e1 est lhorloge
edge : process (e1) -- ou encore process (e1,e2)
begin
if ( e1 'event and e1 = '1') then -- e1 agit sur un front montant.
s_edge <= e2 ;
end if ;
end process ; -- en dehors dun front montant : mmorisation de ltat prcdent
end exproc ; -- oprateur squentiel


Dans l'exemple qui prcde, le premier processus est combinatoire, le signal s_et a une valeur connue la fin du
processus, quelles que soient les valeurs des entres e1 et e2. Dans le deuxime processus, l'instruction if ne nous
renseigne pas sur la valeur du signal s_latch quand e1 = '0'. Cette mconnaissance est interprte, par le compilateur
VHDL, comme un maintien de la valeur prcdente, d'o la gnration d'une cellule mmoire dont la commande de
mmorisation, e1, est active sur un niveau. Le troisime processus conduit galement, et pour le mme type de raison,
la synthse d'une cellule mmoire pour le signal s_edge. Mais la commande de mmorisation est, cette fois, active sur
un front, explicitement mentionn dans la condition de l'instruction if : e1 'event. La faon dont est traite la
commande de mmorisation e1 dpend donc de l'criture du test : niveau ou front
Electronique Numrique 5. VHDL

5. 13
2. Elments du langage

2.1. Les donnes appartiennent une classe et ont un type

VHDL, hritier d'ADA, est un langage fortement typ. Toutes les donnes ont un type qui doit tre dclar avant
l'utilisation (sauf, et c'est bien pratique, les variables entires des boucles for ) et aucune conversion de type
automatique (une souplesse et un pige immense du langage C, par exemple) n'est effectue. Pour passer du type entier
au type bit_vector, par exemple, il faut faire appel une fonction de conversion.
Une donne appartient une classe qui dfinit, avec son type, son comportement. Des donnes de deux classes
diffrentes, mais de mme type, peuvent changer des informations directement : on peut affecter la valeur d'une
variable un signal, par exemple (nous verrons ci-dessous que variables et signaux sont deux classes diffrentes).
La porte des noms est, en gnral, locale. Un nom dclar l'intrieur d'une architecture, par exemple, n'est connu que
dans celle-ci. Des objets globaux sont possibles, on peut notamment dfinir des constantes, comme zero ou one,
extrieures aux units de programmes que constituent les couples entit-architecture. A lintrieur dune
architecture, les objets dclars dans un bloc (dlimit par les mots-cls begin et end) sont visibles des blocs plus
internes uniquement.
Les objets dclars dans une entit sont connus de toutes les architectures qui sy rapportent.


Les classes : signaux, variables et constantes

Signaux

Les signaux reprsentent les donnes physiques changes entre des blocs logiques d'un circuit. Chacun d'entre eux
sera matrialis dans le schma final par une quipotentielle et, ventuellement, une cellule mmoire qui conserve la
valeur de l'quipotentielle entre deux commandes de changement. Les ports d'entre et de sortie, attachs une
entit, par exemple, sont une varit de signaux qui permettent l'change d'informations entre diffrentes fonctions.
Leur utilisation est similaire celle des arguments d'une procdure en langage PASCAL, le sens de transfert de
l'information doit tre prcis.

Syntaxe de dclaration (se place dans la partie dclarative d'une architecture - ou dun paquetage, voir plus loin) :

signal noml , nom2 : type ;

Affectation d'une valeur (se place dans le corps d'une architecture ou d'un processus) :

nom <= valeur_compatible_avec_le_type ;

La valeur affecte peut tre le rsultat d'une expression, simple ou conditionnelle (when), ou la valeur renvoye par
l'appel d'une fonction.

A l'extrieur d'un processus toutes les affectations de signaux sont concurrentes, c'est donc une erreur (smantique, pas
syntaxique) d'affecter plus d'une fois une valeur un signal. L'affectation d'une valeur un signal traduit, en fait, la
connexion de la sortie d'un oprateur l'quipotentielle correspondante. Il s'agit l d'une opration permanente, une
soudure sur une carte, par exemple, qu'il est hors de question de modifier ailleurs dans le programme. Si un signal est
l'objet d'affectations multiples, ce qui revient mettre en parallle plusieurs sorties d'oprateurs (trois-tats ou
collecteurs ouverts, par exemple), il faut adjoindre ce signal, pour les besoins de la simulation, une fonction de
rsolution qui permet de rsoudre le conflit (dans les applications de synthse les portes sorties non standard sont
gnralement introduites dans une description structurelle).
Electronique Numrique 5. VHDL

5. 14
Variables

Les variables sont des objets qui servent stocker un rsultat intermdiaire pour faciliter la construction dun
algorithme squentiel. Elles ne peuvent tre utilises que dans les processus, les procdures ou les fonctions et dans les
boucles generate qui servent crer des schmas rptitifs.

Syntaxe de dclaration (se place dans la partie dclarative d'un processus, d'une procdure ou d'une fonction) :

variable noml, nom2 : type [ := expression] ;

L'expression facultative qui apparat dans la dclaration prcdente permet de donner une variable une valeur initiale
choisie par l'utilisateur. A dfaut de cette expression le compilateur, qui initialise toujours les variables (le programmeur ne
doit, notamment, pas sattendre retrouver les variables dun processus dans ltat o il les avait laisses lors dune activation prcdente de ce
processus), utilise une valeur par dfaut qui dpend du type dclar.

Affectation d'une valeur :

nom := valeur_compatible_avec_le_type ;

La valeur affecte peut tre le rsultat d'une expression ou la valeur renvoye par l'appel d'une fonction.
Les variables de VHDL jouent le rle des variables automatiques des langages procduraux, comme C ou PASCAL,
elles ont une porte limite au module de programme dans lequel elles ont t dclares, et sont dtruites la sortie de
ce module.
La diffrence entre variables et signaux est que les premires n'ont pas d'quivalent physique dans le schma,
contrairement aux seconds. Certains outils de synthse ne respectent malheureusement pas cette distinction. On notera
qu'il est possible d'affecter la valeur d'une variable un signal, et inversement, pourvu que les types soient compatibles.


Constantes

Les constantes sont des objets dont la valeur est fixe une fois pour toute.

Exemples de valeurs constantes simples : '0', '1', "01101001", 2006, "azerty"
2006 est du type entier. "01101001" est du type string (chane de caractres). '0' est du type caractre.

On peut crer des constantes nommes : constant nom1 : type [ := valeur_constante] ;

On notera que les vecteurs de bits (bit_vector) sont traits comme des chanes, on peut prciser une base diffrente de
la base 2 pour ces constantes : X"3A007", O"237015" pour hexadcimal et octal.

De mme, les valeurs entires peuvent tre crites dans une autre base que 1a base 10 :
16#ABCDEFO123#, 2#001011101# ou 2#0_0101_1101#, pour plus de lisibilit.

En gnral les nombres flottants ne sont pas accepts par les outils de synthse.


Des types adapts l'lectronique numrique

VHDL connat un nombre limit de types de base, qui refltent le fonctionnement des systmes numriques (pour
l'instant, VHDL est en passe de devenir un langage de description des circuits analogiques), et offre l'utilisateur de
construire partir de ces types gnriques :

- des sous-types (sous-ensembles du type de base), obtenus en prcisant un domaine de variation limit de l'objet
considr,
- des types composs, obtenus par la runion de plusieurs types de base identiques (tableaux) ou de types diffrents
(enregistrements).
Electronique Numrique 5. VHDL

5. 15
En plus des types prdfinis et de leurs drivs, l'utilisateur a la possibilit de crer ses propres types sous forme de
types numrs.


Les entiers

VHDL manipule des valeurs entires qui correspondent des mots de 32 bits, soit comprises entre -2147483648 et
+2147483647.

Attention, sur les PCs qui sont des machines dont les entiers continuent hsiter entre 16 et 32 bits, l'utilisateur peut
rencontrer de dsagrables surprises. Les nombres ngatifs ne sont pas toujours accepts dans la description des
signaux physiques.

Dclaration :

signal nom : integer ;

ou

variable nom : integer ;

ou encore :

constant nom : integer ;

que lon rsume classiquement par :

signal | variable | constant nom : integer ; le symbole | signifiant ou .

On peut spcifier une plage de valeurs infrieure celle obtenue par dfaut, par exemple :

signal etat : integer range 0 to 1023 ; permet de crer un compteur 10 bits.

La mme construction permet de crer un sous-type :

subtype etat_l0 is integer range 0 to 1023 ;
signal etatl , etat2 : etat_l0 ;

Attention ! La restriction d'tendue de variation est utilise pour gnrer le nombre de chiffres binaires ncessaires la
reprsentation de l'objet, l'arithmtique sous-jacente n'est (pour l'instant) pas traite par les compilateurs. Cela veut dire
que :

signal chiffre : integer range 0 to 9 ; permet de crer un objet cod sur quatre bits, mais :

chiffre <= chiffre + l ; ne cre pas un compteur dcimal.

Pour ce faire il faut crire explicitement (compteur dcimal) :

if (chiffre < 9 ) then
chiffre <= chiffre + l ;
else
chiffre <= 0 ;
end if ;
Electronique Numrique 5. VHDL

5. 16
La dclaration, au niveau le plus lev d'une hirarchie, de ports d'entre ou de sortie comme nombres entiers pose un
problme de contrle par l'utilisateur, de l'assignation des broches physiques du circuit final aux chiffres binaires
gnrs. Cette assignation sera faite automatiquement par l'outil de dveloppement. Si ce non contrle est gnant, il est
possible de transformer un nombre entier en tableau de bits, via les fonctions de conversion de la librairie associe un
compilateur.


Les types numrs

Lutilisateur peut crer ses propres types par simple numration de constantes symboliques qui fixent toutes les
valeurs possibles du type. Par exemple :

type drinkState is
(zero, five, ten, fifteen, twenty, twentyfive, owedime);
signal drinkStatus : drinkState;


Les bits

Il s'agit l, videmment, du type de base le plus utilis en lectronique numrique. Un objet de type bit peut prendre
deux valeurs : '0' et '1'. Il s'agit, en fait, d'un type numr prdfini.

Dclaration :

signal | variable nom : bit ;

Ce qui prcde s'applique aux descriptions synthtisables, pour les besoins de la simulation de nombreux compilateurs
proposent un type bit plus toff, pouvant prendre, par exemple, les valeurs '0', '1', 'X' (X pour inconnu) et 'Z' (pour
haute impdance). Ces types sont traduits, en synthse, par des types bit ordinaires.
De mme la gestion des portes trois-tats, qui se fait par une description structurelle, ncessite une extension du type
bit. Par exemple :

entity basc_tri_state is
port ( clk, oe : in bit;
sort : inout x0lz ); -- type x0lz dfini dans la librairie
end basc_tri_state ;

Toutes ces extensions ne sont, priori, pas portables telles quelles. Mais les outils de dveloppement VHDL sont
fournis avec les sources (en VHDL) de toutes les extensions au langage de base, ce qui permet de porter d'un systme
l'autre les librairies ncessaires.


Les boolens

Autre type numr, le type boolen peut prendre deux valeurs: "true" et "false". Il intervient essentiellement comme
rsultat d'expressions de comparaisons, dans des if, par exemple, ou dans les valeurs renvoyes par des fonctions.


Les tableaux

A partir de chaque type de base on peut crer des tableaux, collection dobjets du mme type. Lun des plus utiliss est
le type bit_vector, dfini dans la librairie standard par :

subtype natural is integer range 0 to integer 'high ;
type bit_vector is array (natural range <>) of bit ;
Electronique Numrique 5. VHDL

5. 17
Dans l'exemple qui prcde, le nombre d'lments n'est pas prcis dans le type, ce sera fait l'utilisation. Par exemple :

signal etat : bit_vector (0 to 4) ;

dfinit un tableau de cinq lments binaires nomm tat. On aurait galement pu dfinir directement un sous-type :

type cinq_bit is array (0 to 4) of bit ;
signal etat : cinq_bit ;

Le nombre de dimensions d'un tableau n'est pas limit, les indices peuvent tre dfinis dans le sens croissant (2 to 6)
ou dcroissant (6 downto 2) avec des bornes quelconques (mais cohrentes avec le sens choisi).
On notera qu'il faut passer par une dfinition de type, ce qui n'est pas le cas en C ou en PASCAL. Une fois dfini, un
objet compos peut tre manipul collectivement par son nom :

signal etatl : bit_vector (0 to 4) ;
variable etat2 : bit_vector (0 to 4) ;
etat1 <= etat2 ; -- parfaitement correct

Le compilateur contrle que les dimensions des deux objets sont les mmes. On remarquera, partir de l'exemple
prcdent, que les classes des deux objets peuvent tre diffrentes.
On peut, bien sr, ne manipuler qu'une partie des lments d'un tableau :

signal etat : bit_vector (0 to 4) ;
signal sous_etat : bit_vector (0 to 1) ;
signal flag : bit;

sous_etat <= etat ( l to 2 ) ;
flag <= etat ( 3 ) ;

Il est possible de fusionner deux tableaux (concatnation) pour affecter les valeurs correspondantes un tableau plus
grand :

signal etat : bit_vector (0 to 4) ;
signal sous_etat2 : bit_vector (0 to 1) ;
signal sous_etat3 : bit_vector (0 to 2) ;

etat <= sous_etat2 & sous_etat3 ; -- concatnation.


Les enregistrements

Les enregistrements (record) dfinissent des collections d'objets de types, ou de sous types, diffrents. Ils
correspondent aux structures du C ou aux enregistrements de PASCAL.

Dfinition d'un type :

type clock_time is record
hour : integer range 0 to 12 ;
minute, seconde : integer range 0 to 59 ;
end record;
Electronique Numrique 5. VHDL

5. 18
Dclaration d'un objet de ce type :

variable time_of_day : clock_time ;

Utilisation de l'objet prcdent :

time_of_day.hour := 3 ;
time_of_day.minute := 45 ;
chrono := time_of_day.seconde ;

L'ensemble d'un enregistrement peut tre manipul par son nom.


2.2. Les attributs prcisent les proprits des objets

Dterminer, de faon dynamique, la taille d'un tableau, le domaine de dfinition d'un objet scalaire, l'lment suivant
d'un type numr, dtecter la transition montante d'un signal, piloter l'optimiseur d'un outil de synthse, attribuer des
numros de broches des signaux d'entres-sorties ... etc. Les attributs permettent tout cela.
Un attribut est une proprit, qui porte un nom, associe une entit, une architecture, un type ou un signal. Cette
proprit, une fois dfinie, peut tre utilise dans des expressions.
L'utilisation d'un attribut se fait au moyen d'un nom compos : le prfixe est le nom de l'objet auquel est rattach
l'attribut, le suffixe est le nom de l'attribut. Prfixe et suffixe sont spars par une apostrophe ' .

Nom_objet 'nom_de_lattribut

Par exemple :

hor 'event and hor = '1' renvoie la valeur boolenne true si le signal hor, de type bit, vaut 1 aprs un
changement de valeur, ce qui revient tester la prsence d'une transition montante de ce signal.

Certains attributs sont prdfinis par le langage, d'autres sont attachs un outil de dveloppement; l'utilisateur, enfin,
peut dfinir, et utiliser ses propres attributs.


Attributs prdfinis dans le langage

Les attributs prdfinis permettent de dterminer les contraintes qui psent sur des objets ou des types : domaine de
variation d'un type scalaire, bornes des indices d'un tableau, lments voisins d'un objet de type numr, etc
Ils permettent galement de prciser les caractristiques dynamiques de signaux, comme la prsence d'un front, voque
prcdemment.
Electronique Numrique 5. VHDL

5. 19
Le tableau ci-dessous prcise le nom de quelques uns des attributs prdfinis les plus utiliss, les catgories dobjets
quils permettent de qualifier et la valeur renvoye par lattribut.

attribut agit sur valeur retourne
'left
'left(n)
type scalaire
type tableau
lment de gauche
borne de gauche de l'indice de la dimension n, n=1 par dfaut
'right
'right(n)
type scalaire
type tableau
lment de droite
borne de droite de l'indice de la dimension n, n=1 par dfaut
'high
'high(n)
type scalaire
type tableau
lment le plus grand
borne maximum de l'indice de la dimension n, n=1 par dfaut
'low
'low(n)
type scalaire
type tableau
lment le plus petit
minimum de l'indice de la dimension n, n=1 par dfaut
'length(n) type tableau nombre d'lments de la dimension n, n=1 par dfaut
'pos(v) type scalaire position de l'lment v dans le type
'val(p) type scalaire valeur de l'lment de position p dans le type
'succ(v) type scalaire valeur qui suit (position + 1) l'lment de valeur v dans le type
'pred(v) type scalaire valeur qui prcde (position - 1) l'lment de valeur v dans le type
'leftof(v) type scalaire valeur de l'lment juste gauche de l'lment de valeur v
'rightof(v) type scalaire valeur de l'lment juste droite de l'lment de valeur v
'event signal valeur boolenne "TRUE" si la valeur du signal vient de changer
'base tous types renvoie le type de base d'un type driv
'range(n) type tableau renvoie la plage de variation de l'indice de la dimension n,
dfaut n=1, dans une boucle : "for i in bus 'range loop ..."
'reverse_
range(n)
type tableau renvoie la plage de variation, retourne (to downto), de l'indice
de la dimension n, dfaut n=1


Attributs spcifiques un systme

Chaque systme de dveloppement fournit des attributs qui aident piloter l'outil de synthse, ou le simulateur, associ
au compilateur VHDL.
Ces attributs, qui ne sont videmment pas standard, portent souvent sur le pilotage de l'optimiseur, permettent de passer
au routeur des informations concernant le brochage souhait, ... etc.

Par exemple :

attribute synthesis_off of som4 : signal is true ;
permet, avec le compilateur WARP , d'empcher l'limination du signal som4 par l'optimiseur.

attribute pin_numbers of T_edge : entity is "s:20 " ;
permet, avec le mme outil, de prciser que le port s, de l'entit T_edge, doit tre plac sur la broche n 20 du circuit.


Attributs dfinis par l'utilisateur

Syntaxe :

dclaration
attribute att_nom : type ;
spcification
attribute nom_att of nom_objet : nom_classe is expression ;

utilisation
nom_objet 'att_nom
Electronique Numrique 5. VHDL

5. 20
2.3. Les oprateurs lmentaires

Les oprateurs connus du langage sont rpartis en 6 classes, en fonction de leurs priorits. Dans chaque classe les
priorits sont identiques; les parenthses permettent de modifier l'ordre d'valuation des expressions, modifiant ainsi les
priorits, et sont obligatoires lors de l'utilisation d'oprateurs non associatifs comme loprateur nand . Le tableau
ci-dessous fournit la liste des oprateurs classs par priorits croissantes, de haut en bas :

classe oprateurs types d'oprandes rsultat
oprateurs logiques and or nand nor xor bits ou boolens bit ou boolen
oprateurs relationnels = /= < <= > >= tous types boolen
oprateurs additifs + -
&
numriques
tableaux (concatnation)
numrique
tableau
signe + - numriques numrique
oprateurs multiplicatifs * /
mod rem
numriques (restrictions)
entiers (restrictions)
numrique
entier
oprateurs divers not
abs
**
bit ou boolen
numrique
numriques (restrictions)
bit ou boolen
numrique
numrique

Ce tableau appelle quelques remarques :

- Les oprateurs multiplicatifs et l'oprateur d'exponentiation (**) sont soumis des restrictions, notamment en synthse
o seules les oprations qui se rsument des dcalages sont gnralement acceptes.

- Certaines librairies standard (int_math et bv_math) surdfinissent (au sens des langages objets) les oprateurs
d'addition et de soustraction pour les tendre au type bit_vector.

- On notera que tous les oprateurs logiques ont la mme priorit, il est donc plus que conseill de parenthser toutes
les expressions qui contiennent des oprateurs diffrents de cette classe.

- La priorit intermdiaire des oprateurs unaires de signe interdit l'criture d'expressions comme a * -b , qu'il faut
crire a * (-b) .


2.4. Instructions concurrentes

Les instructions concurrentes interviennent l'intrieur d'une architecture, dans la description du fonctionnement d'un
circuit. En raison du paralllisme du langage, ces instructions peuvent tre crites dans un ordre quelconque. Les
principales instructions concurrentes sont :

- les affectations concurrentes de signaux,
- les processus (dcrits prcdemment),
- les instanciations de composants
- les instructions generate
- les dfinitions de blocs.

Affectations concurrentes de signaux

Affectation simple

Laffectation simple traduit une simple interconnexion entre deux quipotentielles. Loprateur daffectation de signaux
(<=) a t vu prcdemment :

nom_de_signal <= expression_du_bon_type ;
Electronique Numrique 5. VHDL

5. 21
Affectation conditionnelle

L'affectation conditionnelle permet de dterminer la valeur de la cible en fonction des rsultats de tests logiques :

cible <= source_1 when condition_boolenne_1 else
source_2 when condition_boolenne_2 else
...
source_n ;

On notera un danger de confusion entre l'oprateur d'affectation et l'un des oprateurs de comparaison, l'instruction
suivante est syntaxiquement juste, mais fournit vraisemblablement un rsultat fort diffrent de celui escompt par son
auteur :

-- Rsultat bizarre :
cible <= source_l when condition else
cible <= source_2; -- <= est ici une comparaison entre cible et source_2 ! dont le rsultat est affect cible si la
condition est fausse.

Affectation slective

En fonction des valeurs possibles dune expression, il est possible de choisir la valeur affecter un signal :

with expression select
cible <= source_l when valeur_11 | valeur_12 ... ,
source_2 when valeur_21 | valeur_22 ... ,

source_n when others ;

Un exemple typique d'affectation slective est la description d'un multiplexeur.

Instanciation de composant

Le mcanisme qui consiste utiliser un sous-ensemble (une paire entit-architecture), dcrit en VHDL, comme
composant dans un ensemble plus vaste est connu sous le nom d'instanciation. Trois oprations sont ncessaires :

.1. Le couple entit-architecture du sous-ensemble doit tre cr et annex une librairie de l'utilisateur, par dfaut
la librairie work .
.2. Le sous-ensemble prcdent doit tre dclar comme composant dans l'ensemble qui l'utilise, cette dclaration
reprend les lments principaux de l'entit du sous-ensemble.
.3. Chaque exemplaire du composant que l'on souhaite inclure dans le schma en cours d'laboration doit tre connect
aux quipotentielles de ce schma, c'est le mcanisme de l'instanciation.

Syntaxe de la dclaration (.2.) :
(simplifie, nous omettons volontairement ici la possibilit de crer des composants gnriques , c'est dire dont certains paramtres peuvent tre
fixs au moment de linstanciation, une largeur de bus par exemple)

component nom_composant -- mme nom que l'entit
port ( liste_ports ) ; -- mme liste que dans l'entit
end component ;

Cette dclaration est mettre dans la partie dclarative de l'architecture du circuit utilisateur, ou dans un paquetage qui
sera rendu visible par une clause use .

lnstanciation d'un composant (.3.) :

Etiquette : nom port map ( liste_d'association ) ;
Electronique Numrique 5. VHDL

5. 22
La liste d'association tablit la correspondance entre les quipotentielles du schma et les ports d'entre et de sortie du
composant. Cette association peut se faire par position, les noms des signaux connecter doivent apparatre dans l'ordre
des ports auxquels ils doivent correspondre, ou explicitement au moyen de l'oprateur d'association => :

(.1.)

architecture exemple of xyz is
component et
port ( a , b : in bit ;
a_et_b : out bit) ;
end component ;
signal s_a, s_b, s_a_et_b, s1, s2, s_1_et_2 : bit ;
begin

-- utilisation :
et1 : et port map (s_a, s_b, s_a_et_b ) ;
-- ou :
et2 : et port map (a_et_b => s_1_et_2 , a => s1, b => s2 ) ;

end exemple ;

En raison de sa simplicit, l'association par position est la plus frquemment employe.


Generate

Les instructions generate permettent de crer de faon compacte des structures rgulires, comme les registres ou
les multiplexeurs. Elles sont particulirement efficaces dans des descriptions structurelles.
Une instruction generate permet de dupliquer un bloc d'instructions concurrentes un certain nombre de fois, ou de
crer un tel bloc si une condition est vrifie.

Syntaxe :

-- structure rptitive :
etiquette : for variable in debut to fin generate
instructions concurrentes
end generate [etiquette] ;

ou :

-- structure conditionnelle :
etiquette : if condition generate
instructions concurrentes
end generate [etiquette] ;

Donnons titre d'exemple le code d'un compteur modulo 16, construit au moyen de bascules T, disposant d'une remise
zro (raz) et d'une autorisation de comptage (en) actives 'l' :

entity cnt16 is
port ( ck, raz, en : in bit ;
s : out bit_vector (0 to 3) ) ;
end cnt16 ;
Electronique Numrique 5. VHDL

5. 23
architecture struct of cnt16 is
signal etat : bit_vector (0 to 3) ;
signal inter : bit_vector (0 to 3);
component T_edge -- suppos prsent dans la librairie work
port ( T, hor, zero : in bit;
s : out bit ) ;
begin
s <= etat ;
gen_for : for i in 0 to 3 generate
gen_ifl : if i = 0 generate
inter(0) <= en ;
end generate gen_ifl ;
gen_if2 : if i > 0 generate
inter(i) <= etat(i - 1) and inter(i - 1) ;
end generate gen_if2 ;
compl_3 : T_edge port map (inter(i), ck, raz, etat(i)); -- instanciation (appel) du
composant T_edge
end generate gen_for ;
end struct ;


Block

Une architecture peut tre subdivise en blocs, de faon constituer une hirarchie interne dans la description d'un
composant complexe.

Syntaxe :

etiquette : block [ ( expression_de_garde ) ]
-- zone de dclarations de signaux, composants, etc...
begin
-- instructions concurrentes
end block [ etiquette ] ;

Dans des applications de synthse, l'intrt principal des blocs est de permettre de contrler la porte et la visibilit des
noms des objets utiliss (signaux notamment) : un nom dclar dans un bloc est local celui-ci.


2.5. Instructions squentielles

Les instructions squentielles sont internes aux processus, aux procdures et aux fonctions (pour les deux dernires
constructions voir paragraphes suivants). Elles permettent d'appliquer la description d'une partie d'un circuit une
dmarche algorithmique, mme s'il s'agit d'une fonction purement combinatoire. Les principales instructions
squentielles sont :

- L'affectation squentielle d'un signal, qui utilise l'oprateur <= , a une syntaxe qui est identique celle de
l'affectation concurrente simple. Seule la place, dans ou hors d'un module de programme squentiel, distingue les deux
types d'affectation; cette diffrence, qui peut sembler mineure, cache des comportements diffrents : alors que les
affectations concurrentes peuvent tre crites dans un ordre quelconque, pour leurs correspondantes squentielles,
rarement utilises hors dune structure de contrle, lordre dcriture nest pas indiffrent.

- L'affectation d'une variable, qui utilise l'oprateur : = , est toujours une instruction squentielle.
- Les tests if et case .
- Les instructions de contrle des boucles loop , for et while .
Electronique Numrique 5. VHDL

5. 24
Les instructions de test

Les instructions de tests permettent de slectionner une ou des instructions excuter, en fonction des valeurs prises par
une ou des expressions. On notera que, dans un processus, si toutes les branches possibles des tests ne sont pas
explicites, une cellule mmoire est gnre pour chaque affectation de signal.


L'instruction if then else endif

L'instruction if permet de slectionner une ou des instructions excuter, en fonction des valeurs prises par une ou des
conditions.

Syntaxe :

if expression_logique then
instructions squentielles
[ elsif expression_logique then ]
instructions squentielles
[ else ]
instructions squentielles
end if ;

Son interprtation est la mme que dans les langages de programmation classiques comme C ou PASCAL.


L'instruction case when end case

L'instruction case permet de slectionner une ou des instructions excuter, en fonction des valeurs prises par une
expression.

Syntaxe :

case expression is
when choix | choix | ... | choix => instruction sequentielle ;
when choix | choix | ... | choix => instruction sequentielle ;

when others => instruction sequentielle ;
end case ;

| choix , pour ou , et when others sont syntaxiquement facultatifs. Les choix reprsentent diffrentes
valeurs possibles de lexpression teste; on notera que toutes les valeurs possibles doivent tre traites, soit
explicitement, soit par l'alternative others . Chacune de ces valeurs ne peut apparatre que dans une seule
alternative. Cette instruction est rapprocher du switch de C, ou de case of de PASCAL.


Les boucles

Les boucles permettent de rpter une squence d'instructions.

Syntaxe gnrale

[ etiquette : ] [ schma itratif ] loop
squence d'instructions ;
end loop [ etiquette ] ;
Electronique Numrique 5. VHDL

5. 25
Trois catgories de boucles existent en VHDL, suivant le schma d'itration choisi :

- Les boucles simples, sans schma d'itration, dont on ne peut sortir que par une instruction exit .
- Les boucles for , dont le schma d'itration prcise le nombre d'excutions.
- Les boucles while , dont le schma d'itration prcise la condition de maintien dans la boucle.


Les boucles for

[ etiquette : ] for parametre in minimum to maximum loop
squence d' instructions
end loop [ etiquette ] ;

ou :

[ etiquette : ] for parametre in maximum downto minimum loop
squence d' instructions
end loop [ etiquette ] ;


Les boucles while

[ etiquette : ] while condition loop
squence d'instructions
end loop [ etiquette ] ;


Les boucles next et exit

next [ etiquette ] [ when condition ] ; -- permet de passer litration suivante dune boucle.
exit [ etiquette ] [ when condition ] ; -- provoque une sortie de boucle.


3. Programmation modulaire

Small is beautiful : un gros programme ne peut tre crit, compris, testable et test que s'il est subdivis en petits
modules que l'on met au point indpendamment les uns des autres et rassembls ensuite. VHDL offre, bien
videmment, cette possibilit.
Chaque module peut tre utilis dans plusieurs applications diffrentes, moyennant un ajustage de certains paramtres,
sans avoir en rcrire le code. Les outils de base de cette construction modulaire sont les sous-programmes,
procdures ou fonctions, les paquetages et librairies, et les paramtres gnriques.

3.1. Procdures et fonctions

Les sous programmes sont le moyen par lequel le programmeur peut se constituer une bibliothque d'algorithmes
squentiels qu'il pourra inclure dans une description. Les deux catgories de sous programmes, procdures et fonctions,
diffrent par les mcanismes d'changes d'informations entre le programme appelant et le sous-programme.


Les fonctions

Une fonction retourne au programme appelant une valeur unique, elle a donc un type. Elle peut recevoir des arguments,
exclusivement des signaux ou des constantes, dont les valeurs lui sont transmises lors de l'appel. Une fonction ne peut
en aucun cas modifier les valeurs de ses arguments d'appel.
Electronique Numrique 5. VHDL

5. 26
Dclaration :

function nom [ ( liste de paramtres formels ) ]
return nom_de_type ;

Corps de la fonction :

function nom [ ( liste de paramtres formels ) ]
return nom_de_type is
[ dclarations ]
begin
instructions squentielles
end [ nom ] ;

Le corps d'une fonction ne peut pas contenir d'instruction wait, les variables locales, dclares dans la fonction, cessent
d'exister ds que la fonction se termine.

Utilisation :

nom ( liste de paramtres rels )

Lors de son utilisation, le nom d'une fonction peut apparatre partout, dans une expression, o une valeur du type
correspondant peut tre utilise.

Exemple

Les librairies d'un compilateur VHDL contiennent un grand nombre de fonctions, dont le programme source est fourni.
L'exemple qui suit, issu de la librairie bv_math du compilateur WARP, incrmente de 1 un vecteur de bits. On peut
l'utiliser, par exemple, pour crer un compteur binaire.

Dclaration :

function inc_bv (a: bit_vector) return bit_vector ;

Corps de la fonction :

function inc_bv (a: bit_vector) return bit_vector is
variable s : bit_vector (a 'range) ;
variable carry : bit;
begin
carry := 'l' ;
for i in a'low to a'high loop -- les attributs low et high dterminent les dimensions du vecteur.
s(i) := a(i) xor carry ;
carry := a(i) and carry ;
end loop ;
return (s) ;
end inc_bv ;
Electronique Numrique 5. VHDL

5. 27
Utilisation dans un compteur :

architecture behavior of counter is
begin
process
begin
wait until ( clk = 'l') ;
if reset = 'l' then
count <= "0000" ;
elseif load = 'l' then
count <= datain ;
else
count <= inc_bv(count) ; -- increment du bit vector
end if ;
end process ;
end behavior ;

Les procdures

Une procdure, comme une fonction, peut recevoir du programme appelant des arguments : constantes, variables ou
signaux. Mais ces arguments peuvent tre dclars de modes in , inout ou out (sauf les constantes qui sont
toujours de mode in ), ce qui autorise une procdure renvoyer un nombre quelconque de valeurs au programme
appelant.

Dclaration :

procedure nom [ ( liste de paramtres formels ) ] ;

Corps de la procdure :

procedure nom [ ( liste de paramtres formels ) ] is
[ dclarations ]
begin
instructions squentielles
end [ nom ] ;

Dans la liste des paramtres formels, la nature des arguments doit tre prcise :

procedure exemple ( signal a, b : in bit;
signal s : out bit) ;

Le corps d'une procdure peut contenir une instruction wait, les variables locales, dclares dans la procdure, cessent
d'exister ds que la procdure se termine.

Utilisation :

nom ( liste de paramtres rels ) ;

Une procdure peut tre appele par une instruction concurrente ou par une instruction squentielle, mais si l'un de ses
arguments est une variable, elle ne peut tre appele que par une instruction squentielle. La correspondance entre
paramtres rels (dans l'appel) et paramtres formels (dans la description de la procdure) peut se faire par position, ou
par associations de noms :

exemple ( entree1, entree2, sortie ) ;

ou :

exemple ( s => sortie, a => entreel, b => entree2 ) ;
Electronique Numrique 5. VHDL

5. 28
3.2. Les paquetages (packages) et les librairies

Un paquetage (package) permet de rassembler des dclarations et des sous-programmes, utiliss frquemment dans une
application, dans un module qui peut tre compil part, et rendu visible par l'application au moyen de la clause use.
Un paquetage est constitu de deux parties : la dclaration, et le corps (body).

- La dclaration contient les informations publiques dont une application a besoin pour utiliser correctement les objets
dcrits par le paquetage : essentiellement des dclarations, des dfinitions de types, des dfinitions de constantes ... etc.
(on peut rapprocher la partie visible d'un package des fichiers *.h du langage C; ces fichiers contiennent, entre autres, les prototypes des objets,
variables ou fonctions, utiliss dans un programme. La clause use de VHDL est un peu l'quivalent, dans cette comparaison, de la directive
#include <xxx.h> du langage C)

- Le corps, qui n'existe pas obligatoirement, contient le code des fonctions ou procdures dfinies par le paquetage,
s'il en existe.

L'utilisation d'un paquetage se fait au moyen de la clause use :

use work.int_math.all ; -- rend le paquetage int_math, de la librairie work, visible dans sa totalit.

Le mot cl work indique l'ensemble des librairies accessibles, par dfaut, au programmeur. Ce mot cache, notamment,
des chemins d'accs des rpertoires de travail. Ces chemins sont grs par le systme de dveloppement, et
l'utilisateur n'a pas besoin d'en connatre les dtails. Le nom compos qui suit la clause use doit tre compris comme
une suite de filtres : utiliser tous les lments du module int_math de la librairie work .


Les paquetages prdfinis

Un compilateur VHDL est toujours assorti d'une librairie, dcrite par des paquetages, qui offre l'utilisateur des outils
varis :

- Dfinitions de types, et fonctions de conversions entre types : VHDL est un langage objet, fortement typ. Aucune
conversion de type implicite n'est autorise dans les expressions, mais une librairie peut offrir des fonctions de
conversion explicites, et redfinir les oprateurs lmentaires pour quils acceptent des oprandes de types varis. Un
bus par exemple, peut tre vu, dans le langage, comme un vecteur (tableau une dimension) de bits, et il est possible
dtendre les oprateurs arithmtiques et logiques lmentaires pour quils agissent sur un bus, vu comme la
reprsentation binaire dun nombre entier.

- Les blocs structurels des circuits programmables, notamment les cellules d'entres-sorties, peuvent tre dclars
comme des composants que l'on peut inclure dans une description. Une porte trois-tats, par exemple, sera vue, dans
une architecture, comme un composant dont l'un des ports vhicule des signaux de type particulier : aux deux tats
logiques vient se rajouter un tat haute impdance. L'emploi d'un tel oprateur dans un schma ncessite, outre la
description du composant, une fonction de conversion entre signaux logiques et signaux trois-tats .

- Un simulateur doit pouvoir rsoudre, ou indiquer, les conflits ventuels. Les signaux utiliss en simulation ne sont
pas, pour cette raison, de type binaire : on leur attache un type numr plus riche qui rajoute aux simples valeurs '0' et
'l' la valeur 'inconnue', des nuances de force entre les sorties standard et les sorties collecteur ouvert, etc.

- La bibliothque standard offre galement des procdures d'usage gnral comme les moyens d'accs aux fichiers, les
possibilits de dialogue avec l'utilisateur, messages d'erreurs, par exemple.

L'exemple qui suit illustre l'utilisation, et l'intrt des paquetages prdfinis. Le programme dcrit le fonctionnement
d'un circuit qui effectue une division par 50 du signal d'horloge, en fournissant en sortie un signal de rapport cyclique
gal un demi. Pour obtenir ce rsultat, on a utilis la possibilit, offerte par le paquetage int_math du
compilateur WARP , de mlanger, dans des oprations arithmtiques et logiques, des lments de types diffrents : les
vecteurs de bits et les entiers (VHDL est un langage objet qui permet de surcharger les oprateurs. A chaque oprateur il est possible d'associer
une fonction quivalente, ce qui permet de traiter des oprandes et un rsultat de types diffrents de ceux qui sont dfinis par dfaut).
Electronique Numrique 5. VHDL

5. 29
-- div50.vhd
entity div50 is
port ( hor : in bit ;
s : out bit ) ; -- sortie
end div50 ;
use work.int_math.all ; -- rend le paquetage visible
architecture arith_bv of div50 is
signal etat : bit_vector (0 to 5) ;
begin
s <= etat(5) ;
process
begin
wait until hor = 'l' ;
if etat = 24 then -- oprateur "=" surcharg.
etat <= i2bv(39,6) ; -- fonction de conversion dun entier en bit_vector de 6 bits.
else
etat <= etat + 1 ; -- oprateur "+" surcharg.
end if ;
end process ;
end arith_bv ;

Pour assurer la portabilit des programmes, d'un compilateur un autre, les paquetages prdfinis sont fournis sous
forme de fichiers sources VHDL. Cette rgle permet un utilisateur de passer d'un systme de dveloppement un
autre sans difficult, il suffit de recompiler les paquetages qui ne seraient pas communs aux deux systmes.
Un autre exemple de paquetage prdfini concerne la description des oprateurs lmentaires connus d'un systme.
Pour synthtiser une application, avec pour cible un circuit de type 22V10 par exemple, le systme de dveloppement
utilise un paquetage qui dcrit les composants disponibles dans ce circuit. Ce paquetage est accessible l'utilisateur ;
mentionnons, en particulier, que l'utilisation d'une description structurelle, en terme de composants instancis, est
indispensable pour utiliser les portes trois-tats de sortie du circuit.

Les paquetages crs par l'utilisateur
L'utilisateur peut crer ses propres paquetages. Cette possibilit permet d'assurer la cohrence des dclarations dans une
application complexe, vite d'avoir rpter un grand nombre de fois ces mmes dclarations et donne la possibilit de
crer une librairie de fonctions et procdures adapte aux besoins des utilisateurs.

La syntaxe de la dclaration d'un paquetage est la suivante :
package identificateur is
dclarations de types, de fonctions, de composants, d'attributs,
clause use, ... etc.
end [ identificateur ] ;

S'il existe, le corps du paquetage doit porter le mme nom que celui qui figure dans la dclaration :
package body identificateur is
corps des sous-programmes dclars.
end [ identificateur ] ;

Dans lexemple qui suit on ralise un compteur au moyen de 2 bascules, dans une description structurelle. La
dclaration du composant bascule est mise dans un paquetage :
package T_edge_pkg is
component T_edge -- une bascule T avec mise 0.
port ( T, hor, raz : in bit ;
s : out bit ) ;
end component ;
end T_edge_pkg ;
Electronique Numrique 5. VHDL

5. 30
Le compteur proprement dit :

entity cnt4 is
port (ck, razero, en : in bit ;
s : out bit_vector (0 to 1)
) ;
end cnt4 ;
use work.T_edge_pkg.all ; -- rend le contenu du package prcdent visible.
architecture struct of cnt4 is
signal etat : bit_vector (0 to 1) ;
signal inter:bit;
begin
s <= etat ;
inter <= etat(0) and en ;
g0 : T_edge port map ( en, ck, razero, etat(0) ) ;
g1 : T_edge port map ( inter, ck, razero, etat(l) ) ;
end struct ;


Les librairies

Une librairie est une collection de modules VHDL qui ont dj t compils. Ces modules peuvent tre des paquetages,
des entits ou des architectures.
Une librairie par dfaut, work, est systmatiquement associe l'environnement de travail de l'utilisateur. Ce dernier
peut ouvrir ses propres librairies par la clause library :

library nom_de_la_librairie ;

La faon dont on associe un nom de librairie un, ou des chemins, dans le systme de fichiers de lordinateur, dpend
de loutil de dveloppement utilis.


3.3. Les paramtres gnriques

Lorsque l'on cre le couple entit-architecture d'un oprateur, que l'on souhaite utiliser comme composant dans une
construction plus large, il est parfois pratique de pouvoir laisser certains paramtres modifiables par le programme qui
utilise le composant. De tels paramtres, dont la valeur relle peut n'tre fixe que lors de l'instanciation du composant,
sont appels paramtres gnriques.
Un paramtre gnrique se dclare au dbut de l'entit, et peut avoir une valeur par dfaut :

generic ( nom : type [ := valeur_par_defaut ] ) ;

La mme dclaration doit apparatre dans la dclaration de composant, mais au moment de l'instanciation la taille peut
tre modifie par une instruction generic map , de construction identique l'instruction port map ,
prcdemment rencontre :

etiquette : nom generic map ( valeurs )
port map ( liste_d'association ) ;

Dans l'exemple ci-dessous, on ralise un compteur, sur 4 bits par dfaut, qui est ensuite instanci comme un compteur 8
bits. Bien videmment, le code du compteur ne doit faire aucune rfrence explicite la valeur par dfaut.
Electronique Numrique 5. VHDL

5. 31
entity compteur is
generic ( taille : integer := 4 ) ;
port ( hor : in bit;
sortie : out bit_vector ( 0 to taille - 1) ) ;
end compteur ;
use work.int_math.a11 ;
architecture simple of compteur is
signal etat : bit_vector (0 to taille - 1) ;
begin
sortie <= etat ;
process
begin
wait until hor = 'l' ;
etat <= etat + 1 ;
end process ;
end simple;

entity compt8 is
port ( ck : in bit;
val : out bit_vector ( 0 to 7) ) ;
end compt8 ;

architecture large of compt8 is
component compteur
generic ( taille : integer ) ;
port ( hor : in bit ;
sortie : out bit_vector ( 0 to taille 1 ) ) ;
end component ;
begin
u1 : compteur
generic map (8)
port map ( ck , val ) ;
end large ;

Les paramtres gnriques prennent toute leur efficacit quand leur emploi est associ la cration de librairies de
composants, dcrits par des paquetages. Il est alors possible de crer des fonctions complexes au moyen de programmes
construits de faon hirarchise, chaque niveau de la hirarchie pouvant tre mis au point et test indpendamment de
l'ensemble.

4. Modlisation et synthse

Langage de modlisation des circuits intgrs complexes, VHDL est devenu un outil de synthse. Sans parler des
logiciels de conception d'ASICs sur stations de travail, la plupart des fabricants de circuits programmables offrent des
solutions VHDL, plus ou moins compltes, qui ne ncessitent qu'un quipement de type PC.

4.1. Tout ce qui est synthtisable doit tre simulable

Tout module synthtisable est simulable, et les rsultats de simulations sont identiques ceux que l'on observera dans le
vrai circuit. Telle est la rgle, gnralement bien respecte. Mes des compilateurs VHDL peuvent cependant tre pris en
dfaut, par des constructions la limite , et transformer par exemple des bascules edge (en simulation) en bascules
latch (dans le circuit), et rciproquement.
Un programme bien construit est cependant toujours compil correctement.
Electronique Numrique 5. VHDL

5. 32
4.2. La rciproque n'est pas vraie mais ...
Toutes les constructions du langage ne sont pas synthtisables, et il n'y a rien l que de tout fait normal. Certaines ne
le sont pas par nature, elles ne prtendent pas avoir de sens dans un circuit, d'autres ne le sont pas pour un compilateur
VHDL donn, une poque donne, mais il ne serait pas absurde, dans le principe, quelles le deviennent un jour.
Tenant compte de ces remarques, nous classerons ci-dessous les catgories non synthtisables en 4 familles, illustres
par des exemples non exhaustifs :

- Constructions non synthtisables par nature : les manipulations de pointeurs, les manipulations de types non
contraints (tableaux de dimensions non spcifies - cela n'empche cependant pas d'utiliser des fonctions dont les arguments sont non
contraints, il suffit qu' l'laboration finale de l'unit de conception, donc l'appel de la fonction, les dimensions soient connues -, nombres sans
limitation de leur domaine de dfinition), la modlisation des retards, les tests de violations de timing, les envois de
messages sur la console, les lectures de directives au clavier, les rfrences au temps du simulateur (le type time est
refus en tant que tel par de nombreux outils de synthse), les accs dynamiques aux fichiers.

- Constructions non synthtisables, mais acceptes par plusieurs logiciels de synthse comme outils gnraux de
conception : certains accs aux fichiers. La lecture de fichiers de donnes permet, par exemple, d'initialiser des tables
ou des mmoires. Vues du code synthtisable, les donnes issues d'un fichier n'ont de sens que si ce sont des
constantes.

- Constructions non synthtisables en raison de la complexit sous-jacente : essentiellement les oprations
arithmtiques. Tous les systmes imposent des limites aux oprateurs et aux types d'oprandes accepts dans ce
domaine. Ces limites varient grandement d'un compilateur l'autre et progressent d'une version l'autre d'un mme
compilateur. Seule une lecture attentive de la documentation spcifique de l'outil permet de les connatre. En tout tat
de cause rappelons que les oprations arithmtiques brutales gnrent rapidement des schmas extrmement
complexes, qui se heurteront ventuellement la ralit du circuit cible.

- Constructions non synthtisables qui font appel un sens cach. L'affaire est plus dlicate : la dfinition de certains
objets est attach une signification qui pilote le synthtiseur, condition qu'on ait russi lui faire comprendre ce que
l'on souhaite obtenir. Prenons un exemple : pour raliser une porte sortie trois-tats il peut venir l'esprit de crer un
type et une fonction de conversion associe :

package troisetpkg is
type z_0_l is ( '0', 'l', 'Z' ) ;
function to_z_0_1 ( e, oe : bit ) return z_0_l ;
end package troisetpkg ;
package body troisetpkg is
function to_z_0_l ( e, oe : bit ) return z_0_l is
begin
if oe = '0' then
if e = '0' then
return '0' ;
else
return '1' ;
end if ;
else
return 'Z' ;
end if ;
end to_z_0_l ;
end package body troisetpkg ;
use work.troisetpkg.all ;
entity tri_buffer is
port ( e, oe : in bit ;
s : out z_0_1 ) ;
end tri_buffer ;
Electronique Numrique 5. VHDL

5. 33
architecture test of tri_buffer is
begin
s <= to_z_0_l ( e, oe ) ;
end test ;

Ce programme est parfaitement synthtisable, mais ne produit pas vraiment le rsultat escompt. Le type numr est
cod sur deux lments binaires qui prennent 3 des 4 valeurs possibles ("00", "01", "10" et "11") en fonction des
entres, sans l'ombre d'tat haute impdance ...

La dfinition d'un sous-type, hritier du type logique multivalu std_ulogic, change tout, dans le bon sens :

library ieee ;
use ieee.std_logic_1164.all ;

package troisetpkgieee is
subtype z_0_l is std_ulogic range '0' to 'Z' ;
function to_z_0_l ( e, oe : bit ) return z_0_l ;
end package troisetpkgieee ;

package body troisetpkgieee is
function to_z_0_l ( e, ce : bit ) return z_0_l is
begin
-- mme programme source que prcdemment
end to_z_0_l ;
end package body troisetpkgieee ;

use work.troisetpkgieee.all ;

entity tri_bufi is
port ( e, oe : in bit ;
s : out z_0_1 ) ;
end tri_bufi ;

architecture test of tri_bufi is
begin
s <= to_z_0_l ( e, oe ) ;
end test ;

Le circuit synthtis ralise bien un tampon trois-tats, dont la sortie pilote une quipotentielle simple. L'tat haute
impdance est command par l'entre oe. En synthse certains types ont un sens cach mais prcis, le rle de la norme
IEEE 1164 est de pousser tous les concepteurs de logiciels tenir le mme langage. Les deux programmes prcdents
ont videmment strictement le mme comportement en simulation, le contraire n'aurait aucun charme.

Un compilateur de synthse peut ragir diversement face une instruction non synthtisable : la traiter comme une
erreur, l'ignorer si le programme a malgr tout un sens, voire ne pas dtecter le pige, ce qui est assurment dangereux.
Les restrictions apportes par un logiciel la norme du langage sont bien videmment documentes.


Penser circuit
Il y a quantit de programmes VHDL dont les algorithmes seraient justes, s'ils taient traduits en C et excuts de point
d'arrt en point d'arrt, pas pas. Diviser un projet en (petits) blocs autonomes, nommer les signaux qui permettent
ces blocs de dialoguer, imaginer l'architecture physique du circuit en cours d'laboration reprsente une bonne partie du
travail initial de conception VHDL.
Electronique Numrique 5. VHDL

5. 34
De l'ordre dans les horloges
Tous les outils de synthse attendent une identification claire des signaux d'horloges. Les instructions de test des fronts
doivent tre spares de celles qui surveillent les commandes. Par exemple :

entity T_edge is
port ( T, hor : in bit ;
s : out bit) ;
end T_edge ;

architecture mauvaise of T_edge is
signal etat : bit ;
begin
s <= etat ;
process ( hor )
begin
if hor 'event and hor = 'l' and T = 'l' then
etat <= not etat ;
end if ;
end process ;
end mauvaise ;
est une mauvaise bascule : la mme instruction recherche les fronts montants d'horloge et teste la valeur de l'entre T.

La version correcte du programme spare ces deux actions, ce qui correspond d'ailleurs la structure physique du circuit
:

architecture bonne of T_edge is
signal etat : bit ;
begin
s <= etat ;
process ( hor )
begin
if hor 'event and hor = 'l' then -- recherche du front
if T = 'l' then
etat <= not etat ; -- action synchrone
end if ;
end if ;
end process ;
end bonne ;
La mme remarque peut tre faite avec l'instruction wait, si on l'utilise, elle ne doit exprimer que l'attente du front actif
de l'horloge, l'exclusion de tout autre test. Rappelons ici que certains compilateurs de synthse ne sont pas trs
regardants en ce qui concerne les listes de sensibilits des processus. C'est videmment une mauvaise habitude que d'en
profiter pour faire de mme.

5. Conclusion
VHDL est un langage qui peut dconcerter. au premier abord, le concepteur de systmes numriques, plus habitu aux
raisonnements traditionnels sur des schmas que familier des langages de description abstraite. Il est vrai que le langage
est complexe, et peut prsenter certains piges, la description des horloges en est un exemple.
Ayant fait l'effort de rentrer dedans , l'utilisateur dcouvre que ce type d'approche est d'une trs grande souplesse, et
d'une efficacit redoutable. Des problmes de synthse qui pouvaient prendre des heures de calcul, dans une dmarche
traditionnelle, sont traits en quelques lignes de programme.
N'oubliez jamais que vous tes en train de crer un circuit, et que le meilleur des compilateurs ne peut que traduire la
complexit sous-jacente de vos quations, il n'augmentera pas la capacit de calcul des circuits que vous utilisez. Le
simple programme de description d'un additionneur 4 bits, comme le 74_283 :
Electronique Numrique 5. VHDL

5. 35
entity addit is
port ( a, b : in integer range 0 to 15 ;
cin : in integer range 0 to 1 ;
som : out integer range 0 to 31 ) ;
end addit ;
architecture behavior of addit is
begin
som <= a + b + cin ;
end behavior ;

gnre plus d'une centaine de termes, quand ses quations sont ramenes brutalement une somme de produits
logiques. Charge reste l'utilisateur de piloter l'optimiseur de faon un peu moins sommaire que de demander la
rduction de la somme une expression canonique en deux couches logiques.

__________
Electronique numrique Tutorial 5. VHDL
Tutorial5. VHDL 1
Tutorial 5. VHDL
Licensing + Compilation + Simulation

1. Licensing - Obtention de la licence (fichier license.dat)

1. Aller sur le site http://www.altera.com
2. Cliquez tout en haut de la page sur licensing
3. Cliquez sur Get licenses dans la rubrique Get My License File
4. Cliquez tout en bas de la page sur MAX+PLUS II Software for Students and Universities
5. Cochez MAX+PLUS II Student Edition software Version 10.2, 10.1, or 9.23 puis Continue
6. Enter your hard disk volume serial number, obtenu en tapant dir /p dans une fentre Terminal
(exemple 62E4-5A74) puis Continue
7. Remplir les questionnaires (donner une adresse e-mail valide, le reste est sans importance)
8. Recuperer par mail le fichier license.dat et l'inclure sous le compilateur ALTERA Max++ Baseline par la commande :
Options License Setup Browse
9. Le fichier license.dat a l'allure suivante :
FEATURE maxplus2web alterad 2010.03 permanent uncounted 3DB5C8857B8C \
HOSTID=DISK_SERIAL_NUM=182fc3d1
FEATURE maxplus2vhdl alterad 2010.03 permanent uncounted 41E79E188D5C \
HOSTID=DISK_SERIAL_NUM=182fc3d1
FEATURE maxplus2verilog alterad 2010.03 permanent uncounted \
A52A49FB166D HOSTID=DISK_SERIAL_NUM=182fc3d1

2. Compilation - Fichier source d'exemple : inverseur.vhd pour le test du compilateur ALTERA Max++
-- le fichier source .vhd doit porter le mme nom que lentit

entity inverseur is
port (e : in bit;
s : out bit);
end inverseur;

architecture test of inverseur is
begin
s <= not e;
end test;

3. Simulation - Exemple : inverseur.vhd

1. Ouvrir ou saisir le fichier inverseur.vhd
2. File Project Set project to current file
3. Compilation : Max+plusII Compiler Compile
4. Simulation :
4.1. File New Waveform Editor File (SCF File)
4.2. Node Enter Nodes from SNF List (Import)
4.3. File End time
4.4. Simulation Run
4.5. File Project Save, Compile and Simulation : Start + Open SCF

__________
Electronique Numrique TD 5. VHDL

TD 5. 1
TD 5. VHDL

Compilateur ALTERA MaxPlus+



1. Programme VHDL des Oprateurs fondamentaux : NON, ET, OU

1. Descriptions comportementales


2. Programme VHDL de lOprateur OU exclusif

1. Description structurelle

3. Programme VHDL dun Multiplexeur 2 1

1. Description comportementale
2. Description flot de donnes
3. Description structurelle

4. Programme VHDL dune Bascule D latch

__________

Electronique Numrique TP 5. VHDL

TP 5. 1
TP 5. VHDL

Compilateur ALTERA MaxPlus+



1. Programme VHDL dune Bascule RS (asynchrone)

2. Programme VHDL dune Bascule D (>0 edge triggered)

3. Programme VHDL dune Bascule T (>0 edge triggered)

3. Programme VHDL dune Bascule JK (>0 edge triggered)


__________

Electronique Numrique
Annexe




















ELECTRONIQUE

NUMERIQUE





ANNEXE










Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 1
6 ANNEXE. Les circuits programmables

0. Historique

L'histoire des circuits programmables commence, peu de chose prs, avec la dcennie 80. A la fin des annes 70 le
monde des circuits numriques se rpartit schmatiquement en 4 grands groupes :

- Les fonctions standard sont utilises pour les applications ralises en logique cble. Les catalogues TTL et CMOS
prsentent plusieurs centaines de fonctions d'usage gnral, sous forme de circuits intgrs grande chelle.

- Les microprocesseurs, dsormais d'usage courant, et sont omniprsents dans les applications industrielles.

- Dans des applications trop complexes pour tre raisonnablement traites en logique cble traditionnelle, et trop
rapides pour avoir une solution base de microprocesseurs, on utilise des squenceurs microprogramms.

- Quand les volumes de production importants le justifient, les circuits intgrs spcifiques (ASICS) offrent une
alternative aux cartes cbles classiques.

Le dveloppement des microprocesseurs stimule une volution rapide des technologies de ralisation des mmoires
semi-conducteurs; les circuits logiques programmables ont hrit directement des mmoires pour ce qui concerne les
aspects technologiques. Leurs architectures internes sont, en revanche, trs diffrentes.


1. Les grandes familles

Indpendamment de sa structure interne et des dtails de la technologie concerne, une mmoire est caractrise par son
mode de programmation et sa facult de retenir l'information quand l'alimentation est interrompue. Les catgories de
mmoires qui ont donn naissance aux circuits programmables sont :

- Les mmoires de type PROM (PROgrammable Memory) sont programmables une seule fois au moyen d'un appareil
spcial (programmateur - Quelle que soit la technologie, la programmation d'un circuit consiste lui faire subir des niveaux de tension et de
courant qui sortent du cadre de son utilisation normale. Typiquement, les tensions mises en jeu vont de 10 (CMOS) 20 Volts (bipolaires), les
courants correspondants de quelques dizaines quelques centaines de milliampres, pour des circuits aliments sous 5 Volts en fonctionnement
ordinaire). Les donnes qui y sont inscrites ne sont pas modifiables. Elles conservent les informations quand
l'alimentation est interrompue.

- Leur inconvnient majeur est l'impossibilit de modifier les informations qu'elles contiennent.

- Les mmoires de type EPROM (Erasable PROgrammable Memory) sont programmables par l'utilisateur au moyen
d'un programmateur, effaables par une exposition aux rayons ultraviolets et reprogrammables aprs avoir t effaces.
Elles aussi conservent les informations quand l'alimentation est interrompue. Leur botier doit tre quip d'une fentre
transparente, ce qui en augmente le cot. La modification de leur contenu est une opration longue qui ncessite des
manipulations : plusieurs minutes pour l'effacement des donnes anciennes, sur un premier appareil, et transfert de
nouvelles informations sur un second appareil.

- Les mmoires de type EEPROM (Electrically Erasable PROgrammable Memory), ou FLASH, sont effaables et
reprogrammables lectriquement. Non alimentes, elles conservent les informations mmorises. La diminution des
tensions appliquer pour programmer les mmoires FLASH permet mme de s'affranchir du programmateur : il est
intgr dans le circuit. On parle alors de mmoires programmables in situ (ISP, pour In Situ Programming), c'est dire
sans dmonter la mmoire de la carte sur laquelle elle est implante.
Mme programmables in situ, une mmoire FLASH fonctionne dans un mode tout fait du mode utilisation quand
elle est en cours de programmation. Les technologies FLASH sont de loin les plus sduisantes pour les circuits
programmables pas trop complexes.
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 2
- Les mmoires RAM (Random Access Memory) statiques (l'adjectif statique s'oppose dynamique. Les mmoires dynamiques
stockent les informations dans des capacits - intrinsquement lies aux structures MOS - qui ncessitent un processus dynamique de
rafrachissement. Les cellules des mmoires statiques sont des bistables, qui conservent leur tat tant que l'alimentation est prsente) ou SRAM,
sont constitues de cellules accessibles, en mode normal, en lecture et en criture. Elles sont utilises dans certains
circuits programmables complexes pour conserver la configuration (qui dfinit la fonction ralise) du circuit. Ces
mmoires perdent leur information quand l'alimentation est supprime. Les circuits qui les utilisent doivent donc suivre
un cycle d'initialisation chaque mise sous tension. Ces circuits peuvent tre reconfigurs dynamiquement, changeant
ainsi de fonction la demande, en cours d'utilisation.

Comme tout domaine spcialis, le monde des circuits programmables comporte une terminologie, d'origine anglo-
saxonne le plus souvent. Pour compliquer les choses, de nombreux termes sont, l'origine, des noms propres,
proprits des socits qui sont la source des produits concerns.

Les sigles utiliss dans la suite semblent communment admis par la majorit des fabricants :

- PLD (Programmable Logic Device) est un terme gnrique qui recouvre l'ensemble des circuits logiques
programmables. Il est le plus souvent employ pour dsigner les plus simples d'entre eux (quivalent de quelques
centaines de portes logiques).

- CPLD (Complex Programmable Logic Device) dsigne videmment un circuit relativement complexe (jusqu' une ou
deux dizaines de milliers de portes), mais dont l'architecture drive directement de celle des PLDs simples.

- FPGA (Field Programmable Gate Array) marque un saut dans l'architecture et la technologie, il dsigne un circuit qui
peut tre trs complexe (jusqu' cent mille portes quivalentes); la complexit des FPGAs rejoint celle des ASICs
(Application Specific Integrated Circuits).

Notons que la complexit d'un circuit n'est pas mesurable simplement : il ne suffit pas qu'un circuit contienne un grand
nombre de portes pour tre puissant; encore faut-il que ces portes soient utilisables dans une grande proportion. Ce
dernier point est la fois un problme d'architecture et de logiciels d'aide la conception.


2. Quest-ce quun circuit programmable ?

Un circuit programmable est un assemblage doprateurs logiques combinatoires et de bascules dans lequel la fonction
ralise nest pas fixe lors de la fabrication. Il contient potentiellement la possibilit de raliser toute une classe de
fonctions, plus ou moins large suivant son architecture. La programmation du circuit consiste dfinir une fonction
parmi toutes celles qui sont potentiellement ralisables.

Comme dans toute ralisation en logique cble, une fonction logique est dfinie par les interconnexions entre des
oprateurs combinatoires et des bascules (synchrones, cela va presque sans dire), et par les quations des oprateurs
combinatoires. Ce qui est programmable dans un circuit concerne donc les interconnexions et les oprateurs
combinatoires. Les bascules sont le plus souvent de simples bascules D, ou des bascules configurables en bascules D ou
T.

La ralisation d'oprateurs combinatoires utilise des oprateurs gnriques, c'est eux que nous allons nous intresser
dans la suite.


2.1. Des oprateurs gnriques

Les oprateurs combinatoires gnriques qui interviennent dans les circuits programmables proviennent soit des
mmoires (rseaux logiques), soit des fonctions standard (multiplexeurs et ou exclusif).
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 3
Rseaux logiques programmables

Un rseau logique programmable (PLA, pour Programmable Logic Array - que l'on ne confondra avec PAL (Programmable
Array Logic), qui dsigne les PLDs de la socit MMI, ni avec GAL (Gate Array Logic) nom dpos par la socit Lattice) utilise le fait que
toute fonction logique combinatoire peut se mettre sous forme d'une somme (OU logique) de produits (ET logiques),
c'est ce que l'on appelle classiquement la premire forme normale, ou forme disjonctive.


Figure 1 : Un PLA simple



Figure 2 : PLA ralisant un OU Exclusif

Le schma de la figure 1 reprsente une structure de PLA simple. La programmation du circuit consiste supprimer
certaines des connexions marques d'une croix. Si une connexion est supprime, une valeur constante 'l' est applique
l'entre correspondante de la porte ET, c'est ce que symbolise le rseau de rsistances reli cette valeur constante.

Un tel schma permet de raliser n'importe quelle fonction boolenne s(el, e2) , de 2 variables binaires el et e2,
pourvu qu'elle ne dpasse pas 2 termes (sauf prcision contraire, nous utiliserons les valeurs 0 el 1 pour reprsenter les tats possibles d'une
variable binaire. Les oprateurs ET et OU sont dfinis avec la convention 0 FAUX et l VRAI. Les circuits associent bien sr les valeurs
logiques des niveaux lectriques; sauf prcision contraire galement, nous prendrons une convention logique positive qui associe 1 un niveau
logique haut (H pour High) et 0 un niveau logique bas (L pour Low)).

En effet, si toutes les connexions sont prsentes, en notant par + et *, les oprateurs OU et ET respectivement, s s'crit
: 2 * 2 * 1 * 1 2 * 2 * 1 * 1 ) 2 , 1 ( e e e e e e e e e e s + = qui vaut trivialement '0'.

Un oprateur OU Exclusif, par exemple, obit l'quation : 2 * 1 2 * 1 2 1 e e e e e e + =
d'o la programmation du PLA de la figure 2.

Le plus simple des PLDs, un 16L8 par exemple, utilise des oprateurs ET 32 entres et des oprateurs OU 8
entres. Un schma tel que celui des figures prcdentes deviendrait, dans de telles conditions, illisible. Pour viter cet
cueil, les notices de circuits utilisent des symboles simplifis, pour reprsenter les rseaux logiques programmables.
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 4

Figure 3 : Symbole d'un PLA 2x4 (2x4 indique la dimension de la matrice de fusibles : 2 lignes et 4 colonnes)


La figure 3 reprsente le PLA prcdent avec ces symboles.
Dans un tel schma, toutes les entres (et leurs complments) peuvent tre connects tous les oprateurs ET par
programmation. Par rfrence la premire technologie utilise, ces connexions programmables portent le nom de
fusibles, mme quand leur ralisation n'en comporte aucun. Quand il s'agit uniquement d'illustrer la structure d'un
circuit programmable, et non la ralisation d'une fonction particulire, les croix qui symbolisent les fusibles ne sont
mme pas reprsentes.
Dans cette vocation simplifie, le schma de l'oprateur OU Exclusif devient celui de la figure 4, dans laquelle une
croix reprsente une connexion programmable maintenue, l'absence de croix une connexion supprime.


Multiplexeurs

Un multiplexeur est un aiguillage d'informations. Dans sa forme la plus simple, il comporte 2 entres de donnes, 1
sortie et une 1 de slection, conformment au symbole de la figure 5.
Le fonctionnement de cet oprateur se dcrit trs simplement sous une forme algorithmique :

si sel = '0' s in0 ;
sinon (sel = 'l') s in1 ;



Figure 4 : PLA 2x4 ralisant un OU Exclusif



Figure 5 : Un multiplexeur lmentaire

Certains constructeurs notent sur le symbole, comme nous l'avons fait, la valeur de l'entre de slection en regard de
l'entre correspondante.

La premire utilisation des multiplexeurs dans les circuits programmables est, videmment, de crer des chemins de
donnes. La programmation consiste alors fixer des valeurs aux entres de slection.
Une autre utilisation de la mme fonction consiste remarquer qu'un multiplexeur est, en soi, un oprateur gnrique.

Reprenant l'exemple prcdent du OU Exclusif, on peut le dcrire sous forme algorithmique :

si e1 = '0' 2 1 e e e2 ;
sinon (e1 = 'l') 2 1 e e 2 e ;
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 5
D'o une ralisation possible de l'oprateur OU Exclusif au moyen d'un multiplexeur dans le schma de la figure 6.

L'exemple prcdent peut tre gnralis sans peine : un multiplexeur n entres de slection, soit
n
2 entres de
donnes, permet de raliser n'importe quelle fonction combinatoire de n+1 entres, pourvu que l'une, au moins, de ces
entres existe sous forme directe et sous forme complmente.

Dans un circuit programmable dont les briques de base sont des multiplexeurs (c'est le cas de beaucoup de FPGAs)
la programmation consiste fixer des chemins de donnes, c'est dire tablir des interconnexions entre des cellules
de calcul et des signaux d'entre et de sortie. Cette opration de cration d'interconnexions entre des cellules gnriques
s'appelle le routage d'un circuit; l'affectation des cellules des fonctions souhaites par l'utilisateur s'appelle le
placement.



Figure 6 : OU Exclusif ralis par un multiplexeur


OU Exclusif

Loprateur lmentaire OU Exclusif ou somme modulo 2, dont nous avons rappel lexpression algbrique
prcdemment, est disponible en tant que tel dans certains circuits.
Cet oprateur intervient naturellement dans de nombreuses fonctions combinatoires relies de prs ou de loin
l'arithmtique : additions et soustractions, contrles d'erreurs, cryptages en tout genre, etc. Or ces fonctions se prtent
mal une reprsentation en somme de produits, car elles ne conduisent aucune minimisation de leurs quations (au
moyen de tableaux de Karnaugh, ou, de faon plus raliste, par des programmes de minimisation qui utilisent des algorithmes comme celui de Queene
et Mc Cluskey ou ESPRESSO).

Un simple gnrateur de parit sur 8 bits, qui rajoute un bit de parit un octet de donnes, ne ncessite pas moins de
l28 (
8
2 ) produits, quand il est mis plat , pour tre ralis au moyen d'une couche de ETs et d'une couche de OUs.
De nombreuses familles de circuits programmables disposent, en plus des PLAs, d'oprateurs ou OU Exclusifs pour
faciliter la ralisation de ces fonctions arithmtiques.

Une autre application de l'oprateur OU Exclusif est la programmation de la polarit d'une expression. Quand on
calcule une fonction combinatoire quelconque sous forme disjonctive, il peut arriver qu'il soit plus conomique, en
nombre de produits ncessaires, de calculer le complment de la fonction et de complmenter le rsultat obtenu.

Par exemple, si
2
) (cba reprsente l'criture en base 2 d'un nombre N, compris entre 0 et 7, on peut exprimer par une
quation logique que N est premier avec 3 : a b c a c a c a b b c prem * * * * * * 3 + + + + =

On peut galement remarquer que si N est premier avec 3 c'est qu'il n'est pas multiple de 3, soit :

a b c a b c a b c mul prem * * * * * * 3 3 + + = =

La deuxime forme, apparemment plus complexe, ncessite un produit de moins que la premire pour sa ralisation,
Dans des circuits o le nombre de produits disponibles est limit, cela peut prsenter un avantage.

Un oprateur OU Exclusif permet de passer, par programmation, d'une expression son complment, comme l'indique
la figure 7. Comme cet oprateur peut tre ralis avec un multiplexeur, l'une ou l'autre de ces formes peut se trouver
dans les notices !
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 6

Figure 7 : Polarit programme par un OU Exclusif



Figure 8 : Les 3 types fondamentaux de bascules


Bascules

Les circuits programmables actuels offrent tous la possibilit de crer des fonctions squentielles, synchrones dans leur
immense majorit. La brique de base de toute fonction squentielle est la bascule, cellule mmoire lmentaire
susceptible de changer d'tat quand survient un front actif de son signal d'horloge.

Bascule D, T ou J-K ? La premire est toujours prsente. Comme certaines fonctions se ralisent plus simplement avec
la seconde (les compteurs par exemple), de nombreux circuits permettent, toujours par programmation, de choisir entre
bascule D et bascule T, voire entre l'un des 3 types de base (c'est un bon exercice de logique squentielle lmentaire que de trouver le
schma de n'importe quel type de bascule en utilisant n'importe quel autre type).

La figure 8 rappelle, par un diagramme de transitions, le fonctionnement de ces 3 types de bascules.

Le programmeur n'a, en ralit, que rarement se proccuper de ce genre de choix, les optimiseurs dterminant
automatiquement le type de bascule le mieux adapt l'application.


2.2. Des technologies

Premier critre de choix d'un circuit programmable, la technologie utilise pour matrialiser les interconnexions
dtermine les aspects lectriques de la programmation : maintien (ou non) de la fonction programme en l'absence
d'alimentation, possibilit (ou non) de modifier la fonction programme, ncessit (ou non) d'utiliser un appareil spcial
(un programmateur).


Fusibles

Premire mthode employe, la connexion par fusibles, est en voie de disparition. On ne la rencontre plus que dans
quelques circuits de faible densit, de conception ancienne.
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 7

Figure 9 : PLD lmentaire fusibles

La figure 9 en illustre le principe; toutes les connexions sont tablies la fabrication. Lors de la programmation le
circuit est plac dans un mode particulier par le programmateur (Ce mode est activ par une tension suprieure la normale,
applique sur une broche particulire du circuit. Dans ce mode, les autres broches servent fournir au circuit le numro du fusible dtruire et
appliquer une impulsion qui provoque une surintensit dans ce fusible. Les caractristiques dtailles des signaux appliquer lors de la
programmation sont consignes, pour chaque circuit et pour chaque fabricant, dans une base de donnes d'algorithmes du programmateur), mode
dans lequel des impulsions de courant sont aiguilles successivement vers les fusibles dtruire.

Pour programmer un circuit, il faut transfrer dans le programmateur une table qui indique par un chiffre binaire l'tat
de chaque fusible : la table des fusibles. Cette table est gnralement transfre entre le systme de CAO et le
programmateur sous forme d'un fichier au format normalis : le format JEDEC.

L'exemple ci-dessous est un extrait du fichier JEDEC, gnr par un compilateur VHDL, qui implmente un compteur
binaire 10 bits dans un circuit de type 22V10 :

C22V10*
QP24* Number of Pins*
QF5828* Number of Fuses*
F0* Note : Default fuse setting 0*
G0* Note : Security bit Unprogrammed*
NOTE DEVICE C22V10*
NOTE PACKAGE PAL22V10G-5PC*
NOTE PINS hor:l oe:2 en:3 raz:4 compte_6:14
compte_8:15 compte_9:16 compte_3:17 *
NOTE PINS compte_l:18 compte_0:19 compte_2:20
compte_4:21 compte_7:22 *
NOTE PINS compte_5:23 *
NOTE NODES *
L00000
00000000000000000000000000000000000000000000
* Node hor (1) => BANK : 1 *

L00044
11110111111111111111111111111111111111111111
11011111011010101110111011101111111111111111
11101111110110111111111111111111111111111111
11101111111110111111111111011111111111111111
11101111111110011111111111111111111111111111
11101111111110111111110111111111111111111111
11101111111110111101111111111111111111111111
11101111101110111111111111111111111111111111
00000000000000000000000000000000000000000000
* Node compte_5[23] => OE : 1 ,LOGIC : 8 *

L00440
11110111111111111111111111111111111111111111

C72EB* Note: Fuse Checksum*
9604
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 8
Pour chacun des 5828 fusibles de ce circuit, un '0' indique un fusible intact, un 'l' un fusible programm.
L'examen du dbut de la table prcdente met en vidence un dfaut majeur de cette technologie : la programmation
dtruit plus de fusibles qu'elle n'en conserve, et de loin. Cela se traduit par une mauvaise utilisation du silicium, un
temps de programmation important (quelques secondes) et des contraintes thermiques svres imposes au circuit lors
de l'opration. Cette technologie n'est donc pas gnralisable des circuits dpassant quelques centaines de portes
quivalentes.
Le lecteur averti aura peut-tre remarqu, la lecture de l'en-tte du fichier JEDEC, qu'en ralit le circuit prcdent ne
contient aucun fusible. Il s'agit en vrit d'un circuit CMOS grille flottante, mais l'ancienne terminologie est reste.


MOS grille flottante

Les transistors MOS sont des interrupteurs (quand on les utilise en tout ou rien, le rgime source de courant contrle relve du monde des
fonctions analogiques), commands par une charge lectrique stocke sur leur lectrode de grille. Si, en fonctionnement
normal, cette grille est isole, elle conserve sa charge ventuelle ternellement (l'ternit en question est garantie durer plus de 20
ans). Il reste au fondeur trouver un moyen de modifier cette charge, pour programmer l'tat du transistor. Le dpt
d'une charge lectrique sur la grille isole d'un transistor fait appel un phnomne connu sous le nom d'effet tunnel :
un isolant trs mince (une cinquantaine d'angstrms, 1

A =
10
10

m) soumis une diffrence de potentiel


suffisamment grande (une dizaine de Volts, suprieure aux 3. 3 ou 5 Volts des alimentations classiques) est parcouru par un courant de
faible valeur, qui permet de dposer une charge lectrique sur une lectrode normalement isole. Ce phnomne,
rversible, permet de programmer et d'effacer une mmoire.



Figure 10 : PLD simple MOS


La figure 10 montre la structure du PLD lmentaire prcdent, dans lequel les fusibles sont remplacs par des
transistors grille isole (technologie FLASH).

Les transistors disposent de deux grilles, dont l'une est isole. Une charge ngative (des lectrons) dpose sur cette
dernire, modifie la tension de seuil du transistor command par la grille non isole. Quand cette tension de seuil
dpasse la tension d'alimentation, le transistor est toujours bloqu (interrupteur ouvert). Une variante (plus ancienne) de
cette structure consiste mettre deux transistors en srie, l'un grille isole, l'autre normal. Le transistor grille isole
est programm pour tre toujours conducteur ou toujours bloqu; on retrouve exactement la fonction du fusible, la
rversibilit en plus.

Le contrle des dimensions gomtriques des transistors permet d'obtenir des circuits fiables, programmables sous une
dizaine de Volts, reprogrammables volont (plusieurs centaines de fois), le tout lectriquement.

Les puissances mises en jeu lors de la programmation sont suffisamment faibles pour que les surtensions ncessaires
puissent tre gnres par les circuits eux-mmes. Vu par l'utilisateur, le circuit devient alors programmable in situ,
cest--dire sans appareillage accessoire. Dans ces circuits, un automate auxiliaire gre les algorithmes de
programmation et le dialogue avec le systme de dveloppement, via une liaison srie.
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 9
Mmoires statiques (SRAM)

Dans les circuits prcdents, la programmation de l'tat des interrupteurs, conserve en l'absence de tension
d'alimentation, fait appel un mode de fonctionnement lectrique particulier. Dans les technologies mmoire statique,
ltat de chaque interrupteur est command par une cellule mmoire classique 4 transistors (plus 1 transistor de
programmation), dont le schma de principe est celui de la figure 11.

La modification de la configuration d'un circuit devient alors une opration logique quasi ordinaire, qui ne ncessite pas
d'opration lectrique spciale. Ces circuits permettent des reconfigurations, partielles ou totales, en nombre illimit. Il
est mme envisageable de crer des fonctions dont certains paramtres sont modifiables en cours de fonctionnement,
comme des filtres adaptatifs par exemple.

Le prix payer pour cette souplesse est que les cellules SRAM doivent tre recharges chaque mise sous tension et
que chaque interrupteur occupe plusieurs transistors : l'interrupteur lui-mme et les transistors de la cellule mmoire.


Antifusibles

L'inverse d'un fusible est un antifusible. Le principe est, l'chelle microscopique, celui de la soudure lectrique par
points. Un point d'interconnexion est ralis au croisement de 2 pistes conductrices (mtal ou semi-conducteur selon les
procds de fabrication), spares par un isolant de faible paisseur.
Une surtension applique entre les 2 pistes provoque un perage dfinitif du dilectrique, ce qui tablit la connexion.

Les points d'interconnexions ont un diamtre de l'ordre de la largeur d'une piste, c'est dire de l'ordre du micron; il est
donc possible de prvoir un trs grand nombre d'interconnexions programmables. La rsistance du contact cr est trs
faible, de l'ordre d'une cinquantaine d'Ohms (10 fois moins que celle d'un transistor MOS), d'o des retards lis aux
interconnexions trs faibles galement.



Figure 11 : Cellule SRAM


Les circuits antifusibles partagent, avec ceux SRAM, le sommet de la gamme des circuits programmables en vitesse
et en densit dintgration. Il est clair que ces circuits ne sont programmables quune fois.


2.3. Des architectures

Les diffrences de technologies se doublent de diffrences d'architectures. Nous tenterons ici de mettre en lumire des
grands points de repre, sachant que toute classification a un ct un peu rducteur. La plupart des circuits complexes
panachent les architectures.


Somme de produits

Toute fonction logique combinatoire peut tre crite comme somme de produits, nous avons voqu ce point propos
des PLAs. La partie combinatoire d'un circuit programmable peut donc tre construite en suivant cette dmarche :
chaque sortie est une fonction de toutes les entres. Si la sortie se rapporte un oprateur squentiel, les quations
programmables calculent la valeur de la commande d'une bascule en fonction des entres et des tats de toutes les
bascules du circuit : nous retrouvons l'architecture matrielle d'une machine d'tats gnrique. Les PLDs de premire
gnration suivaient ce principe.
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 10
La capacit de calcul de cette architecture est limite par le nombre maximum de produits runis dans la somme
logique, et, dans une moindre mesure, par le nombre de facteurs de chaque produit. Les valeurs typiques sont
respectivement de 16 et 44 pour un 22V10.
Trs efficace pour la ralisation d'oprateurs relativement simples, cette architecture n'est pas directement gnralisable
des circuits complexes : pour augmenter la capacit potentielle de calcul du circuit, il faut augmenter les dimensions
des produits et des sommes logiques. Or mme dans une fonction complexe, de nombreux sous-ensembles sont
simples; ces sous-ensembles monopoliseront inutilement une grande partie des potentialits du circuit (L'architecture du
22V10 contourne cette difficult en utilisant des sommes de dimensions diffrentes (de 8 16). Mais celle solution impose des contraintes sur
l'affectation des broches aux sorties d'une fonction : les broches centrales sont plus puissantes que les broches situes aux extrmits d'un botier
DIL. Cela peut, par exemple, interdire la modification d'une fonction en conservant le cblage extrieur).


Cellules universelles interconnectes

L'autre approch, radicalement oppose, est de renoncer la rduction en premire forme normale des quations
logiques. On divise le circuit en blocs logiques indpendants, interconnects par des chemins de routage. Une fonction
logique est rcursivement dcompose en oprations plus simples, jusqu' ce que les oprations lmentaires rentrent
dans une cellule. La figure 12 en fournit un exemple.



Figure 12 : Cellules logiques interconnectes


Les diffrences d'architectures entre les circuits concernent le compromis fait entre capacit de calcul de chaque cellule
et possibilits d'interconnexions :

- Cellules de grande taille, la limite l'quivalent d'un PLD classique, et interconnexions limites. C'est
schmatiquement le choix fait pour les circuits CPLDs, en technologie FLASH.

- A l'autre extrme, cellules trs petites (une bascule et un multiplexeur de commande), avec des ressources de routage
importantes. C'est typiquement le choix fait dans les FPGAs antifusibles, dont la figure 12 est un exemple.

- La solution intermdiaire est, sans doute, la plus rpandue : les cellules comportent 1 ou 2 bascules et des blocs de
calcul combinatoires qui traitent de 6 10 entres. Ces cellules sont optimises pour accrotre l'efficacit de traitement
d'oprations courantes, comme le comptage ou l'arithmtique. Les circuits FPGAs SRAM sont gnralement associs
de telles cellules de taille moyenne.
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 11
Cellules d'entre-sortie

Dans les circuits programmables de premire gnration, les sorties taient associes de faon rigide des noeuds
internes du circuit : rsultat combinatoire, tat d'une bascule.



Figure 13 : Macrocellule configurable


Trs vite est apparu l'intrt de crer des macrocellules d'entre-sortie pourvues d'une certaine capacit de
reconfiguration. La figure 13 reprend le schma de principe des cellules d'un PLD 22V10.

Les 2 fusibles f1 et f0 permettent de configurer la macrocellule en entre-sortie combinatoire bidirectionnelle,
complmente ou non (complmenter une sortie permet, dans certains cas, de simplifier les quations logiques), ou en sortie registre
trois-tats. Chaque sortie du circuit peut disposer de son propre mode, grce aux 20 fusibles de configuration.

Les volutions ultrieures rendent indpendantes les macrocellules et les broches du circuit, autorisant ainsi la cration
de bascules enterres (burried flip flops) et d'entres-sorties bidirectionnelles, quel que soit le mode, registre ou non,
attach la sortie. Dans les architectures cellules universelles interconnectes des FPGAs, les cellules d'entre-sortie
sont entirement configurables et routables, au mme titre que les cellules de calcul. Elles disposent de leurs propres
bascules de synchronisation, en entre et en sortie, indpendantes de celles des blocs logiques qui interviennent dans la
fonction programme.


Placement et routage

Le placement consiste attacher des blocs de calcul aux oprateurs logiques d'une fonction et choisir les broches
d'entres-sorties. Le routage consiste crer les interconnexions ncessaires.

Pour les PLDs simples, le placement est relativement trivial et le routage inexistant. Les compilateurs gnriques (i.e.
indpendants du fondeur) effectuent trs bien ces deux oprations.

Ds les CPLDs et plus encore pour les FPGAs, ces deux oprations deviennent plus complexes et ncessitent un outil
spcifique du fondeur, qui seul a les comptences (pour la simple raison qu'il est seul connatre ses circuits dans leurs moindres
dtails). Le compilateur VHDL sert, dans ces cas, de frontal homogne qui traduit, aprs une premire optimisation, la
description VHDL dans un langage structurel adapt au logiciel spcifique (une certaine portabilit demeure, mme ce niveau ; il
existe des formats de fichiers communs plusieurs fondeurs : les fichiers PLA ou, plus souvent, des fichiers dans un langage symbolique, EDIF pour
Electronic Data Interchange Format for net-lists; il s'agit d'un langage de description structurelle, qui ressemble un peu LISP, compris par la
majorit des systmes de CAO). A propos de la rtro annotation, les outils des fondeurs (fabricants de circuits intgrs) fournissent
en retour un modle, VHDL ou VERILOG, du circuit gnr qui prend en compte les temps de propagation internes.
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 12
2.4. Des techniques de programmation

Le placeur-routeur transforme la description structurelle du circuit en une table des fusibles consigne dans un fichier
(JEDEC dans les cas simples, LOF, POF autrement). Pour la petite histoire, signalons que cette table peut contenir
plusieurs centaines de milliers de bits, un par fusible . Traditionnellement, la programmation du circuit, opration
qui consiste traduire la table des fusibles en une configuration matrielle, se faisait au moyen d'un programmateur,
appareil capable de gnrer les squences et les surtensions ncessaires. La tendance actuelle est de supprimer cette
tape de manipulation intermdiaire, manipulation d'autant plus malaise que l'augmentation de la complexit des
botiers va de pair avec celle des circuits.
Autant il tait simple de concevoir des supports force d'insertion nulle pour des botiers DIL (Dual In Line) de 20 40
broches espaces de 2.54 mm, autant il est difficile et coteux de raliser l'quivalent pour des PGA (Pin Grid Array) et
autres BGA (Ball Grid Array), de 200 plus de 300 broches rparties sur toute la surface du botier, sans parler des
botiers miniaturiss, au pas de 0.65 mm, destins au montage en surface (CMS Composants Monts en Surface).

Une difficult du mme ordre se rencontre pour le test : il est devenu quasi impossible d'accder, par des moyens
traditionnels tels que les pointes de contact d'une planche clous , aux quipotentielles d'une carte. De toute faon,
les quipotentielles du circuit imprim ne reprsentent plus qu'une faible proportion des noeuds du schma global : un
circuit de 250 broches peut contenir 2500 bascules.


Trois modes : fonctionnement normal, programmation et test

Fonctionnement normal, programmation et test : l'ide s'est impose d'incorporer ces trois modes de fonctionnement
dans les circuits eux-mmes, comme partie intgrante de leur architecture. Pour le test de cartes, une norme existe : le
standard IEEE 1149.1, plus connu sous le nom de boundary scan du consortium JTAG (Join Test Action Group). Face
la quasi impossibilit de tester de l'extrieur les cartes multicouches avec des composants monts en surface, un mode
de test a t dfini, pour les VLSI numriques. Ce mode de test fait appel une machine dtats, intgre dans tous les
circuits compatibles JTAG, qui utilise 5 broches ddies :

Tck, une entre dhorloge ddie au test, diffrence de lhorloge du reste du circuit
Tms, une entre de mode qui pilote l'automate de test
Tdi, une entre srie
Tdo, une sortie srie
Trst (optionnelle), une entre de rinitialisation asynchrone de l'automate.

L 'utilisation premire de ce sous-ensemble de test est la vrification de connexions d'une carte, Quand le mode de test
est activ, via des commande ad-hoc sur les entres Tms et Trst, le fonctionnement normal du circuit est inhib. Les
broches du circuit sont connectes des cellules d'entre-sortie ddies au test (typiquement, une broche d'entre-sortie
bidirectionnelle est pilote par 6 bascules : un couple en entre, un couple en sortie et un couple en commande de trois-
tats ; les bascules par paires permettent de dcaler les donnes tout en mmorisant la configuration prcdente de
chaque broche), chaque cellule est capable de piloter une broche en sortie et de capturer les donnes d'entre,
conformment au schma de principe de la figure 14.

Toutes les cellules de test sont connectes en un registre dcalage, tant l'intrieur d'un circuit qu'entre les circuits,
constituant ainsi une chane de donnes, accessible en srie, qui parcourt l'ensemble des broches de tous le circuits
compatibles JTAG d'une carte. Les oprations de test sont programmes via des commandes passes aux automates et
des donnes entres en srie. Les rsultats des tests sont rcuprables par la dernire sortie srie.

Les automates de test permettent d'autres vrifications que celles des connexions : il est possible de les utiliser pour
appliquer des vecteurs de test internes aux circuits, par exemple. C'est souvent de cette faon que sont effectus certains
des tests la fabrication. L'ide tait sduisante d'utiliser la mme structure pour configurer les circuits programmables.
C'est ce qui est en train de se faire : la plupart des fabricants proposent, ou annoncent des solutions plus ou moins
drives de JTAG pour viter l'utilisateur d'avoir recours un appareillage extrieur (les pionniers en la matire furent les
socits XILINX pour les technologies SRAM et LATTICE pour les technologies FLASH).
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 13
Programmables in situ

Les circuits programmables in situ se dveloppent dans le monde des PLDs et CPLDs en technologie FLASH. Du
simple 22V10 des composants de plus de 10 000 portes quivalentes et 400 bascules (LATTICE, par exemple), il est
possible de programmer (et de modifier) l'ensemble d'une carte, sans dmontage, partir d'un port srie de PC.



Figure 14 : Boudary scan


Les technologies FLASH conservent leur configuration en l'absence d'alimentation.


Reconfigurables dynamiquement

Les FPGAs cellules SRAM offrent des possibilits multiples de chargement de la mmoire de configuration :

- Chargement automatique, chaque mise sous tension, des donnes stockes dans une mmoire PROM. Les donnes
peuvent tre transmises en srie, en utilisant peu de broches du circuit, ou en parallle octet par octet, ce qui acclre la
phase de configuration mais utilise, temporairement du moins, plus de broches du circuit. Plusieurs circuits d'une mme
carte peuvent tre configurs en coopration, leurs automates de chargement assurent un passage en mode normal
coordonn, ce qui est videmment souhaitable.

- Chargement, en srie ou en parallle, partir d'un processeur matre. Ce type de structure autorise la modification
rapide des configurations en cours de fonctionnement. Cette possibilit est intressante, par exemple, en traitement du
signal.


3. PLDs, CPLDs, FPGAs : quel circuit choisir ?

Dans le monde des circuits numriques les chiffres voluent trs vite, beaucoup plus vite que les concepts. Cette
impression de mouvement permanent est accentue par les effets d'annonce des fabricants et par l'usage systmatique
de la publicit comparative, trs en vogue dans ce domaine.

Il semble que doivent se maintenir trois grandes familles :

- Les PLDs et CPLDs en technologie FLASH, utilisant une architecture somme de produits. La tendance est la
gnralisation de la programmation in situ, rendant inutile les programmateurs sophistiqus. Rservs des fonctions
simples ou moyennement complexes, ces circuits sont rapides (jusqu environ 200 MHz) et leurs caractristiques
temporelles sont pratiquement indpendantes de la fonction ralise. Les valeurs de frquence maximum de
fonctionnement dans la notice sont directement applicables.

- Les FPGAs SRAM, utilisant une architecture cellulaire. Proposs pratiquement par tous les fabricants, ils couvrent
une gamme extrmement large de produits, tant en densits qu'en vitesses. Reprogrammables indfiniment, ils sont
devenus reconfigurables rapidement (200 ns par cellule), en totalit ou partiellement.
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 14
- Les FPGAs antifusibles, utilisant une architecture cellulaire granularit fine. Ces circuits tendent remplacer une
bonne partie des ASICs prdiffuss. Programmables une fois, ils prsentent l'avantage d'une trs grande routabilit, d'o
une bonne occupation de la surface du circuit. Leur configuration est absolument immuable et disponible sans aucun
dlai aprs la mise sous tension; c'est un avantage parfois incontournable.


3.1. Critres de performances

Outre la technologie de programmation, capacit et vitesse sont les matres mots pour comparer deux circuits. Mais
quelle capacit, et quelle vitesse ?


Puissance de calcul

Les premiers chiffres accessibles concernent les nombres d'oprateurs utilisables.

Nombre de portes quivalentes

Le nombre de portes est sans doute l'argument le plus utilis dans les effets d'annonce. En 1997 par exemple, la barrire
des 100 000 portes a largement t franchie. Plus dlicate est l'estimation du nombre de portes qui seront inutilises
dans une application, donc le nombre rellement utile de portes.

Nombre de cellules

Le nombre de cellules est un chiffre plus facilement interprtable : le constructeur du circuit a optimis son architecture,
pour rendre chaque cellule capable de traiter peu prs tout calcul dont la complexit est en relation avec le nombre de
bascules qu'elle contient (une ou deux suivant les architectures). Trois repres chiffrs : un 22V10 contient 10 bascules,
la famille des CPLDs va de 32 bascules quelques centaines, et celle des FPGAs s'tend d'une centaine quelques
milliers.
Dans les circuits architecture cellulaire, il est souvent trs rentable daugmenter le nombre de bascules si cela permet
dallger les blocs combinatoires (pipeline ).

Nombre dentres-sorties

Le nombre de ports de communication entre l'intrieur et l'extrieur d'un circuit peut varier dans un rapport deux, pour
la mme architecture interne, en fonction du botier choisi. Les chiffres vont de quelques dizaines quelques centaines
de broches d'entres-sorties.

Capacit mmoire

Les FPGAs SRAM contiennent des mmoires pour stocker leur configuration. La plupart des familles rcentes
offrent l'utilisateur la possibilit d'utiliser certaines de ces mmoires en tant que telles. Par exemple, la famille 4000 de
XILINX permet d'utiliser les mmoires de configuration d'une cellule pour stocker 32 bits de donnes; la cellule
correspondante n'est videmment plus disponible comme oprateur logique. Les capacits de mmorisation atteignent
quelques dizaines de kilobits.

Routabilit

Placement et routage sont intimement lis, et le souhait vident de l'utilisateur est que ces oprations soient aussi
automatiques que possible. Le critre premier de routabilit est l'indpendance entre la fonction et le brochage. Certains
circuits (mais pas tous) garantissent une routabilit complte : toute fonction intgrable dans le circuit pourra tre
modifie sans modification du cblage externe.

Le routage influe sur les performances dynamiques de la fonction finale. La politique gnralement adopte est de
prvoir des interconnexions hirarchises : les cellules sont regroupes en grappes (d'une ou quelques dizaines)
fortement interconnectes, des pistes de communication reliant les grappes entre elles. Les interconnexions locales n'ont
que peu d'influence sur les temps de calcul, contrairement aux interconnexions distantes dont l'effet est notable.
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 15
A priori c'est au placeur-routeur que revient la gestion de ces interconnexions; condition que le programmeur ne lui
complique pas inutilement la tche. Un optimiseur a toujours du mal dcouper des blocs de grandes tailles, il lui est
beaucoup plus simple de placer des objets de petites dimensions. En VHDL cela s'appelle une construction
hirarchique; un ensemble complexe doit tre conu comme l'assemblage d'units de conceptions aussi simples que
possibles.



Figure 15 : Modle de calcul de la frquence maximum


Vitesse de fonctionnement

Nous avons vu, propos de la rtro annotation, que les comportements dynamiques des FPGAs et des PLDs simples
prsentent des diffrences marquantes. Les premiers ont un comportement prvisible, indpendamment de la fonction
programme; les limites des seconds dpendent de la fonction, du placement et du routage. Une difficult de jeunesse
des FPGAs a t la non reproductibilit des performances dynamiques en cas de modification, mme mineure, du
contenu d'un circuit. Les logiciels d'optimisation et les progrs des architectures internes ont pratiquement supprim ce
dfaut; mais il reste que seule une analyse et une simulation post synthse, qui prend en compte les paramtres
dynamiques des cellules, permet rellement de prvoir les limites de fonctionnement d'un circuit.

Modle gnral de dtermination de fmax

Le modle gnral de dtermination de la frquence maximum d'un oprateur squentiel prend en compte les retards
dans les circuits et les rgles concernant les instants de changement des entres vis vis des fronts actifs de l'horloge.
La figure 15 dfinit les temps les plus importants :
i
p
t pour des temps de propagation et
su
t pour le temps de
prpositionnement d'une bascule.

La frquence maximum de fonctionnement interne est donne par : ( )
su p p
t t t F + + =
1 2
/ 1
int


Pour le calcul de la frquence maximum externe, il convient de rajouter, dans la formule prcdente, le temps de
propagation des cellules de sortie : ( )
su p p p ext
t t t t F + + + =
1 2 3
/ 1

Dans un FPGA le routeur analyse le schma gnr et en dduit les diffrents temps de propagation, partir d'un
modle des cellules lmentaires du circuit.

Dans le cas des PLDs simples et de beaucoup (pas tous) des CPLDs, les notices fournissent directement les valeurs des
frquences maximum et/ou des temps de retard et de prpositionnement entre les signaux appliqus aux broches du
circuit et les fronts de l'horloge.
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 16
Style de programmation et performances

Pour lauteur dun programme VHDL, quelques guides de programmation sont utiles :

- Rflchir au codage des tats, dans la conception des machines d'tats. Les sorties directes du registre d'tat sont
prfrables.

- Subdiviser les blocs de calcul combinatoires en tranches spares par des registres; autrement dit, penser aux
architectures pipeline. Ces architectures gnrent un retard global de plusieurs priodes d'horloge, mais permettent
d'obtenir des flots de donnes rapides (l'image classique est le principe de la fabrication des voitures la chane : mme si une voiture sort
toutes les dix minutes, il faut plus de dix minutes pour fabriquer une voiture prise isolment; le dbit est trs suprieur l'inverse du temps de
fabrication d'une seule voiture).

- Savoir que les bibliothques des fondeurs sont riches en modules structurels optimiss en fonction du circuit cible : les
modules LPM (Library of Parameterized Modules).

- Les synthtiseurs infrent automatiquement des modules LPM, partir de descriptions comportementales de haut
niveau, sous rserve que le programmeur respecte certaines rgles d'criture ou indique explicitement qu'il souhaite
utiliser les librairies correspondantes. La notice de tous les compilateurs explique la dmarche suivre.


Consommation

Les premiers circuits programmables avaient plutt mauvaise rputation sur ce point. Tous les circuits actuels ont fait
d'importants progrs en direction de consommations plus faibles.

Le compromis vitesse consommation

Rgle gnrale des circuits numriques, encore plus vraie dans le monde des technologies MOS que dans celui des
technologies bipolaires : pour aller vite il faut de la puissance. Les notices fournissent communment des courbes de
consommation pour des lments classiques, comme un compteur synchrone 16 bits, en fonction de la frquence
d'horloge. Le passage 3.3 V des tensions d'alimentation permet une conomie non ngligeable de puissance, pour les
mmes valeurs de courant.
Les cellules de certains circuits sont programmables en deux modes : faible consommation ou vitesse maximum (bit
turbo). Le gain de vitesse se paye par une consommation nettement plus leve (pratiquement un facteur 2 pour un EPM 7032
cadenc 60 Mhz, par exemple).

De faon gnrale, le courant moyen consomm par un circuit est de la forme :

2
0
F
V C n F n k I I
S S L CC CC
+ =
o
0
CC
I reprsente le courant statique consomm au repos,
L
n le nombre moyen de cellules logiques qui commutent
simultanment chaque front d'horloge,
S
n le nombre moyen de sorties qui commutent chaque front d'horloge,
S
C
la capacit de charge moyenne des sorties, V l'excursion de la tension de sortie, F la frquence d'horloge et k un
coefficient de consommation par cellule par Hertz.

Quelques chiffres

Un ordre de grandeur du paramtre k prcdent est, pour un FPGA de la fami1le FLEX 8000 d'ALTERA, de 150 par
cellule. Un circuit cadenc 50 MHz, dans lequel 100 cellules commutent, en moyenne, chaque front d'horloge,
consomme, sans charge extrieure, un courant moyen de l'ordre de 750 mA. Ce qui est loin d'tre ngligeable.
A titre de confrontation, la valeur prcdente doit tre compare la consommation de 50 compteurs binaires (dans un
compteur binaire deux cellules commutent, en moyenne, chaque priode d'horloge). Un compteur binaire de la famille TTL-AS (il faut
prendre des circuits de vitesses comparables) consomme 35 mA. Les chiffres parlent d'eux-mmes.
Toujours dans le mme ordre, un PLD 22V10 rapide 10 cellules, consomme un courant de l'ordre de 100 mA. Dans
ce dernier cas, la fonction programme et la frquence d'horloge n'ont qu'une incidence faible sur le courant consomm.
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 17
L'organisation PREP

Nombre de portes, de cellules, de bascules, frquence maximum, dans quelle condition? Avec quel logiciel ? Les
comparaisons ne sont pas simples.

Le consortium PREP (Programmable Electronics Performance Corporation) regroupe la plupart des fabricants de
circuits programmables. Cet organisme a dfini un ensemble de 9 applications, typiques de l'usage courant des circuits
programmables, qui servent de test la fois pour les circuits et le systme de dveloppement associ. Les fruits de la
confrontation ce bench-mark sont fournis pour la plupart des CPLDs et FPGAs. Ces rsultats contiennent des
informations de vitesse, frquences maximums interne et externe pour chaque test, et de capacit, nombre moyen
d'exemplaires de chaque test que l'on peut instancier dans un circuit.

Les applications types

Les 9 preuves de test sont :

- Datapatch : un chemin de donnes, sur un octet, franchit dans lordre un multiplexeur 4 vers 1, un registre tampon et
un registre a dcalage arithmtique (avec extension de signe). Le schma ne comporte pratiquement pas de calcul entre
les bascules des registres; les frquences maximum obtenues sont peu de choses prs celles des circuits en boucle
ouverte. Le nombre de vecteurs d'entre sollicite beaucoup les ressources de routage.

- Counter timer : un compteur 8 bits chargement parallle parcourt un cycle dfini par une valeur de chargement et
une valeur finale. Un comparateur provoque le rechargement du compteur quand il a atteint la valeur finale. Le schma
comporte, outre le compteur, deux registres, un comparateur et un multiplexeur, le tout sur un octet. Le fonctionnement
place le comparateur dans la boucle de commande du compteur, limitant par l sa frquence maximum de
fonctionnement.

- Small state machine : petite machine d'tats, 8 tats, 8 entres, 8 sorties. Beaucoup de CPLDs arrivent la faire
fonctionner leur frquence maximum, les rsultats sont plus variables pour les FPGAs.

- Large state machine : machine 16 tats, 8 entres et 8 sorties. La plupart des CPLDs doivent abandonner leur
frquence de fonctionnement maximum : le nombre de variables est trop grand pour autoriser les calculs en une seule
passe dans la logique combinatoire.

- Arithmetic : un multiplieur de deux nombres de 4 bits, rsultat sur 8, suivi par un additionneur accumulateur sur 8 bits.
La structure en somme de produits des CPLDs les rend trs inefficaces dans les problmes d'arithmtique. Les
FPGAs montrent une supriorit architecturale nette face ces problmes.

- Accumulateur : accumulateur-additionneur sur 16 bits. Un additionneur de deux nombres de 16 bits est suivi par un
registre dont le contenu est pris comme l'un des oprandes de l'addition. Ce test gnre un schma moins complexe que
le prcdent.

- 16-bit counter : un classique compteur 16 bits, chargement parallle synchrone et remise zro asynchrone. C'est un
peu un test de vitesse pure dans une application standard.

- 16-bit prescaled counter : compteur 16 bits prdiviseur synchrone. Pour acclrer le comptage, une technique
consiste traiter part l'tage de poids faible d'un compteur, quitte perdre la possibilit d'effectuer le chargement
parallle en un seul cycle. Pour les CPLDs il n'y a aucune diffrence avec l'preuve prcdente; pour les FPGAs
l'architecture en petites cellules conduit une acclration nette du fonctionnement.
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 18

Figure 16 : Moyennes des tests PREP


- Dcodeur d'adresses : un dcodeur d'adresse gnre 8 signaux de dcodage mmoriss dans un registre partir d'un
signal d'entre sur 16 bits; il dcoupe ainsi l'espace d'adresses en 8 pages. Le traitement de ce schma favorise les
circuits qui disposent de portes ET grand nombre d'entres. L'architecture CPLD se prte mieux cette preuve que
celle des FPGAs.


A chacun son interprtation

Les rsultats ces preuves sont gnralement prsents sous forme de tableaux comparatifs. Chaque constructeur
veillant, videmment, citer les rsultats de la concurrence qui illustrent sa propre supriorit.
Une analyse gnrale, propose par beaucoup de fabricants, consiste calcu1er pour chaque circuit les moyennes des
frquences maximums de fonctionnement, et des nombres d'instances de chaque preuve implantable dans le circuit.
Ces deux chiffres fournissent une information globale de vitesse et une information globale de capacit. Sans entrer
dans des comparaisons chiffres qui ne valent qu' un instant donn, il est intressant de dlimiter dans le plan
frquence/capacit les zones de prdilection des diffrentes catgories de circuits programmables. C'est le sens de la
figure 16.

Les petits circuits sont incapables de contenir les preuves PREP, ils se concentrent une capacit moyenne nulle.
Nous les avons malgr tout plac dans ce plan, bien que la comparaison entre des moyennes d'un ct et une
information ponctuelle de l'autre soit un peu trompeuse (il n'est pas difficile de trouver dans un data book un exemple particulier de
montage avec lequel un FPGA dpasse trs largement les 200 MHz).


3.2. Le rle du fitter

Nous avons un peu explor les aspects matriels des circuits programmables. Terminons en retrouvant, travers
quelques remarques, laspect logiciel des choses. Un circuit nest rien sans son logiciel de dveloppement ; un rsultat
surprenant aux preuves PREP nous en fournit un exemple.


Mise plat ou logique multi-couches ?

L'une de ces preuves concerne l'arithmtique : pour cette preuve un CPLD qui n'est ni moins performant que son
concurrent direct, ni plus petit, s'est vu attribuer, en 1995, la note zro en frquence maximum de fonctionnement. Un
zro dans une moyenne, cela pse lourd. La rgle est la synthse automatique, optimisation comprise. Le fitter du
fondeur concern s'est vraisemblablement fourvoy dans la mise plat, sous forme somme de produits logiques, des
oprateurs arithmtiques.
La bonne approche tait, pour cet exemple, de conserver plus de couches logiques, au dtriment de la vitesse.
Les performances des FPGAs ne se dgradent que trs progressivement quand la complexit d'un schma augmente;
cette facult est lie leur architecture granularit fine, qui impose de toute faon de passer des structures multi-
couches, mme pour des fonctions combinatoires de complexit moyenne. Les constructeurs de circuits ont optimis les
passages de retenues d'une cellule l'autre, qui autorisent des structures de propagation des retenues sans trop ralentir le
systme.
Electronique Numrique 6 Annexe. Les circuits programmables

6. Annexe. 19
Certains logiciels donnent l'utilisateur le loisir de rgler manuellement le seuil de ddoublement d'quations logiques
trop larges. Il est possible de spcifier le nombre maximum de facteurs dans un produit et le nombre maximum de
termes dans une somme, par exemple. Ce genre de rglages manuels peut, bien qu'un peu dlicat manipuler, donner
de bons rsultats quand les choix automatiques ne conviennent plus.


Surface ou vitesse

Les options de rglage standard d'un fitter permettent de privilgier la surface (de silicium) ou la vitesse. Les deux
choix sont, en effet, souvent contradictoires : pour diminuer la surface il faut augmenter le nombre de couches, ce qui
pnalise la vitesse (la situation relle est un peu plus complexe : quand on diminue le nombre de couches logiques, la sortance impose aux
oprateurs augmente ; dans les technologies MOS les temps de propagation de ces oprateurs dpendent beaucoup de leurs capacits de charge, donc
du nombre d'entres qu'ils doivent commander; les fitter contrlent galement ce type de contraintes).


Librairies de macro fonctions

Rappelons limportance des librairies de modules optimiss en fonction du circuit cible. Lidal est quelles soient
explores automatiquement par lanalyseur de code VHDL, mais cette recherche automatique suppose que le code
source ne brouille pas les cartes.


Le meilleur des compilateurs ne peut donner que ce que le circuit possde

Ultime remarque : le meilleur des compilateurs ne peut qu'organiser ce qui prexiste dans un circuit, il ne cre rien.
Trivialement, tenter d'implanter un compteur 16 bits dans un 22V10 est un objectif inaccessible. Cet exemple en fera
sourire plus d'un; transpos un circuit de compression de la parole, implanter dans un circuit plus consquent, le
problme reste le mme; mme si l'analyse de faisabilit est plus ardue, elle doit pourtant tre poursuivie.

__________
Electronique Numrique Projets

Projets. 1




















ELECTRONIQUE

NUMERIQUE





PROJETS








Electronique Numrique Projets
2
Projets dElectronique - VHDL

- ~ 3 lves par groupe de projet.
- Projet libre possible (soumis laccord du professeur).
- Projet rendre ga@eisti.fr sous forme de fichier zip (dont le nom est le nom du projet suivi de tous les noms des membres du groupe de projet)
avec sources + rapport lectronique (pdf) + documentation ventuelle + programme excutable ventuel.
- Outil VHDL obligatoire (sauf indication contraire) : Simulation uniquement.
- Facultatif : Simulation de la solution VHDL sous Circuit Maker (et rciproquement, simulation VHDL pour le projet sous Circuit Maker).
- Facultatif : Programmation du FPGA de la carte de dveloppement VHDL ALTERA.
- Examen oral individuel de soutenance du projet (possibilit de notes diffrencies pour les membres dun mme projet).
- Temps de ralisation dun projet (temps moyen estim) : 5 sances de 4h.
- Soutenance du projet au plus tard la semaine du 15 au 19 mai 2006
- Sinscrire (choix du projet + membres du groupe) au plus tard la semaine du 27 au 31 mars 2006

Lide qui vient naturellement lesprit est de choisir le codage en fonction des sorties gnrer.

1. Squenceur (train lectrique) :

Synthtiser et simuler la commande des aiguillages pour un parcours :
A, C, B
du train lectrique.

Train lectrique

Soit un train lectrique devant effectuer 3 boucles A, B, C slectionnables par aiguillages p et q. Le passage dans une
boucle est dtect par un contact (T) remontant aprs le passage du train (le train roule en marche avant uniquement
(pas de marche arrire) ou peut aussi se trouver larrt).
T
a
A
p q
Dpart
B
T
b
C T
c

Aiguillages (sorties) :

p
q
=

0
1
:
:
non devie
devie

Contacts (entres) : (T)

a
b
c
=

0
1
:
:
repos
passage du train(retombee a 0 apres passage)

Etat initial :
Train au dpart sorties p et q 0

2. Serrure lectronique (digicode) :

Dcodage de la squence (cl) de 4 digits (dcimal/binaire) :

2 0 1 0
0010 0000 0001 0000

Dans cet ordre sur un clavier 12 touches :

7 8 9
4 5 6
1 2 3
* 0 #
Electronique Numrique Projets
3
3. Compteur synchrone modulo 16 ( Comptage interruptible en = 0)

Lun des intrts principaux des bascules de type T est quelles permettent de gnrer de faon extrmement simple des
compteurs binaires synchrones. Un compteur binaire est une fonction squentielle dont ltat interne est un nombre
entier naturel cod en binaire dont chaque chiffre binaire est matrialis par une bascule. A chaque transition active de
lhorloge ce nombre est incrment de 1, quand le nombre maximum est atteint, toutes les bascules sont 1, la
squence recommence partir de 0. Si le nombre de bits utiliss est n, on parlera dun compteur modulo
n
2 .
La simple observation dune table des entiers naturels crits en base 2 nous fournit la cl du problme : la bascule de
rang i doit changer dtat quand toutes les bascules de rang infrieur sont 1.

Dduire une ralisation VHDL dun compteur synchrone modulo 16 dont on peut interrompre le comptage (en = 0).

4. Commande de feux tricolores pour pitons
Un passage pour pitons traverse une avenue : il est protg par un feu tricolore qui fonctionne la demande des
pitons : en labsence de toute demande, les feux sont lorange clignotant (un nombre Tor de secondes
allums, Tor secondes teints). Quand un piton souhaite traverser lavenue, il est invit appuyer sur un
bouton, ce qui provoque le dclenchement dune squence (vue des voitures) :
- orange fixe pendant 2Tor secondes,
- rouge pendant Tr secondes,
- vert pendant Tv secondes, pour laisser passer le flot de voitures pendant un minimum de temps,
- retour la situation par dfaut.

Subdivisons la solution du problme en sous-ensembles . 3 blocs fonctionnels peuvent tre identifis :
1. La commande des feux proprement dite, les sorties de 3 bascules du registre dtat commandant
directement lallumage, ou lextinction, des lampes rouge, verte et orange.
2. Une temporisation qui, suite une commande dinitialisation, fournit les 3 dures Tor, Tr et Tv.
3. Une mmorisation de lappel des pitons, qui vite de se poser des questions concernant la dure
pendant laquelle le demandeur appuie sur le bouton; une simple pression suffit, lappel est alors
enregistr, quel que soit ltat davancement de la squence de gestion des feux.

Outre les commandes des feux proprement dites, le bloc principal fournit un signal dinitialisation (cpt) la
temporisation, qui doit durer une priode dhorloge, et un signal dannulation (raz) de la requte, mmorise,
dun piton.
Nous sommes en train de dfinir 3 processus qui se commandent et/ou sattendent mutuellement. Le danger de ce type darchitecture, trs
frquente, est de gnrer des interblocages : un processus en initialise un second et attend une rponse de ce dernier. Si l demandeur oublie de
relcher la commande dinitialisation, le systme est bloqu. Ce type de situation porte, en informatique, le doux nom dtreinte fatale
(deadly embrace). La solution adopte ici est denvoyer des signaux fugaces (amis synchrones !), ce qui oblige le demandeur attendre la
rponse dans un tat diffrent de celui o il a pass la commande dinitialisation.

Les signaux dentre de ce bloc sont la requte (piet) et les 3 indications de dure Tor, Tr et Tv ; nous
supposerons que ces dernires passent 1, pendant une priode dhorloge, quand les dures correspondantes se
sont coules. Conduisant au schma synoptique :

Feux
R
O
V piet
Tor

svp
Appel
hor
Tempo
cpt
raz
Tr
Tv
Tor
Tr
Tv


Electronique Numrique Projets
4
5. CAN + CNA
CAN par dichotomie

Algorithme

Dbut
V =
MAX
V
2
;
0
V =
2
V
i = m - 1 ;
V
in
V ?
NON OUI
N [ i ] = 0 ; V = V - V
0
N [ i ] = 1 ; V = V + V
0
0
V
=
2
0
V i = i - 1 ;
i = - 1 ?
NON OUI
STOP
Le rsultat est dans N [ ]
N [ ] m- 1 N [ ] 0


V
in
: Signal analogique d'entre (on suppose : 0 < V
in
< V
MAX
)
V
MAX
: Valeur maximale possible pour V
in

m : Nombre de bits pour le codage
V
0
: Pese successive
N : Mot binaire de sortie cod en binaire pur


Principe
On dcoupe lintervalle ] , 0 [
MAX
V en 2 parties gales et on compare par rapport
in
V Selon le rsultat, on met 0 ou
1 dans le bit de poids fort de N puis on re-dcoupe en 2 intervalles gaux lintervalle ]
2
, 0 [
MAX
V
si
2
MAX
in
V
V < (et
lintervalle ] ,
2
[
MAX
MAX
V
V
sinon) et on regarde nouveau dans quel intervalle se situe
in
V etc ...

V
MAX
2
MAX
V
4
MAX
V
in
V t
0



CNA algorithmique
N b b b
m m
=
1 2 0
L avec :
b
i m
i
: : bit ou 0 1
0 1
m : nombre de bits pour le codage.
et a pour valeur dcimale ( en base 10) :


[ ]
b b b b b b b
m m m
m
m
m


= + + + +
1 2 0
2
1
1
2
2
1
1
0
0
2 2 2 2 L L
( )
= + + + +


b b b b
m
m
m
m
1
1
2
2
1 0
2 2 2 L

Le CNA a pour rle de dlivrer une tension Vs proportionnelle N (en valeur dcimale).
MSB (Most Significant Bit), le bit de plus fort poids : b
m1

LSB (Less Significant Bit), le bit de plus faible poids : b
0

Electronique Numrique Projets
5
6. Ascenseur

Gestion/Commande dun ascenseur dimmeuble n tages (cahier des charges prciser).

7. Distributeur automatique

Gestion/Commande dun distributeur automatique de billets ou de boissons (cahier des charges prciser).

8. Registre dcalage synchrone 8 bits

Synthse du composant ainsi dcrit :.



avec : CDE = 001 Rotation (dun cran de tous les bits du registre)
CDE = 101 Rotation (dun cran de tous les bits du registre)
CDE = 011 Entre Srie Gauche (du bit ES) et Dcalage de tous les bits du registre dun cran
CDE = 110 Entre Srie Droite (du bit ES) et Dcalage de tous les bits du registre dun cran
CDE = 111 Chargement > (du mot de 8 bits B)
CDE = 000 RAZ (Effacement) (> mot de 8 bits B = 00000000)
Lhorloge (CLOCK) est active sur front montant.

9. Calculatrice simplifie en VHDL

Fonctions arithmtiques lmentaires (+, -, x, /).

10. Gestion dune ligne de mtro automatique

11. Gestion dun mini aroport / mini gare

12. Sujet libre (proposition de la part des tudiants - bonus en cas de sujet personnel).
ES
CDE
B
CLOCK
Registre

dcalage
synchrone
8 bits
Electronique Numrique Projets
6
ANNEXE


1 Microprocesseur 4 bits en VHDL (voir annexe).
2 Microprocesseur 4 bits sous Circuit Maker (voir annexe).
3 Calculatrice en VHDL.
4 Contrle (rgulation) en VHDL : algorithme PID numrique.
5 Filtrage en VHDL : Filtre numrique 1
er
ordre.
6 Conversion Analogique-Numrique (CAN) software par approximations successives sous VHDL.
7 Conversion Analogique-Numrique (CAN) hardware par carte base autour du composant AD7569JN.
8 Mini carte dacquisition-restitution (CAN/CNA) base de convertisseur AD7568JN + driver logiciel.

__________