Mariagiovanna Sami Corso di reti Logiche 8 Anno...

26
Progetto di Contatori sincroni Progetto di Contatori sincroni Mariagiovanna Mariagiovanna Sami Sami Corso di reti Logiche 8 Corso di reti Logiche 8 Anno 2007 Anno 2007 - - 08 08

Transcript of Mariagiovanna Sami Corso di reti Logiche 8 Anno...

Progetto di Contatori sincroniProgetto di Contatori sincroni

MariagiovannaMariagiovanna SamiSamiCorso di reti Logiche 8Corso di reti Logiche 8

Anno 2007Anno 2007--0808

20072007--0808 -- 22 --

IntroduzioneIntroduzione

Per le reti sequenziali esistono metodologie di progettazione generali, che partendo da una specifica “a parole” (in linguaggio naturale) consentono di giungere a circuiti opportunamente ottimizzati.Esistono classi di circuiti sequenziali che è più conveniente (più semplice e veloce) progettare utilizzando tecniche specifiche. A queste classi appartengono:

– I registri (già visti);– I contatori, semplici sistemi che attraversano ripetutamente un numero

definito di stati. Si distinguono• Contatori sincroni• Contatori asincroni (non trattati in questo corso)

20072007--0808 -- 33 --

ContatoriContatori

Un contatore è una rete sequenziale che, solitamente, riceve in ingresso solamente un evento di conteggio che aumenta di una unità il valore memorizzato (contatore in avanti – upwards) oppure lodiminuisce di un’unità (contatore all’ indietro - downwards).Il valore raggiunto è associato allo stato presente

– Possono esistere altri ingressi di controllo per la realizzazione di contatori bidirezionali; il metodo di progetto cambia di poco

Il contatore appartiene ad una famiglia di reti sequenziali “omogenee” caratterizzate da:

– Specifiche di funzionamento analoghe per l’intera famiglia;– In molti casi, ripetitività e località della struttura.– Possibilità di descrizione semplificata della specifica – Esistenza di tecniche di implementazione semplificate rispetto a quelle

per le generiche reti sequenziali

20072007--0808 -- 44 --

Contatori Contatori –– definizioni caratteristichedefinizioni caratteristiche

Un contatore è caratterizzato da:– Il modulo M, che individua il numero di simboli in uscita prodotti dal

contatore, e di conseguenza il periodo o ciclo del conteggio;– Il codice - cioè l’insieme delle configurazioni delle uscite utilizzate per

rappresentare il valore del conteggio. Si distinguono in particolare:• Codici a numero minimo di bit: Il numero dei bistabili nel contatore coincide col

numero di bit ed è ⎡log2 M⎤. (es: Binario Naturale, codice Gray)• Altri codici: se il codice è su k> ⎡log2 M⎤ bit, converrà usare comunque k bistabili,

per evitare di inserire una rete di transcodifica fra i bistabili e l’uscita del contatore. (es: 1-hot, parità)

– La codifica, che definisce la successione degli M valori associati agli stati attraverso cui il contatore evolve.

• Si noti: la codifica degli stati è definita a priori, una volta stabilito modulo e codice

20072007--0808 -- 55 --

Contatori sincroni e asincroniContatori sincroni e asincroni

Oltre che per modulo, codice e codifica, i contatori si distinguono in sincroni e asincroni:Contatore sincrono:

– Tutti i bistabili ricevono simultaneamente in ingresso l’evento di conteggio (che può essere il clock oppure il “Gated Clock”, se il clock attraversa una rete combinatoria).

– Le eventuali commutazioni dei bistabili sono tutte simultanee (sincrone), a parte modeste variazioni dovute alla propagazione attraverso le reti di eccitazione dei bistabili stessi

Contatore asincrono:– Almeno uno dei bistabili non riceve in ingresso il segnale di conteggio– La sua eventuale commutazione è comandata da quella degli altri

