# Elettronica applicata/Circuiti sequenziali II

Elettronica applicata
Copertina Tutti i moduli · Sviluppo
    CopertinaElettronica applicata/Copertina
* Circuiti digitali
** Circuiti logiciElettronica applicata/Circuiti logici
** Circuiti sequenziali IElettronica applicata/Circuiti sequenziali I
** Circuiti sequenziali IIElettronica applicata/Circuiti sequenziali II
** Logiche programmabiliElettronica applicata/Logiche programmabili
** Comparatori di sogliaElettronica applicata/Comparatori di soglia
** Generatori di onda quadraElettronica applicata/Generatori di onda quadra
* Bus e interconnessioni
** InterconnessioniElettronica applicata/Interconnessioni
** Modelli a linea di trasmissioneElettronica applicata/Modelli a linea di trasmissione
** Pilotaggio di lineeElettronica applicata/Pilotaggio di linee
** Cicli di trasferimento baseElettronica applicata/Cicli di trasferimento base
** Protocolli di busElettronica applicata/Protocolli di bus
** Collegamenti serialiElettronica applicata/Collegamenti seriali
** Collegamenti seriali sincroniElettronica applicata/Collegamenti seriali sincroni
** Integrità di segnaleElettronica applicata/Integrità di segnale
* Sistemi di acquisizione dati
** Sistemi di conversione A/D e D/AElettronica applicata/Sistemi di conversione A/D e D/A
** Convertitori D/AElettronica applicata/Convertitori D/A
** Conversione A/DElettronica applicata/Conversione A/D
** Convertitori pipeline e differenzialiElettronica applicata/Convertitori pipeline e differenziali
** Condizionamento del segnaleElettronica applicata/Condizionamento del segnale
** FiltriElettronica applicata/Filtri
* Alimentatori e regolatori
** Sistemi di alimentazioneElettronica applicata/Sistemi di alimentazione
** Regolatori a commutazioneElettronica applicata/Regolatori a commutazione
Modifica il sommario

## Registri

I segnali numerici possono essere rappresentati e trasferiti in forma seriale o parallela:
* trasferimento seriale:
** vantaggio: una sola linea → minor consumo e costo;
** svantaggio: un bit per volta → più colpi di clock necessari per il trasferimento;
* trasferimento parallelo:
** vantaggio: più bit alla volta → meno colpi di clock necessari per il trasferimento;
** svantaggio: molte linee → maggior consumo e costo.

### Registro PIPO (parallelo)

* Struttura interna di un registro PIPO a comando sulla transizione
* Simbolo funzionale di un registro PIPO a comando sulla transizione
Il registro PIPO è in grado di memorizzare un ingresso parallelo su più bit ogniqualvolta viene attivato il segnale di clock/abilitazione; il valore memorizzato viene riportato alle uscite e viene mantenuto costante fino al successivo segnale di clock/abilitazione. Se presente, il segnale di clear permette di resettare a 0 tutti i bit memorizzati. Internamente, il registro PIPO contiene una serie di flip-flop latch D, ciascuno dei quali memorizza uno dei bit della parola in ingresso.

### Registro SISO (seriale)

* Struttura interna di un registro SISO
* Simbolo funzionale di un registro SISO
Il registro SISO è costituito da flip-flop a comando sulla transizione collegati in cascata che condividono lo stesso segnale di clock. A ogni fronte di salita del segnale di clock, il contenuto corrente viene scalato di una posizione: il flip-flop i-esimo passa il bit memorizzato al flip-flop i+1-esimo, quindi riceve il nuovo bit dal flip-flop i−1-esimo, facendo entrare all'estrema sinistra della catena il nuovo bit in ingresso e facendo uscire all'estrema destra l'ultimo bit in eccesso. Registri di questo tipo sono detti registri a scalamento (o shift-register).

## Convertitori
### Registro SIPO (seriale-parallelo)

* Struttura interna di un registro SIPO
* Simbolo funzionale di un registro SIPO
Nel registro SIPO vengono lette in parallelo le uscite di tutti i singoli flip-flop → è possibile convertire un dato sequenziale in un dato parallelo.

### Registro PISO (parallelo-seriale)

