Sei sulla pagina 1di 26

Corso di Architetture Digitali

Lezione 2
Sintesi di circuiti sequenziali

Federico Pedersini

Laboratorio di Architetture Digitali


Dipartimento di Informatica
Università degli Studi di Milano

Riferimenti bibliografici:
F. Fummi, M. Sami, C. Silvano, Progettazione Digitale, McGraw-Hill, capp. 6,7

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L2– 1

Circuiti sequenziali

!  Circuiti combinatori = circuiti senza memoria


"  Gli output al tempo t dipendono unicamente dagli input al tempo t
Uscita = f ( Ingresso )

!  Per consentire ad un dispositivo di mantenere le informazioni,


sono necessari circuiti con memoria
"  Esempio: distributore automatico
!  Deve ricordare quante e quali monete sono state inserite
!  Deve comportarsi tenendo conto non solo delle monete inserite attualmente (ingresso) ma
anche di quelle inserite in precedenza (storia passata)

!  Circuiti sequenziali = circuiti con memoria (stato)


"  La memoria contiene lo stato del sistema
Uscita = f ( Ingresso , Stato )

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L2– 2


Macchine sequenziali

!  Macchina combinatoria: U=f(I)


"  senza memoria, uscita dipende solo dagli ingressi

!  Macchina sequenziale: X* = f ( X, I )
U = g( X )
"  2 funzioni: uscita e stato prossimo
"  esiste la memoria: lo STATO

I U I U
X

combinatoria sequenziale
Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L2– 3

Macchine sequenziali

!  Elemento necessario di ogni macchina sequenziale è la retroazione


"  Uscita riportata in ingresso
"  Bistabile: (macchina sequenziale elem.): 2 porte NOR +retroazione

macchina sequenziale
S
rete
Q
combinatoria

retroazione R Q

Macchina sequenziale sincrona I U


Impiega bistabili sincroni
CLK D Q
Es: Flip-Flop tipo DT T

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L2– 4


Latch & Bistabili

!  Elemento cardine dei circuiti sequenziali è lo stato


"  Lo stato riassume il funzionamento negli istanti precedenti e deve essere
immagazzinato (memorizzato)
"  Necessità della memoria (bistabili ! registri ! memorie)

!  Elemento base della memoria è il bistabile


"  dispositivo in grado di mantenere indefinitamente il valore di input
"  Il suo valore di uscita coincide con lo stato
"  Memoria: insieme di bistabili (bistabili ! registri ! memorie)

!  Tipologie di bistabile
"  Bistabili non temporizzati (asincroni) / temporizzati (sincroni).
"  Bistabili (sincroni) che commutano sul livello (latch) o sul fronte (flip-flop)

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L2– 5

Latch Set-Clear (Set-Reset) asincrono

Latch SC

!  Funzionamento:
"  Set: C = 0, S ! 1 Q ! 1 (~Q ! 0)
"  Reset: S = 0, C ! 1 Q ! 0 (~Q ! 1)

"  Comportamenti anomali:


"  S=1, C: 0!1 Q=~Q=0 (anomalia)

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L2– 6


Tabella delle transizioni

!  Tabella delle transizioni: Q* = f(Q,I) = f(Q,S,C)


"  Q: valore dell’uscita attuale: stato corrente
"  Q*: uscita al tempo successivo: stato prossimo

S C Q Q*
Q*
0 0 0 0
Q SC = 00 SC = 01 SC = 11 SC = 10 0 0 1 1
0 1 0 0
0 0 0 X 1
0 1 1 0

1 1 0 X 1 1 0 0 1
1 0 1 1
1 1 0 X
Q* = Q Clear / Reset SET 1 1 1 X

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L2– 7

Latch SR sincrono

LATCH S-R sincrono:


!  Latch SR + Porte AND tra il S Q
clock e gli ingressi. CLK
"  Solo quando il clock è alto i R Q
“cancelli” (porte AND) fanno
passare gli input ! LATCH

S
Q

CLK
Q
R

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L2– 8


Sintesi della funzione logica