bistabili e avverrà con un ritardo dovuto alla propagazione attraverso tali bistabili (oltre che attraverso le reti combinatorie eventualmente presenti)

Nel seguito si tratterà in dettaglio il progetto dei contatori sincroni.

20072007--0808 -- 66 --

Contatori sincroni: Contatori sincroni: Contatore Binario Contatore Binario NaturaleNaturale

Contatore binario (modulo 2n) – Modulo: 2n; Codice: A numero minimo bit; Codifica: Binaria Naturale.

La descrizione del funzionamento del contatore (la specifica) è molto semplice: si tratta semplicemente di riportare il ciclo di conteggio (che fornisce la sequenza degli stati attraverso cui il contatore deve evolvere), e da questo dedurre la tabella delle transizioni, che indica per ogni stato presente Q lo stato prossimo Q* verso cui il contatore deve evolvere all’arrivo del segnale di clock.Si noti: il progetto logico dei contatori viene effettuato basandosi sull’uso di bistabili master-slave (faremo qui l’ipotesi che commutino sul fronte di discesa del clock).

20072007--0808 -- 77 --

Contatori sincroni: Contatori sincroni: Contatore Binario Contatore Binario NaturaleNaturale

Tabella delle transizioni per M= 21

Tabella delle transizioni per M= 22

Tabella delle transizioni per M= 23

01

10

Q*Q

0011

1110

1001

0100

Q*Q

000111

111110

110101

101100

100011

011010

010001

001000

Q*Q

20072007--0808 -- 88 --

Contatori sincroni: Contatori sincroni: Contatore Binario Contatore Binario NaturaleNaturale

Tabella delle eccitazioni per M= 21

11 0

10 1

TQ Q*

