La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Reti Sincrone 1. 2 I problemi con le reti asincrone Il comportamento dipende dai ritardi sugli anelli di retroazione con possibilità di malfunzionamenti.

Presentazioni simili


Presentazione sul tema: "Reti Sincrone 1. 2 I problemi con le reti asincrone Il comportamento dipende dai ritardi sugli anelli di retroazione con possibilità di malfunzionamenti."— Transcript della presentazione:

1 Reti Sincrone 1

2 2 I problemi con le reti asincrone Il comportamento dipende dai ritardi sugli anelli di retroazione con possibilità di malfunzionamenti (disallineamento dei ritardi sugli anelli di retroazione) Il comportamento dipende dalle alee degli ingressi (che comunque NON possono essere temporalmente allineati in assoluto) e impedisce il riconoscimento di sequenze ripetute degli ingressi (ad esempio riconoscere la sequenza che risulta essere indistinguibile da ) SOLUZIONE Ottenere artificialmente l’allineamento degli ingressi e degli anelli di retroazione

3 3 Segnale di sincronismo Se la durata dell’impulso  è inferiore al tempo di reazione della rete combinatoria (ovvero il minimo ritardo della rete combinatoria) le nuove funzioni di eccitazione s/r 0..k calcolate della rete combinatoria non raggiungono l’AND di blocco prima che le uscite degli AND stessi siano portate a zero rendendo stabili le uscite dei FF SR (il FF SR con gli ingressi entrambi a zero NON cambia stato. Solo al successivo impulso  le nuove funzioni di eccitazione (e quindi le nuove variabili di stato) sono avviate alla rete combinatoria senza che la retroazione faccia in tempo ad agire. Allineamento delle retroazioni Si noti che così facendo anche l’effetto degli ingressi viene “allineato” Le uscite sono esattamente “allineate” se la rete è di tipo Moore (dipendenti solo dalle variabili di stato) Rete combinatoria X 0..n Z 0..m s/r 0..k Y 0..k  FF SR 0..k Segnale di sincronismo

4 4 Il segnale di sincronismo viene sempre indicato con il nome di clock Normalmente il segnale di clock è un segnale ripetitivo e cadenzato (quest’ultima caratteristica pressoché sempre ma non necessariamente rispettata) Un FF SR dotato di segnale di clock viene chiamato SR sincrono (che però NON è mai usato nella realtà) Quali problemi vi sono con un segnale di clock come quello riportato in figura ? L’impulso dovrebbe essere strettissimo dal momento che una rete combinatoria può consistere anche di un solo filo nel qual caso il ritardo da combattere sarebbe solo quello legato alla propagazione del segnale elettrico sui fili !!! Di fatto irrealizzabile Clock T

5 5 I FF sincroni Esistono molti FF di tipo sincrono ma oggi si usa UNICAMENTE il FF D il cui comportamento è stato studiato come rete asincrona ma che qui viene utilizzato come FF sincrono (nella pratica nella sua versione 74xx74) DQ !Q CK D Il FF D si chiama così perché D sta per Delay (ritardo). Infatti l’uscita Q segue l’ingresso D con un periodo T di ritardo (se il segnale di ingresso D è sincrono – ovvero generato contemporaneo al clock - nel rispetto di setup e hold - ad esempio da una rete controllata da altri FF D) oppure al primo fronte positivo del clock. Il triangolo sul clock (CK) indica che è edge triggered ovvero che scatta sul fronte positivo del clock DQ !Q CK D PR CL I segnali !CL e !PR agiscono in modo asincrono ovvero immediatamente senza attendere il clock

6 6 Reti sequenziali sincrone La sintesi si effettua come nel caso della rete asincrona con retroazione diretta ma ingressi che rimangono costanti sono ingressi considerati dalla rete come diversi (in quanto presi in considerazione in istanti diversi e quindi in possibile presenza di stati diversi) Ciò che conta in questo caso è il fronte positivo del clock: la distanza fra fronti positivi successivi (nel rispetto di setup e hold – v. reti asincrone) NON ha importanza Ovviamente il periodo (la frequenza) del clock deve essere superiore (inferiore) al massimo ritardo insito nella rete combinatoria. La rete combinatoria deve essersi stabilizzata a seguito di un fronte del clock prima che il successivo fronte si presenti Rete combinatoria X 0..n Z 0..m y 0..k Y 0..k Clock D 0..k Q 0..k FFD 0..k CK D 0..k Q 0..k CK Si veda lo schema delle reti asincrone con la retroazione tramite FF RS in cui S=!R

7 Reti Sequenziali Sincrone (RSS ) ? k (k) FFD k k FFD sull’anello di retroazione Tutti con lo stesso clock di periodo T SS*S* SS*S* CK S U S*S* I tt+ T t+2· T t- T Nel caso specifico: Moore o Mealy ? Lo stato cambia anche se non cambia l’ingresso ? L’uscita cambia anche se non cambia l’ingresso ? CK 7

8 Il FFD come elemento fondamentale delle RSS Se all’ingresso CK viene inviato un segnale periodico (clock) il FFD ritarda (D = Delay) il segnale di uscita Q, rispetto al segnale di ingresso D, di un tempo pari al periodo di clock T se il cambiamento del segnale D è contemporaneo a quelli clock (nel rispetto di setup e hold) Q n+1 = D n D CK Q TTTT FFD D CK Q Q* D CK Q Q* 8 NB: il concetto di contemporaneità potrebbe apparire in contrasto con la necessità di rispettare i tempi di setup e hold. Di fatto gli ingressi di una rete sincrona sono nella larga maggioranza provenienti da altre reti che hanno lo stesso clock e quindi sono generati con i ritardi delle reti soggette al clock, rispettando quindi di fatto i tempi previsti. Di fatto le variazioni degli ingressi sono sempre un po’ posteriori alla variazione del clock. Si veda in seguito il comportamento dei registri a traslazione NB: essendo qui il tempo discretizzato si usa n e n+1 al posto di T e T+ 

9 Alcune considerazioni sulle RSS Lo stato della rete cambia solo in corrispondenza dei fronti di salita del clock che si susseguono con periodo T La rete risponde ogni T ⇒ se si desidera massimizzare la velocità di risposta della uscita è necessario adottare il modello di Mealy La sequenza degli stati della rete è svincolata dai ritardi della rete combinatoria (purché la distanza fra i fronti positivi del segnale clock sia superiore al massimo ritardo della rete combinatoria)! Quindi nessun problema di corse critiche All’interno di uno stesso progetto (ad esempio un processore) sono tipicamente presenti più RSS e non necessariamente per tutte le RSS il clock è lo stesso e/o coincide con il clock del processore Le RSS sono più facili da progettare delle RSA 9

10 Clock gating e glitch sul clock Nelle reti sincrone è necessario evitare variazioni spurie (glitches) del segnale di clock che possono provocare commutazioni indesiderate dei FFD (che sono sensibili ai fronti). Ad esempio, per via dei ritardi tra gli n segnali I[n-1..0] e/o le alee introdotte dalla rete combinatoria di decodifica, a causa del “clock gating“, può verificarsi quanto segue. CK P CK_G Glitch sul clock → possibile commutazione spuria del FFD X CK Q Q* FFD D CK Q Q* CK_G Rete di Decodifica I[n-1..0] P t NO !! 10 Naturalmente tutto dipende dalla larghezza dell’impulso spurio: se molto stretto il FF potrebbe non sentirlo. Quindi il clock gating non è proibito ma è un rischio da evitare in caso di incertezza.

11 11 Per transizioni che debbono o meno verificarsi in funzione del valore della rete di decodifica bisogna condizionare il segnale D come in figura. Se la rete di decodifica genera il valore 1 l’uscita Q assume al clock il valore di X altrimenti l’uscita Q copia sé stessa e rimane invariata Clock gating e glitch sul clock X CK Q Q* FFD D CK Q Q* I[n-1..0]P t 0 1 SEL 0 1 Rete di Decodifica

12 Il clock gating, oltre a generare potenziali glitch introduce “clock-skew” (disallineamento). Ad esempio, consideriamo due RSS soggette al FF1 e al FF2 Clock gating e clock-skew CK CK_G  AND I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dall’AND (in generale dalla eventuale RC) interposto. Tale fenomeno (“clock-skew”) è potenzialmente dannoso in quanto il FF2 potrebbe fare campionare alla propria RC in presenza dello stesso fronte di clock i nuovi valori prodotti dalla RC alimentata dal FF1 NB: Il “clock-skew” non è causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa. I1 CK B B* CK_G P I2 CK A A*  AND FFD-1 D CK Q Q* FFD-2 D CK Q Q* 12

13 13 Sincronizzazione degli ingressi Finora si è dato implicitamente per scontato che gli ingressi di una rete sincrona commutino in modo sincrono con il clock Ciò è verificato se gli ingressi provengono da una rete sincrona di tipo Moore nella quale le uscite sono funzione solo dello stato che commuta solo al fronte positivo del clock Rete combinatoria X 0..n Z 0..m y 0..k Y 0..k Clock D 0..k Q 0..k FFD 0..k CK D 0..k Q 0..k CK Rete combinatoria Nella realtà le cose stanno diversamente. Si pensi al caso di pulsanti esterni che costituiscano l’ ingresso della rete. Il cambiamento può avvenire in un istante qualsiasi. Nella rete di figura (Moore) le uscite sono comunque certamente sincronizzate con il clock e se gli ingressi X 0..n cambiano in un momento qualsiasi non sincronizzato il cambiamento viene percepito dai FF di retroazione solo al fronte positivo del clock e quindi il comportamento delle uscite della rete è il medesimo che si avrebbe se gli ingressi fossero sincronizzati

14 14 Sincronizzazione degli ingressi La cosa cambia però se la rete è di tipo Mealy Rete combinatoria X 0..n Z 0..m y 0..k Y 0..k Clock D 0..k Q 0..k FFD 0..k CK D 0..k Q 0..k CK In questo caso un cambiamento asincrono degli ingressi provoca, in generale, un cambiamento asincrono delle uscite

15 15 Esempio: la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni Ogni violazione della sequenza riporta il sistema nello stato iniziale. NB Essendo gli ingressi campionati la sequenza di ingresso è possibile e significativa … Cassaforte … sincrona …. NB: si può supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non è necessaria. Se la rete è di tipo Moore anche se gli ingressi cambiano a metà di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite è assolutamente lo stesso (ogni variazione è rilevata solo alla fine del periodo) E, F,0 01 G, Per ogni stato tutte le combinazioni di ingresso !!!!!! C,0A,0B,0D,0 Gli stati NON sono stabili per gli ingressi che li hanno provocati 00

16 B FA G A BCAG B BDAG C BFAE D BFAG E BFAA-G F BFAG G X1X1 X2X2 A,0B,0C,0 E, D,0 10 F,0 01 G, Cassaforte sincrona NB: in questo esempio non vi sono condizioni di indifferenza. Anziché di stati compatibili si parla qui di stati equivalenti. Ove poi due stati per gli stessi ingressi abbiano uscite identiche e portino agli stessi stati si parla di stati indistinguibili. Naturalmente la descrizione a parole può evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano. In questo caso si ritorna al concetto di compatibilità 00

17 17 Cassaforte sincrona Classi di equivalenza [AFG]=>   B]=>  [C]=>  [D]=>  [E]=>  B FA G A BCAG B BDAG C BFAE D BFAG E BFAA-G F BFAG G X1X1 X2X2 B C D E F G ABCDEF CF FDCD CF GE CF GE DF GE ---CFDFGE ---C FDFGE--             X1X1 X2X NB: nel caso di tabelle completamente specificate le classi (massime) di equivalenza non hanno mai stati in comune. Vanno usate tutte quindi. Non esiste problema di chiusura. Ovviamente 5 stati: 4 facenti parte della sequenza e uno esterno

