Introduction à la Logique...

39
1 1 Introduction à la Logique Séquentielle [email protected] 2 Circuit combinatoire Circuit combinatoire X(t) Z(t) Z(t) = F[X(t)] Pas de mémoire Temps de propagation Temps de basculement

Transcript of Introduction à la Logique...

1

1

Introduction à laLogique Séquentielle

[email protected]

2

Circuit combinatoire

CircuitcombinatoireX(t) Z(t)

Z(t) = F[X(t)]

• Pas de mémoire• Temps de propagation• Temps de basculement

2

3

Circuit séquentiel

Z(t) = G[X(t), Y(t)]Y(t+τ) = F[X(t) , Y(t)]

τ

Circuitcombinatoire

X(t)

Y(t) y(t)

Z(t)

Effet mémoire : les sorties dépendent des entrées X(t)

et de l’état précédent y(t)

4

Description d’un circuit séquentiel

Y \ X Xi

Yi yij

Matrice des excitations secondaires

Y \ X Xi

Yi Zij

Matrice de sortie

Y(t+τ) = Y(t) état stableY(t+τ) ≠ Y(t) état instable

Graphe des états

3

5

Un exemple simple :

Etat instable

Etat Bas

Etat Haut

• 2 états stables• mémorisation d’un bit• aucun contrôle

le bistable

6

Définition d’une Bascule

Bascule

\Q

Q

• opérateur élémentaire de mémorisation réalisé à partir de portes logiques

• 2 états stables, 2 sorties complémentaires• entrées et commandes pour contrôler son état

4

7

Bascule RS

Cas R=S=1

NAND (S,/Q) = QNAND (R,Q) = /Q

État mémoire équivalent au bistable A B NAND

0 0 10 1 11 0 11 1 0

8

Bascule RS

Cas S=0 et R=1

a) NAND (0,/Q) = 1b) NAND (1,1) = 0c) Le zéro confirme l’état 1d) Si S repasse à 1, la bascule

repasse à l’état mémoire

Écriture d’un 1

A B NAND0 0 10 1 11 0 11 1 0

5

9

Bascule RSCas S=1 et R=0

Cas symétrique : Q = 0 et /Q = 1Ecriture d’un 0

Cas S=R=0

Cas interdit car Q = /Q = 1Les deux sorties ne sont plus

complémentaires

A B NAND0 0 10 1 11 0 11 1 0

10

Bascule RSSynthèse

2 modes de fonctionnement:• État mémoire si R = S = 1• Écriture si R = /S

Q = R = /S

S R Q+0 0 Q0 1 11 0 01 1 interdit

Table de vérité: Q+ = /S.Q + R Graphe d’état

10

SR=Ox

SR=10

SR=O1

SR=x0

6

11

Bascule RS

Bascule RS duale avec des portes NOR

2 modes de fonctionnement:• État mémoire si R = S =0• Écriture si /R = S:

Q = S = /R

• État R = S= 1 interdit• Fonctionnement asynchrone

R

S

Q

T

0

tp

12

Bascule Latch

C = 0S = R = 1 état mémoire

C = 1R = /S = D écriture Q = D

si S=0 Q=1si R=0 Q=0

Ajout d’une entrée de commande qui joue le rôle d’une horloge de validation

7

13

Bascule Latch

C D S R Q+ Mode1 0 1 0 01 1 0 1 10 x 1 1 Q mémorisation

écriture

C

D

Q

Bascule « transparente » : lors de l’écriture (C=1) toute variation de l’entrée est transmise à la sortie (Q recopie D)

14

Bascule Latch : rebouclage de la sortie

C D Q+ Mode1 0 01 1 10 x Q mémorisation

écriture

D = /Q

Si C = 1 Q = /Q

PROBLEME: la « transparence » de la bascule conduit à desoscillations (inversion permanente) ou à des problèmes autour du point d’équilibre instable

8

15

Bascule D

le rebouclage des sorties vers les entrées d’une bascule est inévitable pour concevoir des compteurs: CP← CP + n

l’utilisation de bascules « non transparentes » est donc nécessaire:

La bascule D « non transparente » permet la recopie de l’entrée D vers la sortie Q sans qu’il y ait jamais une liaison directe entre les deux

