Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09...

43
02/25/12 Cibernetico elettronico 1 Logica sequenziale I dispositivi logici si suddividono in due famiglie principali: Logica combinatoriale L’uscita all’istante t n dipende unicamente dallo stato degli ingressi sempre al tempo t n , (trascuriamo i ritardi interni) Porte logiche, decoders, multiplexers, ALU Logica sequenziale L’uscita all’istante t n dipende sia dallo stato degli ingressi al tempo t n , sia dallo stato degli ingressi ad istanti precedenti (t n-1,n-2,. ,ecc.) Ha quindi una memoria che viene chiamata STATO. Latch, flip-flops, macchine a stati, contatori, shift registers

Transcript of Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09...

Page 1: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/12 Cibernetico elettronico 1

Logica sequenzialeI dispositivi logici si suddividono in due famiglie principali:

Logica combinatoriale L’uscita all’istante tn dipende unicamente dallo stato degli ingressi

sempre al tempo tn, (trascuriamo i ritardi interni)‏ Porte logiche, decoders, multiplexers, ALU

Logica sequenziale L’uscita all’istante tn dipende sia dallo stato degli ingressi al tempo

tn, sia dallo stato degli ingressi ad istanti precedenti (tn-1,n-2,.,ecc.) Ha quindi una memoria che viene chiamata STATO. Latch, flip-flops, macchine a stati, contatori, shift registers

Page 2: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 2

Flip-flop & Latches Logica combinatoriale con “feed-back”

Uscita riportata all’ingresso Latch è una memoria ad 1 bit che cambia

stato a seconda dell’ingresso Flip-flop è un latch dotato di un ingresso di

clock (segnale di controllo)‏ Le uscite commutano solo sui fronti (salita e/o

discesa) del clock

Page 3: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 3

Definizioni (1)‏ Stato: è un insieme di variabili (variabili di stato per l’appunto) che

rappresentano la memoria di quello che è successo fino ad ora Conta-persone: lo stato è il numero di persone passate fino adesso,

ogni volta che passa una persona il numero viene incrementato di uno Logica sequenziale digitale

Le variabili di stato sono binarie Un circuito con n variabili di stato ha 2n stati possibili

Macchina a stati finiti (Finite State Machine)‏ I cambiamenti di stato sono solitamente sincronizzati da un clock

Page 4: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 4

CLOCK (1)‏ Clock: fornisce la marca temporale che scandisce i

cambiamenti di stato del circuito. Il segnale di clock è active high se lo stato cambia sui fronti

di salita active low se lo stato cambia sui fronti di discesa.

Periodo del Clock: è il tempo che trascorre tra due transizioni dello stesso tipo

Frequenza del Clock: è il numero di volte che questo accade per secondo

Duty cycle è la percentuale di tempo, durante un periodo, in cui il clock è attivo.

Page 5: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 5

CLOCK (2)‏ ACTIVE

HIGH

ACTIVE LOW

Periodo

th th

Duty cicle = th (tL) / Periodo

tL tL

Frequenza = 1/Periodo

Page 6: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 6

Elemento bistabile Memoria ad un bit L’elemento più semplice: E’ bistabile in quanto ha due stati stabili:

Stato 1: Q alto, Vin1 basso, Vin2 alto Stato 2: Q basso, Vin1 alto, Vin2 basso

Vout1

Vin1

Vin2Vout2

Q

/Q

Page 7: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 7

Bestiario dei latch & flip-flop Latch

S-R Latch /S-/R Latch S-R Latch con Enable D Latch

Flip-flops Edge-Triggered D Flip-Flop Master/Slave S-R Flip-Flop Master/Slave J-K Flip-Flop Edge-Triggered J-K Flip-Flop T Flip-Flop

Page 8: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 8

S-R Latch Caveat: Propagazione (cfr. con porta

singola)‏ Durata minima degli impulsi

S

R

Q

Q

Simbolo

Q

/Q

Set

Reset

S

RQ

/Q

SchemaS R Qn /Qn

0

0

1

1

0

1

0

1

