You are on page 1of 12

Analyse de circuits synchrones

Pour partir dun circuit et dterminer le diagramme dtat dun


circuit, il faut effectuer les oprations inverses de la synthse :

Circuits Logiques
ELE1300

1. Schma
2. Expressions des sorties
3. Expressions des entres des bascules

Analyse et optimisation des circuits


squentiels (machines tats)

4. Tableau de transition
5. Tableau dtat

JP David

6. Diagramme dtat

29 mars 2016

Analysez ce circuit

Q0 + = Q0 x + Q1 x

out = Q1 Q0

Circuits logiques - JP David

Expression des Q+ et sorties


Q1+ = Q1 x + Q0 x

29 mars 2016

Circuits logiques - JP David

29 mars 2016

Q1+\Q0 x

00

01

11

10

Q1+\Q0 x

00

01

11

10

Q1+\Q0 x

00

01

11

10

Circuits logiques - JP David

Table de transitions

29 mars 2016

Table des tats

Q1

Q0

Q1+

Q0+

out

Circuits logiques - JP David

Q1

Q0
A
B
C
D

Diagramme des tats

29 mars 2016

Q1+

Q0+

out

0
0

Circuits logiques - JP David

tats redondants
Il arrive parfois que plusieurs tats dune machine tats soient
identiques mme sils ont des codes diffrents.
Deux tats sont identiques lorsque :
Ils ont les mmes valeurs de sorties et ils ont les mmes valeurs
dtats suivants, et cela peu importe la valeur des entres.
Il est souvent favorable dliminer les tats redondants. Rduire le
nombre dtats peu rduire le nombre de bascules ncessaires pour
mmoriser ltat et il est possible que cela rduise la quantit de
logique.

29 mars 2016

Circuits logiques - JP David

29 mars 2016

Circuits logiques - JP David

Technique de rduction dtats

Rduction dtats (suite)


2. Remplir le tableau comme suit pour toutes les cellules correspondant
des paires dtats:

1. Construire une table qui contient une cellule pour


chaque paire dtats possible.

Si les deux tats de la paire ont des sorties diffrentes ou sils ont
des tats et/ou sorties avec des cas facultatifs - non aligns,
placer un X dans la case

Sinon, placer les tats suivants pour la paire dans le format


suivant : (tat suivant pour le premier tat de la paire, tat
suivant pour le deuxime tat de la paire). Sil y a plusieurs tats
suivants en fonction de lentre, indiquer toutes les combinaisons
possibles. Exclure les paires identiques (ex : (A,A)) et les paires
correspondants la cellule courante.

Sil na rien dans la cellule, y placer un crochet

q2
q3
.
.
.
qn-2
qn-1
qn
q1 q2 q3

...

qn-2 qn-1

Circuits logiques - JP David

29 mars 2016

Rduction dtats (illustration)


Exemple :
Sortie
Z

B
C

29 mars 2016

Exemple :

(B,D)
(C,F)

E
F
G

Circuits logiques - JP David

tapes 1 et 2

tat
tat suivant
courant
I=0
I=1

10

Rduction dtats (illustration)

tapes 1 et 2

tat
tat suivant
courant
I=0
I=1

Circuits logiques - JP David

29 mars 2016

Sortie
Z

B
C

(B,D)
(C,F)

X X

D (C,G) (F,G)
E
F
G

X X
X X
X X
A

11

29 mars 2016

Circuits logiques - JP David

(E,G)

X
X
X

(F,E)
(E,D)

(C,D)
(C,G) (F,E)
(G,D)
E
F
12

Application lexemple

Rduction dtats (suite)


3. Pour toutes les cellules qui nont pas un crochet ou un
X, prendre chaque paire dtat numre dans la
cellule ltape 2 et examiner le contenu des cellules
correspondant ces paires. Si lune delle comprend
un X, placer un X dans la cellule courante.

B
C

X X

D (C,G) (F,G)

Rpter ltape 3 jusqu ce que la table ne change


plus

(B,D)
(C,F)

Toutes les cellules qui nont pas un X lorsque ces


tapes sont termines reprsentent des paires dtats
quivalents

F
G

X X
X X
X X
A

Circuits logiques - JP David

29 mars 2016

13

B
C

E
F
G

X X

Circuits logiques - JP David

(B,D)
(C,F)

X
X X

E
F
G

X X
X X
X
(F,E)
X X (E,D)
X X (C,D)
X
(F,E)
X X (E,G) X (C,G) (G,D)
X
A

29 mars 2016

D (C,G) (F,G)