18 18             X1X1 X2X Cassaforte sincrona            X1X1 X2X2       Y1Y1 Y2Y2 Y3Y3      D 1 = X 1 !X 2 Y 2 !Y 3 D 2 =!X 1 X 2 Y 3 D 3 =!X 1 !X 2 +!X 1 !Y 2 Y 3 Z =Y 1 Sintetizzando con FFD la sintesi degli ingressi D i si ottiene sintetizzando le funzioni Y i (Y n+1 =D n ) Nessun problema di corse: codifica libera (possibilmente ottima)

19 19 Sintesi Direttorio cassaforte sincrona

20 Sintesi – simulazione funzionale N.B. Gli ingressi cambiano in modo NON sincrono con il clock ma l’ uscita è sincrona essendo la rete di tipo Moore

21 21 Sintesi – simulazione timing Si notino i ritardi delle uscite dei FF e dei gates da esse dipendenti rispetto al fronte positivo del clock (ad esempio  ): se la frequenza del clock fosse eccessiva il sistema NON funzionerebbe più correttamente 

22 22 E con Mealy ? B FA G A BCAG B BDAG C BFAE D BFAG E BFAA-G F BFAG G X1X1 X2X2 B, F,0A,0 G,0 A B,0C,0A,0G,0 B B,0D,0A,0G,0 C B,0F,0A,0E,1 D B,1F,1A,1G,1 E B,0F,0A,0A-G,0 F B,0F,0A,0G,0 G X1X1 X2X2 Potrei mettere una indifferenza sull’uscita ?? Si: si possono mettere indifferenze sulle uscite che cambiano. Anticipazione o ritardo del cambiamento Sintetizzare e simulare con Altera