2 solutions :

bascule D Maître-Esclave

bascule D sur front

16

Bascule D Maître Esclave

Utiliser 2 bascules Latchtransparentes qui fonctionnent en opposition pour isoler la sortie de l’entrée

C1C2= 01 D QmC1C2= 10 Qm Qs

il faut que les signaux d’horloge C1 et C2 soient sans recouvrement

si on utilise une seule horloge C et son complément, il y a un problème à cause du retard introduit par l’inverseur

MémorisationEcriture Qs=Qm

EcritureMémorisation

τ

9

17

Bascule D Maître Esclaveutiliser une seule horloge sans la complémenter :

maître en NAND et esclave en NOR

Seuils du maître toujours supérieurs à

ceux de l’esclave

18

Bascule D sur front (edge-triggered)fonctionne sur transition montante ou descendante de l’horloge

D doit rester fixe pendant la période tsu+th

D positionné avant le fronttsu set-up time

D maintenu après le frontth hold time

10

19

Bascule D sur front (edge-triggered)C=0 mémorisation

C=1 écriture d’un 0

C=1 même si D varie le verrouillage s’opère

Fonctionnement dual sur front descendant par 6 portes NOR

A B NAND0 0 10 1 11 0 11 1 0

20

Bascule D sur front (edge-triggered)

C=1 écriture d’un 1

C=1 même si D varie le verrouillage s’opère

A B NAND0 0 10 1 11 0 11 1 0

11

21

Bascule D

DQ Latch

CK

Q ↑

1

1

• Bascule D-Latch• Bascule D sur front montant

22

Compteur par 2

2 états

changement d’état à chaque transition 0 1 de l’horloge

Plus d’instabilité ni d’oscillations permanentes

12

23

Comment décrire un fonctionnement séquentiel en VHDL?

Dans une architecture, on peut décrire 2 modes de fonctionnement:

• mode COMBINATOIRE: les instructions sont évaluées en permanence et toutes simultanément(concurrents), mode par défaut

• mode SEQUENTIEL: le temps joue un rôle et l’ordre des opérations est important, en construisant un process (processus).

24

Comment décrire un fonctionnement séquentiel en VHDL?

process (signaux sensibles)begin

Un PROCESS est un groupe délimité d’instructions, doté de 3 caractéristiques :

-il se déclenche à chaque changement d’état d’un des signaux auxquels il est déclaré sensible;

-les instructions s’exécutent séquentiellement;

-les valeurs des signaux ne sont mises à jour qu’à la fin du processus.

end process;

13

25

librairy ieee;

use ieee.std_logic_1164.all;

entity D_LATCH is port (D,LE : in std_logic;Q : out std_logic );

end D_LATCH;

architecture archD_LATCH of D_LATCH isbeginprocess (LE,D) begin

if (LE=‘0’) then Q <= D;end if;

end process;end archD_LATCH;

Bascule D Latch (ou verrou)

26

librairy ieee;

use ieee.std_logic_1164.all;

entity BASC_D is port (D,CK : in std_logic;Q : out std_logic );

end BASC_D;

architecture archBASC_D of BASC_D isbeginprocess (CK) begin

if (CK ’event and CK=‘1’) then Q <= D;end if;

end process;end archBASC_D;

Bascule D sur front montant

14

27

entity D_RAZ is port (D,CK,RESET: in std_logic;Q : out std_logic );

end D_RAZ ;

architecture archD_RAZ of D_RAZ isbeginprocess (CK,RESET) begin

if RESET=‘0’ then Q <=‘0’;elsif rising_edge(CK) then Q <= D; end if;

end process;end archD_RAZ;

Bascule D avec remise à zéro

28

Cascader des bascules DConditions de bon fonctionnement:

respecter tsu et thtpd toujours supérieur à th, ce qui

assure l’ « opacité » de la bascule (aucune bascule ne doit changer d’état plus d’une fois sur un cycle d’horloge)

période d’horloge

Tc > tsu + tpd

fréquence maximale

Fmax = 1/ Tc min

15

29

Logique synchroneLa bascule D est l’élément clé d’un système synchrone

Tc > tsu + tpd(bascule) + tpd(combinatoire)

