You are on page 1of 66

Università degli Studi di Messina

Dipartimento di Ingegneria Elettronica, Chimica e Ingegneria Industriale



!
Corso di Laurea

Ingegneria Elettronica e Informatica

Anno Accademico 2013/2014

Calcolatori

Circuiti logici sequenziali

Dario Bruneo
Nota

Le slide seguenti sono da intendersi come materiale didattico aggiuntivo del corso di
Calcolatori 1.

Non possono in nessun modo essere sostitutive dei libri di testo, devono quindi
essere usate esclusivamente come una guida.

Eventuali errori o segnalazioni possono essere inviati all’indirizzo dbruneo@unime.it


Alcune figure sono tratte da:


Mano, Kime “Logic and Computer Design Fundamentals” 3° edition Pearson Prentice Hall

Patterson, Hennessy “Struttura e progetto dei Calcolatori” 2a edizione Zanichelli

Calcolatori a.a. 13/14 Dario Bruneo


Generalità

I circuiti combinatori sono poco flessibili


Per effettuare sequenze di operazioni è necessario connetterli in cascata


Si consideri ad esempio la somma di numeri a n bit che necessita di n full adder


Per aumentare la flessibilità sarebbe necessario disporre di circuiti in grado di immagazzinare i dati tra
un’operazione e l’altra

Tali circuiti prenderanno il nome di circuiti logici sequenziali


Ogni sistema digitale include sia parti realizzate con circuiti combinatori sia elementi di memoria

Calcolatori a.a. 13/14 Dario Bruneo


Generalità (cont.)

Si consideri, ad esempio, il seguente circuito composto da un full adder e da un elemento di memorizzazione


realizzato mediante un elemento di ritardo ∂


Si supponga di dovere sommare x = 101 e y = 001

All’istante iniziale t0 si presentano agli ingressi i bit x0 = 1 e y0 = 1, con c0 = 0


Dopo un ritardo pari al ritardo del full adder (≪ ∂) in uscita si otterrà il bit s0 = 0 ed il bit c1 = 1

All’istante t1 = t0 + ∂, il bit c1 = 1 verrà ripresentato all’ingresso del full adder al quale saranno applicati gli ingressi x1 = 0 e y1 = 0,
ottenendo in uscita il bit s1 = 1 ed il bit c2 = 0

All’istante t2 = t1 + ∂, il bit c2 = 0 verrà ripresentato all’ingresso del full adder al quale saranno applicati gli ingressi x2 = 1 e y2 = 0,
ottenendo in uscita il bit s2 = 1 ed il bit c3 = 0

In 3 passi, con un ritardo pari a 2∂, una corretta sincronizzazione e l’utilizzo di un solo full adder si è ottenuta la somma di 2 numeri a
3 bit

Calcolatori a.a. 13/14 Dario Bruneo


Generalità (cont.)

In generale, un circuito sequenziale è composto da una parte combinatoria e da elementi di memoria in


grado di memorizzare lo “stato”

L’uscita e lo stato futuro saranno combinazione dell’ingresso e dello stato presente


Ad una variazione degli ingressi seguirà una variazione delle uscite ed una variazione dello stato futuro

Lo stato futuro sarà immagazzinato negli elementi di memoria e ripresentato in ingresso come stato presente

Ciò provocherà un ulteriore cambiamento nelle uscite e nello stato futuro


Concetto di “stabilità”:

lo stato presente e lo stato futuro coincidono (restando stabili gli ingressi)

Calcolatori a.a. 13/14 Dario Bruneo


Tabella di flusso

Essendo l’uscita e lo stato futuro una combinazione sia degli ingressi che dello stato presente non è possibile
rappresentare tali combinazioni mediante le tabelle di verità

Al fine di includere il concetto di stato si utilzzeranno delle opportune tabelle, dette, tabelle di flusso

Righe: possibili combinazioni dello stato presente


Colonne: possibili combinazioni degli ingressi


Contenuto: il valore della (o delle) variabili dello lo stato futuro / il valore della (o delle) variabili di uscita

Ad esempio nel caso del full-adder visto prima (2 ingressi, un’uscita, una variabile di stato)

XY X

C
0/0 0/1 1/0 0/1

C 0/1 1/0 1/1 1/0

Y
Tabella di flusso

Calcolatori a.a. 13/14 Dario Bruneo


Tabella di flusso (cont.)

Data una tabella di flusso (esplicitando, per semplicità, solo gli stati) si possono identificare gli stati stabili

XY X
!
C
0 0 1 0
!
C 0 1 1 1

!
Y

Gli stati instabili possono comportarsi in due differenti modi:






XY X
XY X
C
C
0 0 1 0
0 0 1 0

C 0 1 1 1
C 0 1 0 1

Y
Y
Si stabilizzano, raggiungendo dopo Oscillano, attraversando una
un numero finito di transizioni uno sequenza, infinita, di stati instabili

(N.B. questa tabella è differente dalle
stato stabile precedenti)

Calcolatori a.a. 13/14 Dario Bruneo


Memorizzazione delle informazioni

Il più semplice elemento di memorizzazione, come accennato prima, consiste di un elemento di ritardo

Il dato viene memorizzato per un tempo pari a tpd