T Q S R Q*
Tabella delle transizioni: Q*= f(S,R,T,Q)
0 0 0 0 0
TQ SR = 00 SR = 01 SR = 11 SR = 10
0 0 0 1 0
0 0 1 0 0 00 0 0 X 0
0 0 1 1 X 01 1 1 X 1
0 1 0 0 1 11 1 0 X 1
0 1 0 1 1 10 0 0 X 1
0 1 1 0 1
0 1 1 1 X
1 0 0 0 0 Q* = TQSR + TQSR + TQSR + TQSR + TQSR + TQSR +
1 0 0 1 0
1 0 1 0 1
=
(+TQSR + TQSR) =
1 0 1 1 X = TQR + TQR + TQR + TQS =
1 1 0 0 1
1 1 0 1 0
= TQ + T QR + QS( )
1 1 1 0 1 clock alto ! Q* = Q~R + ~QS
1 1 1 1 X clock basso ! Q* = Q (status quo)

Architetture Digitali
! Copyright: Federico Pedersini – DSI, UniMI L2– 9

Latch D sincrono

!  LATCH D sincrono:
"  Memorizza il valore presente all’ingresso dati quando il clock è alto
if CLK = 1 then Q*=D else Q*=Q

!  Clock BASSO:
"  L’uscita Q rimane bloccata sull’ultimo valore assunto
!  Clock ALTO:
"  L’uscita Q insegue l’ingresso D (con 3Δτ di ritardo)

CLK
CLK Q
(T) Q

D Q
Q
D-Latch D

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 10


La struttura del latch D

CLK
Q

Q
D

CLK CLK basso CLK alto

Q
_
Q
2!" !"
Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 11

Tabella delle transizioni

!  Dalla tabella delle transizioni Q* = f(T,Q,D) calcolo la corrispondente


funzione logica:

Tabella delle transizioni


T Q D Q* Funzione logica:
0 0 0 0
0 0 1 0 Q* = T Q D + T QD + T QD + TQD =
0 1 0 1
0 1 1 1
= T Q + TD
1 0 0 0 Clock T alto:
1 0 1 1 ! Q* = D (input)
1 1 0 0
1 1 1 1 Clock T basso
! Q* = Q (status quo)

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 12


Latch: Bistabili level-sensitive

!  I latch sono dispositivi trasparenti:


"  Per tutto il tempo in cui il clock è attivo (alto), il valore di D viene riportato
in uscita:
Q = D : uscita collegata all’ingresso
!  A noi interessa memorizzare l’informazione in un determinato
istante

CLK
Q if CLK = 1
then Q*=D
Q else Q*=Q
D

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 13

Bistabili “edge sensitive”: i Flip-Flop

!  Dispositivi attivi sul fronte del clock (edge sensitive):


"  il loro stato (uscita) può commutare solo in corrispondenza del fronte di
salita o di discesa del clock.

Bistabile tipo DT – Configurazione “Master-Slave”

Dmaster Qmaster = Dslave Qslave


D Master Slave Q

Qmaster Q

CLK
Flip-Flop – tipo DT

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 14


Flip-flop: struttura master–slave

!  FLIP (clock ALTO): L’ingresso D viene memorizzato nel latch MASTER


"  L’ingresso è aperto, ma l’uscita è bloccata

!  FLOP (clock BASSO): l’uscita stabile del latch MASTER viene propagato
al latch SLAVE
"  L’ingresso è bloccato, l’uscita è stabile.

CLK Qm= Ds
Q
Dm

Qm= Ds
Q
D
Dm CLK

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 15

Funzionamento: FLIP

Qm= Ds
CLK = 1 Q
Dm

Qm= Ds
Q
D Flip
Dm CLK

Qm
Qm
CLK•D

D
CLK t
Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 16
Funzionamento: FLOP

Qm= Ds
CLK = 0 Q
Dm

Qm= Ds
Q
D Flop
Dm CLK

CLK•Qm

Qm
CLK t
Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 17

Registri

Registro a N bit: N Flip-flop tipo DT


SCRITTURA:
"  L’impulso di CLK memorizza i dati
sugli ingressi D
LETTURA:
"  I dati memorizzati sono presenti
sulle uscite Q

Registro a scorrimento (shift register)


L’ impulso di CLK fa scorrere i dati di una posizione lungo il registro

I = D2 Q2 = D1 Q1 = D0 Q0 = U

Q Q Q

CLK
Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 18
Circuiti sincroni e asincroni

