La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Reti Sincrone.

Presentazioni simili


Presentazione sul tema: "Reti Sincrone."— Transcript della presentazione:

1 Reti Sincrone

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 Segnale di sincronismo
Z0..m X0..n Rete combinatoria Y0..k s/r0..k FF SR0..k t Segnale di sincronismo Se la durata dell’impulso t è inferiore al tempo di reazione della rete combinatoria (ovvero il minimo ritardo della rete combinatoria) le nuove funzioni di eccitazione s/r0..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 t 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)

4 Segnale di sincronismo
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 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) D Q !Q CK 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 D Q !Q CK PR CL I segnali !CL e !PR agiscono in modo asincrono ovvero immediatamente senza attendere il clock

6 Reti sequenziali sincrone
Rete combinatoria X0..n Z0..m y0..k Y0..k Clock D0..k Q0..k FFD0..k CK Si veda lo schema delle reti asincrone con la retroazione tramite FF RS in cui S=!R 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

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

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) Qn+1 = Dn NB: essendo qui il tempo discretizzato si usa n e n+1 al posto di T e T+t FFD D CK Q Q* D CK Q T 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

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

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. X CK Q Q* FFD D CK_G Rete di Decodifica I[n-1..0] P t NO !! CK P CK_G Glitch sul clock → possibile commutazione spuria del FFD 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 Clock gating e glitch sul clock
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 1 SEL FFD D CK Q Q* Q X 1 SEL t Rete di Decodifica Q* CK I[n-1..0] P

12 Clock gating e clock-skew
Il clock gating, oltre a generare potenziali glitch introduce “clock-skew” (disallineamento). Ad esempio, consideriamo due RSS soggette al FF1 e al FF2 I1 CK B B* CK_G P I2 A A* tAND FFD-1 D Q Q* FFD-2 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 CK CK_G tAND NB: Il “clock-skew” non è causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa.

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 X0..n Z0..m y0..k Y0..k Clock D0..k Q0..k FFD0..k CK 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 X0..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 Sincronizzazione degli ingressi
La cosa cambia però se la rete è di tipo Mealy Z0..m X0..n Rete combinatoria Y0..k y0..k D0..k D0..k Q0..k Q0..k CK CK Clock FFD0..k In questo caso un cambiamento asincrono degli ingressi provoca, in generale, un cambiamento asincrono delle uscite

15 … Cassaforte … sincrona ….
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 11 00 11 00 00 01 A,0 00 B,0 C,0 D,0 10 E,1 Per ogni stato tutte le combinazioni di ingresso !!!!!! 01 11 11 00 11 01 10 00 11 10 00 10 01 10 01 01 11 Gli stati NON sono stabili per gli ingressi che li hanno provocati G,0 10 F,0 01 10 01 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)

16 Cassaforte sincrona A,0 B,0 C,0 E,1 00 11 01 10 D,0 F,0 G,0 B 00 01 11 10 F A G C D E AA- 1 X1 X2 00 01 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à

17 Cassaforte sincrona 00 01 11 10 1 B C D E F G A 00 01 11 10 1
AA- 1 X1 X2 B C D E F G A CF FD CD GE DF --- C F -- b 00 01 11 10 a g d e X1 X2 1 Classi di equivalenza [AFG] => a [B] => b [C] => g [D] => d [E] => e Ovviamente 5 stati: 4 facenti parte della sequenza e uno esterno 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.

18 Cassaforte sincrona 00 01 11 10 1 a => 000 b => 001 g => 011
d e X1 X2 1 Nessun problema di corse: codifica libera (possibilmente ottima) 001 00 01 11 10 000 011 010 100 X1 X2 -- 101 111 110 1 Y1 Y2 Y3 a => 000 b => 001 g => 011 d => 010 e => 100 Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn) D1= X1!X2Y2!Y3 D2=!X1X2Y3 D3=!X1!X2+!X1!Y2Y3 Z =Y1

19 Sintesi Direttorio cassaforte sincrona

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

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