Mediante opportuni anelli di reazione è possibile memorizzare i dati per un tempo maggiore

Normalmente, in un circuito, ad ogni anello di reazione, corrisponde una variabile di stato


Non c’è alcun modo per modificare le informazioni memorizzate


Necessità di una circuiteria esterna!

Calcolatori a.a. 13/14 Dario Bruneo


Latch

Il latch (lucchetto) è un elemento di memoria in grado di memorizzare un bit di informazione


possiede due stati interni (bistabile)


è possibile modificare lo stato interno, agendo sugli ingressi


l’uscita coincide con lo stato (valore memorizzato)


I latch vengono utilizzati:


come base per la costruzione di elementi di memoria più complessi


nei circuiti sequenziali con temporizzazione complessa


Ne esistono di vari tipi


latch SR

latch D

Calcolatori a.a. 13/14 Dario Bruneo


Latch SR
X Y X NOR Y
Circuito composto da due porte NOR connesse tramite collegamenti incrociati
0 0 1
0 1 0
! 1 0 0
R/S 1 1 0
Q/Q’ 00 01 11 10
Due ingressi R,S

00 11 10 00 01
01 01 00 00 01
Due uscite Q, Q’

11 00 00 00 00

Due anelli di reazione


10 10 10 00 00

Tabella di flusso
!

Il comportamento del circuito viene, più semplicemente, descritto mediante la seguente tabella funzionale (una versione compatta della
tabella di flusso) costruita applicando, partendo da stati stabili, gli ingressi al circuito fino al raggiungimento di un ulteriore stato stabile
e ammettendo che le due variabili di stato/uscita siano sempre una il complemento dell’altra (escludendo cioè la combinazione di
ingressi 11)

S R Q+

Tabella funzionale
In tal caso, gli stati del circuito, diventano 2 0 0 Q HOLD

0 1 0 RESET

1 0 1 SET

1 1 X NON AMMESSA
Calcolatori a.a. 13/14 Dario Bruneo
Latch SR (cont.)

La combinazione di ingressi 11 può portare a malfunzionamenti


Le uscite corrispondenti saranno entrambe 0 (non vale più la regola che una sia il complemento dell’altra)

Se in questa condizione si ripresentasse la combinazione di ingresso 00 si creerebbe un’oscillazione delle uscite


La possibilità che gli ingressi cambino simultaneamente è, nella realtà, altamente improbabile

Più verosimilmente uno dei due segnali arriverà prima portando il circuito in uno stato indefinito

Calcolatori a.a. 13/14 Dario Bruneo


Latch SR (cont.)

La sintesi di un latch SR si effettua come la sintesi di un normale circuito combinatorio con ingressi S,R e Q
ed uscita Q+ (effettueremo una sintesi PS)

Nella fase di realizzazione del circuito l’ingresso Q e l’uscita Q+ verranno “cortocircuitati”

S R S
S R Q+
Q
0 0 Q
0 0 - Q+ = R’(Q+S)=(R’(Q+S))’’=
0 1 0
Q 0 -
= (R+(Q+S)’)’ = R↓(Q↓S)
1 0 1
1 1 X
R
Tabella funzionale Tabella di flusso di Q+ Forma PS

Calcolatori a.a. 13/14 Dario Bruneo


Latch SR (cont.)

Si sarebbe potuta condurre la sintesi partendo da un’espressione SP, ma si sarebbe ottenuta una
implementazione del latch SR con porte NAND

X Y X NAND Y
0 0 1
!
0 1 1
1 0 1
! 1 1 0

Tale implementazione prende il nome di latch S’R’



S R Q+

Le uscite sono invertite rispetto al latch SR


0 0 X NON AMMESSA
0 1 1 SET
Gli ingressi, se riferiti a S e R, sono attivi bassi 1 0 0 RESET
1 1 Q HOLD

Calcolatori a.a. 13/14 Dario Bruneo


Latch SR con ingresso di controllo (gated)

Si può introdurre un ingresso di controllo che determina quando lo stato del latch può cambiare

Tale ingresso agirà sui segnali S e R rendendoli “non attivi”



C S R Q+
! 0 X X Q NESSUN CAMBIAMENTO
1 0 0 Q HOLD
1 0 1 0 RESET
!
1 1 0 1 SET
1 1 1 X NON AMMESSA
!

Con l’utilizzo delle porte NAND di ingresso gli ingressi S e R ridiventano attivi alti

La possibilità che i segnali di ingresso cambino contemporaneamente (00→11, 11→00) è “reale”


L’ingresso di controllo (clock), normalmente, ha un andamento periodico di questo tipo:

fronte di salita fronte di discesa

←periodo→
Calcolatori a.a. 13/14 Dario Bruneo
Latch D

Si possono forzare i due ingressi ad essere uno il complemento dell’altro, ottenendo un latch di tipo D

C D Q+
!
0 X X NESSUN CAMBIAMENTO
1 0 0 RESET
!
1 1 1 SET

In tal modo, viene ogni volta memorizzato lo stato corrispondente al segnale di ingresso

Utilizzato per eliminare lo stato indefinito


Non vi è più modo di mantenere lo stato se non quello di inserire una logica in grado di riportare l’uscita sull’ingresso