23 23 All’esame orale è necessario portare un esercizio di reti sincrone e uno di reti asincrone NON “mutuato” da altri … I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazione/simulazione con Altera Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verifica…

24 Monoimpulsore A D1Q1 !Q1 CK FFD D2Q2 !Q2 CK FFD Z1 D Clock D Z Q1 !Q2 Qui l’ingresso asincrono D è sincronizzato dai FF. Uscita Z sincrona Generare un impulso di uscita di un periodo di clock per ingresso 1. Un ulteriore impulso viene generato solo se l’ingresso torna a 1 dopo essere stato a 0. L’uscita deve essere sincronizzata con il clock 24

25 25 D1 Q1 !Q1 CK FFD D2 Q2 !Q2 CK FFD Z D Clock Monoimpulsore A A,0 B,1 C,0 0 A A A - B C C - D Q2Q2 Q1Q1 B 01 C - Z A D Q2Q2 Q1Q Z B C - A Q 1 =D Q 2 = DQ 1 Z=Q 1 !Q D Q2Q2 Q1Q Z MA… Q 1 =D Q 2 = Q 1 Z=Q 1 !Q 2 Moore necessariamente !

26 26 D1Q1 !Q1 CK FFD D2Q2 !Q2 CK FFD Z2 D Clock Monoimpulsore B Clock D Z2 Q1 !Q2 L’ingresso asincrono D agisce direttamente sull’uscita Z che quindi risulta asincrona Qui la rete è di tipo Mealy e quindi con ingresso asincrono è possibile che vi sia uscita asincrona