X X
X
(F,E)
X X (E,D)
X X (C,D)
X
(F,E)
X X (E,G) X (C,G) (G,D)
X
A

(E,G)

X
X

(C,D)
(C,G) (F,E)
(G,D)
E
F
14

Application lexemple (suite)

(B,D)
(C,F)

D (C,G) (F,G)

X
(F,E)
(E,D)

Circuits logiques - JP David

29 mars 2016

Application lexemple (suite)

15

29 mars 2016

La table ne change plus, nous


avons la table finale :
AD
CE
CG
EG
On peut alors faire des groupes
dtats : (AD)(B)(CEG)(F)
partir de ces groupes, il est
possible de crer un nouveau
tableau dtat :

Circuits logiques - JP David

16

Retour notre premier circuit

Application lexemple (suite)


Table originale
tat
tat suivant
courant
I=0
I=1

Table modifie
(AD) X
(B) Y
(CEG) Z
(F) W

Sortie
Z

Q1

tat
tat suivant
courant
I=0
I=1

Circuits logiques - JP David

Sortie
Z

C
D

17

Exemple avec cas facultatif


tat
courant

29 mars 2016

Entre (x1x0)

Entre (x1x0)

00

01

10

11

00

01

10

11

Q0+

out

0
0

18

Exemple (suite)

Sortie
(z)

Q1+

Circuits logiques - JP David

29 mars 2016

tat suivant

Circuits logiques - JP David

29 mars 2016

Q0

D
E
F
G
H

X
X X
X (E,G)
X X
(B,D)
X X
(C,H)
X X
X X
A

19

29 mars 2016

Permet de dterminer que :


BD
EG
X
X X
X X X
X X (B,D) X
X X X X X
C

Circuits logiques - JP David

G
20

Aller plus loin avec les -

Exemple (suite)
tat
courant

tat suivant
Entre (x1x0)

Entre (x1x0)

00

01

10

11

00

01

10

11

Circuits logiques - JP David

29 mars 2016

On peut parfois forcer des tats devenir


redondants en imposant certaines valeurs
aux -.
Toutefois, lorsquon fixe une valeur pour un
-, on doit garder cette valeur dans toutes
les comparaisons
Nous allons voir deux techniques :

Sortie
(z)

la fusion dtats facultatifs


La fusion conditionnelle
21

Retour lexemple
tat
courant

tat suivant

tat
courant

tat suivant

Entre (x1x0)

01

10

11

00

01

10

11

Circuits logiques - JP David

Sortie
(z)

Entre (x1x0)

00

Entre (x1x0)

00

01

10

11

00

01

10

11

=E

=0

=A

=C

=0

A et E peuvent tre rendus compatibles


C et E aussi
29 mars 2016

22

Suite de lexemple

Sortie
(z)

Entre (x1x0)

Circuits logiques - JP David

29 mars 2016

En fixant les - comme dans le tableau ci-dessus, A et E deviennent compatibles.


Par contre, C et E ne le sont plus ncessairement
23

29 mars 2016

Circuits logiques - JP David

24

La fusion dtats facultatifs

Fusion dtats facultatifs (suite)

Le diagramme de fusion permet de reprsenter graphiquement tous


les tats pouvant tre fusionns en considrant les cas facultatifs.
On relie les tats compatibles par un segment de droite.

C
C

Pour fusionner N tats ensemble, il faut quils soient tous


compatibles avec TOUS les autres
tat
courant

tat suivant

01

10

11

00

10

F
25

26

Si les - ne sont pas aligns, on ne perd pas la


compatibilit pour autant
Lorsque le tableau est stabilis, on ne peut pas
dduire que toutes les cellules qui restent sont
compatibles.
On fait un diagramme de fusion conditionnelle.

Sortie
(z)
Entre (x1x0)

00

01

10

11

00

01

10

11

ABE =

Circuits logiques - JP David

Circuits logiques - JP David

Cette mthode sinspire de la technique


initiale de rduction dtats lexception de :

tat suivant

29 mars 2016

La fusion conditionnelle

29 mars 2016

Entre (x1x0)

tat
courant

A
B

Fusion dtats facultatifs (suite)


On retient une des solutions :

11

Circuits logiques - JP David

29 mars 2016

E
F

Entre (x1x0)
01

B
C

Sortie
(z)

Entre (x1x0)
00

27

29 mars 2016

Circuits logiques - JP David

28

Fusions conditionnelles

Fusions conditionnelles (suite)

1. On fait comme llimination dtats redondants, sauf que les cas


