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/11 15:37] – [3 Contatori sincroni] adminsezione_5b [2019/03/08 09:41] – [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 -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//)
  
  
Linea 63: Linea 64:
  
 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: 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 `Q_0` che contiene il LSB deve commutare a ogni fronte del clock +  * il FF con `Q_0`che contiene il LSB, commuta ad ogni fronte del clock 
-  * il FF successivo, `Q_1`, commuta quando `Q_0` vale 1 +  * il FF successivo, con `Q_1`, commuta quando `Q_0` vale 1 
-  * quello successivo ancora, `Q_2` quando `Q_0` e `Q_1` valgono 1 +  * quello successivo ancora, con `Q_2`quando `Q_0` e `Q_1` valgono 1 
-  * e così via +  * ... 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 dallo stesso segnale di clock e pilotati opportunamente, cioè+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
-  * l'ingresso T del il FF del LSB - `Q_0` - collegato Vcc +  * 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