Calcolatori a.a. 13/14 Dario Bruneo


Trasparenza

I gated latch hanno la proprietà della “trasparenza”


Per tutto il tempo in cui il clock rimane asserito, ogni piccola variazione negli ingressi provocherà un
cambiamento di stato

1) Nonostante la variazione
di D il latch non cambia
C stato essendo il clock basso

D 2) Il latch cambia stato


all’attivarsi del clock
Qlatch
3) Il latch segue l’ingresso
t→ per tutta la durata del clock

12 3

Calcolatori a.a. 13/14 Dario Bruneo


Trasparenza (cont.)

Potrebbero nascere problemi nel caso in cui le uscite del circuito combinatorio presentino degli impulsi non
previsti (glitch)

Sarebbe utile, in alcuni casi, disporre di elementi di memoria che non abbiano la proprietà della trasparenza ma che
siano “sensibili” solo al fronte (di salita o di discesa) del clock

Tali dispositivi prendono il nome di flip-flop



1) Sia il latch che il flip-flop
Ne esistono di due tipi:
C seguono l’ingresso
all’attivarsi del clock
D 2) Il flip-flop non è più
flip-flop master-slave

sensibile alle variazioni
dell’ingresso
Qlatch
flip-flop edge triggered

3) Il flip-flop si accorgerà
del cambiamento di D solo
Qff all’inizio di un nuovo ciclo
t→
di clock
1 2 3
Calcolatori a.a. 13/14 Dario Bruneo
Flip-flop master-slave SR

Costituito da due latch SR gated ed un invertitore


Il clock viene inviato in maniera diretta al master ed in maniera negata allo slave

! latch

master






C=1 si abilita il master







C=0 si abilita lo slave

! latch

slave

Il flip-flop risulta attivo quando il clock è basso


Non si ha più la trasparenza: mentre il clock è basso qualsiasi modifica nei segnali di ingresso non viene
rilevata in quanto il master risulta disabilitato

Calcolatori a.a. 13/14 Dario Bruneo


Flip-flop master-slave SR (cont.)

Si osservi il comportamento dinamico del flip-flop master-slave SR

Calcolatori a.a. 13/14 Dario Bruneo


Flip-flop master-slave JK

Si costruisce a partire da un flip-flop SR retroazionando le uscite Q e Q’


Elimina le condizioni di uscita indefinite e i comportamenti indeterminati


La condizione di ingresso 11 effettuerà un’operazione di “toggle” che complementerà lo stato presente (0→1 ; 1→0)

J K Q+
0 0 Q HOLD
0 1 0 RESET
1 0 1 SET
1 1 Q’ TOGGLE

Calcolatori a.a. 13/14 Dario Bruneo


Caratteristiche dei flip-flop master-slave

I flip-flop master-slave SR e JK possono portare a malfunzionamenti dovuti al fatto che per tutto un
semiciclo di clock il master rimane attivo

La presenza di un glitch negli ingressi S e R durante il periodo di attività del master potrebbe settare o
resettare il flip-flop
C

Calcolatori a.a. 13/14 Dario Bruneo


Flip-flop edge triggered

I flip-flop edge triggered commutano esclusivamente in corrispondenza delle transizioni del segnale di clock

Positive edge triggered: attivi sul fronte di salita 0→1


Negative edge triggered: attivi sul fronte di discesa 1→0


In tutti gli altri periodi l’ingresso e l’uscita risulteranno disaccoppiati

Calcolatori a.a. 13/14 Dario Bruneo


Flip-flop edge triggered D

! !

! ! Positive edge triggered

! !

C=0
C=1

Master abilitato: la sua uscita segue l’ingresso


Master disabilitato

Slave disabilitato
L’uscita Q non è influenzata dagli ingressi

C=0→1
C=1→0

Master disabilitato: manterrà il valore precedente alla Slave disabilitato prima che qualunque cambiamento del
transizione
master lo possa raggiungere

Slave abilitato

Calcolatori a.a. 13/14 Dario Bruneo


Flip-flop edge triggered D (cont.)

Implementazione più efficiente di un flip-flop edge triggered di tipo D


Il comportamento è analogo al circuito di prima

Calcolatori a.a. 13/14 Dario Bruneo


Flip-flop edge triggered JK

Si ricava a partire da un flip-flop edge triggered di tipo D

Calcolatori a.a. 13/14 Dario Bruneo


Caratteristiche temporali dei flip-flop

Bisogna porre particolare attenzione alla temporizzazione degli ingressi rispetto al segnale di clock

Gli ingressi devono stabilizzarsi entro un tempo tsu (tempo di setup) dall’arrivo del fronte del clock e
devono rimanere stabili, dopo l’arrivo del clock, per un tempo th (tempo di hold)

Inoltre il flip-flop risponderà dopo un tempo tp (detto tempo di propagazione)

← th →
Input

←tsu→

Clock

← tp →
Output

L’ordine di grandezza è dei nanosecondi

Calcolatori a.a. 13/14 Dario Bruneo


Caratteristiche temporali dei flip-flop (cont.)

Vincoli stringenti nascono se si utilizzano più flip-flop in cascata sincronizzati con lo stesso clock

! D Q D Q
C C
!

