Soluzione alternativa
Nella soluzione vista, gli stati sono codificati col numero minimo di bit (4stati bastano 2bit, perché 22≥ 4).
Un’alternativa possibile è di utilizzare tanti flip-flop quanti sono gli stati.
In ogni istante, il bit corrispondente allo stato corrente, contiene il valore uno, tutti gli altri zero.
Es: codifichiamo gli stati con i quattro bit S0, S1, S2, S3 1, 0 , 0 , 0 : aperto
0 , 1, 0 , 0 : in chiusura 0 , 0 , 1, 0 : in apertura 0 , 0 , 0 , 1: chiuso
Svantaggio di questa strategia: ci vogliono più flip-flop!
Vantaggio: forse (a volte) i circuiti vengono più semplici e più veloci
Circuiti sequenziali
Architettura degli elaboratori - 24 -
Il circuito
Circuiti sequenziali
Architettura degli elaboratori - 25 -
S0
D Q
MO RCout MA
CA
FC CC
RC0
S1
D Q
S2
D Q
S3
D Q
RC1 RC2 RC2
Clock
In chiusura S2 vero, gli altri falsi Aperto S3 vero, gli altri falsi
Circuiti sequenziali
Architettura degli elaboratori - 26 -
Clock
MO MA
CA FC CC
S0
D Q
S1
D Q
S2
D Q
S3
D Q
Aperto In chius In apert Chiuso
RCout
RC0 RC1 RC2 RC3
Chiuso In apertura In chiusura Aperto
Calcolo delle uscite
Riscriviamo la dipendenza tra stati e uscite come tavola delle verità NB: è un caso particolare che le uscite dipendano solo dallo stato.
Potrebbero dipendere anche dagli ingressi. Ma si può sempre
descrivere il comportamento desiderato con una macchina a stati in cui le uscite dipendono solo dagli stati.
S3 S2 S1 S0 MO MA
MO = S1 + S2
MA = S1 0 0 0 1
0 0 1 0 0 1 0 0 1 0 0 0 Chiuso
In apertura In chiusura Aperto
0 X 1 1 1 0 0 X
Il circuito
Circuiti sequenziali
Architettura degli elaboratori - 28 -
Clock
MO MA
CA
FC CC
S0
D Q
S1
D Q
S2
D Q
S3
D Q
RC0 RC1 RC2 RC3
chiuso In apertura In chiusura aperto
Definizione di RC0
RC0 produce il valore 1 quando lo stato prossimo è S0, 0 altrimenti CA falso in stato S0
CA falso e FC vero in stato S2
S0’ = 1 sse S0 /CA + S2 /CA FC
Circuiti sequenziali
Architettura degli elaboratori - 29 -
S0 [0X]
S1 [11]
S2
[10] S3
[0X]
10X
01X
001 101 011 0X1
00X 10X 000 010 100
0X0 0XX
10X chiuso
aperto in apertura in chiusura
Circuiti sequenziali
Architettura degli elaboratori - 30 -
RC0
Clock CA FCCC
S0
D Q
S1
D Q
S2
D Q
S3
D Q
RC1 RC2 RC3
S0’ = 1 sse S0 /CA + S2 /CA FC
Definizione di RC1
RC1 produce il valore 1 quando lo stato prossimo è S1, 0 altrimenti CA vero e CC falso in stato S0 o in stato S2
FC falso in stato S1
S1’ = 1 sse S2 CA /CC + S0 CA /CC + S1 (/CA /FC + /CC /FC) = CA /CC (S2 + S0) + S1 /FC (/CA + /CC)
S0 [0X]
S1 [11]
S2 [10]
S3 [0X]
10X
01X
001 101 011 0X1
00X 10X 000 010 100
0X0 0XX
10X chiuso
aperto in apertura in chiusura
NB: /CA + /CC = 1, non potendo mai essere CA CC
Il circuito
Circuiti sequenziali
Architettura degli elaboratori - 32 -
Clock
MO MA
CA FCCC
S0
D Q
S1
D Q
S2
D Q
S3
D Q
RC2 RC3
RC1
RC0 S1’ = CA /CC (S2 + S0) + S1 /FC
Definizione di RC2
RC2 produce il valore 1 quando lo stato prossimo è S2, 0 altrimenti CA e FC entrambi falsi in stato S2
CA falso e CC vero in stato S3
S2’ = 1 sse S2 /CA /FC + S3 /CA CC
Circuiti sequenziali
Architettura degli elaboratori - 33 -
S0 [0X]
S1 [11]
S2 [10]
S3 [0X]
10X
01X
001 101 011 0X1
00X 10X 000 010 100
0X0 0XX
10X chiuso
aperto in apertura in chiusura
Circuiti sequenziali
Architettura degli elaboratori - 34 -
Clock CA FCCC
S0
D Q
S1
D Q
S2
D Q
S3
D Q
RC3 RC2
RC0 RC1
S2’ = S2 /CA /FC + S3 /CA CC
Definizione di RC3
RC3 produce il valore 1 quando lo stato prossimo è S3, 0 altrimenti FC vero in stato S1
CC falso in stato S3
S3’ = 1 sse S3 /CC + S1 FC S0
[0X]
S1 [11]
S2 [10]
S3 [0X]
10X
01X
001 101 011 0X1
X0X 000 010 100
0X0 0XX
10X chiuso
aperto in apertura in chiusura
Il circuito
Circuiti sequenziali
Architettura degli elaboratori - 36 -
RC3
Clock
MOMA
CA FCCC
S0
D Q
S1
D Q
S2
D Q
S3
D Q
RC0 RC1 S3’ = S3 /CC + S1 FCRC2
Il circuito
Circuiti sequenziali
Architettura degli elaboratori - 37 -
RC3
Clock
MOMA
CA FCCC
S0
D Q
S1
D Q
S2
D Q
S3
D Q
RC0 RC1 RC2
Non abbiamo specificato come portare il circuito nello stato iniziale.
Si può usare un ulteriore ingresso di “reset”.
Nell’esempio visto, è particolarmente importante che lo stato del circuito rispecchi lo stato del cancello vero!
Nella realizzazione con un bistabile per ogni stato, bisogna assicurare che all’inizio uno e un solo bistabile contenga 1!
Circuiti sequenziali
Architettura degli elaboratori - 38 -
Esempio di FSM
tre stati
due output (B e C) un input (A)
𝐴 𝐴̅
𝐴̅
𝐴
𝐴̅
𝐴 𝐵, 𝐶
𝐵, 𝐶̅
𝐵, 𝐶
𝐴
𝐵
𝐶
Un altro esempio di FSM
Circuiti sequenziali
Architettura degli elaboratori - 40 -
“pulito”
(in campo)
ammonito
(in campo)
espulso
(in panchina)
diffidato
(in campo)
diffidato e ammonito
(in campo)
squalificato (in panchina)
= fine partita &
inizio partita successiva
Esercizio: progettare il circuito
Circuiti sequenziali
Architettura degli elaboratori - 41 -
(in campo)
(in panchina)
1) Quando si è in panchina, non arrivano mai cartellini 2) Ad ogni ciclo di clock, al più un solo input alla volta è set 3) I tre segnali durano un ciclo di clock ciascuno
(per es,
se «giallo» è 1 per due cicli di clock successivi, sono due gialli!) (esercizio ulteriore: usare latch-SR per migliorare questa ipotesi) Scelta: per memorizzare lo stato, usiamo 6 flip-flop
quello che corrisponde allo stato attuale vale 1, gli altri 0
Questo porta ad usare più flip-flop, ma (a volte) a circuiti più semplici avremmo potuto limitarci invece a 3 flip-flop, (6 ≤ 23) per es:
000 : pulito 001 : ammonito
… o qualsiasi altro mapping.
Osservazione: in questo problema, l’output dipende solo dallo stato (e non anche dall’input)
Circuiti sequenziali
Architettura degli elaboratori - 42 -
100 : diffidato
101 : diffidato e ammonito
010 : espulso 011 : squalificato
Schema logico
3
computazione del prossimo
stato
(in campo) (in panchina) computazione
dell’output 6 flip-flipD
clock
Q6 6