27 27 D!Q Q CK FFD Z D Clock Monoimpulsore C Clock D Z Q Anche qui l’ingresso asincrono D agisce direttamente sull’uscita Z che quindi risulta asincrona Si noti che se l’ingresso oscilla, una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0, l’uscita oscilla Qui la rete è di tipo Mealy e quindi con ingresso asincrono è possibile che vi sia uscita asincrona

28 28 Considerazioni sui monoimpulsori A, B e C  Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON può essere tracciato perché di fatto le due reti (di tipo Mealy) NON sono sincrone. Infatti il diagramma di circuiti sincroni prevede implicitamente un comportamento sincrono anche degli ingressi, fatto non verificato nei casi B e C  La cosa non vale per il monoimpulsore A in quanto pur essendo l’ingresso asincrono l’uscita (rete di tipo Moore) dipende solo dagli stati. In altre parole il comportamento della rete rende intrinsecamente sincroni ingressi fisicamente asincroni  Il diagramma degli stati che riflette il comportamento delle due reti B e C può essere tracciato solo partendo da una analisi asincrona, “aprendo” quindi i FF D inseriti. Ovviamente è possibile progettare le due reti senza l’uso dei FF D partendo da un diagramma degli stati asincrono “tradizionale” A scopo di esercizio si suggerisce la sintesi e la simulazione con Altera dei tre monoimpulsori come reti asincrone. Si tratta di circuiti on due ingressi: Ck e D.

29 29 Monoimpulsori A-B-C

30 30

31 31 Contatori ABCD Z Circuiti senza ingresso (a parte il clock) nella versione più semplice D0 !Q0 Q0 CK FFD MUXMUX 1 0 D1 !Q1 Q1 CK FFD (Il clock è spesso sottinteso nei circuiti sincroni) U0 U1 Esempio: contatore binario x 4 con decodifica del 3 00,001,010,011,1 OUT Q1 cambia stato quando Q0 è a 1 e passa a 0

32 CK u1 u0 OUT (0) (1)(2)(0) (1)(2) (3) Contatore x 4 con decodifica del 3

