Un contatore è un sistema sequenziale in cui le n uscite forniscono il numero di impulsi applicati nell'unico ingresso.
Si definisce modulo del contatore il numero di impulsi che riportano il sistema nello stato iniziale.
Con n bit il massimo modulo è 2n.
Si distingue tra contatori asincroni, più immediati da progettare ma poco usati perchè oltre che asincroni sono anche più lenti , e contatori sincroni che tratteremo nell'ambito delle macchine a stati finiti o automi.
CONTATORI ASINCRONI
Sono formati da FF tipo T con il CK sulla prima cella e l'uscita di ogni cella sul CK della successiva.
Da questo si osserva il carattere di asincronia: le uscite non commutano tutte insieme ma una dopo l'altra: in particolare l'ultima cella per commutare deve aspettare tutte le precedenti e questo diminuisce la massima frequenza di lavoro in funzione del numero di celle e del tempo di propagazione di ogni cella.
Scegliendo FF edge positive o negative oppure applicando alla successiva cella l'uscita diretta o negata della cella precedente, si possono ottenere molto semplicemente contatori in avanti o all'indietro.
Una rete combinatoria può decidere il modulo del contatore azzerando le uscite quando necessario.
Se un contatore in avanti si trova in uno degli stati non previsti (se il modulo è <2n) il sistema continua a contare finchè non ritorna a zero, quindi riprende correttamente.
Un segnale di reset è utile per azzerare il contatore allo start.
AUTOMI
Un automa, detto anche macchina a stati finiti (FSM), è una sistema sequenziale in cui l'evoluzione da uno stato al successivo è determinato univocamente.
Ci occuperemo dei sistemi sequenziali sincroni con FF tipo D e in particolare soltanto di contatori sincroni in modo che la trattazione si semplifichi notevolmente. L'argomento è molto vasto e potrà essere affrontato successivamente.
Un modello utilizzato è la macchina a stati finiti di Moore in cui le uscite
dipendono soltanto dalle variabili di stato presente (non dagli ingressi) attraverso eventualmente una rete combinatoria. Nel caso più semplice di figura le uscite coincidono con lo stato presente.
E' necessario definire:
le variabili di ingresso, di uscita e di stato
la funzione combinatoria che determina lo stato futuro
l'eventuale funzione combinatoria che determina le uscite
Si osserva:
un circuito di memoria con n celle ( n variabili di stato) e 2n stati possibili
una rete combinatoria che ricevendo gli ingressi esterni e le variabili di stato attuali genera lo stato futuro
il circuito di memoria modifica il suo stato al prossimo fronte attivo del clock
I circuiti combinatori sono descritti dalla tabella di verità.
Una FSM può essere descritta con il diagramma di flusso e la tabella degli stati.
DIAGRAMMA DI FLUSSO
E' un grafo formato da cerchi e rami orientati: all'interno di ogni cerchio si indica lo stato del sistema ed eventualmente le uscite e sui rami si indica la combinazione degli ingressi, o anche del semplice clock, che provoca la transizione da uno stato all'altro. E' detto anche pallogramma.
TABELLA DEGLI STATI
E' una tabella con tre colonne principali che rappresentano lo stato attuale, quello successivo, gli ingressi agli elementi di memoria che provocano la transizione desiderata.
La scelta del FF determina l'ultima colonna e la rete combinatoria conseguente.
CONTATORE SINCRONO MODULO 6 CON FF TIPO D
Le uscite del contatore coincidono con lo stato attuale. Ad ogni impulso il sistema si evolve nel prossimo stato.
Dopo 6 impulsi il contatore si deve riazzerare.
Sono necessari 6 stati e 3 variabili di stato.
Se per qualunque motivo il circuito si trova nello stato non desiderato 111 si vuole che transiti nello stato 000.
Dal diagramma di flusso si ricavano direttamente le tab. 1 e 2.
La terza tabella dipende dal tipo di FF scelto; se è di tipo D deve coincidere con la tab.2
Uscite nello stato n
Uscite nello stato n+1
Ingressi dei FF tipo D
tab. 1
tab. 2
tab. 3
Il circuito di memoria è formato da 3 FF tipo D che hanno in comune solo il clock.
Gli ingressi D di queste celle, che coincidono con lo stato successivo, sono fornite dal circuito combinatorio.
Bisogna realizzare il circuito combinatorio che genera gli ingressi D a partire dalle uscite allo stato n: quindi questa rete combinatoria ha come ingressi la tab.1 e come uscite la tab. 2.
ES. Dedurre le tre funzioni D0, D1, D2 (anche tramite le mappe di K) e rappresentare lo schema logico.
ES.
Progettare un contatore asincrono in avanti modulo 7.
ES.
Progettare un contatore sincrono all'indietro modulo 5
ES.
Un encoder incrementale fornisce due segnali digitali Va e Vb leggermente sfasati tra loro; quando il sensore è sulla tacca dell'encoder genera un impulso che corrisponde ad un angolo di rotazione.
Si dispone di un contatore up/down per contare gli impulsi (due ingressi, ck e up/dw, e le uscite in parallelo) e di un FFD (due ingressi, D e ck, e l'uscita Q) per stabilire il verso di conteggio in funzione della fase dei due segnali.
Progettare il sistema.