!  Architettura sincrona:
le fasi di elaborazione e propagazione dei segnali sono scandite da un
orologio comune a tutto il circuito (clock)
"  Il Clock regola l’attività dei “cancelli”
"  Il circuito ha il tempo di stabilizzarsi (transitori critici) fino al successivo impulso di
Clock

!  Architettura asincrona:
l’elaborazione e propagazione dei segnali avviene in modo
incontrollato, secondo le velocità di reazione dei circuiti
"  Non ci sono cancelli
"  Non devo mai aspettare l’impulso di clock → massima velocità

!  Progettazione sincrona
"  il controllo dei transitori/cammini critici è limitato alla parte di circuito tra due
cancelli (porte di sincronizzazione)
!  Progettazione asincrona
"  Devo progettare il circuito in modo che nessun transitorio/cammino critico causi
problemi → analisi di tutti i transitori critici possibili

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 19

Struttura di un circuito sincrono

Logica
In D Q D Q Out
combinatoria
flip-flop flip-flop
T T

CLK

Cancello ! Circuito combinatorio ! Cancello

!  Sincronizzazione: la logica combinatoria deve


terminare la propria commutazione in tempo utile

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 20


Sincronizzazione mediante flip-flop

!  I “cancelli” devono disaccoppiare i diversi sottosistemi logici


"  “raccogliere” i segnali, senza farli passare, e “rilanciarli” ad un determinato istante
"  Cancello doppio: ingresso e uscita
"  Mai aperti contemporaneamente

!  Cancelli = registri
costituiti da
gruppi di flip-flop

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 21

Macchina a Stati Finiti

!  Una Macchina a Stati Finiti (MSF) è definita dalla quintupla:


< X, I, Y, f(·), g(·) >

X: insieme degli stati (in numero finito).


I: alfabeto di ingresso: l’insieme dei simboli che si possono presentare in ingresso.
Con n ingressi, avremo 2n possibili configurazioni.
Y: alfabeto di uscita: l’insieme dei simboli che si possono generare in uscita.
Con m uscite, avremo 2m possibili configurazioni.

f(·): funzione stato prossimo: X* = f( X , I )


Definisce l’evoluzione della macchina nel tempo, in modo deterministico
g(·): funzione di uscita: Y= g( X ) (macchina di Moore)
Y= g( X , I ) (macchina di Mealy)

"  Per il buon funzionamento della macchina è previsto uno stato iniziale, al
quale la macchina può essere portata mediante un comando di reset.

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 22


State Transition Table (STT) - Macchina di MOORE

!  STT: State Transition Table (Tabella delle transizioni di stato)


"  Per ogni coppia: <stato attuale, ingresso>
definisco uscita y e stato prossimo x*
(xi X , ij I) ! y(xi) ; x*( xi, ij )

"  Esempio: M stati (log2M bit di stato), N ingressi (log2M bit d’ingresso):

i1 i2 … iN Y
x1 x*(x1,i1) x*(x1,i2) x*(x1,iN) y(x1)

x2 x*(x2,i1) x*(x2,i2) x*(x2,iN) y(x2)

… …

xM x*(xM,i1) x*(xM,i2) x*(xM,iN) y(xM)

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 23

State Transition Table (STT) - Macchina di MEALY

!  STT: State Transition Table (Tabella delle transizioni di stato)


"  Per ogni coppia: <stato attuale, ingresso>
definisco uscita y e stato prossimo x*
(xi X , ij I) ! y(xi) ; x*( xi, ij )

"  Esempio: M stati (log2M bit di stato), N ingressi (log2M bit d’ingresso):

i1/Y i2/Y … iN/Y


x1 x*(x1,i1)/y11 x*(x1,i2)/y12 x*(x1,iN)/y1N

x2 x*(x2,i1)/y21 x*(x2,i2)/y22 x*(x2,iN)/y2N


xM x*(xM,i1)/yM1 x*(xM,i2)/yM2 x*(xM,iN)/yMN

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 24


Macchina di MOORE: State Transition Graph (STG)

!  STG: State Transition Graph