33 33 Contatori binari in base non potenza di 2 ABCD E Contatore binario per 5 D0 !Q0 Q0 CK FFD MUXMUX D1 !Q1 Q1 CK FFD MUXMUX 1 0 D !Q2 Q2 CK FFD Questo conta x8: ma per contare x5, arrivati a 4 bisogna ritornare a 0 !!!

34 34 D0 !Q0 Q0 CK FFD D1 !Q1 Q1 CK FFD MUXMUX 1 0 D2 !Q2 Q2 CK FFD MUXMUX 1 0 ABCABC “4” Contatore x 5 Decoder La decodifica del 4 porta a zero l’uscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno “0”. Per esercizio sintetizzare un contatore x 100 partendo dalla sintesi di un contatore decimale ovvero di un contatore x10 (da sintetizzare). Quanti FF per un contatore decimale ? I contatori decimali si trovano integrati in Altera “3”

35 35 Contatori con ingressi di controllo Ex. Contatore integrato x 16 con Load e Enable Il contatore conta per 16 (0-15) se il segnale EN è a 1. Allorchè il segnale LD va a 1 il dato presente sugli ingressi D è inserito nei 4 FF (l’ingresso può essere sincrono o asincrono). Nel caso precedente il decodificatore del “3” (uscita vera va portato) all’ingresso LD con tutti i D i a zero. In generale il contatore fornisce anche un’uscita “carry” che va a 1 quando il contatore raggiunge il valore FF. Questa uscita può essere connessa all’enable di un contatore a valle per ottenere un contatore per 256 così via. (Progettarlo come esercizio) EN Q0 Q1 Q2 Q3 CK LD D0 D1 D2 D3 EN Q0 Q1 Q2 Q3 CK CY LD D0 D1 D2 D3 Esistono contatori UP/DOWN nei quali un ingresso (U/!D) seleziona se il conteggio deve avvenire avanti o indietro. Nel caso sia selezionata la modalità “indietro” il carry si attiva quando si raggiunge il valore “tutti zeri”. Esiste una molteplicità di contatori ciascuno con le proprie specifiche peculiarità; con o senza RESET (che normalmente agisce in modo asincrono), U/!D, con o senza LD etc. etc. NB: qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore è sempre un contatore Contatore x 5 non binario

36 : contatore reale x 16 con Load, Reset e Enable (T e P) I segnali di controllo sono sincroni ovvero agiscono sul fronte positivo del clock (rising edge) 74138: decoder 3:8 con uscite negate se G2A e G2B entrambi a zero e G1 a 1. Altrimenti tutte uscite alte Direttorio Counter Glitch Contatore binario x 8 e glitches

37 37 Glitch !!! Simulazione timing NB: la presenza e la durata del glitch dipende dalle caratteristiche elettriche dei dispositivi, dalla loro tecnologia etc. Nel caso dei dispositivi Altera dipende dal tipo di dispositivo sul quale è realizzato il circuito. Analogamente la sensibilità di eventuali ingressi di clock collegati all’uscita con il glitch dipende dalle caratteristiche del dispositivo. Se ad esempio nel dispositivo Altera utilizzato si collega all’uscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non è vero in assoluto !!!!

38 38 Cosa succede al contatore X5 progettato precedentemente se all’accensione, non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del ciclo. NB La condizione all’accensione è del tutto casuale e dipende unicamente dalle condizioni elettriche di realizzazione. E’ impredicibile Supponiamo che i FF si portino al valore 110 (il numero 6, fuori dal ciclo). Analizziamo il comportamento D0 !Q0 Q0 CK FFD D1 !Q1 Q1 CK FFD MUXMUX 1 0 D2 !Q2 Q2 CK FFD MUXMUX 1 0 ABCABC “4” In questo caso ci si riporta nella situazione di conteggio regolare (verificare con la tabella degli stati !) ma il comportamento in generale dipende dalla realizzazione e in altre realizzazione i due stati potrebbero essere separati dal ciclo principale che quindi non verrebbe mai raggiunto. Ecco la funzione del RESET

39 39 Solo come esempio (da non utilizzare !!!!!!) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 Up/!Down con comando di Reset. I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono Per compensare all’accensione Sintetizzare e simulare. Come dovrebbe essere modificato lo schema in Altera per permettere di “presettare” in modo asincrono il contatore a un particolare valore di ingresso ? Up/!Down Res ??111 ???? ?? 101 y 3 y 2 y Up/!Down Res y 3 y 2 y 1