On peut stocker et synchroniser plusieurs variables dans un registre d’état (N bits) en associant N bascules et une seule horloge

30

Fonctionnement Asynchrone

τ

Circuitcombinatoire

X(t)

Y(t) y(t)

Z(t)

Le temps de réaction correspond au temps de traversée de la logique combinatoire:

différent selon les variables états transitoires indésirables

comportement des circuits logiques en aval imprédictible (étatsparasites)

16

31

Fonctionnement Synchrone

L’évolution du système se fait au rythme d’une seule horloge:

changement d’état en synchronisant les variables: les entrées ne doivent pas changer pendant que l’état du système varie

garantit la durée minimum d’un état (plus d’état transitoire parasite) : l’état du système ne doit pas changer plus d’une fois par cycle d’horloge

le comportement de la logique en aval est prédictible

on peut cascader plusieurs circuits sans souci

τ1Circuitcombinatoire

X(t)

Y(t)

Z(t)

Horloge

τm

Registre

...

Registre

32

Bascule JK

D = Q+ = J./Q + /K. Q

QJK 00 01 11 10

0 0 0 1 11 1 0 0 1

Synthèse à partir d’une bascule D

J

/K

J K Q+0 0 Q0 1 01 0 11 1 /Q

Modemémoire

01

inversion

17

33

Bascule T (Toggle)

T Q+0 Q1 /Q

Modemémoireinversion

D = Q+ = /T.Q + T. /Q = T ⊕ Q

Bascule T synchrone Bascule T asynchrone

34

entity BASC_T is port (T,CK : in std_logic;Q : out std_logic );

end BASC_T;

architecture archBASC_T of BASC_T issignal Q_INT: std_logic;beginprocess (CK) begin

if (CK ’event and CK=‘1’) thenQ_INT <= (T xor Q_INT);end if;

end process;Q <= Q_INT;end archBASC_T;

Bascule T (Toggle)

18

35

Paramètres d’utilisation

Set-up Time : temps de préparationHold Time : temps de maintienPropagation Delay (Clock to Output,Data to Output) : temps de propagationMaximum Clock Frequency : fréquence maximale de l’horlogeClock Pulse Widthlargeur minimum des impulsions d’horloge

36

RegistresUn registre est un ensemble de bascules pilotées par une même commande d’horloge Permet de stocker et synchroniser plusieurs variables

N bits N bascules

Un registre a les propriétés des bascules qui le composent (transparence)

19

37

librairy ieee;

use ieee.std_logic_1164.all;