(Diagramma degli Stati o Grafo delle transizioni)
"  Ad ogni nodo è associato uno stato: xi ∈ X
... ed un valore della funzione d’uscita: yi ∈ Y, yi=g(xi)
"  Un arco orientato da uno stato xi ad uno stato xj, contrassegnato da un
simbolo (di ingresso) iK, rappresenta una transizione che si verifica quando
la macchina, essendo nello stato xi, riceve come ingresso iK

iK ∈ I

xI ∈ X xJ ∈ X
xJ = f(xI,iK)
yI = g(xI) yJ = g(xJ)

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 25

Macchina di MEALY: State Transition Graph (STG)

!  STG: State Transition Graph


(Diagramma degli Stati o Grafo delle transizioni)
"  Ad ogni nodo è associato uno stato: xi ∈ X
... ed un valore della funzione d’uscita: yi ∈ Y, yi=g(xi)
"  Un arco orientato da uno stato xi ad uno stato xj, contrassegnato da un
simbolo (di ingresso) iK, rappresenta una transizione che si verifica quando
la macchina, essendo nello stato xi, riceve come ingresso iK

yIJ = g(xI,iK)

iK ∈ I

xI ∈ X xJ ∈ X
x*IJ = f(xI,iK)

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 26


La macchina sequenziale di Huffman - sincrona

io yo
i1 y1
iM yN
x" 1‘ x*1

Ingressi Uscite
xK x*K

Stato Stato
prossimo

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 27

Progetto con macchina di Moore

Esempio: controllore di un semaforo auto NS


sì / no

SEMAFORO:
!  Incrocio tra 2 strade: nord-sud (NS) ed est-ovest
(EO) controllate da un semaforo
auto EO
"  per semplicità consideriamo solamente rosso e verde sì / no
!  Il semaforo può commutare ogni 30 secondi
"  Macchina sincrona, clock con frequenza = ?
!  E’ presente un sensore in grado di “leggere”, per ogni direttrice, se esiste almeno
un’auto in attesa, oppure un’auto che si accinga ad attraversare (condizioni
trattate allo stesso modo).
!  Il semaforo deve cambiare colore, da rosso a verde, quando esiste un’auto in
attesa sulla sua direttrice.
!  Se ci sono auto in attesa sulle entrambe le direttrici il semaforo deve cambiare
colore (al termine del tempo di commutazione)

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 28


SEMAFORO: Stato, Ingresso, Uscita

STATO
"  Semaforo NS VERDE, semaforo EO ROSSO
"  Semaforo NS ROSSO, semaforo EO VERDE
→ 1 bit di STATO (1 flip-flop)

INGRESSI
"  Auto NS presente / non presente auto NS
!  AutoNS=1/0 sì / no
"  Auto EO presente / non presente
!  AutoEO = 1/0
→ 4 configurazioni di INGRESSO → 2 bit

USCITE: = STATO auto EO


sì / no
"  LuceEO verde (LuceNS rossa)
"  LuceNS verde (LuceEO rossa)
→ 2 configurazioni d’uscita → 1 bit

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 29

STG – State Transition Graph

!  Funzione stato prossimo:


VerdeNS* = VerdeNS · ~autoEO + VerdeEO · autoNS
VerdeEO* = VerdeEO · ~autoNS + VerdeNS · autoEO
!  Funzione uscita:
Y=X

AutoNS = 0 AutoEO = 1 AutoEO = 0

VerdeEO VerdeNS

AutoNS = 1
LuceVerde LuceVerde
EO NS

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 30


STT – State Transition Table

!  È una rappresentazione equivalente allo STG

I ~autoEO ~autoEO autoEO autoEO


Uscita
X ~autoNS autoNS ~autoNS autoNS

Luce
VerdeNS VerdeNS VerdeNS VerdeEO VerdeEO
VerdeNS

Luce
VerdeEO VerdeEO VerdeNS VerdeEO VerdeNS
VerdeEO

Funzione stato prossimo: Funzione uscita:


X* = f(X, I) Y = g(X)

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 31

STT del semaforo: CODIFICA binaria

!  Stato:
"  (VerdeNS/RossoEO, RossoNS/VerdeEO) → (0, 1)

!  Ingresso:
"  2 Variabili: AutoNS, AutoEO → 1 =“presente”, 0 =“assente”
"  4 Configurazioni: (00, 01, 10, 11)