40 40 D0 Q0 CK FFD Clock y2y2 DECDEC y3y2y1y3y2y1 “1” “2” “3” “4” 1 0 UP/!Down Sintesi di y 2 in modo “diretto” Up/!Down Res y 3 y 2 y 1

41 41 Cassaforte … Disponendo di un contatore per 8 (ma anche per 16 etc.) con reset sincrono e sempre abilitato al conteggio come potrei realizzare il circuito di apertura della cassaforte (sequenza X 1 X ) con modello Moore ? Cx8 RES Q0 Q1 Q2 CK RES= !(“0”!X 1 !X 2 + “1” !X 1 X 2 + “2” !X 1 X 2 + “3” X 1 X 2 ) Z = “4” (“0”,”1”,”2”,”3”,”4” sono le decodifiche binarie delle tre uscite del contatore) Il contatore si resetta ogni volta che non si presenta l’ingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RES Il contatore arrivato a 4 (Z=1) si resetta comunque al successivo fronte del clock Le reti sincrone si progettano sempre come combinazione di blocchi disponibili e logica “random” ABCABC “0” “1” “2” “3” “4” RL AND-OR X1X1 X2X2 RES Z Cx8 RES Q0 Q1 Q2 CK

42 42 Contatori EN Q0 Q1 Q2 Q3 CK CY RESET Attenzione !!! Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5. (N.B. per il Reset si usa il “5” in questo caso…. glitch..) ABCDABCD “5” “1” Perché questo schema è sbagliato ? Perché presenta una corsa critica !! Nel momento in cui anche uno solo dei FF si resetta (e non tutti nello stesso istante) viene a mancare la configurazione “4” sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi. E allora ? EN Q0 Q1 Q2 Q3 CK CY RESET ABCDABCD “5” “1” R S Y “0” Così facendo il “4” attiva il SET e il FF NON si resetta fino a quando non è stato raggiunto la “0”. NB lo schema “sbagliato” si può usare solo se si è certi della rapidità di reset dei FF del contatore Verificare con Altera

43 Sintesi cassaforte con moduli Altera Cassaforte sincrona con moduli Rete di controllo Contatore con Reset asincrono e Load sincrono 43 NB In questo progetto la sintesi è stata condotta in modo “diretto” ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e ……. materia grigia. La sintesi dei circuiti sincroni si fa sempre e unicamente così

44 44 Simulazione funzionale (no timing) N.B. I segnali di ingresso sono campionati SOLO sul fronte positivo del clock anche se si presentano asincroni !! Il segnale di uscita si attiva al clock successivo al riconoscimento della sequenza. La posizione di “riposo” del contatore è il valore 4. I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X

45 45 Simulazione timing

46 46 N.B. Si è scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicità. Il contatore rimane al valore 100 fino a quando non si presenta all’ingresso il valore 00. Se la sequenza è esatta il contatore continua a contare in avanti fino alla generazione dell’uscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Q c =1). Il segnale GN (Gate Not) è quello che abilita il conteggio. Il sistema riamane stabile a 000 per una sequenza lunga a piacere di X 1 =0 e X 2 =0 e si sposta quando dopo 00 si ha 01. Come si evince dalla simulazione se la sequenza non è corretta o è interrotta il contatore si riporta sempre a X X2 000 NB: la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47 47 Progettare un contatore packed BCD up/down a 8 bit (due digit)

48 48 Generazione di forme d’onda E’ possibile generare forme d’onda periodiche mediante circuiti sincroni di periodo sottomultiplo intero del clock Esempio 1:Divisore di frequenza per 2 D 0..k Q 0..k CK D!Q CK Clock Q Esempio 2: generare una forma d’onda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T l’uscita sia alta e nell’altro semiperiodo 2T l’uscita sia bassa Q0 Q1 Q2 CK Cx5 CBACBA Decoder/Demux Clock Z Z T 3T 2T 3T NB: una rete logica è in grado di effettuare delle divisioni di frequenza e mai delle moltiplicazioni di frequenza (che si possono ottenere solo con circuiti analogici non lineari)