Si dovrà avere: tp>th (per evitare che il cambiamento nell’uscita del primo flip-flop influenzi il secondo nello stesso periodo di clock)

La frequenza massima di clock sarà:


Ad esempio, con dispositivi rispondenti alle seguenti caratteristiche, si avrà:

Calcolatori a.a. 13/14 Dario Bruneo


Simboli grafici standard

Alcuni simboli grafici utilizzati per rappresentare i flip-flop


Nel seguito si assumerà, quando non esplicitamente dichiarato, che tutti i flip-flop siano del tipo positive edge triggered

Calcolatori a.a. 13/14 Dario Bruneo


Tabelle caratteristiche

Ricapitolando, le tabelle caratteristiche dei flip-flop sono le seguenti:

D Q+ Flip-flop D J K Q+ Flip-flop JK

0 0 RESET 0 0 Q HOLD

1 1 SET 0 1 0 RESET
1 0 1 SET
1 1 Q’ TOGGLE

S R Q+ Flip-flop SR

0 0 Q HOLD

0 1 0 RESET T Q+ Flip-flop T

1 0 1 SET 0 Q HOLD
1 1 ? NON AMMESSA 1 Q’ TOGGLE

Si ottiene dal flip-flop JK


collegando insieme i due ingressi

Calcolatori a.a. 13/14 Dario Bruneo


Ingressi diretti

Si utilizzano allo scopo di togliere lo stato di indeterminazione all’accensione


Forzano lo stato ad assumere un valore prestabilito


Preset: forza il dispositivo ad andare nello sato di set


Clear: forza il dispositivo ad andare nello sato di reset


Preset e clear agiscono direttamente sulle porte NOR o NAND dei latch

Il clock, denominato C1 nel simbolo soprastante, controllerà tutti i segnali il cui nome inizia con 1 (in questo caso solo 1D)

Calcolatori a.a. 13/14 Dario Bruneo


Analisi di reti sequenziali

Il comportamento di un circuito sequenziale è determinato dagli ingressi, dalle uscite e dallo stato

L’analisi si pone lo scopo di ricavare una descrizione dell’evoluzione temporale dello stato e delle uscite al
variare degli ingressi

!
Cirucito sequenziale sincronizzato

È necessario conoscere il tipo di flip-flop e le equazioni booleane che descrivono la rete combinatoria

Calcolatori a.a. 13/14 Dario Bruneo


Analisi di reti sequenziali (cont.)

Il primo passo consiste nel ricavare le equazioni:


di ingresso ai flip-flop (per risalire alle evoluzioni dello stato)


di uscita (per conoscere l’andamento delle uscite)


Ad es.

DA = AX + BX
1 ingresso

2 flip-flop
DB = A’X
1 uscita
Y = (A + B)X’

Calcolatori a.a. 13/14 Dario Bruneo


Analisi di reti sequenziali (cont.)

Note le equazioni di ingresso e uscita, le relazioni funzionali tra ingressi, uscite e stato possono essere
contenute in una tabella detta tabella di stato (equivalente alla tabella di flusso)

Ne esistono due versioni (equivalenti)


monodimensionale (ingressi esplicitati)


bidimensionale (ingressi raggruppati)


Per l’esempio precedente le tabelle sono:

DA = AX + BX
DB = A’X
Y = (A + B)X’

Monodimensionale Bidimensionale

Calcolatori a.a. 13/14 Dario Bruneo


Analisi di reti sequenziali (cont.)

Nel caso di reti che utilizzino altre tipologie di flip-flop (ad es. JK) si dovranno utilizzare, durante l’analisi, le
tabelle caratteristiche dei flip-flop

Si deve risalire dalle equazioni di ingresso ai flip-flop alle transizioni di stato


Si assuma di avere una rete sequenziale con flip-flop JK aventi le seguenti equazioni:

!
JA = B KA = BX’
! JB = X’ KB = AX’

si otterrà la seguente tabella

J K Q+ Flip-flop JK
0 0 Q HOLD
0 1 0 RESET
1 0 1 SET
1 1 Q’ TOGGLE

Calcolatori a.a. 13/14 Dario Bruneo


Caratteristiche temporali

Nel caso generico di un circuito sequenziale la Ad es.



frequenza massima di clock sarà influenzata dai
se

ritardi di propagazione della rete combinatoria

!
!
!
!
!
!
!
Devo fare in modo che tutti i segnali siano stabili prima
dell’arrivo del segnale di clock
la frequenza massima di clock sarà:

La frequenza massima del circuito sarà data da:


!
Ritardo della parte
! combinatoria

Calcolatori a.a. 13/14 Dario Bruneo


Modelli di Mealy e di Moore

I circuiti si possono classificare in base alla relazione tra uscite, ingressi e stato

Reti di Mealy: le uscite dipendono sia dallo stato che dall’ingresso


Reti di Moore: le uscite dipendono solo dallo stato


L’esempio precedente mostrava una rete di Mealy (lo si può notare dalle equazioni di uscita)

Esempio di rete di Moore:

Z=A

L’uscita è univocamente determinata dallo stato


di ingresso

Calcolatori a.a. 13/14 Dario Bruneo


Diagrammi di stato