facultatifs sont considrs comme compatibles
tat

tat
suivant

Sortie (z)

Entre

Entre

B
B

(D,E)

C
D

E (A,B)
A

(C,E)

X X
B

tat

29

Entre

D
(D,E)

29 mars 2016

tat
suivant

D
(D,E)

29 mars 2016

Circuits logiques - JP David

30

Autres simplifications
Lutilisation de registres dcalage
Certaines machines tats se simplifient
drastiquement en utilisant un registre
dcalage. Cest le cas si on peut exprimer la
sortie comme une fonction combinatoire des
entres et de leurs valeurs prcdentes.

Sortie (z)
Entre

ABC =

DE =

Lutilisation du one-hot coding


Dans certains cas, utiliser un bit par tat
simplifie le circuit logique (en particulier sur
FPGA).

Circuits logiques - JP David

X
X (C,E)
(A,B) X X

3. On solutionne le diagramme de fusion. On peut utiliser une


ligne pointill CONDITIONNELLEMENT ce que la paire
dtats associ cette ligne pointille soit fusionne.
E

Fusions conditionnelles (suite)

(A,B)

(D,E)
(A,B)

Circuits logiques - JP David

29 mars 2016

2. On fait un diagramme de fusion : si une case contient un


crochet on fait une ligne pleine, si il y a une paire dtats on fait
un ligne pointille

31

29 mars 2016

Circuits logiques - JP David

32

La machine MA2 (Morse)

Le registre dcalage

chaque coup dhorloge, la donne D se


propage dune bascule la suivante

Circuits logiques - JP David

29 mars 2016

33

Le registre dcalage
X

Circuits logiques - JP David

29 mars 2016

34

Le registre dcalage
X

chaque coup dhorloge, la donne D se


propage dune bascule la suivante

29 mars 2016

Circuits logiques - JP David

chaque coup dhorloge, la donne D se


propage dune bascule la suivante

35

29 mars 2016

Circuits logiques - JP David

36

Le registre dcalage
1

Le registre dcalage
X

chaque coup dhorloge, la donne D se


propage dune bascule la suivante

chaque coup dhorloge, la donne D se


propage dune bascule la suivante

Circuits logiques - JP David

29 mars 2016

37

Le registre dcalage
1

Circuits logiques - JP David

29 mars 2016

38

Le registre dcalage
X

chaque coup dhorloge, la donne D se


propage dune bascule la suivante

29 mars 2016

Circuits logiques - JP David

chaque coup dhorloge, la donne D se


propage dune bascule la suivante

39

29 mars 2016

Circuits logiques - JP David

40

10

Le registre dcalage
0

Application au circuit Morse


1

Machine tats MA1


Dtecte les points (01),
barres (10) et espaces (11)
en utilisant le compteur
ci-dessous.
Par dfaut, elle envoie 00.

chaque coup dhorloge, la donne D se


propage dune bascule la suivante

Machine tats MA3


S10

Je mmorise les 5 derniers


symboles reus dans un
registre dcalage et je peux
dcoder toutes les lettres

reset
compte

N
A

horloge

29 mars 2016

Circuits logiques - JP David

41

Dtail du circuit MA3

Circuits logiques - JP David

29 mars 2016

42

Le one-hot coding

AR
ST
T

Manquerait-il
quelque chose?
Enable est vrai si je reois 01 (point), 10 (barre) ou 11 (Espace)
Reset et Write sont vrais si je reois 11(espace) et donc une fin de lettre
/Q0 est vrai si le dernier symbole reu tait un point
/Q1 est vrai si lavant dernier symbole reu tait un point
Q2 est vrai si lavant avant dernier symbole reu tait une barre
Q3 est vrai si lavant avant avant dernier symbole reu tait une barre
29 mars 2016

Circuits logiques - JP David

43

29 mars 2016

Circuits logiques - JP David

44

11

Le verrouillage dtats
Lors du dmarrage dun circuit, si les bascules dune machine tats ne
sont pas initialises grce une mise 1 (preset) ou une mise 0 (reset),
les bascules sinitialisent dans un tat inconnu. Il est alors possible que
la machine tat dmarre avec un code invalide et quelle demeure dans
un tat invalide. On a alors un verrouillage dtats (deadlock).
Pour viter ce problme :
Solution 1 : Sassurer que toutes les bascules dun circuit soient
initialises une valeur prcise lors du dmarrage du circuit
Solution 2 (complmentaire) : Ne pas laisser dtat non dfini

29 mars 2016

Circuits logiques - JP David

45

12

You might also like