49 49 Di che circuito si tratta ? D 0..k Q 0..k CK D0!Q0 CK !Q0 D 0..k Q 0..k CK D1!Q1 CK D 0..k Q 0..k CK D2!Q2 CK Clock !Q0 !Q1 !Q2 E’ un contatore binario ma non sincrono. Infatti i vari FF NON utilizzano lo stesso clock e questo porta a un piccolo disallineamento sulle uscite. Non è sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero “aprendo” i FF. Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione ? Sintetizzare e simulare con Altera NB: il segnale di clock non è in comune

50

51 51 Altera Contatore asincrono Contatore asincrono

52 52 Simulazione timing

53 53 Come può essere utilizzato un FFD per catturare un impulso più breve di un periodo ? D2Q2 !Q2 CK FFD Z Clock D1Q1 !Q1 CK FFD D0Q00 !Q0 CK FFD “1” CL L’impulso breve viene catturato dal FF 0 (purché di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore – la cui uscita alimenta il monoimpulsore di tipo A. L’attivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia “positive”true”) Ci può essere un problema se il CL agisce in modo asincrono ? NB: questo circuito e quello del lucido precedente evidenziano il fatto che nella realtà nessuna rete è solo sincrona ma bensì è pressoché sempre necessario utilizzare reti di natura diversa anche perché vi è sempre una interazione fra reti con clock diversi e/o con segnali provenienti dal mondo esterno NON sincronizzati con il clock Monoimpulsore di tipo A “rivisto”

54 54 Uno shift register a sinistra (a destra) è un registro composto da FFD che ad ogni clock trasferisce il valore del FF a destra (a sinistra) di ciascun FF nel FF stesso. Nel FF più a destra (sinistra) viene immesso uno “0”. Questi tipi di registri shift si chiamano “logici” Shift register (registri a traslazione o scorrimento) D 0..k Q 0..k CK DnDn QnQn D 0..k Q 0..k CK D n-1 Q n-1 CK D 0..k Q 0..k CK D n-2 Q n-2 CK D 0..k Q 0..k CK D0D0 Q0Q0 “0” Shift register a sinistra Anche per i registri a traslazione esistono diverse versioni: con ingresso parallelo e uscita seriale, con ingresso seriale e uscita parallela, con reset, con load etc. etc. Si noti che uno shift register è anche un contatore. Si immagini per esempio che dopo un reset siano inseriti degli uni a partire da destra. Lo shift register si riempie progressivamente di uni e quindi la posizione in cui è arrivato l’uno indica il valore del conteggio in base a un codice “uno su n” (un codice decodificato) Spesso uno stesso registro può traslare a destra o a sinistra in funzione di una segnale di controllo. Ovviamente questo si ottiene premettendo a ogni ingresso D i un MUX a due vie che preleva in funzione del segnale di controllo Q ì+1 o Q ì-1. Con questa configurazione lo shift register diventa anche un contatore avanti/indietro

55 Registro a scorrimento (shift-register) a 3 bit. FFD DQ Q* R* A_RESET* FFD DQ Q* R* A_RESET* FFD DQ Q* R* A_RESET* IN OUT2 OUT1OUT0 CK

56 IN A_RESET OUT1 OUT2 OUT0 Registro a scorrimento (shift-register) a 3 bit.

57 57 Esempio: (serial In parallel OUT) In questo registro a traslazione, ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -> Q1, Q1->Q2 etc). Il registro è dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 è dato dall’AND dei due ingressi Dsa e Dsb Si noti che l’operazione di shift corrisponde aritmeticamente alle operazioni di divisione e moltiplicazione per 2. Si supponga che in Q0 vi sia il bit meno significativo e in Q7 il meno significativo = Shift left => x2 Shift right => / = = NB: nel dispositivo i bit sono posti in ordine invertito e quindi un shift left del numero corrisponde a uno shift right sul dispositivo

58 58 Esistono anche i registri a traslazione “aritmetici”. In questi shift register a destra anziché fare entrare nel FF più a sinistra lo “0” viene immesso sempre ripetutamente il suo valore logico. Shift aritmetico Q7Q6Q5Q4Q3Q2Q1Q0 D7D6D5D4D3D2D1D0 I LD CK Esempio SRA interpretato in complemento a =54 10 C2C2 C2C =27 10 Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno !!