Si considera dapprima un progetto basato sull’uso del Bistabile di tipo T; la tabella delle eccitazioni di tale bistabile prevede che il segnale di informazione T valga 1 perché si abbia la commutazione. Partendo dalla tabella delle transizioni si realizza quindi la tabella delle eccitazioni, in cui per ogni transizione stato presente-stato prossimo si indica che valore deve avere il segnale T ((per semplicità, si riportano solo le coppie stato presente-stato prossimo in corrispondenza di un evento!).

20072007--0808 -- 99 --

Contatori sincroni: Contatori sincroni: Contatore Contatore Binario NaturaleBinario Naturale

In modo analogo si realizzano le tabelle delle eccitazioni per M=22 e per M= 23

1 11 1 0 0

0 11 0 1 1

1 10 1 1 0

0 10 0 0 1

T1 T0Q1Q0 Q1*Q0*

1 1 1

0 0 1

0 1 1

0 0 1

1 1 1

0 0 1

0 1 1

0 0 1

T2 T1 T0

1 1 1 0 0 0

1 1 0 1 1 1

1 0 1 1 1 0

1 0 0 1 0 1

0 1 1 1 0 0

0 1 0 0 1 1

0 0 1 0 1 0

0 0 0 0 0 1

Q2Q1Q0 Q2*Q1*Q0*

20072007--0808 -- 1010 --

Contatori sincroni: Contatori sincroni: Contatore Contatore Binario NaturaleBinario Naturale

Per semplicità, si può costruire la tabella delle eccitazioni introducendo solo – nella colonna di sinistra –la sequenza degli stati presenti, dato che per ognuno lo stato prossimo è quello immediatamente successivo!Appare chiaro a questo punto come si costruisce la tabella delle eccitazioni per un contatore binario naturale generico che si voglia progettare usando bistabili di tipo T:

20072007--0808 -- 1111 --

Contatori sincroni: Contatori sincroni: Contatore Binario Contatore Binario NaturaleNaturale

L’analisi delle tabelle delle eccitazioni evidenzia la seguente regolarità (M=24):

Q3Q2Q1Q0 T3T2T1T00 0 0 0 0 0 0 10 0 0 1 0 0 1 10 0 1 0 0 0 0 10 0 1 1 0 1 1 10 1 0 0 0 0 0 10 1 0 1 0 0 1 10 1 1 0 0 0 0 10 1 1 1 1 1 1 11 0 0 0 0 0 0 11 0 0 1 0 0 1 11 0 1 0 0 0 0 11 0 1 1 0 1 1 11 1 0 0 0 0 0 11 1 0 1 0 0 1 11 1 1 0 0 0 0 11 1 1 1 1 1 1 1

T0 ≡ 1 T2=Q1*Q0=Q1*T1

Q3Q2Q1Q0 T3T2T1T00 0 0 0 0 0 0 10 0 0 1 0 0 1 10 0 1 0 0 0 0 10 0 1 1 0 1 1 10 1 0 0 0 0 0 10 1 0 1 0 0 1 10 1 1 0 0 0 0 10 1 1 1 1 1 1 11 0 0 0 0 0 0 11 0 0 1 0 0 1 11 0 1 0 0 0 0 11 0 1 1 0 1 1 11 1 0 0 0 0 0 11 1 0 1 0 0 1 11 1 1 0 0 0 0 11 1 1 1 1 1 1 1

T1 = Q0

Q3Q2Q1Q0 T3T2T1T00 0 0 0 0 0 0 10 0 0 1 0 0 1 10 0 1 0 0 0 0 10 0 1 1 0 1 1 10 1 0 0 0 0 0 10 1 0 1 0 0 1 10 1 1 0 0 0 0 10 1 1 1 1 1 1 11 0 0 0 0 0 0 11 0 0 1 0 0 1 11 0 1 0 0 0 0 11 0 1 1 0 1 1 11 1 0 0 0 0 0 11 1 0 1 0 0 1 11 1 1 0 0 0 0 11 1 1 1 1 1 1 1

T3=Q2*Q1*Q0=Q2*T2

Q3Q2Q1Q0 T3T2T1T00 0 0 0 0 0 0 10 0 0 1 0 0 1 10 0 1 0 0 0 0 10 0 1 1 0 1 1 10 1 0 0 0 0 0 10 1 0 1 0 0 1 10 1 1 0 0 0 0 10 1 1 1 1 1 1 11 0 0 0 0 0 0 11 0 0 1 0 0 1 11 0 1 0 0 0 0 11 0 1 1 0 1 1 11 1 0 0 0 0 0 11 1 0 1 0 0 1 11 1 1 0 0 0 0 11 1 1 1 1 1 1 1

20072007--0808 -- 1212 --

Contatori sincroni: Contatori sincroni: Contatore Binario Contatore Binario NaturaleNaturale

Una volta creata la tabella delle eccitazioni, si tratta di sintetizzare le funzioni di eccitazione, cioè le funzioni da applicare agli ingressi di informazione di ogni singolo bistabile per ottenere le commutazioni volute. Gli ingressi di tali funzioni sono costituiti dagli stati presenti dei bistabili: se il modulo è Mk, si dovranno dunque sintetizzare k funzioni Ti(Qk-1,…,Q0)Sono possibili due implementazioni per le funzioni di eccitazione-Nella prima, si sintetizzano come d’abitudine le diverse funzioni di eccitazione: si ottiene T0=1; T1=Q0; Tn=Qn-1*Qn-2*Qn-3...*Q0

• Soluzione detta “Contatore parallelo” – gli ingressi dei vari bistabili vengono generati in parallelo partendo dagli stati dei bistabili stesi;

• Schema molto semplice e regolare.• Basso ritardo di propagazione (frequenza di funzionamento elevata - si

riduce all’aumentare delle dimensioni del contatore a causa dell’aumento del numero degli ingressi alle porte AND).

• Relativa mancanza di regolarità della struttura.

20072007--0808 -- 1313 --

Contatori sincroni: Contatori sincroni: Contatore Binario Contatore Binario NaturaleNaturale

Seconda soluzione: osservando le funzioni derivate nella prima soluzione, si osserva che – a partire dal secondo bistabile meno significativo in avanti – la funzione di eccitazione di ogni bistabile i-esimo si ottiene anche come AND fra la funzione di eccitazione del bistabile (i-1)-esimo e lo stato di tale bistabile: è T0=1; T1=Q0; Ti=Qi-1*Ti-1 ;…; Tn=Qn-1*Tn-1

• Soluzione detta “Contatore serie”• Tutti gli stadi, ad esclusione dei primi due, risultano perfettamente identici.• La regolarità della struttura è “pagata” con un maggior ritardo di

propagazione (limita la frequenza di funzionamento).• Nota: la frequenza di funzionamento si riduce linearmente con la dimensione

del contatore poiché Ti diventa stabile solo dopo che lo è diventato Ti-1.

In generale, la regolarità deriva dal ciclo di conteggio: cambiando tipo di bistabile (es: FFD) le funzioni di eccitazione cambiano, ma la regolarità resta.

20072007--0808 -- 1414 --

Contatori sincroni: Contatori sincroni: Contatore Binario NaturaleContatore Binario Naturale

Contatore binario (modulo 2n) serie:

Contatore binario (modulo 2n) parallelo:

FF_T0 FF_T1 FF_T2 FF_Tn-1

Ck

1

T0 Q0 T1 Q1 T2 Q2 Tn-1 Qn-1

Q0 Q1 Q2

FF_T0 FF_T1 FF_T2 FF_Tn-1

Ck

1

T0 Q0 T1 Q1 T2 Q2 Tn-1 Qn-1

Q0 Q1 Q2

20072007--0808 -- 1515 --

Contatori sincroni: Contatori sincroni: Contatore Binario Contatore Binario Naturale****Naturale****

Contatore binario (modulo 2n) – Modulo: 2n; Codice: A numero minimo bit; Codifica: Binaria Naturale – Bistabile utilizzato: D

Tabella delle eccitazioni per M= 21

Q0 D00 11 0

Q1Q0 D1D00 0 0 10 1 1 01 0 1 11 1 0 0

Tabella delle eccitazioni per M= 22

Tabella delle eccitazioni per M= 23

Q2Q1Q0 D2D1D00 0 0 0 0 10 0 1 0 1 00 1 0 0 1 10 1 1 1 0 01 0 0 1 0 11 0 1 1 1 01 1 0 1 1 11 1 1 0 0 0

20072007--0808 -- 1616 --

Contatori sincroni: Contatori sincroni: Contatore Binario NaturaleContatore Binario Naturale

L’analisi delle tabelle delle eccitazioni evidenzia la seguente regolarità (M=24):

D0=Q0⊕1=Q0’ D2= Q2⊕(Q1*Q0)

Q3Q2Q1Q0 D3D2D1D00 0 0 0 0 0 0 10 0 0 1 0 0 1 00 0 1 0 0 0 1 10 0 1 1 0 1 0 00 1 0 0 0 1 0 10 1 0 1 0 1 1 00 1 1 0 0 1 1 10 1 1 1 1 0 0 01 0 0 0 1 0 0 11 0 0 1 1 0 1 01 0 1 0 1 0 1 11 0 1 1 1 1 0 01 1 0 0 1 1 0 11 1 0 1 1 1 1 01 1 1 0 1 1 1 11 1 1 1 0 0 0 0

D1=Q1⊕Q0

Q3Q2Q1Q0 D3D2D1D00 0 0 0 0 0 0 10 0 0 1 0 0 1 00 0 1 0 0 0 1 10 0 1 1 0 1 0 00 1 0 0 0 1 0 10 1 0 1 0 1 1 00 1 1 0 0 1 1 10 1 1 1 1 0 0 01 0 0 0 1 0 0 11 0 0 1 1 0 1 01 0 1 0 1 0 1 11 0 1 1 1 1 0 01 1 0 0 1 1 0 11 1 0 1 1 1 1 01 1 1 0 1 1 1 11 1 1 1 0 0 0 0

Q3Q2Q1Q0 D3D2D1D00 0 0 0 0 0 0 10 0 0 1 0 0 1 00 0 1 0 0 0 1 10 0 1 1 0 1 0 00 1 0 0 0 1 0 10 1 0 1 0 1 1 00 1 1 0 0 1 1 10 1 1 1 1 0 0 01 0 0 0 1 0 0 11 0 0 1 1 0 1 01 0 1 0 1 0 1 11 0 1 1 1 1 0 01 1 0 0 1 1 0 11 1 0 1 1 1 1 01 1 1 0 1 1 1 11 1 1 1 0 0 0 0

Q3Q2Q1Q0 D3D2D1D00 0 0 0 0 0 0 10 0 0 1 0 0 1 00 0 1 0 0 0 1 10 0 1 1 0 1 0 00 1 0 0 0 1 0 10 1 0 1 0 1 1 00 1 1 0 0 1 1 10 1 1 1 1 0 0 01 0 0 0 1 0 0 11 0 0 1 1 0 1 01 0 1 0 1 0 1 11 0 1 1 1 1 0 01 1 0 0 1 1 0 11 1 0 1 1 1 1 01 1 1 0 1 1 1 11 1 1 1 0 0 0 0

D0=Q0⊕1=Q0’ D2= Q2⊕(Q1*Q0)= Q2⊕(Q1*K0)D3=Q3⊕(Q2*Q1*Q0)D3=Q3⊕(Q2*K1)D1=Q1⊕Q0

ParalleloSerie

20072007--0808 -- 1717 --

Contatori sincroni: Contatori sincroni: codici e moduli libericodici e moduli liberi

Due casi diversi:– Progetto di contatori con modulo libero (2n o diverso da 2n),

codice a numero non minimo bit e codifica non binaria naturale• Struttura regolare.

– Contatori ad anello (codice one-hot)– Contatore ad anello incrociato

• A struttura non regolare. – Si applica una metodologia di progetto semplificata rispetto a quella

generale per le reti sequenziali

– Progetto di contatori con modulo diverso da 2n, codice a numero minimo bit e codifica binaria naturale

• A struttura non regolare.– Si applica una metodologia di progetto semplificata rispetto a quella

generale per le reti sequenziali;

20072007--0808 -- 1818 --

Contatori sincroni: Contatori sincroni: codici e moduli libericodici e moduli liberi

Contatore “ad anello” – Modulo: n; Codice: One hot; Codifica: 2k

– Bistabile utilizzato: D

– Codice one-hot:• In ogni codifica valida uno e un solo bit assume valore 1, tutti gli

altri valgono 0; • Per codificare n informazioni diverse occorrono n bit

– il codice non è a numero minimo di bit. • Esempio: i numeri da 0 a 3 sono codificati come:

– 0 = 0001 (20)– 1 = 0010 (21)– 2 = 0100 (22)– 3 = 1000 (23)– esiste una corrispondenza 1-a-1 fra l’entità codificata e la posizione

dell’unico 1 nella codifica.

20072007--0808 -- 1919 --

Contatori sincroni: Contatori sincroni: codici e moduli libericodici e moduli liberi

Contatore “ad anello” (ring counter) modulo n:– È un registro a scorrimento con riporto tra stadio iniziale e finale

– Il valore del FFD0 viene posto a 1 prima dell’inizio del conteggio; i rimanenti FFD vengono posti a 0.

FF_D0 FF_D1 FF_D2 FF_Dn-1

Ck

D0 Q0 D1 Q1 D2 Q2 Dn-1 Qn-1

Q0 Q1 Q2 Qn-1

Pre-Set

Ck

Pre-set

Q0Q1Q2

t0 t1 t2 ...tn-1 tn

20072007--0808 -- 2020 --

Contatori sincroni: Contatori sincroni: codici e moduli libericodici e moduli liberi

Il contatore “ad anello” ha una struttura ad alto costo ma molto semplice, compatta e veloce

– il numero di bistabili è molto più elevato del minimo e cresce linearmente.

Viene utilizzato, ad esempio, in applicazioni nelle quali si deve abilitare uno e un solo sottosistema; il contatore svolge il ruolo di unità di controllo.

– Lo stato di ogni bistabile del contatore costituisce immediatamente il segnale di controllo e non occorre alcuna rete di transcodifica.

– Se gli stati del contatore sono n, le linee di segnale che si inviano ai sottosistemi controllati sono ancora n.

• Nota: l’uso di un contatore con un codice a numero minimo bit – es., binario naturale – richiederebbe una rete di transcodifica che per ogni stato del contatore generasse un valore attivo su una sola delle n linee di segnale in uscita (rete combinatoria con k = ⎡log n⎤ ingressi e n uscite); la rete di transcodifica, al crescere di n, avrebbe costi crescenti e introdurrebbe crescenti ritardi di propagazione

20072007--0808 -- 2121 --

Contatori sincroni: Contatori sincroni: codici e moduli libericodici e moduli liberi

Contatore “ad anello incrociato” – Modulo: 2*n (nota: sempre pari); – Codice e Codifica (esempio):

– Bistabile utilizzato: D– Per codificare 2*n informazioni diverse occorrono n bit

• Il codice non è a numero minimo di bit.– Svantaggi principali: modulo sempre pari, codice e codifica senza

particolare campo di applicabilità– Vantaggio principale: distanza di Hamming unitaria, prestazioni elevate,

meno elementi di memoria rispetto al contatore ad anello

Q2Q1Q0 Q2*Q1*Q0*0 0 0 0 0 0 11 0 0 1 0 1 12 0 1 1 1 1 13 1 1 1 1 1 04 1 1 0 1 0 05 1 0 0 0 0 0

Q3Q2Q1Q0 Q3*Q2*Q1*Q0*0 0 0 0 0 0 0 0 11 0 0 0 1 0 0 1 12 0 0 1 1 0 1 1 13 0 1 1 1 1 1 1 14 1 1 1 1 1 1 1 05 1 1 1 0 1 1 0 06 1 1 0 0 1 0 0 07 1 0 0 0 0 0 0 0

Q1Q0 Q1*Q0*0 0 0 0 11 0 1 1 12 1 1 1 03 1 0 0 0

20072007--0808 -- 2222 --

Contatori sincroni: Contatori sincroni: codici e moduli libericodici e moduli liberi

Contatore “ad anello incrociato” modulo 2*n:

– Il valore del FFD0 viene inizializzato a 1 (quindi Q’0 vale 0) prima

dell’inizio del conteggio; i rimanenti FFD vengono posti a 0.

FF_D0 FF_D1 FF_D2 FF_Dn-1

Ck

D0

Q’0D1 Q1 D2 Q2 Dn-1 Qn-1

Q0 Q1 Q2 Qn-1

t0 t1 t2 t(2*n)

Ck

Q’0

Q1

Q2

Qn-1...t(2*n)-1

Pre-set

20072007--0808 -- 2323 --

Contatori sincroni: Contatori sincroni: codici e moduli libericodici e moduli liberi

Contatore modulo diverso da 2n: Esempio1.– Modulo: 6; Codice: A numero minimo bit; Codifica: Binaria

Naturale – Bistabile utilizzato: T

Tabella delle transizioni e delle eccitazioni per M= 6

Q2Q1Q0 T2T1T00 0 0 0 0 10 0 1 0 1 10 1 0 0 0 10 1 1 1 1 11 0 0 0 0 11 0 1 1 0 1

T2=Q1*Q0 + Q2*Q0T1=Q2’*Q0T0=1

Nota: le equazioni derivano dalla sintesi delle tre funzioni combinatorie T0, T1 e T2

Q2Q1Q0 Q2*Q1*Q0*0 0 0 0 0 10 0 1 0 1 00 1 0 0 1 10 1 1 1 0 01 0 0 1 0 11 0 1 0 0 0

20072007--0808 -- 2424 --

Contatori sincroni: Contatori sincroni: codici e moduli libericodici e moduli liberi

Contatore modulo diverso da 2n: Esempio2.– Modulo: 10; Codice: A numero minimo bit; Codifica: Binaria Naturale

(Contatore BCD o Decadico)– Bistabile utilizzato: T

Tabella delle transizioni e delle eccitazioni per M= 10Q3Q2Q1Q0 T3T2T1T00 0 0 0 0 0 0 10 0 0 1 0 0 1 10 0 1 0 0 0 0 10 0 1 1 0 1 1 10 1 0 0 0 0 0 10 1 0 1 0 0 1 10 1 1 0 0 0 0 10 1 1 1 1 1 1 11 0 0 0 0 0 0 11 0 0 1 1 0 0 1

T3=Q3*Q0+Q2*Q1*Q0T2=Q1*Q0T1=Q3’*Q0T0=1

Nota: In modo analogo si potrebbe ottenere la realizzazione mediante FFD.D0=Q0’

D1=Q3’*Q1’*Q0+Q3’*Q1*Q0’

D2=Q3’*Q2’*Q1*Q0+Q2*Q0’+Q2*Q1’

D3=Q3*Q1’+Q2*Q1*Q0

Nota: In modo analogo si potrebbe ottenere la realizzazione mediante FFD.D0=Q0’

D1=Q3’*Q1’*Q0+Q3’*Q1*Q0’

D2=Q3’*Q2’*Q1*Q0+Q2*Q0’+Q2*Q1’

D3=Q3*Q1’+Q2*Q1*Q0

Q3Q2Q1Q0 Q3*Q2*Q1*Q0*0 0 0 0 0 0 0 10 0 0 1 0 0 1 00 0 1 0 0 0 1 10 0 1 1 0 1 0 00 1 0 0 0 1 0 10 1 0 1 0 1 1 00 1 1 0 0 1 1 10 1 1 1 1 0 0 01 0 0 0 1 0 0 11 0 0 1 0 0 0 0

20072007--0808 -- 2525 --

Contatori sincroni: Contatori sincroni: Composizione di contatoriComposizione di contatori

É possibile realizzare contatori per moduli elevati partendo da contatori più semplici

– Esempio: realizzare un contatore a k cifre decimali utilizzando K blocchi del contatore decadico (Mod-10 ([0..9]));

Ogni sotto-contatore genera un segnale di overflow (carry) che, quando raggiunge valore 1, consente al clock di attivare il sotto-contatore collegato ad esso in cascata.La condizione di overflow è quella indicata dalla ultima configurazione di stato presente prodotta dal contatore a valle.

– Esempio: nel contatore BCD, la condizione di traboccamento è 1001 che corrisponde a f(Q3,Q2,Q1,Q0)=Q3*Q2’*Q1’*Q0

Il modulo del contatore complesso è il prodotto dei moduli.– Esempio: Due contatori Mod-2 e Mod-5 possono produrre un contatore

decadico.

20072007--0808 -- 2626 --

Contatori sincroni: Contatori sincroni: Composizione di contatoriComposizione di contatori

Esempio: contatore BCD a 3 Cifre (Mod-1000)

Esempio: contatore Mod-12 mediante composizione di un contatore Mod-2 e un contatore Mod-6 (la versione a destra è più costosa e lenta).

ContatoreBCD

Q3Q2Q1Q0

ContatoreBCD

Q3Q2Q1Q0

ContatoreBCD

Q3Q2Q1Q0

Ck

ContatoreMod-2

Q0

ContatoreMod-6

Q2Q1Q0

Ck

ContatoreMod-6

Q2Q1Q0

Ck

ContatoreMod-2

Q0