* Struttura interna di un registro PISO
* Simbolo funzionale di un registro PISO
Il registro PISO riceve in parallelo tutti i bit di ingresso, che poi vengono letti a uno a uno in modo seriale. Il segnale di clock innesca solo lo scalamento, mentre il caricamento in parallelo è comandato dal segnale PL.

## Contatori

In un contatore, il valore memorizzato all'interno viene incrementato a ogni segnale di clock. Un contatore modulo 2$^N$ (dove N è il numero di bit) ritorna al valore iniziale 0 al 2$^N$-esimo impulso (11...).

### Contatori asincroni

* Contatore asincrono modulo 4 costituito di flip-flop D
* Contatore asincrono modulo 4 costituito di flip-flop JK
I contatori asincroni sono costituiti da flip-flop a comando sulla transizione, collegati a catena (ripple) in modo che il segnale di clock di ogni flip-flop è pilotato dall'uscita del flip-flop precedente → il contatore è asincrono perché i flip-flop non sono pilotati dallo stesso segnale di clock.
Esistono due tipi di contatore asincrono:
* flip-flop D: il fronte di salita riporta in uscita il segnale D, che è sempre il complementare dell'uscita → a ogni fronte di salita il flip-flop inverte il proprio valore, e se la nuova uscita è a sua volta un fronte di salita fa commutare anche il flip-flop successivo → si ottiene una sequenza decrescente di numeri binari;
* flip-flop JK: gli ingressi J e K sono sempre a 1 e il clock di ogni flip-flop è negato, quindi a ogni fronte di discesa viene invertito il valore del flip-flop, e se la nuova uscita è a sua volta un fronte di discesa fa commutare anche il flip-flop successivo → si ottiene una sequenza crescente di numeri binari.
Si parla di divisione della frequenza di clock perché il primo flip-flop commuta a ogni impulso di clock, il secondo flip-flop commuta ogni due impulsi di clock, e così via.
Siccome ogni flip-flop ha un ritardo di commutazione, il ritardo complessivo è proporzionale al parallelismo del contatore (numero di flip-flop).

### Contatore sincrono

In un contatore sincrono tutti i flip-flop condividono lo stesso segnale di clock → tutte le uscite commutano con lo stesso ritardo (in sincronismo).
Il contatore funziona grazie a una serie di porte AND:
* il primo flip-flop commuta a ogni fronte di discesa del segnale di clock (perché gli ingressi J e K sono sempre a 1);
* il secondo flip-flop commuta a ogni fronte di discesa dell'uscita del primo flip-flop;
* il terzo flip-flop commuta quando avvengono in contemporanea il fronte di discesa dell'uscita del primo flip-flop e il fronte di discesa dell'uscita del secondo flip-flop;
* il quarto flip-flop commuta quando avvengono in contemporanea i fronti di discesa di tutti e tre i flip-flop precedenti;
    e così via.

#### Vincoli di temporizzazione

La frequenza massima di funzionamento è limitata dai tempi di propagazione $T_{p}$ del segnale attraverso i circuiti logici combinatori, dai tempi di setup $T_{SU}$ e di hold $T_{H}$ richiesti per il corretto funzionamento dei flip-flop, e dai tempi di propagazione $T_{\text{ckq}}$ del segnale attraverso i flip-flop stessi per generare le uscite.
Il terzo flip-flop deve aspettare un ritardo $T_{\text{AND}}$ dovuto alla propagazione del segnale attraverso la prima porta logica AND:
Il quarto flip-flop, oltre al ritardo $T_{\text{AND}}$ della seconda porta AND, deve anche aspettare il ritardo $T_{\text{AND}}$ della prima porta AND la cui uscita è l'ingresso della seconda porta logica AND:
Per evitare l'accumulo del ritardo lungo la catena di flip-flop, è possibile sostituire la struttura a riporto (ripple) con una struttura diretta (look ahead), cioè con una porta AND che non riceva più in ingresso l'uscita di un'altra porta AND:

## Macchina a stati finiti

Una macchina a stati finiti (FSM) è un circuito sequenziale che evolve di stato in stato a ogni colpo di clock. Lo stato futuro dipende sia dagli ingressi correnti, sia dallo stato precedente, che si trova memorizzato nei flip-flop. A ogin stato corrisponde una combinazione delle uscite. La sequenza degli stati è rappresentabile in un diagramma degli stati.