59 59 Rotazione Nei computer è sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF. La cosa si ottiene retroazionando uno shift register D 0..k Q 0..k CK DnDn QnQn D 0..k Q 0..k CK D n-1 Q n-1 CK D 0..k Q 0..k CK D n-2 Q n-2 CK D 0..k Q 0..k CK D0D0 Q0Q0 Molto spesso nei computer è necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF. La cosa si ottiene retroazionando uno shift register con direzione programmabile. In questo caso su D 0, ad esempio, può essere avviato o Q 1 o Q n

60 60 Contatori con shift register – Contatore retroazionato EX-OR Q2Q0 Shift right 3 bit D Q Diagramma degli stati disgiunto !! Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) è un contatore NON binario che conta per 2 n -1 (purché presettato a un valore diverso da tutti zeri)

61 61 Contatore di Johnson (riempimento e svuotamento) FFD DQ Q* R* A_RESET* FFD DQ Q* R* A_RESET* FFD DQ Q* R* A_RESET* OUT2 OUT1OUT0 CK 000->100->110->111->011->001->000->... Stati isolati: 101->010->101..> 1 Poiché configurazioni adiacenti del codice Johnson differiscono di un solo bit, il contatore può essere utilizzato per generare forme d’onda prive di alee.

62 62 Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n) FFD DQ Q* R* RESET* FFD DQ Q* R* RESET* FFD DQ Q* PR* RESET* OUT3 OUT1 OUT0 CK FFD DQ Q* R* RESET* OUT >1000->0100->0010->0010 n FF per contare per n (mentre con i contatori binari il numero dei FF è il log 2 m ove m è il primo intero maggiore o uguale a n)

63 63 Barrel shifter (rotore) Un barrel shifter è uno shift register in grado di traslare di “n” posizioni in un solo clock il contenuto dei suoi FF. In figura è riportato il barrel shifter della Altera. Gli ingressi A-H in presenza dell’attivazione del segnale LDST, al primo fronte positivo del clock sono depositati nei FF. Quando LDST è 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero l’uscita H diventa la G, la G diventa la F…e l’uscita A diventa la H) ove n è il valore binario indicato dai segnali S0, S1 e S2. Si noti che il circuito in questione è di fatto un registro con 8 FF all’ingresso di ciascuno dei quali è previsto un MUX a 8 vie che pilotato dai segnali S0, S1 e S2 che seleziona uno degli 8 uscite del dispositivo. La struttura interna può essere osservata “clikkando” due volte sul dispositivo nello schema di Altera.

64 64 Barrel shifter

65 65

66 66 Simulazione timing

67 67 Utilizzando il sistema Altera progettare un orologio con secondi, minuti, ora, partendo da un oscillatore a quarzo con frequenza 500 KHz. E se si volesse proseguire e realizzare anche un datario (giorno, mese e anno ) ? Come potrebbe essere integrato con una sveglia. Si ricordi che l’orologio deve essere anche essere “presettato”. Quali circuiti utilizzare per la visualizzazione ?

68 68 EPROM X 0..n Z 0..m y 0..k Y 0..k Clock D 0..k Q 0..k FFD 0..k CK D 0..k Q 0..k CK Reti sincrone con EPROM Al posto delle EPROM si utilizzano ora dei PLA ovvero dispositivi nei quali si nei quali le funzioni combinatorie sono ottimizzate ma il principio è assolutamente il medesimo

69 69 Progettare con Altera una rete logica sincrona che utilizzando registri 374, ALU 74181, un contatore e altri dispositivi ritenuti necessari, permetta di eseguire in sequenza la somma di due dati di 4 bit senza segno ingresso, esegua il complemento a 2, inverta la parte bassa con la parte alta del risultato e infine moltiplichi il tutto logicamente per 2. La soluzione è sempre decomponibile in tre sottosistemi: il controllo con la sua decodifica (unità di controllo), il percorso dei dati con le unità che li trasformano (datapath) e i registri di deposito e di ingresso dei dati. Questa è la struttura base di qualunque unità centrale di qualunque computer. La differenza consiste solo nel fatto che anziché avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita. Come si vedrà approfonditamente nel corso di Calcolatori T del II anno (prof. Neri e Mattoccia). Arrivederci al corso di Calcolatori T del II anno (sapendo perfettamente le reti logiche ……) !!!


Scaricare ppt "Reti Sincrone 1. 2 I problemi con le reti asincrone Il comportamento dipende dai ritardi sugli anelli di retroazione con possibilità di malfunzionamenti."

Presentazioni simili


Annunci Google