entity REG is port (CK : in std_logic;D : in std_vector (7 downto 0);Q : out std_ vector (7 downto 0);

end REG;

architecture archREG of REG isbeginprocess (CK) begin

if (CK ’event and CK=‘1’) then Q <= D;end if;

end process;end archREG;

Registre 8 bits

38

Registre à décalageLa sortie d’une bascule est reliée à l’entrée de la bascule suivante

Qi=Di lorsque C=1 et Di = Di-1

Permet de décaler d’un bit vers la droite. Pour obtenir un décalage à chaque coup d’horloge, il est nécessaire d’utiliser des bascules «non transparentes »

Plusieurs variantes: bi-directionnel, avec RESET ou initialisation parallèle des bascules

20

39

entity REG_DEC is port (D,CK : in std_logic;Q : out std_logic;

end REG_DEC;

architecture archREG_DEC of REG_DEC issignal S:std_logic;beginprocess (CK) begin

if (CK ’event and CK=‘1’) thenS <= D;Q <= S;end if;

end process;end archREG_DEC;

Registre à décalage 2 bits

SISO: Single Input Single Output

40

-- en utilisant le composant bascule D_RAZ

entity SIPO is port (SI,CK,RESET : in std_logic;PO : out std_logic_vector (31 downto 0);

end SIPO;

architecture archSIPO of SIPO issignal Q: std_logic_vector (31 downto 0);component D_RAZ port (D,CK,RESET,Q); beginetage1: D_RAZ port map (SI,CK,RESET,Q(0));autres: for I in 0 to 30 generate

D_RAZ port map (Q(I),CK,RESET,Q(I+1));end generate;PO <= Q;end archSIPO;

Registre à décalage 32 bitsSIPO: Single Input Parallel Output

21

41

Initialisation parallèle asynchrone

Q1 Q2

Q3

Q0

Entrée Série

Horloge

S

E0 E1 E2 E3

Commande de chargement

ChH

Q0

Q1

Q2

Q3

PISO: Parallel Input Parallel Output

1

set set

reset

set

01 11

0 10 0

1 01 1

0

1 11 1

1 11 1

1101 0 1 1

Utilisation des entréesasynchrones

42

entity REG_ASYNC is port (S,CK,LD : in std_logic;D : out std_ vector (7 downto 0);Q : out std_ vector (7 downto 0);

end REG_ASYNC;

architecture archREG_ASYNC of REG_ASYNC issignal I: std_logic_vector (7 downto 0);beginprocess (CK,LD) begin

if LD=‘1’ then Q <= D;elsif (CK ’event and CK=‘1’) thenI(0) <= S;for I in 0 to 6 generate I(I+1)<=I(I);

end if;end process;Q <= I;end archREG_ASYNC;

Registre à initialisation asynchrone

22

43

Initialisation parallèle synchrone

Entrée Série

Horloge

Ch

E0 E1

D0 D1

1

0Décalage

Chargement

44

entity REG_SYNC is -- idem REG_ASYNCend REG_SYNC;

architecture archREG_SYNC of REG_SYNC issignal I: std_logic_vector (7 downto 0);beginprocess (CK) begin

if (CK ’event and CK=‘1’) thenif LD=‘1’ then Q <= D;else

I(0) <= S;for I in 0 to 6 generate (I+1)<=I(I);

end if;end if;

end process;Q <= I;end archREG_SYNC;

Registre à initialisation synchrone

23

45

RegistresSISO : Single Input Single OutputSIPO : Single Input Parallel OutputPISO : Parallel Input Single OutputPIPO : Parallel Input Parallel Output

Applications : x2, ÷2, Conversion Série/Parallèle Division de fréquenceGénération de signaux d’horloge polyphasés

46

Compteurs SynchronesUn compteur est un circuit séquentiel qui respecte une séquence d’états bien définie, appelée cycle. Les sorties définissent l’état du compteur.

il n’est sensible qu’à une seule entrée, l’horloge.

Un compteur est dit modulo-N, s‘il compte jusqu’à N-1 puis repasse à zéro.

Sous-famille des automates ou machines d’état, avec d’autres entrées de contrôle.

N bascules N bits 2N états possibles

24

47

Compteur en anneau

Q1 Q2 Q3Q0

Horloge

D

H

Q0

Q1

Q2

Q3 Q2 Q1 Q0Etat initial 1 0 1 1

T1T2T3T4…

48

Compteur de Johnson

Impulsion A B C D Décimal1 0 0 0 0 0234....

Horloge

A B C D

25

49

Compteur Modulo-4Table des transitionsGraphe des états

4 états 2 bascules Réalisation avec des bascules D

D1 = Q1 ⊕ Q0D0 = /Q0

D = Q+

Etat Q1 Q0 Q1 Q00 0 0 0 11 0 1 1 02 1 0 1 13 1 1 0 0

Etat futur

50

Compteur Modulo-4Réalisation avec des bascules D

D1 = Q1 ⊕ Q0D0 = /Q0

26

51

Compteur Modulo-4Réalisation avec des bascules T

T1 = /Q0T0 = 1

1Q0 Q1

C

Q1 Q0 Q1 Q0 T1 T00 0 0 1 0 10 1 1 0 1 11 0 1 1 0 11 1 0 0 1 1

Etat présent Etat futur Entrées

52

Compteur Modulo-4

Q1 Q0 Q1 Q0 J1 K1 J0 K00 0 0 1 0 x 1 x0 1 1 0 1 x x 11 0 1 1 x 0 1 x1 1 0 0 x 1 x 1

Etat présent Etat futur Entrées

J K Q+0 0 Q0 1 01 0 11 1 /Q

Modemémoire

01

inversionRéalisation avec des bascules JK

J0 = K0 = 1J1 = K1 = Q0

Q+ = J./Q + /K. Q

1Q0

C

Q1

27

53

Compteur Modulo-4 avec RAZAjout d’une entrée de contrôle RAZ, dont l’état haut provoque la

remise à zéro du compteur quelque soit son état

Graphe des états avec remise à zéro

Equations

D0 = /RAZ . Q0D1 = /RAZ . (Q1 ⊕ Q0)

54

Compteur Modulo-2N

1

JK

Horloge

Q0 Q1 Q2 Q3

JK

JK

JK

1

JK

Horloge

Q0 Q1 Q2Q3

J JKJ

KK

Compteur Modulo-10

28

55

Compteur 5 étatsSéquence incomplète

INITIALISATION :Que se passe-t-il si le compteur s’initialise à 010?

• SOLUTION 1: prévoir un RESET asynchrone au démarrage par bouton poussoir

• SOLUTION 2: gérer tous les états possibles (23) et provoquer une transition qui ramène au cycle.

Q2 Q1 Q0 T2 T1 T00 0 0 0 0 0 11 0 0 1 0 1 03 0 1 1 1 1 05 1 0 1 0 1 07 1 1 1 1 1 1

0 0 0

Etat Entrées 0

75

1

3

56

Compteur 5 étatsSéquence incomplète

SOLUTION 2: gérer tous les états possibles (23) et provoquer une transition qui ramène au cycle.

0

7

2

6 5

1

34

Q2 Q1 Q0 Q2 Q1 Q0 T2 T1 T00 0 0 0 0 0 1 0 0 11 0 0 1 0 1 1 0 1 12 0 1 0 0 0 0 0 1 03 0 1 1 1 0 1 1 1 04 1 0 0 0 0 0 1 0 05 1 0 1 0 1 0 1 1 16 1 1 0 0 0 0 1 1 07 1 1 1 0 0 0 1 1 1

Etat présent Etat futur Entrées

29

57

Synthèse des compteurs synchrones1) Etablir le tableau des états qui traduit l’énoncé du problème en décrivant le

passage d’un état présent Qt à l’état suivant Qt+1 lors de l’impulsion d’horloge :

Etats Sorties EntréesQ3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0

01…t

t+1…

2) Obtenir les expressions des entrées de chaque bascule JK en fonction dessorties après simplification.

3) Etablir le schéma du compteur.

4) Si N < 2n, analyser le fonctionnement à partir du schéma précédent en faisantl’hypothèse qu’à la mise sous tension les sorties prennent un état n’appartenantpas au cycle. Tous ces états doivent être éliminés par un circuit spéciald’initialisation.