22 E con Mealy ? B 00 01 11 10 F A G C D E AA- 1 X1 X2 B,0 00 01 11 10 F,0 A,0 G,0 A C,0 B D,0 C E,1 D B,1 F,1 A,1 G,1 E A,0A- F G X1 X2 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 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 D Z1 Clock Z !Q2 Q1 D Clock
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 D D1 Q1 !Q1 CK FFD D2 Q2 !Q2 CK FFD Z1 Clock Z !Q2 Q1 D Clock Qui l’ingresso asincrono D è sincronizzato dai FF. Uscita Z sincrona

25 Monoimpulsore A A - B C 1 Z 00 -- 10 11 01 1 Z - 00 10 11 01 B C - A
A,0 B,1 C,0 Moore necessariamente ! A - B C D Q2 Q1 1 Z 00 -- 10 11 D Q2 Q1 01 1 Z - 00 10 11 01 B C - A Q1=D Q2= DQ1 Z=Q1!Q2 00 01 10 11 D Q2 Q1 1 Z MA… D1 Q1 !Q1 CK FFD D2 Q2 !Q2 Z D Clock Q1=D Q2= Q1 Z=Q1!Q2

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

27 Monoimpulsore C D Z Clock Z Q D Clock D !Q Q CK FFD
Qui la rete è di tipo Mealy e quindi con ingresso asincrono è possibile che vi sia uscita asincrona Z Q D Clock 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

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 Monoimpulsori A-B-C

30

31 Contatori Circuiti senza ingresso (a parte il clock) nella versione più semplice A B C D Z Esempio: contatore binario x 4 con decodifica del 3 00,0 01,0 10,0 11,1 M U X 1 D0 !Q0 Q0 CK FFD D1 !Q1 Q1 CK FFD OUT U0 U1 Q1 cambia stato quando Q0 è a 1 e passa a 0 (Il clock è spesso sottinteso nei circuiti sincroni)

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

33 Contatori binari in base non potenza di 2
000 001 010 011 100 Contatore binario per 5 M U X 1 M U X 1 D0 !Q0 Q0 CK FFD 1 D1 !Q1 Q1 CK FFD D !Q2 Q2 CK FFD Questo conta x8: ma per contare x5, arrivati a 4 bisogna ritornare a 0 !!!

34 Contatore x 5 M U X 1 D0 !Q0 M U X 1 D1 !Q1 Q1 CK FFD FFD D2 !Q2 Q2 CK FFD Q0 CK “3” A B C “4” 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

35 Contatori con ingressi di controllo
EN Q0 Q1 Q2 Q3 CK LD D0 D1 D2 D3 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 Di 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 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 101 010 000 111 110 Contatore x 5 non binario

36 Contatore binario x 8 e glitches
74163: 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

37 Simulazione timing Glitch !!!
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 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 000 001 010 011 100 110 111 M U X 1 D0 !Q0 M U X 1 FFD D1 !Q1 Q1 CK FFD D2 !Q2 Q2 CK FFD Q0 CK A B C “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 Sintetizzare e simulare.
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 00 01 11 10 Up/!Down Res 000 001 010 011 100 101 ? 111 110 y3 y2 y1 00 01 11 10 Up/!Down Res 000 001 010 011 100 101 111 110 y3 y2 y1 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 ?

40 D E C Clock Sintesi di y2 in modo “diretto” 00 01 11 10 Up/!Down Res
000 001 010 011 100 101 111 110 y3 y2 y1 UP/!Down D E C “1” 1 1 y3 y2 y1 “2” D0 “3” FFD Q0 y2 CK “4” Clock

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 X1X ) con modello Moore ? Cx8 RES Q0 Q1 Q2 CK RES= !(“0”!X1!X2 + “1” !X1X2 + “2” !X1X2 + “3” X1 X2) 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” Cx8 RES Q0 Q1 Q2 CK X2 X1 A B C RL AND-OR “0” “1” “2” “3” “4” RES Z

42 Contatori 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..) EN Q0 Q1 Q2 Q3 CK CY RESET “1” Perché questo schema è sbagliato ? A B C D “5” 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 “1” A B C D R S Y “5” “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 Contatore con Reset asincrono e Load sincrono
Sintesi cassaforte con moduli Altera Cassaforte sincrona con moduli Rete di controllo Contatore con Reset asincrono e Load sincrono 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 Simulazione funzionale (no timing)
00 01 10 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 X2