!  Uscita:
"  (Luce_VerdeNS, Luce_VerdeEO) → (0, 1)

I Uscita
00 01 10 11
X Y
0 0 0 1 1 0
1 1 0 1 0 1

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 32


Sintesi della MSF del semaforo

!  Mediante la STT codificata in binario, posso


esprimere X* e Y come somma di prodotti:
"  cerco i mintermini:

X * = X I 0 I1 + X I 0 I + XI 0 I1 + X I 0 I11 =
= X I 0 + X I1

I 00 01 10 11 Y
Y=X X
0 0 0 1 1 0

1 1 0 1 0 1

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 33

MSF del semaforo: sintesi del circuito

X * = X I 0 I1 + X I 0 I + XI 0 I1 + X I 0 I11 =
i0
= X I 0 + X I1 I
2 reti
combinatorie: Y
i1 X* = f (X,I)
Y = g (X’)

Y=X
X X*
Q D
rete combinatoria
Y T Clock
i0

X*
i1 TCLK = 30 sec
X

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 34


Esercizi: sintesi di macchine sequenziali

!  Contatore modulo 4 di impulsi


"  Si sintetizzi una macchina a stati finiti (di Moore) che realizza un
contatore modulo 4 così strutturato:
!  L’ingresso è costituito da una linea di 1 bit che viene osservata ogni millisecondo.
!  L’uscita è costituita da 4 linee, che rappresentano i 4 valori assumibili dal
contatore: ciascuna uscita va a “1” solo quando il contatore contiene il valore da
essa rappresentato.
!  Il contatore incrementa il proprio valore in corrispondenza di ogni fronte di salita
dell’ingresso.

"  I = { “0” , “1” }


"  Y = { “1000” (0) , “0100” (1) , “0010” (2) , “0001” (3) }

"  X = { 0 , 1 , 2 , 3 } (è un contatore...)

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 35

Esercizi: sintesi di macchine sequenziali

!  Tastiera a combinazione
"  Si sintetizzi una macchina a stati finiti che gestisce una tastiera a
combinazione segreta. La macchina genera un segnale di “apertura”
soltanto soltanto quando si premono in sequenza i tasti: “1,2,3”.
(suggerimento: si consideri una sola linea d’ingresso per tutti i tasti
diversi da 1,2,3)

"  Semplificazione: non considero il tempo...


"  I = { “nessun tasto”, “1”, “2”, “3”, “altri tasti” }
"  Y = { “0” , “1” (apertura) }

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 36


Esercizio: sintesi di macchine sequenziali

!  Riconoscitore sequenza
"  Progettare e sintetizzare una macchina che accetti in ingresso un
carattere binario (0 o 1) e sia caratterizzata da tre uscite, di cui:
!  la prima si porta a “1” quando gli ultimi 3 bit della sequenza in ingresso siano
stati: “110”,
!  la seconda si porta a “1” quand’essi abbiano assunto il valore: “011”,
!  la terza si porta a “1” quand’essi abbiano assunto il valore: “111”.

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 37

Macchina a Stati Finiti

!  Una Macchina a Stati Finiti (MSF) è definita dalla quintupla:


< X, I, Y, f(·), g(·) >

X: insieme degli stati (in numero finito).


I: alfabeto di ingresso: l’insieme dei simboli che si possono presentare in ingresso.
Con n ingressi, avremo 2n possibili configurazioni.
Y: alfabeto di uscita: l’insieme dei simboli che si possono generare in uscita.
Con m uscite, avremo 2m possibili configurazioni.

f(·): funzione stato prossimo: X* = f( X , I )


Definisce l’evoluzione della macchina nel tempo, in modo deterministico
g(·): funzione di uscita: Y= g( X ) (macchina di Moore)
Y= g( X , I ) (macchina di Mealy)

"  Per il buon funzionamento della macchina è previsto uno stato iniziale, al
quale la macchina può essere portata mediante un comando di reset.

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 38


Macchine sincrone – Minimizzazione degli stati

!  Date 2 macchine sincrone: M1= <X1,I1,Y1,f1,g1>


M2= <X2,I2,Y2,f2,g2>

!  M1 e M2 sono equivalenti sse:


!xa " X1 , #xb " X2 tale che:
ponendo al tempo t=0: M1 in xa e M2 in xb ed applicando una qualsiasi
sequenza di ingresso I(t) a entrambe le macchine, $ Y1(t) = Y2(t), !t>0

!  Due stati sono equivalenti o indistinguibili xi ~ xj sse:


"  partendo da xi o da xj, per ogni sequenza d’ingresso, le uscite sono uguali
"  Proprietà riflessiva, simmetrica, transitiva # partizione su X

!  Macchina M è minima sse: " x i, x j # X xi ~ x j


se, cioè, non esistono stati equivalenti in M.
"  Si dimostra che la macchina minima M è unica

Architetture Digitali ! Copyright: Federico Pedersini – DSI, UniMI L 2 – 39

Minimizzazione degli stati - Algoritmo di Paull-Unger

!  Algoritmo di Paull-Unger:
"  metodo operativo per l’identificazione di stati equivalenti:

"  xi ~ xj se e solo se:


– MEALY: #ia$ I, f(xi,ia) = f(xj,ia); g(xi ,ia) = g(xj ,ia)
– MOORE: #ia$ I, f(xi,ia) = f(xj,ia); g(xi) = g(xj)

"  Definizione recursiva di equivalenza: si rimanda all’equivalenza degli stati prossimi


"  Se: N=|X| # devo effettuare N2 confronti (su tutti gli ingressi)
"  rifl. + simm. # mi bastano: N(N – 1) / 2 confronti

!  Tabella delle implicazioni:


"  Tabella triangolare: N–1 righe, N–1 colonne
"  Ogni cella rappresenta una coppia di stati distinti: < xi , xj >, i ! j
"  In ogni cella scrivo:
‘~’ se: xi ~ xj (i due stati sono EQUIVALENTI)
‘X’ se: ¬( xi ~ xj ) (i due stati sono DISTINGUIBILI)
(xA , xB ) se: xA ~ xB ! xi ~ xj (distinguibilità/equivalenza VINCOLATA)

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 40


Algoritmo di Paull-Unger

Esempio: s2 X
N=|X|=5
...

sN–1 X ~

sN ~ (sA,sB) X

s1 s2 ... sN–1

Analisi ricorsiva della tabella delle implicazioni


1.  Riempio la tabella
2.  Analizzo recursivamente ogni caso di vincolo
3.  Dopo un n. finito di passi, arrivo ad una delle seguenti 3 soluzioni:
"  tutte le coppie sono state dichiarate equivalenti o distinguibili
"  Circolarità di vincolo: xA~ xB ! xi ~ xj ! ... ! xA ~ xB
# tutte le coppie incluse

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 41

Algoritmo di Paull-Unger

Esempio: FSM di Mealy a 5 stati STT originaria (5 stati)

Step I: Equivalenti: (C,E)


Condizionati: (A,B) # (B,C)
(A,D) # (A,E)
(B,D) # (A,E) e (C,B)

Step II: Condizionati: (B,C)=X # (A,B)=X


(A,E)=X , (B,C)=X # (B,D)=X
$ ne basta uno distinguibile

Risultato: Mmin = { A, B, (C,E), D }

Step I Step II STT minima (4 stati)

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 42


Esempio minimizzazione stati

!  Segnapunti Tennis
"  Si progetti una FSM che memorizzi il punteggio di un “game” di
una partita di tennis.
"  2 linee d’ingresso: “punto A”, “punto B”
"  2 linee d’uscita: “game A”, “game B” (a livelli)

"  Determinare la macchina minima.

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 43

Sintesi di macchine sequenziali asincrone


"  macchine in modo impulsivo
"  macchine in modo fondamentale

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 44


Macchine sequenziali asincrone

Esistono 2 categorie di FSM asincrone:


!  FSM asincrone in modo impulsivo
"  reagiscono ad impulsi in ingresso
"  Uscite: a livelli (FSM asincrone di Moore)
a impulsi (FSM asincrone di Mealy)
"  Memoria: bistabili asincroni (Latch SC, FF Toggle)
"  Per la sintesi di queste FSM si può ancora utilizzare il formalismo delle
FSM sincrone, con opportune modifiche.

!  FSM asincrone in modo fondamentale