Qn-1

0

1

0

/Qn-1

1

0

0

Tabella della verità

Hold

Reset

Set

ILLEGALE

Page 9: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 9

S-R Latch con enable

Si attiva solo con enable alto S=R=1 illegale

Q

/QS

R

C

S

R

Q

Q /QC S Qn /Qn

0

0

1

1

X

R

0

1

0

1

X

Qn-1

0

1

0

Qn-1

/Qn-1

1

0

0

/Qn-1

C

1

1

1

1

0

Simbolo

Schema

Page 10: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 10

J-K Latch

Q

/QS

R

C

J

K

J Qn /Qn

0

0

1

1

X

K

0

1

0

1

X

Qn-1

0

1

/Qn-1

Qn-1

/Qn-1

1

0

Qn-1

/Qn-1

C

1

1

1

1

0Schema (oscilla)‏

J

K

Q

QC

Simbolo

Si attiva solo con enable alto Rimane il problema dell’instabilità J=K=1 lecito

Q

/Q

C

J

K

/Q

Q

Page 11: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 11

Preset, Clear I flip-flops hanno due ingressi asincroni.

Preset e Reset (Clear). Servono ad impostare direttamente le uscite

dei latch S-R. Operano indipendentemente dall’enable

(clock). Quando disegnate un circuito:

Usate questi ingressi SOLO per inizializzare la logica. Mai per realizzare funzioni logiche.

Page 12: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 12

Latch D-type Immagazzina un dato di un bit (NON set e reset)‏

Quando Enable è alto il latch è trasparente

Risolve il problema di SET=RESET=1

D

C

Q

Q

Simbolo

D

Q

/QS

C

R

Schema

C D Qn /Qn

1

1

0

0

1

X

0

1

Qn-1

Tabella della verità

Page 13: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 13

Architettura Master-Slave Risolve i problemi di “race around” legati ai

tempi di propagazione finiti delle porte logiche.

Due latch in cascata: il primo pilotato direttamente dal clock il secondo dal clock invertito

Quando è attivo il primo stadio, non è attivo il secondo (e viceversa).

La commutazione delle uscite avviene sul fronte di salita (discesa) del clock.

Page 14: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 14

D-type flip-flop

Transizioni sul fronte di discesa del clock

Se aggiungo un inverter al clock le transizioni avvengono sul fronte di salita

D

>CLK

Q

Q

Simbolo

D

C

Q D

C

Q

Q

D

CLK

Q

/Q

D CLK Qn /Qn

0

1

X

X

0

1

0

1

Qn-1

Qn-1

1

0

/Qn-1

/Qn-1

Schema

Tabella della verità

Page 15: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 15

S-R flip-flop S C Qn /Qn

X

0

0

1

1

Qn-1

Qn-1

0

1

Illegale?

/Qn-1

/Qn-1

1

0

Illegale?

R

X

0

1

0

1

0

S

R

Q

QC

S

C

Q

/Q

S

R

Q

QC

R

S

R

Q

QC

Page 16: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 16

J-K flip-flop

Risolve il problema S=R=1 Adesso funziona il toggle !

J C Qn /Qn

X

0

0

1

1

Qn-1

Qn-1

0

1

/Qn-1

/Qn-1

/Qn-1

1

0

Qn-1

K

X

0

1

0

1

0J

K

Q

QC

C

Q

/Q

S

R

Q

QC

S

R

Q

QC

J

K

/Q

Q

Page 17: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 17

J-K con un D-typeC Qn /QnJ

X

X

0

0

1

1

Qn-1

Qn-1

Qn-1

0

1

/Qn-1

/Qn-1

/Qn-1

/Qn-1

1

0

Qn-1

K

X

X

0

1

0

1

0

1

J

K

Q

Q>CLK

QD

>CLK

Q

Q /QCLK

J

K

CLT

Q

/Q

Page 18: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 18

T (toggle) flip-flop T=1 toggle Qn = /Qn-1

T=0 Qn = Qn-1

D

>CLK

Q

Q

J

K

Q

Q>CLK