45 Simulazione timing

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 Qc=1). Il segnale GN (Gate Not) è quello che abilita il conteggio. Il sistema riamane stabile a 000 per una sequenza lunga a piacere di X1=0 e X2=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 100 X2 X1 00 01 11 10 1 000 000 001 000 000 001 000 010 100 100 010 000 100 100 011 NB: la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza 011 100 100 100 100 100 000 100 100 100 101 000 100 100 100 110 000 100 100 100 111 000 100 100 100

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

48 Generazione di forme d’onda
E’ possibile generare forme d’onda periodiche mediante circuiti sincroni di periodo sottomultiplo intero del clock Q D0..k Q0..k CK D !Q Esempio 1:Divisore di frequenza per 2 Clock 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 Cx5 CK Q0 Q1 Q2 3T 3T 2T Z C B A 1 2 3 4 Z T Clock Decoder/Demux 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 Sintetizzare e simulare con Altera
Di che circuito si tratta ? D0..k Q0..k CK D2 !Q2 D0..k D0..k Q0..k CK D1 !Q1 D0 !Q0 !Q0 Q0..k NB: il segnale di clock non è in comune CK CK Clock !Q2 !Q1 !Q0 Clock 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

50 7493

51 Contatore asincrono Altera Contatore asincrono

52 Simulazione timing

53 Come può essere utilizzato un FFD per catturare un impulso più breve di un periodo ?
Monoimpulsore di tipo A “rivisto” D1 Q1 !Q1 CK FFD “1” D2 Q2 !Q2 CK FFD D0 CL Q00 Z FFD !Q0 CK Clock 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

54 Shift register (registri a traslazione o scorrimento)
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” “0” D0..k Q0..k CK Dn Qn D0..k Q0..k CK Dn-1 Qn-1 D0..k Q0..k CK Dn-2 Qn-2 D0..k Q0..k CK D0 Q0 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 Di 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.
OUT0 OUT1 OUT2 FFD FFD FFD IN D Q D Q D Q Q* Q* Q* R* R* R* A_RESET* A_RESET* A_RESET* CK

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

57 Esempio: 74164 (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 1 = 21610 Shift left => x2 NB: nel dispositivo i bit sono posti in ordine invertito e quindi un shift left del numero corrisponde a uno shift right sul dispositivo = 10810 Shift right => /2 = 5910

58 11100101 interpretato in complemento a 2
Shift aritmetico 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. Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 D7 D6 D5 D4 D3 D2 D1 D0 I LD CK Esempio SRA interpretato in complemento a 2 C2 C2 =5410 =2710 Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno !!

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 D0..k Q0..k CK Dn Qn D0..k Q0..k CK Dn-1 Qn-1 D0..k Q0..k CK Dn-2 Qn-2 D0..k Q0..k CK D0 Q0 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 D0, ad esempio, può essere avviato o Q1 o Qn

60 Contatori con shift register – Contatore retroazionato EX-OR
Shift right 3 bit D Q0 Q1 Q2 100 110 111 011 101 010 001 000 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 2n-1 (purché presettato a un valore diverso da tutti zeri)

61 Stati isolati: 101->010->101..>1
Contatore di Johnson (riempimento e svuotamento) OUT0 OUT1 OUT2 FFD FFD FFD D Q D Q D Q Q* Q* Q* R* R* R* A_RESET* A_RESET* A_RESET* 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 0001->1000->0100->0010->0010
Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n) OUT0 OUT1 OUT2 OUT3 FFD FFD FFD FFD D Q D Q D Q D Q Q* Q* Q* Q* R* R* R* PR* RESET* RESET* RESET* RESET* CK 0001->1000->0100->0010->0010 n FF per contare per n (mentre con i contatori binari il numero dei FF è il log2m ove m è il primo intero maggiore o uguale a n)

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 Barrel shifter

65 65

66 Simulazione timing

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 Reti sincrone con EPROM
Z0..m X0..n EPROM Y0..k y0..k D0..k D0..k Q0..k Q0..k CK CK Clock FFD0..k 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 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."

Presentazioni simili


Annunci Google