58

Commandes des compteurs synchrones

Initialisation par chargement parallèle (LOAD)

Interdiction de comptage (ENABLE)

Sens du comptage (U/D)

Remise à Zéro (CLR)

30

59

Mise en cascade de compteurs synchrones

60

Compteur Asynchrone Modulo 2N

0000 → 0001 → 0010 → 0011 → 0100 → 0101 …

Q1 Q2 Q3Q0

1

Horloge

1

1

1

1

1

1

1

J

K

J J J

K K K

Q0

H

Q1

Q2

Q3

Le déclenchement du changement d’état des bascules se propage en cascade: l’horloge est appliquée au premier étage, les étages suivants reçoivent, comme signal d’horloqe, une combinaison logique des différents étages.

31

61

Compteur Asynchrone Etats parasites

62

Pour un bon fonctionnement...

• Utiliser des systèmes SYNCHRONE: un signal d’horloge unique synchronise le changement d’état de toutes les bascules simultanément.

• Utiliser des commandes SYNCHRONES: LOAD, CLR

L’état du système ne change pas avant le front d’horloge suivant.

• Les commandes ASYNCHRONES ne doivent être utilisées que pour les phases d’initialisation (SET/RESET) et surtout pas en cours de cycle.

32

63

Automate ou Machine d’état

Circuit séquentiel dont les sorties sont fonction des entrées et de l’état précédent.

comprend un registre qui mémorise l’état et des opérateurs combinatoires qui génèrent les sorties et l’état futur.

L‘utilisation de bascules « non transparentes » est nécessaire àcause du rebouclage des sorties sur les entrées

Il est dit «synchrone » lorsque la transition d’un état au suivant a lieu sur la transition d’un signal commun à toutes les bascules (horloge).