TQ

/Q

Senza T Con T

Divisore di frequenza per due

Page 19: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 19

Contatori

Un insieme di n flip-flop. 2n stati possibili Possono contare in su o in giù

Tipologia: Ripple counter Syncronous counter

Page 20: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 20

Contatore ripple (1)‏ Implementazione molto semplice Il clock viene dato in ingresso al primo TFF Le uscite Q dei flip-flop sono i bit di uscita LSB a sinistra (TFF con il clock)‏

Q

>CLK

TTFF

PRN

CLN

Q

>CLK

TTFF

PRN

CLN

1 1Q

>CLK

TTFF

PRN

CLN

Q

>CLK

TTFF

PRN

CLN

1 1

Q0 (LSB)‏ Q3Q1 Q2

clock

Page 21: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 21

Contatore ripple (2)‏ Il contatore visto conta in giù.

Per farlo contare in su basta usare dei TFF che commutino sui fronti di discesa. Il nostro contatore a 4 bit può contare fino a 15 ma:

Tramite i preset si può “caricare” in maniera asincrona qualsiasi numero di partenza.

Si può quindi farlo contare per qualsiasi numero da 1 a 15. Abbiamo bisogno dell’ausilio di un minimo di logica combinatoriale:

Un circuito che riconosca quando il contatore è arrivato a 16 e generi un segnale logico

Un circuito che imposti il complemento a 15 del numero da contare es. devo contare fino a 9 devo far partire il contatore dal numero 6 Il contatore si fermerà a 15 dopo aver contato quindi 9 colpi

Realizzo così un contatore programmabile. Attenzione anche agli ingressi di clear, sono necessari per caricare gli zeri I preset caricano solo 1 NON 0.

Page 22: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 22

Contatore programmabile Reload !

Il caricamento viene fatto sia alla partenza, sia ogni volta che il contatore raggiunge il conteggio di F (1111)‏

Page 23: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 23

Contatore ripple (3)‏ Svantaggio principale:

Ritardo di propagazione del segnale: � tpr di circa 10 ns a flip-flop n bit ritardo totale = n� tpr

La criticità aumenta con il numero di bit e con la frequenza di clock.

Il conteggio finale rimane affidabile ! Cioè se interrompete il clock e aspettate un tempo

sufficiente (> n� tpr ), il valore letto sarà il numero effettivo di colpi di clock ricevuti.

Non sono più affidabili i conteggi intermedi !!! Ad esempio nel nostro circuito precedente si possono

avere dei “reload” spuri generati in mezzo alla sequenza di conteggio.

Page 24: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 24

Contatore sincrono Sfruttiamo a nostro vantaggio il ritardo di

propagazione. I flip-flop sono tutti pilotati in parallelo dallo stesso

clock. Uso di logica combinatoriale per stabilire se il flip-flop

debba caricare 1 o 0.

clock

Q

>CLK

TTFF

PRN

CLN

Q

>CLK

TTFF

PRN

CLN

? ?Q

>CLK

TTFF

PRN

CLN

?

Q0 (LSB)‏ Q1 Q2

clock clock

Page 25: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 25

Contatore sincrono

Importante l’ingresso T T=1 Qn = /Qn-1 T=0 Qn = Qn-1

Per Q0 connettere T=1, ma per Q1 ?

Q

>CLK

TTFF

PRN

CLN

1Q0 (LSB)‏

clock clock

clock

Q0

Q1

Q1

Q2

Page 26: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 26

Quindi come connettiamo T1 ? Connettiamo l’ingresso T a Q0 !!! Sfruttiamo il ritardo di propagazione nei flip-flop

Sul primo fronte di salita del clock Q0 diventa 1, MA solo dopo un tempo tpr (tipicamente qualche ns)‏

Quindi il secondo flip-flop, sul primo fronte di salita del clock, in ingresso ha ancora zero e quindi la sua uscita Q1 rimarrà nello stato precedente.

Sul secodo fronte di salita del clock Q0 diventa 0, MA solo dopo un tempo tpr (tipicamente qualche ns)‏

