Circuiti di memorizzazione elementari: i Flip Flop Circuiti di memoria elementari: Flip Flop (o bistabili) • Il circuito sequenziale basilare é il Flip Flop, un circuito in grado di memorizzare un bit di informazione. Il Flip Flop prende anche il nome di bistabile, poiché può trovarsi in due stati stabili: lo stato in cui ha memorizzato un 1 e quello in cui ha memorizzato uno 0. FF SR con porte NAND S Q R Q 0,0 0,1 1,0 0,0 1,0 Q=0 Q=1 0,1 Set(t) 1 0 1 1 1 0 0 Reset(t) 1 1 1 0 0 Uscita Q(t) Q(t-1) (immutata) 1 0 non ammessa Effetto dell’impulso negativo di Set S 1 0 R 1 Q 1 Q 0 Notate che, al termine dell’impulso di set, Q rimane ad uno! Ma se Q(t) fosse stato 1? S 1 0 1 R Q Q 1 0 Q e Q sarebbero rimasti immutati!! Quindi: • Nel FF con porte nand, se in t Q=0,Q=1 allora un impulso negativo di Set porta Q(t+1) al valore 1 • Se invece in t Q=1 , Q=0 allora Q(t+1) resta al valore uno • Perciò: un impulso di set ha comunque l’effetto Q(t+1)=1 Analogamente: • Un impulso di Reset porta, o mantiene, Q(t+1) al valore 0. Quindi: R=0,S=1 Q= 0 R=0,S=1 R=1,S=0 R=1,S=0 Q=1 Vediamo ora le altre combinazioni S=1 R=1 1 0 1 1 0 0 1 1 1 1 1 Per S=R=1 lo stato del FF non cambia! 0 La combinazione S=R=0 (doppio impulso) genera uno stato non stabile Quando R e S tornano nella condizione di riposo (1,1) gli input degli AND diventano 11, e Q e Q di nuovo transitano entrambi a 0.. 0 1 0 1 1 1 In (t+1) sia Q che Q transitano a 1!! 0 1 FF con porte NOR Il comportamento è lo stesso, ma il FF cambia stato in corrispondenza degli impulsi positivi. Un doppio impulso SR crea uno stato instabile. S Q R Q SR 00 01 10 11 Q(t) Q(t-1) 1 0 np Diagrammi temporali e sincronizzazione • Per rappresentare un FF abbiamo a disposizione, come visto: lo schema circuitale (porte logiche con controreazione) il simbolo grafico l'automa la tabella degli stati. • Esiste anche un'altra modalità di analisi, che é il diagramma temporale. – Il diagramma temporale consente di rappresentare le commutazioni delle uscite di un FF, o di un circuito più complesso, in funzione dell'andamento temporale ingressi. Sistemi sincroni • I sistemi sequenziali possono operare in modo sincrono o asincrono. Nei sistemi asincroni i circuiti logici cambiano ogni volta che uno o più ingressi cambiano. Nei sistemi sincroni, l'istante esatto in cui una qualsiasi uscita può cambiare é determinato da un segnale di "cadenza" detto clock. Un clock é un treno di impulsi ad onda quadra. Un sistema sincrono può essere sensibile alle transizioni (o fronti) positivi (0 1) del clock, oppure ai fronti negativi (1 0). Diagramma temporale di un FF SR asincrono S R R FF D (Delay) sincrono Q “segue” D con un ritardo (Delay) D=0 D=1 D clock Q Q(t+1)=0 Q(t+1)=1 D ck Q Q Il ritardo dipende dal clock Delay=SR R=not(S) D = Ck D FF JK J K (0,0), (0,1) (1,1) (1,0) S0 (0,0), (1,0) J S1 0 0 1 1 Q=1 Q=0 (1,1), (0,1) K Q(t+1) 0 1 0 1 Q(t) 0 1 not(Q(t)) Diagramma temporale JK sincrono J Q K Q CK X X J X X X K X CK Q FF Toggle T(t) T Q(t) 0 Q(t-1) 1 Q(t-1) (toggle) 1 0 Q1 Q=1 Q0 Q=0 1 0 Equivalenza fra i vari tipi di FF D J = K J T = K Analisi di circuiti sequenziali • Dato un circuito sequenziale, descriverne il funzionamento • Il funzionamento di un circuito sequenziale va descritto in termini di un automa a stati finiti. Dato lo schema circuitale, dapprima dobbiamo identificare gli elementi di memoria che vi sono inclusi. In ogni istante, la memoria del sistema, ovvero il valore binario memorizzato nei FF, indica lo stato in cui il sistema si trova. Per ogni possibile stato e possibile combinazione degli input, da un esame della parte combinatoria del circuito possiamo determinare i valori delle uscite e il successivo stato in cui il sistema transiterà. Procedura di Analisi (1) • Si esaminano gli elementi di memoria del circuito, ovvero i FF. I possibili stati del sistema sono rappresentati dalle possibili combinazioni di valori memorizzabili nei FF, e disponibili sulle uscite Qi. Per n FF, avremo 2n combinazioni, e 2n stati. • Si assegna un simbolo di stato ad ogni combinazione di memoria. Esempio 1 • Per l'esempio di figura, abbiamo 2 FF, e 4 possibili valori memorizzati su Q1 e Q0: 00,01,10,11. Possiamo ad esempio assegnare la seguente codifica: S000, S1 01, S2 10, S3 11 Esempio 2 1: 2 FF 8 stati (max) corrispondenti ai valori (Q2Q1Q0) 000 001 010 ….111 2: Assegnamento: S0 000, S1 001, S2 010, S3 0 11 S4 100, S5 101, S6 110, S3 111 Procedura di Analisi (2) • Si analizza la parte combinatoria del circuito e si ricavano le funzioni di trasferimento per ciascun ingresso di ciascun FF contenuto nel circuito, dette anche funzioni di eccitazione dei FF, nonché le funzioni di trasferimento delle uscite. Notate: il circuito non ha input, cambia stato solo sui fronti di clock Esempio J0 = Q2 Q1 ,K0 = Q2 , J2 = Q0 + Q1, K2 = Q1 Inoltre, gli output coincidono con i Qi J1 = K1 = 1 , Procedura di Analisi (3) Si traccia una tabella degli stati futuri, così composta: possibili combinazio ni degli input e degli stati in t Qn-1...Q0 Im...I0 corrispondenti valori delle funzioni di eccitazione dei FF in t (nel caso di FF JK) Jn-1 Kn1......J0 K0 corrisponden ti valori delle uscite in t Yk..Y0 stati futuri, ovvero nuovi valori che saranno memorizzati in t+1 Qn-1...Q0 Esempio: J0 = Q2 Q1 ,K0 = Q2 , J2 = Q0 + Q1, K2 = Q1 Stato(t) J2(t) S0 000 1 S1 001 1 S2 010 0 S3 011 1 S4 100 1 S5 101 1 S6 110 0 S7 111 1 K2(t) 1 1 0 0 1 1 0 0 J1(t) K1(t) J0(t) K0(t) 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 Questa parte della Q2Q1Q0(t) Non ci sono input tabella si riempie J1 = K1 = 1 , Stato(t+1) 111 110 000 100 010 011 100 101 S7 S6 S0 S4 S2 S3 S4 S5 Q2Q1Q0(t+1) Output=Qi Procedura di Analisi (3) Stato(t) S0 S1 S2 S3 S4 S5 S6 S7 J2(t) 1 1 0 1 1 1 0 1 K2(t) 1 1 0 0 1 1 0 0 J1(t) K1(t) J0(t) K0(t) 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 Stato(t+1) S7 S6 S0 S4 S2 S3 S4 S5 La prima e ultima colonna rappresentano le transizioni dell’automa Graficamente: Come osservato, le transizioni avvengono sui fronti di clock, gli output coincidono col codice assegnato ad ogni stato, in quanto Qi=oi S7 S5 S0 S3 S2 S1 S4 S6 Esempio 2 Analisi 1. Due FF di tipo D, 4 stati S0 S1 S2 S3 2. Espressioni booleane degli input D0 Cnt Q0 Cnt Q0 Cnt Q0 D1 Cnt Q1 Cnt Q1 Q0 Cnt Q1 Q0 Tabella stati futuri stato input Q1Q0Cnt D1 D2 000 001 010 011 100 101 110 111 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 Q1Q0(t+1) 00 01 01 10 10 11 11 00 D0 Cnt Q0 Cnt Q0 Cnt Q0 D1 Cnt Q1 Cnt Q1 Q0 Cnt Q1 Q0 Automa S(t),i(t) Q1Q0 Cnt 000 001 010 011 100 101 110 111 S(t+1) D1 D2 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 Q1Q0 (t+1) 00 01 01 10 10 11 11 00 Diagramma temporale Le frecce rosse indicano le transizioni di stato (sincrone), i ti indicano eventi (asincroni fra loro) Q1Q0 Cnt t5 S0 S1 S2 S3 S3 000 001 010 011 100 101 110 111 Q1Q0(t+1 ) 00 01 01 10 10 11 11 00 Circuiti sequenziali importanti • Contatori: circuiti che contano sequenze ordinate o qualsiasi • Registri: circuiti per memorizzare e leggere stringhe di bit Contatore sincrono J0 K0 1 J1 K1 Q0 J2 K2 Q0 Q1 J3 K 3 Q2 Q0 Q ..Jn Kn Q3Q2Q1Q0 (t) J3K3 J2K2 J1K1 J0K0 0000 0001 0010 0011 0100 0101 0110 0111 0000 0001 0010 0011 0100 0101 0110 0111 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 11 00 00 00 11 00 00 00 11 00 00 00 11 00 00 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 Q3Q2Q1Q0 (t+1) 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 1 1 5 4 1 3 1 2 11 1 0 Qi i0..n1 0 1 2 3 4 5 6 9 8 7 Divisore di Frequenza J0 1 K0 Q1 B ck J1 Q0 A K1 Q1 B Q1Q0 (t) J1K1 J0K0 Q1Q0 (t+1) 00 01 00 01 10 11 00 10 01 11 10 10 11 11 01 11 01 00 10 11 Q1Q0 (t) Q1Q0 (t+1) 00 01 10 11 01 11 01 00 ck Q0 Q1 T 4T 2T Registri • Classificabili in base alla modalità di scrittura e lettura dei dati: – – – – Serial Input Serial Output (Shift register) SISO Serial Input Parallel Output SIPO Parallel Input Serial Output PISO Parallel Input Parallel Output PIPO Registri Serial Input Serial Output (SHIFT REGISTER) Shift Register (SISO) Serial Input Parallel Output Parallel Input Serial Output Parallel Input Parallel Output SHIFT LEFT-RIGHT Di (Qi1 LEFT) (Qi1 RIGHT ) (Qi1 LEFT) (Qi1 RIGHT ) Qi1 LEFT Qi1 RIGHT D0 Q1 LEFT Input RIGHT Dn Input LEFT Qn1 RIGHT