Un diagramma di stato è una rappresentazione grafica delle informazioni disponibili nella tabella di stato

Gli stati sono rappresentati da cerchi e le transizioni tra gli stati da archi orientati

Nei grafi corrispondenti a reti di Mealy l’uscita, dipendente sia dallo stato che dagli ingressi, è associata ad ogni arco

Nei grafi corrispondenti a reti di Moore l’uscita, dipendente solo dallo stato, è associata ad ogni cerchio

! Coppia stato/
uscita
Coppia
! ingresso/
uscita

Esempio di grafo di Mealy Esempio di grafo di Moore

Calcolatori a.a. 13/14 Dario Bruneo


Equivalenza fra i modelli di Mealy e di Moore

Le reti di Mealy rispondono più velocemente ma sono sensibili alle variazioni non volute degli ingressi!

Infatti, al variare degli ingressi


le reti di Mealy iniziano a commutare verso una nuova uscita


le reti di Moore devono aspettare la corrispondente transizione di stato (e quindi il segnale di clock), e solo allora inizieranno a
commutare verso una nuova uscita

Comunque, per quanto riguarda il comportamento ingresso/uscita, i due modelli risultano equivalenti

Sarà, quindi, sempre possibile passare da una rete di Mealy ad una rete di Moore equivalente e viceversa

Esistono, a tal proposito, metodi sistematici


Come si vedrà in seguito, le reti di Mealy sono normalmente caratterizzate da un numero di stati minori rispetto alle equivalenti reti di
Moore, risultando, quindi, in circuiti meno complessi

Calcolatori a.a. 13/14 Dario Bruneo


Sintesi di reti sequenziali

La sintesi dei circuiti sequenziali parte dalla definizione delle specifiche e si conclude con un diagramma
logico del circuito o con un elenco di funzioni booleane

Si deve ottenere, inizialmente, la tabella di stato (o il diagramma di stato)


Successivamente si svolgono due passi:


Scelta dei flip-flop


Sintesi della parte combinatoria


Il numero di flip-flop necessari dipende dal numero di stati

N°flip-flop = ⎡log2(n)⎤,
dove n è il numero degli stati

Calcolatori a.a. 13/14 Dario Bruneo


Sintesi di reti sequenziali (cont.)

Le fasi da seguire durante la sintesi di una rete sequenziale sono le seguenti:


Si stabilisce il modello (Mealy o Moore)


Si ricava il diagramma di stato e/o la tabella di stato dalla descrizione verbale


Si codificano gli stati (ed eventualmente gli ingressi e le uscite)


Si derivano le equazioni di ingresso ai flip-flop


Si derivano le equazioni di uscita


Si semplificano le equazioni

Si disegna il diagramma logico


Si svolgerà adesso la sintesi di una rete d’esempio al fine di evidenziare i passi suddetti

Calcolatori a.a. 13/14 Dario Bruneo


Descrizione verbale

La descrizione verbale della rete da sintetizzare è, normalmente, il primo passo della fase progettuale.

! “Si progetti una rete sequenziale in grado di riconoscere, in una sequenza arbitraria di caratteri alfanumerici in ingresso, la
sottosequenza “aba”, segnalandone il riconoscimento con uno stato di uscita z2; lo stato z1 segnalerà ogni altra condizione.

! Si considerino sottosequenze sovrapposte (es. la stringa “ababa” deve essere considerata come 2 sottosequenze)”

Inizieremo il progetto considerando un modello di Mealy


La costruzione del diagramma di stato parte con la scelta di uno stato iniziale (detto di reset) non sempre specificato nella descrizione
verbale; nel nostro esempio si considererà come stato di reset uno stato nel quale nessuna carattere della sequenza “aba” sia stato
ancora rilevato

Si indichi con x qualunque ingresso differente da a e b

Reset
a
b
0
x

Calcolatori a.a. 13/14 Dario Bruneo


Dalla descrizione verbale alla tabella di stato

Partendo dalla descrizione verbale si inizia a costruire il diagramma di stato


Stato 1

L’arrivo di un ingresso b
Stato 0 deve essere memorizzato in
a/z1 un nuovo stato perché
a/z1
L’arrivo di un ingresso a Reset corrisponde alla
deve essere memorizzato continuazione della
in un nuovo stato perché 1 sequenza (uscita z1)

x/z1
corrisponde all’inizio di 0
una nuova sequenza, a/z2
l’uscita, comunque, dovrà Un ingresso x deve farmi
b,x/z1 b/z1 tornare allo stato 0 (uscita
essere z1.
b,x/z1 2 z1)

Qualsiasi altro ingresso
non deve produrre nessun
effetto (l’uscità sarà Un ingresso a corrisponde
sempre) z1. all’inizio di una nuova
Stato 2 sequenza quindi lo stato non
deve cambiare (uscita z1)
Un ingresso a mi fa
riconoscere la sequenza
(uscita z2!) lo stato sarà 1
(sequenze sovrapposte)

Un ingresso x o un ingresso
b mi fanno tornare allo stato
di partenza (uscita z1)

Calcolatori a.a. 13/14 Dario Bruneo


Dalla descrizione verbale alla tabella di stato (cont.)

A questo punto si può trasformare il diagramma di stato in forma tabellare ottenendo la tabella di
stato