"  Reagiscono ai livelli in ingresso
"  Uscite: a livelli
"  Memoria: retroazione sui circuiti (non necessariamente bistabili)
"  I metodi di sintesi di queste FSM sono differenti e più complessi.

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 45

FSM asincrone ad impulsi – bistabili asincroni

Bistabile SET-CLEAR asincrono: S Q


Latch಻
!  Un impulso su SET porta lo stato a “1”
SC
!  Un impulso su CLEAR porta lo stato a “0” C Q

V(t)
S

Q
t
Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 46
Bistabile TOGGLE

Bistabile TOGGLE

!  Realizzato mediante un flip-flop tipo D T FF Q


retroazionato
tipo T
!  Ogni impulso in ingresso commuta lo stato
del bistabile

Master: Slave:
FF tipo T store ‘1’ out ‘1’ # Q=0
V(t)
T Q
T Q T
FF
D D-T Q

Q t
Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 47

FSM asincrone – modo impulsivo

Procedura di sintesi FSM asincrone in modo impulsivo:


1.  Definizione della macchina
Uscite a stati # MOORE
Uscite impulsive # MEALY

2.  Costruzione STG, STT


esattamente come nel caso di FSM sincrone
3.  Codifica binaria STT
NON codifico gli ingressi – non sono valori stazionari, ma impulsi (eventi): i(t)

4.  Scelta bistabile (SC, T) e sintesi della tabella delle eccitazioni


Tabella delle eccitazioni: ESC/T = h( ingresso, stato )
(dipende dal tipo di bistabile adottato)

5.  Sintesi circuitale (Rete Combinatoria):


funzione delle eccitazioni, funzione uscita.

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 48


Tabella delle eccitazioni

!  Tabella delle transizioni: definisce il valore di ingresso ai bistabili sincroni

STT : x *ik = f ( x i ,ik ) , "x i # X, ik # I

FSM sincrone: transizione comandata dal clock. È sufficiente presentare lo stato prossimo
agli ingressi dei bistabili.
FSM asincrone: manca un comando esplicito di transizione. È necessario generare segnali
! ingressi dei bistabili, che li portino allo stato prossimo. # eccitazioni
agli

!  Tabella delle eccitazioni: definisce il valore in ingresso ai bistabili asincroni (eccitazione)


"  Dipende dal tipo di bistabile:

!  TOGGLE: ET(Toggle) : t ik* = f ( x i ,ik ) , "x i # X, ik # I


t ik* = 1 sse x *ik = f ( x i ,ik ) = x i
!  SET-CLEAR: ET(SC) : sik = f S ( x i ,ik ) ;c ik = fC ( x i ,ik ) , "x i # X, ik # I
$& sik = 1, c ik = 0 sse x *ik = f ( x i ,ik ) = 1 (, x ik = 0)
! %
&'c ik = 1, sik = 0 sse x *ik = f ( x i ,ik ) = 0 (, x ik = 1)
Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 49

Esempio di sintesi FSM impulsiva

Esempio:
Progetto FSM asincrona, con ingressi impulsivi, uscite a livelli.

!  Macchina con 2 ingressi A,B ed un’uscita Z a livelli.


"  Z è ‘1’ quando gli ingressi si alternano
"  Z è ‘0’ quando arrivano 2 ingressi uguali
"  Stato iniziale: “AA”
-------------------------
"  ingressi impulsivi, uscite a livelli # MOORE
"  ...

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 50


Esempio di sintesi FSM impulsiva

Esempio:
Progetto FSM asincrona, ingressi e uscite a impulsi

!  Macchina con 2 ingressi impulsivi A,B ed un’uscita impulsiva Z.


"  Z produce un impulso a partire dal 2º impulso consecutivo su A
"  per ogni nuovo impulso sugli ingressi, Z ha un impulso...
"  ... finché non si presentano due impulsi consecutivi su B.
-------------------------
"  ingressi impulsivi, uscite a impulsi # MEALY
...

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 51

Esempio di sintesi FSM impulsiva

Esempio:
Contatore asincrono di impulsi, modulo 8

!  Ingresso a impulsi;
!  Uscita (valore del contatore) a livelli;
" Macchina di Moore
...

Architetture Digitali Copyright: Federico Pedersini – DSI, UniMI L 2 – 52