Post on 11-Sep-2018
1
1
Introduction à laLogique Séquentielle
Sylvie.Treuillet@univ-orleans.fr
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