Les compteurs sont une famille particulièrement simple de machines d’état àune seule entrée, dont les sorties représentent l’état courant du système.

64

Classification des Machines d’état

machine de MOORE: les sorties dépendent de l’état présent

machine de MEALY: les sorties dépendent de l’état et des entrées

Equi

vale

nce

33

65

Machine d’état Méthodologie de Synthèse

Comprendre le problème

Formuler le problème en termes de logique (entrées, sorties, graphe, table de transition, équations,…)

Optimisation

Implémentation

66

Etude de cas N°1 Distributeur de caramels

Définition du problèmeLe distributeur délivre un paquet de caramels pour 3€. Il accepte les pièces de 1€ ou 2€ et ne rend pas la monnaie. Des capteurs permettent de différentier les pièces. Un système mécanique contrôle la chute d ’un seul paquet, puis réinitialise le système. Réaliser le système logique de contrôle entre les sorties du sélecteur de monnaie et le système mécanique d ’ouverture.

34

67

Formuler le problème en termes logiques

Comprendre les entrées / sorties du système

faire un schéma bloc

Sélecteur

de

Monnaie

Machine

d ’état

Mécanique

de

Distribution

2 types de pièce2 signaux

Commande de distributionRAZ après distribution

U

D

Open

RAZ

68

Formuler le problème en termes logiquesQuelles sont les différentes combinaisons d’entrées et les différents états de la machine ?

Attente (RAZ)

Réception de monnaie pour arriver à une somme ≥ 3€:

Open1€

2€

2€

1€1€

2€

2€

1€RAZ

35

69

Formuler le problème en termes logiques

Graphe des états Table des transitions

RAZ

1€

2€

open

U

U

U ou D

D

D

4 états : 2 bascules D

Sortie

Q1 Q2 U D D1 D2 Open0 0 0 0 0 0 0

0 1 0 1 01 0 1 0 01 1 x x x

0 1 0 0 0 1 00 1 1 0 01 0 1 1 01 1 x x x

1 0 0 0 1 0 00 1 1 1 01 0 1 1 01 1 x x x

1 1 0 0 1 1 10 1 1 1 11 0 1 1 11 1 x x x

Etat présent Entrées Etat

futur

70

Equations optimisées

36

71

Implémentation

Architecture PAL

72

Etude de cas N°2

Définition du problème

Créer une machine à une entrée et une sortie telle que la sortie se met à 1 si la séquence 10101 s’est présentée sur l’entrée lors de coups d’horloge successifs, après une remise à zéro.

37

73

Formuler le problème en termes de logiqueOn choisit une machine de MOORE: une valeur de sortie z est associée à chaque état. On part d’un état initial A pour lequel la sortie est 0 (noté A/0). On définit la suite des états qui conduit à la séquence 10101 avec la «bonne» valeur entrée, et on complète avec les autres possibilités.

Graphe d’état

RAZ

XZ

Machine deMOORE

74

Table des transitions : 6 états

38

75

Table des transitions codée: 6 états 3 bascules D

Codage: A (000)B (001)C (010)D (011)E (100)F (101)

Equations:

D0 = X

D1 = Q1./Q0.X + /Q2./Q1.Q0./X

D2 = Q1.Q0./X + Q2.Q0./X + Q2./Q0.X

Z = Q2.Q0 ne dépend que de l’état (machine de MOORE)

76

Table des transitions codée: 6 états 3 bascules D

Autre Codage:A (000)B (100)C (001)D (101)E (011)F (111)

Autres Equations:

D0 = Q2./X + /Q2.Q0.X

D1 = Q2.Q0./X + /Q2.Q1.X

D2 = X

Z = Q2.Q1 ne dépend que de l’état (machine de MOORE)

39

77

Bibliographie

Opérateurs Logiques, D. Etiemble, Techniques de l’ingénieur, E180, E182, E182

Contemporary Logic Design, Randy H. Katz, TheBenjamin/Cummings Publishing Company Inc., 1994 ISBN 0-8053-2703-7

VHDL: Introduction à la synthèse logique, Philippe Larcher, Eyrolles, 1997, ISBN 2-212-09584-8