Quindi il secondo flip-flop, sul secondo fronte di salita del clock, in ingresso ha ancora uno e quindi la sua uscita Q1 si ribalta rispetto allo stato precedente.

Q

>CLK

TTFF

PRN

CLN

Q1

clock

?Q

>CLK

TTFF

PRN

CLN

Q1

clock

Q0

Page 27: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 27

Come connettiamo T2 ? Q2 deve commutare nel momento in cui Q0=Q1 transiscono

da 1 a 0 Teniamo presente tpr !

Q

>CLK

TTFF

PRN

CLN

Q1

clock

Q0Q

>CLK

TTFF

PRN

CLN

Q2

clock

Q1 Q0

Page 28: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 28

Vale il solito principio: Qn deve commutare nel momento in cui Q0=Q1 ..... =Qn-1

transiscono da 1 a 0 Riporto seriale:

AND2 connessi in cascata

Riporto parallelo: AND3.....n

Come connettiamo Tn ?

Q1 Q0

Q2 T3

Q1 Q0

Qn-1

Tn

Page 29: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 29

Riporto seriale vs Riporto parallelo

Riporto seriale: semplicità costruttiva Ritardo totale scala con i bit del contatore tpr di un FF + tpr (di una porta AND !!!!) * n

Riporto parallelo: Diventa complicato quando i bit sono tanti Ritardo totale fisso!! tpr di un FF + tpr (di una porta AND !!!!) e BASTA !

Page 30: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 30

Contatore Programmabile Necessità di contare per un numero arbitrario

di colpi di clock: Combinazione sulle uscite → Counter Enable/Reset Combinazione sugli ingressi → Data Load Si usa sempre quest'ultima.

Tutti i contatori hanno un bus in ingresso per caricare un numero di “partenza” cioè da cui partire a contare:– Linea di Load (sincrona o asincrona)– Tecnica flessibile che permette di cambiare numero

di conteggi senza modificare l'hardware

Page 31: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 31

Shift registers Serializzatori e parallelizzatori (Ugh!)‏ Vediamo per primo un Parallelizer:

Ingresso data (seriale), ingresso clock Tipicamente usati i D-type flip-flop La parola di uscita è formata dalle singole uscite Q

dei flip-flop.Data in(seriale)‏

D

>CLK

Q D

>CLK

Q D

>CLK

Q D

>CLK

Q

Clock

Q0Q1Q2Q3

Page 32: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 32

RS232 (protocollo seriale)‏

Connessioni minime, 3 !!!

Tx,Rx,GND.

------------------- 9-Pin 25-Pin Carrier Detect 1 8 Recieve Data 2 3 Transmit Data 3 2 Data Terminal Ready 4 20 System Ground 5 7 Data Set Ready 6 6 Request to Send 7 4 Clear to Send 8 5 Ring Indicator 9 22

Page 33: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 33

RS232 (protocollo seriale)‏ Tra i due apparecchi collegati bisogna stabilire prima:

frequenza dei dati (baud rate) (9600, 56K)‏ parità (normalmente off)‏ stop bit (normalmente uno o due)‏

Parametri fissi e non negoziabili: bit vengono trasmessi a gruppi di 8 in inizio trasmissione viene inviato uno start bit a fine trasmissione vengono trasmessi il bit di parità e gli

stop bit Il clock viene generato dal ricevente appena riceve lo

start bit !

Page 34: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 34

RS232 (protocollo seriale)‏ Quando la linea di data va a zero (start bit)‏

Inizia la trasmissione dati Il ricevitore genera un clock interno che campiona la linea dati con

uno shift-register Se il protocollo prevede 1 start, 2 stop e no parity, il clock interno

dovrà fornire 11 colpi.

clock

data

start Q6 Q5 Q4 Q3 Q2 Q1 Q0 Q7 stopstop

0 0 1 0 1 1 0 0

Page 35: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 35

Shift registers Abbiamo visto un SIPO (Serial In – Parallel Out)‏ Ora vediamo un PISO (Parallel In – Serial Out)‏