a/z1
a/z1
Reset Stato presente Stato futuro Uscita

1 in=a in=b in=x in=a in=b in=x


x/z1
0
a/z2 0 1 0 0 z1 z1 z1
b,x/z1 b/z1
1 1 2 0 z1 z1 z1
b,x/z1 2
2 1 0 0 z2 z1 z1

Calcolatori a.a. 13/14 Dario Bruneo


Dalla descrizione verbale alla tabella di stato (cont.)

Se avessimo scelto di utilizzare un modello di Moore avremmo ottenuto il seguente diagramma di stato

Stato 0 - Stato 1
a
I passi procedono come a Stato 2
Reset
per il modello di Mealy
con l’eccezione che le Alla ricezione di una a, non
x 1/z1 si può più tornare allo stato
uscite sono associate agli
stati. 0/z1 1 perché ad esso è associata
a l’uscita z1 e si necessita di
b,x b b un’uscita z2
x
Creazione di un nuovo
3/z2 b,x 2/z1 stato!
Stato 3
Un ingresso x o un ingresso
a
La ricezione di una b mi farà b mi fanno tornare allo stato
andare nello stato 2 (ab). di partenza (uscita z1)

La ricezione di una a mi farà


andare nello stato 1 (a).
La ricezione di una x mi farà
tornare nello stato di
partenza

Calcolatori a.a. 13/14 Dario Bruneo


Dalla descrizione verbale alla tabella di stato (cont.)

La tabella di stato corrispondente al modello di Moore diventa:

a
a
Reset
Stato presente Stato futuro Uscita
x 1/z1
0/z1 in=a in=b in=x
a
b 0 1 0 0
b,x b z1
x 1 1 2 0
3/z2 z1
b,x 2/z1
2 3 0 0
a z1
3 1 2 0
z2

Calcolatori a.a. 13/14 Dario Bruneo


Dalla descrizione verbale alla tabella di stato (cont.)

A questo punto è possibile effettuare una fase di test producendo una sequenza casuale e osservando il
comportamento delle uscite a partire dal grafo o dalla tabella di stato

! input a b x a b a b a x b a b a x b

uscite modello
z1 z1 z1 z1 z1 z2 z1 z2 z1 z1 z1 z1 z2 z1 z1
! Mealy
uscite modello
z1 z1 z1 z1 z1 z2 z1 z2 z1 z1 z1 z1 z2 z1 z1
! Moore

Dalla fase di test si può osservare come entrambi i modelli rispondano correttamente alle specifiche di progetto

Calcolatori a.a. 13/14 Dario Bruneo


Scelta del modello

Alcuni commenti su quale dei due modelli scegliere:


La scelta del modello da utilizzare non sempre è lasciata al progettista ma a volte rientra nei vincoli da rispettare

Normalmente un modello di Moore porta ad un numero di stati maggiore di un modello di Mealy


Nel modello di Mealy le uscite sono sensibili alle variazioni degli ingressi mentre nel modello di Moore le uscite sono stabili ed
influenzate univocamente dagli stati

Le uscite del modello di Moore sono quindi sincronizzate con il clock e portano ad una metodologia di temporizzazione più
“disciplinata”

Il modello di Mealy, però, è più pronto a reagire nel senso che l’uscita può variare senza aspettare l’arrivo del segnale di clock

Calcolatori a.a. 13/14 Dario Bruneo


Ridondanza degli stati

Nel passaggio dalla descrizione verbale alla tabella di stato potrebbero crearsi degli stati ridondanti

Due stati si dicono ridondanti se:


a parità di ingresso effettuano transizioni verso stati uguali o a loro volta ridondanti

hanno le stesse uscite (modello di Moore) o a parità di ingresso le transizioni provocano le stesse uscite

a
! a/z1 a
a/z1 Reset
Reset
! x 1/z1
1 0/z1
x/z1
0 a
! a/z2 b,x b b
a/z1
b,x/z1 b/z1 a
! 2 b,x 4/z1
3 3/z2 b,x 2/z1
b,x/z1 b,x/z1 x
! a

Eventuali stati ridondanti possono essere eliminati durante la fase di costruzione del diagramma di stato

Calcolatori a.a. 13/14 Dario Bruneo


Codifica

Bisogna effettuare una codifica degli stati, degli ingressi e delle uscite

Si devono attribuire valori binari


A volte le codifiche degli ingressi e delle uscite sono già presenti nelle specifiche di progetto

Esistono varie metodologie di codifica: noi utilizzeremo, quando non esplicitamente dichiarato, la codifica Gray

Nel nostro esempio le grandezze in gioco sono:


Ingressi (a,b,x)

Uscite (z1,z2)

Stati (0,1,2 - modello Mealy) (0,1,2,3 - modello Moore)

Calcolatori a.a. 13/14 Dario Bruneo


Codifica (cont.)

Quindi saranno necessari 2 bit per codificare gli ingressi, 1 bit per codificare le uscite e 2 bit per codificare
lo stato (in entrambi i modelli)

La codifica Gray produrrà:

Codifica

Stati
Codifica
Codifica
AB
Ingressi Stati
XY Codifica
AB 0 00
Uscite
a 00 Z 0 00 1 01
b 01 z1 0 1 01 2 11
x 11 z2 1 2 11 3 10

