Strumenti Utente

Strumenti Sito


sezione_5b

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
Prossima revisioneEntrambe le parti successive la revisione
sezione_5b [2018/03/06 17:56] – [Contatori di modulo qualunque] adminsezione_5b [2020/04/21 07:16] – [2 Contatori asincroni] admin
Linea 12: Linea 12:
 ===== 2 Contatori asincroni ===== ===== 2 Contatori asincroni =====
  
-La figura 2 mostra un contatore asincrono in avanti modulo 8. E' realizzato con tre flip-flop JK collegati in modo da flip-flop toggle con l'ingresso T sempre alto. Il segnale `bar(RESET)` permette di azzerare il contatore applicando un livello basso di tensione agli ingressi asincroni //clear// (`bar(CL)` attivo basso) dei tre TFF. Osservando il diagramma temporale si comprende il funzionamento del contatore:+La figura 2 mostra un contatore asincrono in avanti modulo 8. E' realizzato con tre flip-flop JK collegati come flip-flop toggle con l'ingresso T sempre alto. Il segnale `bar(RESET)` permette di azzerare il contatore applicando un livello basso di tensione agli ingressi asincroni //clear// (`bar(CL)` attivo basso) dei tre TFF. Osservando il diagramma temporale si comprende il funzionamento del contatore:
   * il clock è applicato solo al primo FF che commuta ad ogni impulso (fronte di discesa)   * il clock è applicato solo al primo FF che commuta ad ogni impulso (fronte di discesa)
   * l'uscita Q<sub>0</sub> del primo contatore è usata come clock del secondo FF e così via per i FF successivi   * l'uscita Q<sub>0</sub> del primo contatore è usata come clock del secondo FF e così via per i FF successivi
Linea 18: Linea 18:
   * osservando le tre uscite - con Q<sub>0</sub> come bit meno significativo - si vede come la sequenza di combinazioni prodotta corrisponde al conteggio in binario da 000 a 111   * osservando le tre uscite - con Q<sub>0</sub> come bit meno significativo - si vede come la sequenza di combinazioni prodotta corrisponde al conteggio in binario da 000 a 111
  
-Nel caso in figura, con tre FF, si ottiene un contatore modulo 8; generalizzando con //n// FF si può realizzare un contatore di modulo `2^n -1`. Osserviamo inoltre che:+Nel caso in figura, con tre FF, si ottiene un contatore modulo 8; generalizzando con un numero //n// di flip-flop si può realizzare un contatore di modulo `2^n` (cioè che conta da 0 a `2^n -1`). Osserviamo inoltre che:
   * tutte le uscite hanno un duty-cycle del 50%   * tutte le uscite hanno un duty-cycle del 50%
   * è possibile ottenere un contatore anche con FF attivi sul fronte di salita collegando il clock alle uscite complementate (`bar Q`) dei FF precedenti   * è possibile ottenere un contatore anche con FF attivi sul fronte di salita collegando il clock alle uscite complementate (`bar Q`) dei FF precedenti
Linea 53: Linea 53:
   * lezione multimediale 5B.1 e 5B.2: contatori asincroni in avanti e all'indietro   * lezione multimediale 5B.1 e 5B.2: contatori asincroni in avanti e all'indietro
   * scheda di laboratorio 5B.1: analisi sperimentale di contatori elementari asincroni   * scheda di laboratorio 5B.1: analisi sperimentale di contatori elementari asincroni
 +  * esercizi svolti: 1 (contatore in avanti con flip-flop D), 2 e 3 (contatore avanti e indietro modulo 12), 6 (reset all'accensione con gruppo RC), 7 (contatore modulo 10 con ingressi //preset// invece che //clear//)
  
  
 +
 +===== 3 Contatori sincroni =====
 +
 +I contatori sincroni sono realizzati con flip-flop comandati da un unico stesso segnale di clock. Hanno prestazioni migliori di quelli asincroni, in particolare:
 +  * possono lavorare a frequenze più elevate
 +  * non producono combinazioni errate dovute ai tempi di propagazione (come avviene per i contatori asincroni dove ogni FF viene attivato dall'uscita del precedente)
 +
 +Per comprendere il funzionamento di un contatore sincrono conviene partire dalla tavola della verità (in figura 10 quella di un generico contatore modulo 16). Si nota che:
 +  * il FF con `Q_0`, che contiene il LSB, commuta ad ogni fronte del clock
 +  * il FF successivo, con `Q_1`, commuta quando `Q_0` vale 1
 +  * quello successivo ancora, con `Q_2`, quando `Q_0` e `Q_1` valgono 1
 +  * ... e così via 
 +
 +Per ottenere questo comportamento con un circuito logico si possono utilizzare dei flip-flop T (dei JK con gli ingressi J e K collegati insieme) attivati da un unico segnale di clock e pilotati con l'ingresso T:
 +  * sempre alto per il FF con uscita `Q_0`
 +  * collegato a `Q_0` per il FF con uscita `Q_1`
 +  * pilotato da una AND con `Q_0` e `Q_1` in ingresso, per il FF con uscita `Q_2`
 +  * ... e così via
 +
 +Il circuito risultante è quello mostrato in figura 10. Per realizzare contatori sincroni di modulo diverso si procede in maniera simile, utilizzando FF T e porte AND((per realizzare contatori all'indietro si utilizzerà l'uscita `bar Q` al posto di `Q`; [[http://www.elemania.altervista.org/digitale/immagini/contatore13.png|qui]] un'immagine che mostra un contatore modulo 10)). 
 +
 +Le figure 12 e 13 mostrano come le prestazioni dei contatori sincroni sono superiori a quelle degli asincroni:
 +  * nella prima figura si vede come un contatore asincrono che funziona correttamente a 1 kHz produce risultati errati a 10 MHz a causa del tempo di propagazione dei FF (il segnale in alto è il clock, gli altri i quattro bit da `Q_0` a `Q_3`)
 +  * alla stessa frequenza di 10 MHz un contatore sincrono continua a funzionare correttamente
  
 ===== Navigazione ===== ===== Navigazione =====
sezione_5b.txt · Ultima modifica: 2021/04/20 15:57 da admin