La parola di n bit viene caricata (load) su n flip-flop dello shift-register.

Sotto l’azione del clock, l’uscita dell’ultimo flip-flop restituisce la parola caricata in modo seriale.

D

>CLK

Q D

>CLK

Q D

>CLK

Q D

>CLK

Q

Clock

Q0Q1Q2Q3

0

Data out(seriale)‏

D0

prn

D3

prn

D2

prn

D1

prn

Page 36: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 36

Ring counter Shift register con l’uscita connessa all’ingresso

Il “token” viene caricato sul primo flip-flop Ad ogni colpo di clock:

Il token passa da un flip-flop a quello successivo Quando arriva all’ultimo flip-flop, viene ricaricato sul flip-flop iniziale

Es. La sequenza di un ring counter a 4 bit: 1000 – 0100 – 0010 – 0001 – 1000 ecc. ecc.

D

>CLK

Q D

>CLK

Q D

>CLK

Q D

>CLK

Q

Clock

Q0Q1Q2Q3Token load

prn

Token out

Page 37: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 37

Circuito di debouncer ! Al momento della chiusura dell’interruttore si hanno

vari rimbalzi tra lel lamelle degli interruttori

+5V

/SW DSW

SPDT switch

74LS04

+5V

GND/SW

DSW

PUSH first contact

bounce

TTL hanno una resistenza di pull-up interna a +V

Page 38: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 38

Campionare gli ingressi Usare un clock “lento”

Periodo più lento della durata dei “RIMBALZI”

D

>CLK

Q

� t_clock > � t_bounce

+5V

GND/SW

PUSH Primo contatto

bounce

+5VSPDT switch

Clock(periodo tipico di 10ms)‏

Page 39: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 39

Differenziatore Riconosce i fronti di salita e di discesa

clock clock

Page 40: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 40

De-glitcher A volte, nonostante i nostri sforzi, può capitare di avere dei

“glitch” all’uscita del nostro circuito digitale. I “glitch” sono delle transizioni di brevissima durata, non volute e

non previste. Se la nostra logica è comunque tutta pilotata da un Master

clock, il seguente circuito può servire per rimuovere i glitch: Il D type FF usa come ingresso di clock il master clock

D

>CLK

Q

Clock

Segnale con un glitch Segnale “ripulito”

Page 41: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 41

Sincronizzatore Input asincroni:

Sono sempre presenti in un sistema digitale: Ingresso da tastiera, pulsanti, comparatori, ecc.

Normalmente sono molto più lenti del clock di sistema

Non è vitale sapere quando esattamente (al ns) è avvenuto l’evento

PER ESSERE USATI DEVONO ESSERE SINCRONIZZATI !

Page 42: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 42

Sincronizzatore singolo

Si usa sempre un D type flip-flop Clock di sistema (Master clock)‏

D

>CLK

QUscita sincronaIngresso asincrono

Clock di sistema

Circuito digitale sincrono

X X X

Clock

Ing. asinc.

Uscita sinc.

Qui NO ! Metastabile ..Per sfortuna il fronte di salitadell’ingresso asincrono coincidecon il fronte di salita del clock

Qui ha funzionato !

Page 43: Logica sequenziale - Gruppo1-2 INFN FIRENZEhep.fi.infn.it/CIBER/lezione-sequenziale.pdf · 02/25/09 Cibernetico elettronico 23 Contatore ripple (3) Svantaggio principale: Ritardo

02/25/09 Cibernetico elettronico 43

Sincronizzatore doppio Pagando un piccolo prezzo:

Aumento della latenza Raddoppiamo la catena:

L’eventuale metastabilità sarà terminata quando ricampioneremo il segnale

Prezzo pagato: Sono necessari due colpi di clock prima di avere un segnale in

uscita ! (Aumento della latenza)!

D

>CLK

Q Uscita sincrona(metastabile)‏

Ingresso asincrono

Clock di sistema

Circuito digitale sincrono

D

>CLK

Q

Clock di sistema

Uscita sincrona(pulita)‏