Mealy Moore

Calcolatori a.a. 13/14 Dario Bruneo


Codifica (cont.)

Le tabelle diventeranno:

Stato Stato
Stato futuro Uscita Stato futuro Uscite
presente presente
AB AB Z AB AB Z
XY=00 XY=01 XY=11
XY=00 XY=01 XY=11 XY=00 XY=01 XY=11
00 01 00 00 0
00 01 00 00 0 0 0
01 01 11 00 0
01 01 11 00 0 0 0 11 10 00 00 1
11 01 00 00 1 0 0 10 01 11 00 0

Mealy Moore

Calcolatori a.a. 13/14 Dario Bruneo


Equazioni di uscita

Si dovranno adesso esplicitare le equazioni che rappresentano le funzioni di uscita

Le uscite del circuito sequenziale



ingressi dipenderanno dagli ingressi e dallo stato presente nel
Rete
caso di modelli di Mealy, solo dallo stato nel caso di
combinatoria modelli di Moore

stato presente
FF

FF

Calcolatori a.a. 13/14 Dario Bruneo


Equazioni di uscita (cont.)

Dalla tabella di stato si ricavano le mappe di Karnaugh relative alle uscite


Nel caso del modello di Mealy, si avrà un’uscita che dipenderà da due variabili di ingresso (X Y) e da due variabili di stato (A B)

Stato
Stato futuro Uscita
presente X/Y
A/B 00 01 11 10
AB AB Z
00 x
XY=00 XY=01 XY=11 XY=00 XY=01 XY=11
01 x
00 01 00 00 0 0 0 11 1 x
01 01 11 00 0 0 0 10 x x x x

11 01 00 00 1 0 0 Z

Mealy

Calcolatori a.a. 13/14 Dario Bruneo


Equazioni di uscita (cont.)

Nel caso di modello di Moore si avrà un’uscita che dipenderà da due variabili di stato (A B)

Stato
Stato futuro Uscite
presente
AB AB Z
XY=00 XY=01 XY=11
00 01 00 00 0
01 01 11 00 0
11 10 00 00 1
10 01 11 00 0

Moore

Calcolatori a.a. 13/14 Dario Bruneo


Equazioni di ingresso ai flip-flop

Si determineranno, adesso, le equazioni di ingresso ai flip-flop che determineranno le corrette transizioni di


stato

Ogni bit di stato sarà realizzato mediante un flip-flop

ingressi
Rete

combinatoria

stato presente segnali di ingresso ai flip-flop che devono produrre lo


FF stato futuro:

dipenderanno dagli ingressi e dallo stato presente

FF

Calcolatori a.a. 13/14 Dario Bruneo


Equazioni di ingresso ai flip-flop (cont.)

Equazioni di ingresso ai flip-flop


Al fine di determinare le equazioni di ingresso ai flip-flop conviene esprimere il funzionamento di questi ultimi mediante l’utilizzo di
tabelle dette di eccitazione

Flip-flop D Flip-flop JK Flip-flop SR Flip-flop T


!
Q Q+ D Q Q+ J K Q Q+ S R Q Q+ T
0 0 0 0 0 0 x 0 0 0 x 0 0 0
! 0 1 1 0 1 1 x 0 1 1 0 0 1 1
1 0 0 1 0 x 1 1 0 0 1 1 0 1
1 1 1 1 1 x 0 1 1 x 0 1 1 0
!

Esplicitano quali devono essere i segnali di ingresso per produrre una determinata transizione di stato

Calcolatori a.a. 13/14 Dario Bruneo


Equazioni di ingresso ai flip-flop (cont.)

Si consideri la progettazione con flip-flop D

Si aggiungono alla tabella di stato le colonne relative agli ingressi dei flip-flop (3 stati → 2 flip-flop)

Stato
Stato futuro Ingressi FF
presente
AB AB DA DB

XY=00 XY=01 XY=11 XY=00 XY=01 XY=11

00 01 00 00 01 00 00

01 01 11 00 01 11 00

11 01 00 00 01 00 00

Mealy

Calcolatori a.a. 13/14 Dario Bruneo


Equazioni di ingresso ai flip-flop (cont.)

Al fine di ottenere le equazioni di ingresso ai flip-flop si costruiscono, quindi, tante mappe di Karnaugh
quanti sono i segnali di ingresso complessivi ai flip-flop

nel nostro caso avendo 2 flip-flop ognuno con un segnale di ingresso (D) si costruiranno 2 mappe di Karnaugh

X/Y X/Y
A/B 00 01 11 10 A/B 00 01 11 10
Stato 00 x 00 1 x
Stato futuro Ingressi FF
presente
01 1 x 01 1 1 x
AB AB DA DB
11 x 11 1 x
XY=00 XY=01 XY=11 XY=00 XY=01 XY=11 10 x x x x 10 x x x x
00 01 00 00 01 00 00
DA DB
01 01 11 00 01 11 00

11 01 00 00 01 00 00

Mealy

Calcolatori a.a. 13/14 Dario Bruneo


Equazioni di ingresso ai flip-flop (cont.)

Nel caso del modello di Moore il numero di flip-flop, essendo gli stati 4, rimane 2

Stato
Stato futuro Ingressi FF
presente
AB AB DA DB

XY=00 XY=01 XY=11 XY=00 XY=01 XY=11

00 01 00 00 01 00 00

01 01 11 00 01 11 00

11 10 00 00 10 00 00

10 01 11 00 01 11 00

Moore

Calcolatori a.a. 13/14 Dario Bruneo


Equazioni di ingresso ai flip-flop (cont.)

Anche in questo caso si costruiranno due mappe di Karnaugh

Stato
Stato futuro Ingressi FF
presente
AB AB DA DB X/Y X/Y
A/B 00 01 11 10 A/B 00 01 11 10

XY=00 XY=01 XY=11 XY=00 XY=01 XY=11 00 x 00 1 x


01 1 x 01 1 1 x
00 01 00 00 01 00 00
11 1 x 11 x
01 01 11 00 01 11 00
10 1 x 10 1 1 x
11 10 00 00 10 00 00
DA DB
10 01 11 00 01 11 00

Moore

Calcolatori a.a. 13/14 Dario Bruneo


Disegno della rete

Una volta ottenute le equazioni di ingresso ai flip-flop e le equazioni di uscita si può passare al disegno del
diagramma logico del circuito

ingressi
Rete

combinatoria

stato presente
FF
Mealy Moore

FF

... il disegno della rete di Moore è


lasciato come esercizio ...

Calcolatori a.a. 13/14 Dario Bruneo


Utilizzo di flip-flop di tipo non D

Nel caso di flip-flop diversi dal tipo D si devono utilizzare le tabelle di eccitazione per ricavare gli ingressi ai
flip-flop

Per esempio nel caso di flip-flop JK, utilizzando il modello di Mealy dell’esempio precedente, si ottiene la seguente tabella

Stato
Stato futuro Ingressi FF
presente
AB AB JAKA - JBKB
Flip-flop JK
XY=00 XY=01 XY=11 XY=00 XY=01 XY=11
Q Q+ J K
0 0 0 x 00 01 00 00 0x-1x 0x-0x 0x-0x
0 1 1 x
01 01 11 00 0x-x0 1x-x0 0x-x1
1 0 x 1
1 1 x 0 11 01 00 00 x1-x0 x1-x1 x1-x1

Mealy

Calcolatori a.a. 13/14 Dario Bruneo


Utilizzo di flip-flop di tipo non D (cont.)

In tal caso avendo due flip-flop ognuno con due segnali di ingresso (JK) si dovranno costruire 4 mappe di
Karnaugh al fine di risalire alle 4 equazioni che regolano l’evoluzione dello stato

! X/Y X/Y X/Y X/Y


A/B 00 01 11 10 A/B 00 01 11 10 A/B 00 01 11 10 A/B 00 01 11 10
00 x 00 x x x x 00 1 x 00 x x x x
! 01 1 x 01 x x x x 01 x x x x 01 1 x
11 x x x x 11 1 1 1 x 11 x x x x 11 1 1 x


10 x x x x 10 x x x x 10 x x x x 10 x x x x

JA KA JB KB
!

Tali equazioni assieme all’equazione di uscita (che non è influenzata dall’utilizzo di flip-flop differenti) permettono di effettuare il
disegno del circuito

Calcolatori a.a. 13/14 Dario Bruneo


Stati di reset e di indifferenza

Particolare attenzione si deve porre alle seguenti condizioni:


Stato di reset

All’accensione del circuito non posso prevedere in quale stato si configureranno i flip-flop

Utilizzo un segnale di reset esterno che agisce sugli ingressi di preset o clear di ogni flip-flop per forzarne lo stato

Stati di indifferenza

Rendono la parte combinatoria più semplice


Si possono creare problemi nel caso in cui il circuito entri accidentalmente in uno di essi

Progettazione degli stati di indifferenza (stati futuri, uscite) in modo da auto-riparare il circuito e segnalare gli errori

Tutto ciò a scapito della semplicità

Calcolatori a.a. 13/14 Dario Bruneo


Test finale

È necessario, a tal punto, effettuare una fase di test simulando il comportamento del circuito prima di
realizzarlo

È possibile utilizzare gli strumenti CAD


Bisogna verificare che la sequenza di stati relativi ad una data sequenza di ingresso coincida con quella specificata dal diagramma di
stato

Si utilizza un’apposita sequenza di test che di solito include anche il segnale di reset

Calcolatori a.a. 13/14 Dario Bruneo


Asincroni Vs. Sincroni

I circuiti sequenziali sincroni sono caratterizzati dal fatto che i segnali agiscono sugli elementi di memoria in
intervalli di tempo discreti

Tutti gli stati sono stabilizzati dal clock


! Impulsi di sincronizzazione

Nei circuiti sequenziali asincroni il comportamento dipende dai ritardi di propagazione


Presenza di stati instabili


Gli ingressi non devono variare fino al raggiungimento di uno stato stabile

Bisogna effettuare una temporizzazione accurata!


In compenso i circuiti asincroni possono raggiungere prestazioni migliori non essendo “legati” alla frequenza di clock

Calcolatori a.a. 13/14 Dario Bruneo

You might also like