69
Reti Sincrone 1

Reti Sincrone

  • Upload
    matty

  • View
    74

  • Download
    0

Embed Size (px)

DESCRIPTION

Reti Sincrone. 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) - PowerPoint PPT Presentation

Citation preview

Page 1: Reti Sincrone

Reti Sincrone

1

2

I problemi con le reti asincrone

bull Il comportamento dipende dai ritardi sugli anelli di retroazione con possibilitagrave di malfunzionamenti (disallineamento dei ritardi sugli anelli di retroazione)

bull 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 00-00-11-01 che risulta essere indistinguibile da 00-11-01)

SOLUZIONE

bull Ottenere artificialmente lrsquoallineamento degli ingressi e degli anelli di retroazione

3

Segnale di sincronismo

bull Se la durata dellrsquoimpulso t egrave inferiore al tempo di reazione della rete combinatoria (ovvero il minimo ritardo della rete combinatoria) le nuove funzioni di eccitazione sr0k calcolate della rete combinatoria non raggiungono lrsquoAND 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

bull Si noti che cosigrave facendo anche lrsquoeffetto degli ingressi viene ldquoallineatordquo

bull Le uscite sono esattamente ldquoallineaterdquo se la rete egrave di tipo Moore (dipendenti solo dalle variabili di stato)

Rete combinatoria

X0nZ0m

sr0kY0k

t

FF SR0k

Segnale di sincronismo

4

Segnale di sincronismo

bull Il segnale di sincronismo viene sempre indicato con il nome di clock

bull Normalmente il segnale di clock egrave un segnale ripetitivo e cadenzato (questrsquoultima caratteristica pressocheacute sempre ma non necessariamente rispettata)

bull Un FF SR dotato di segnale di clock viene chiamato SR sincrono (che perograve NON egrave mai usato nella realtagrave)

bull Quali problemi vi sono con un segnale di clock come quello riportato in figura Lrsquoimpulso dovrebbe essere strettissimo dal momento che una rete combinatoria puograve 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 sincronibull Esistono molti FF di tipo sincrono ma oggi si usa UNICAMENTE il FF D il cui

comportamento egrave stato studiato come rete asincrona ma che qui viene utilizzato come FF sincrono (nella pratica nella sua versione 74xx74)

D Q

QCK D

bull Il FF D si chiama cosigrave percheacute D sta per Delay (ritardo) Infatti lrsquouscita Q segue lrsquoingresso D con un periodo T di ritardo (se il segnale di ingresso D egrave sincrono ndash 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

bull Il triangolo sul clock (CK) indica che egrave edge triggered ovvero che scatta sul fronte positivo del clock

D Q

QCK DPR

CL

I segnali CL e PR agiscono in modo asincrono ovvero immediatamente senza attendere il clock

6

Reti sequenziali sincrone

bull 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)

bull Ciograve che conta in questo caso egrave il fronte positivo del clock la distanza fra fronti positivi successivi (nel rispetto di setup e hold ndash v reti asincrone) NON ha importanza

bull 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

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Si veda lo schema delle reti asincrone con la retroazione tramite FF RS in cui S=R

Reti Sequenziali Sincrone (RSS)

k (k)FFD

k

k FFD sullrsquoanello di retroazione Tutti con lo stesso clock di periodo T

S S S SCK

S

U

S

I

t t+T t+2Tt-TNel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

7

Il FFD come elemento fondamentale delle RSSSe allrsquoingresso 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 egrave contemporaneo a quelli clock (nel rispetto di setup e hold)

Qn+1 = Dn

D

CK

QT T T T

FFDD

CK

Q

Q

D

CK

Q

Q

8

NB il concetto di contemporaneitagrave potrebbe apparire in contrasto con la necessitagrave 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 porsquo 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+t

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti di salita del clock che si susseguono con periodo T

bull La rete risponde ogni T se si desidera massimizzare la velocitagrave di risposta della rArruscita egrave necessario adottare il modello di Mealy

bull La sequenza degli stati della rete egrave svincolata dai ritardi della rete combinatoria (purcheacute la distanza fra i fronti positivi del segnale clock sia superiore al massimo ritardo della rete combinatoria) Quindi nessun problema di corse critiche

bull Allrsquointerno di uno stesso progetto (ad esempio un processore) sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stesso eo coincide con il clock del processore

bull Le RSS sono piugrave facili da progettare delle RSA

9

Clock gating e glitch sul clockNelle reti sincrone egrave 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-10] eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

CK

P

CK_G

Glitch sul clock rarr possibile commutazione spuria del FFD

X

CK

Q

QFFD

D

CK

Q

QCK_GRete di Decodifica

I[n-10]P

t

NO

10

Naturalmente tutto dipende dalla larghezza dellrsquoimpulso spurio se molto stretto il FF potrebbe non sentirlo Quindi il clock gating non egrave proibito ma egrave un rischio da evitare in caso di incertezza

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 lrsquouscita Q assume al clock il valore di X altrimenti lrsquouscita Q copia seacute stessa e rimane invariata

Clock gating e glitch sul clock

X

CK

Q

QFFD

D

CK

Q

Q

I[n-10] P

t

01SEL

01SEL

Rete di Decodifica

Il clock gating oltre a generare potenziali glitch introduceldquoclock-skewrdquo (disallineamento) Ad esempio consideriamo due RSS soggette al FF1 e al FF2

Clock gating e clock-skew

CK

CK_GtAND tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND (in generale dalla eventuale RC) interposto Tale fenomeno (ldquoclock-skewrdquo) egrave 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 ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

I1

CK

B

BCK_GP

I2

CK

A

A

tAND

FFD-1D

CK

Q

QFFD-2

D

CK

Q

Q

12

13

Sincronizzazione degli ingressibull Finora si egrave dato implicitamente per scontato che gli ingressi di una rete sincrona commutino

in modo sincrono con il clock

bull Ciograve egrave 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

X0n

Z0m

y0k

Y0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Rete combinatoria

bull Nella realtagrave le cose stanno diversamente Si pensi al caso di pulsanti esterni che costituiscano lrsquo ingresso della rete Il cambiamento puograve avvenire in un istante qualsiasi

bull Nella rete di figura (Moore) le uscite sono comunque certamente sincronizzate con il clock e se gli ingressi X0n 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 egrave il medesimo che si avrebbe se gli ingressi fossero sincronizzati

14

Sincronizzazione degli ingressi

bull La cosa cambia perograve se la rete egrave di tipo Mealy

Rete combinatoria

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

bull In questo caso un cambiamento asincrono degli ingressi provoca in generale un cambiamento asincrono delle uscite

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 2: Reti Sincrone

2

I problemi con le reti asincrone

bull Il comportamento dipende dai ritardi sugli anelli di retroazione con possibilitagrave di malfunzionamenti (disallineamento dei ritardi sugli anelli di retroazione)

bull 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 00-00-11-01 che risulta essere indistinguibile da 00-11-01)

SOLUZIONE

bull Ottenere artificialmente lrsquoallineamento degli ingressi e degli anelli di retroazione

3

Segnale di sincronismo

bull Se la durata dellrsquoimpulso t egrave inferiore al tempo di reazione della rete combinatoria (ovvero il minimo ritardo della rete combinatoria) le nuove funzioni di eccitazione sr0k calcolate della rete combinatoria non raggiungono lrsquoAND 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

bull Si noti che cosigrave facendo anche lrsquoeffetto degli ingressi viene ldquoallineatordquo

bull Le uscite sono esattamente ldquoallineaterdquo se la rete egrave di tipo Moore (dipendenti solo dalle variabili di stato)

Rete combinatoria

X0nZ0m

sr0kY0k

t

FF SR0k

Segnale di sincronismo

4

Segnale di sincronismo

bull Il segnale di sincronismo viene sempre indicato con il nome di clock

bull Normalmente il segnale di clock egrave un segnale ripetitivo e cadenzato (questrsquoultima caratteristica pressocheacute sempre ma non necessariamente rispettata)

bull Un FF SR dotato di segnale di clock viene chiamato SR sincrono (che perograve NON egrave mai usato nella realtagrave)

bull Quali problemi vi sono con un segnale di clock come quello riportato in figura Lrsquoimpulso dovrebbe essere strettissimo dal momento che una rete combinatoria puograve 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 sincronibull Esistono molti FF di tipo sincrono ma oggi si usa UNICAMENTE il FF D il cui

comportamento egrave stato studiato come rete asincrona ma che qui viene utilizzato come FF sincrono (nella pratica nella sua versione 74xx74)

D Q

QCK D

bull Il FF D si chiama cosigrave percheacute D sta per Delay (ritardo) Infatti lrsquouscita Q segue lrsquoingresso D con un periodo T di ritardo (se il segnale di ingresso D egrave sincrono ndash 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

bull Il triangolo sul clock (CK) indica che egrave edge triggered ovvero che scatta sul fronte positivo del clock

D Q

QCK DPR

CL

I segnali CL e PR agiscono in modo asincrono ovvero immediatamente senza attendere il clock

6

Reti sequenziali sincrone

bull 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)

bull Ciograve che conta in questo caso egrave il fronte positivo del clock la distanza fra fronti positivi successivi (nel rispetto di setup e hold ndash v reti asincrone) NON ha importanza

bull 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

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Si veda lo schema delle reti asincrone con la retroazione tramite FF RS in cui S=R

Reti Sequenziali Sincrone (RSS)

k (k)FFD

k

k FFD sullrsquoanello di retroazione Tutti con lo stesso clock di periodo T

S S S SCK

S

U

S

I

t t+T t+2Tt-TNel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

7

Il FFD come elemento fondamentale delle RSSSe allrsquoingresso 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 egrave contemporaneo a quelli clock (nel rispetto di setup e hold)

Qn+1 = Dn

D

CK

QT T T T

FFDD

CK

Q

Q

D

CK

Q

Q

8

NB il concetto di contemporaneitagrave potrebbe apparire in contrasto con la necessitagrave 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 porsquo 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+t

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti di salita del clock che si susseguono con periodo T

bull La rete risponde ogni T se si desidera massimizzare la velocitagrave di risposta della rArruscita egrave necessario adottare il modello di Mealy

bull La sequenza degli stati della rete egrave svincolata dai ritardi della rete combinatoria (purcheacute la distanza fra i fronti positivi del segnale clock sia superiore al massimo ritardo della rete combinatoria) Quindi nessun problema di corse critiche

bull Allrsquointerno di uno stesso progetto (ad esempio un processore) sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stesso eo coincide con il clock del processore

bull Le RSS sono piugrave facili da progettare delle RSA

9

Clock gating e glitch sul clockNelle reti sincrone egrave 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-10] eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

CK

P

CK_G

Glitch sul clock rarr possibile commutazione spuria del FFD

X

CK

Q

QFFD

D

CK

Q

QCK_GRete di Decodifica

I[n-10]P

t

NO

10

Naturalmente tutto dipende dalla larghezza dellrsquoimpulso spurio se molto stretto il FF potrebbe non sentirlo Quindi il clock gating non egrave proibito ma egrave un rischio da evitare in caso di incertezza

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 lrsquouscita Q assume al clock il valore di X altrimenti lrsquouscita Q copia seacute stessa e rimane invariata

Clock gating e glitch sul clock

X

CK

Q

QFFD

D

CK

Q

Q

I[n-10] P

t

01SEL

01SEL

Rete di Decodifica

Il clock gating oltre a generare potenziali glitch introduceldquoclock-skewrdquo (disallineamento) Ad esempio consideriamo due RSS soggette al FF1 e al FF2

Clock gating e clock-skew

CK

CK_GtAND tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND (in generale dalla eventuale RC) interposto Tale fenomeno (ldquoclock-skewrdquo) egrave 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 ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

I1

CK

B

BCK_GP

I2

CK

A

A

tAND

FFD-1D

CK

Q

QFFD-2

D

CK

Q

Q

12

13

Sincronizzazione degli ingressibull Finora si egrave dato implicitamente per scontato che gli ingressi di una rete sincrona commutino

in modo sincrono con il clock

bull Ciograve egrave 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

X0n

Z0m

y0k

Y0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Rete combinatoria

bull Nella realtagrave le cose stanno diversamente Si pensi al caso di pulsanti esterni che costituiscano lrsquo ingresso della rete Il cambiamento puograve avvenire in un istante qualsiasi

bull Nella rete di figura (Moore) le uscite sono comunque certamente sincronizzate con il clock e se gli ingressi X0n 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 egrave il medesimo che si avrebbe se gli ingressi fossero sincronizzati

14

Sincronizzazione degli ingressi

bull La cosa cambia perograve se la rete egrave di tipo Mealy

Rete combinatoria

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

bull In questo caso un cambiamento asincrono degli ingressi provoca in generale un cambiamento asincrono delle uscite

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 3: Reti Sincrone

3

Segnale di sincronismo

bull Se la durata dellrsquoimpulso t egrave inferiore al tempo di reazione della rete combinatoria (ovvero il minimo ritardo della rete combinatoria) le nuove funzioni di eccitazione sr0k calcolate della rete combinatoria non raggiungono lrsquoAND 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

bull Si noti che cosigrave facendo anche lrsquoeffetto degli ingressi viene ldquoallineatordquo

bull Le uscite sono esattamente ldquoallineaterdquo se la rete egrave di tipo Moore (dipendenti solo dalle variabili di stato)

Rete combinatoria

X0nZ0m

sr0kY0k

t

FF SR0k

Segnale di sincronismo

4

Segnale di sincronismo

bull Il segnale di sincronismo viene sempre indicato con il nome di clock

bull Normalmente il segnale di clock egrave un segnale ripetitivo e cadenzato (questrsquoultima caratteristica pressocheacute sempre ma non necessariamente rispettata)

bull Un FF SR dotato di segnale di clock viene chiamato SR sincrono (che perograve NON egrave mai usato nella realtagrave)

bull Quali problemi vi sono con un segnale di clock come quello riportato in figura Lrsquoimpulso dovrebbe essere strettissimo dal momento che una rete combinatoria puograve 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 sincronibull Esistono molti FF di tipo sincrono ma oggi si usa UNICAMENTE il FF D il cui

comportamento egrave stato studiato come rete asincrona ma che qui viene utilizzato come FF sincrono (nella pratica nella sua versione 74xx74)

D Q

QCK D

bull Il FF D si chiama cosigrave percheacute D sta per Delay (ritardo) Infatti lrsquouscita Q segue lrsquoingresso D con un periodo T di ritardo (se il segnale di ingresso D egrave sincrono ndash 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

bull Il triangolo sul clock (CK) indica che egrave edge triggered ovvero che scatta sul fronte positivo del clock

D Q

QCK DPR

CL

I segnali CL e PR agiscono in modo asincrono ovvero immediatamente senza attendere il clock

6

Reti sequenziali sincrone

bull 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)

bull Ciograve che conta in questo caso egrave il fronte positivo del clock la distanza fra fronti positivi successivi (nel rispetto di setup e hold ndash v reti asincrone) NON ha importanza

bull 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

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Si veda lo schema delle reti asincrone con la retroazione tramite FF RS in cui S=R

Reti Sequenziali Sincrone (RSS)

k (k)FFD

k

k FFD sullrsquoanello di retroazione Tutti con lo stesso clock di periodo T

S S S SCK

S

U

S

I

t t+T t+2Tt-TNel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

7

Il FFD come elemento fondamentale delle RSSSe allrsquoingresso 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 egrave contemporaneo a quelli clock (nel rispetto di setup e hold)

Qn+1 = Dn

D

CK

QT T T T

FFDD

CK

Q

Q

D

CK

Q

Q

8

NB il concetto di contemporaneitagrave potrebbe apparire in contrasto con la necessitagrave 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 porsquo 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+t

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti di salita del clock che si susseguono con periodo T

bull La rete risponde ogni T se si desidera massimizzare la velocitagrave di risposta della rArruscita egrave necessario adottare il modello di Mealy

bull La sequenza degli stati della rete egrave svincolata dai ritardi della rete combinatoria (purcheacute la distanza fra i fronti positivi del segnale clock sia superiore al massimo ritardo della rete combinatoria) Quindi nessun problema di corse critiche

bull Allrsquointerno di uno stesso progetto (ad esempio un processore) sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stesso eo coincide con il clock del processore

bull Le RSS sono piugrave facili da progettare delle RSA

9

Clock gating e glitch sul clockNelle reti sincrone egrave 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-10] eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

CK

P

CK_G

Glitch sul clock rarr possibile commutazione spuria del FFD

X

CK

Q

QFFD

D

CK

Q

QCK_GRete di Decodifica

I[n-10]P

t

NO

10

Naturalmente tutto dipende dalla larghezza dellrsquoimpulso spurio se molto stretto il FF potrebbe non sentirlo Quindi il clock gating non egrave proibito ma egrave un rischio da evitare in caso di incertezza

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 lrsquouscita Q assume al clock il valore di X altrimenti lrsquouscita Q copia seacute stessa e rimane invariata

Clock gating e glitch sul clock

X

CK

Q

QFFD

D

CK

Q

Q

I[n-10] P

t

01SEL

01SEL

Rete di Decodifica

Il clock gating oltre a generare potenziali glitch introduceldquoclock-skewrdquo (disallineamento) Ad esempio consideriamo due RSS soggette al FF1 e al FF2

Clock gating e clock-skew

CK

CK_GtAND tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND (in generale dalla eventuale RC) interposto Tale fenomeno (ldquoclock-skewrdquo) egrave 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 ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

I1

CK

B

BCK_GP

I2

CK

A

A

tAND

FFD-1D

CK

Q

QFFD-2

D

CK

Q

Q

12

13

Sincronizzazione degli ingressibull Finora si egrave dato implicitamente per scontato che gli ingressi di una rete sincrona commutino

in modo sincrono con il clock

bull Ciograve egrave 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

X0n

Z0m

y0k

Y0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Rete combinatoria

bull Nella realtagrave le cose stanno diversamente Si pensi al caso di pulsanti esterni che costituiscano lrsquo ingresso della rete Il cambiamento puograve avvenire in un istante qualsiasi

bull Nella rete di figura (Moore) le uscite sono comunque certamente sincronizzate con il clock e se gli ingressi X0n 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 egrave il medesimo che si avrebbe se gli ingressi fossero sincronizzati

14

Sincronizzazione degli ingressi

bull La cosa cambia perograve se la rete egrave di tipo Mealy

Rete combinatoria

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

bull In questo caso un cambiamento asincrono degli ingressi provoca in generale un cambiamento asincrono delle uscite

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 4: Reti Sincrone

4

Segnale di sincronismo

bull Il segnale di sincronismo viene sempre indicato con il nome di clock

bull Normalmente il segnale di clock egrave un segnale ripetitivo e cadenzato (questrsquoultima caratteristica pressocheacute sempre ma non necessariamente rispettata)

bull Un FF SR dotato di segnale di clock viene chiamato SR sincrono (che perograve NON egrave mai usato nella realtagrave)

bull Quali problemi vi sono con un segnale di clock come quello riportato in figura Lrsquoimpulso dovrebbe essere strettissimo dal momento che una rete combinatoria puograve 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 sincronibull Esistono molti FF di tipo sincrono ma oggi si usa UNICAMENTE il FF D il cui

comportamento egrave stato studiato come rete asincrona ma che qui viene utilizzato come FF sincrono (nella pratica nella sua versione 74xx74)

D Q

QCK D

bull Il FF D si chiama cosigrave percheacute D sta per Delay (ritardo) Infatti lrsquouscita Q segue lrsquoingresso D con un periodo T di ritardo (se il segnale di ingresso D egrave sincrono ndash 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

bull Il triangolo sul clock (CK) indica che egrave edge triggered ovvero che scatta sul fronte positivo del clock

D Q

QCK DPR

CL

I segnali CL e PR agiscono in modo asincrono ovvero immediatamente senza attendere il clock

6

Reti sequenziali sincrone

bull 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)

bull Ciograve che conta in questo caso egrave il fronte positivo del clock la distanza fra fronti positivi successivi (nel rispetto di setup e hold ndash v reti asincrone) NON ha importanza

bull 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

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Si veda lo schema delle reti asincrone con la retroazione tramite FF RS in cui S=R

Reti Sequenziali Sincrone (RSS)

k (k)FFD

k

k FFD sullrsquoanello di retroazione Tutti con lo stesso clock di periodo T

S S S SCK

S

U

S

I

t t+T t+2Tt-TNel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

7

Il FFD come elemento fondamentale delle RSSSe allrsquoingresso 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 egrave contemporaneo a quelli clock (nel rispetto di setup e hold)

Qn+1 = Dn

D

CK

QT T T T

FFDD

CK

Q

Q

D

CK

Q

Q

8

NB il concetto di contemporaneitagrave potrebbe apparire in contrasto con la necessitagrave 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 porsquo 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+t

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti di salita del clock che si susseguono con periodo T

bull La rete risponde ogni T se si desidera massimizzare la velocitagrave di risposta della rArruscita egrave necessario adottare il modello di Mealy

bull La sequenza degli stati della rete egrave svincolata dai ritardi della rete combinatoria (purcheacute la distanza fra i fronti positivi del segnale clock sia superiore al massimo ritardo della rete combinatoria) Quindi nessun problema di corse critiche

bull Allrsquointerno di uno stesso progetto (ad esempio un processore) sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stesso eo coincide con il clock del processore

bull Le RSS sono piugrave facili da progettare delle RSA

9

Clock gating e glitch sul clockNelle reti sincrone egrave 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-10] eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

CK

P

CK_G

Glitch sul clock rarr possibile commutazione spuria del FFD

X

CK

Q

QFFD

D

CK

Q

QCK_GRete di Decodifica

I[n-10]P

t

NO

10

Naturalmente tutto dipende dalla larghezza dellrsquoimpulso spurio se molto stretto il FF potrebbe non sentirlo Quindi il clock gating non egrave proibito ma egrave un rischio da evitare in caso di incertezza

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 lrsquouscita Q assume al clock il valore di X altrimenti lrsquouscita Q copia seacute stessa e rimane invariata

Clock gating e glitch sul clock

X

CK

Q

QFFD

D

CK

Q

Q

I[n-10] P

t

01SEL

01SEL

Rete di Decodifica

Il clock gating oltre a generare potenziali glitch introduceldquoclock-skewrdquo (disallineamento) Ad esempio consideriamo due RSS soggette al FF1 e al FF2

Clock gating e clock-skew

CK

CK_GtAND tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND (in generale dalla eventuale RC) interposto Tale fenomeno (ldquoclock-skewrdquo) egrave 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 ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

I1

CK

B

BCK_GP

I2

CK

A

A

tAND

FFD-1D

CK

Q

QFFD-2

D

CK

Q

Q

12

13

Sincronizzazione degli ingressibull Finora si egrave dato implicitamente per scontato che gli ingressi di una rete sincrona commutino

in modo sincrono con il clock

bull Ciograve egrave 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

X0n

Z0m

y0k

Y0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Rete combinatoria

bull Nella realtagrave le cose stanno diversamente Si pensi al caso di pulsanti esterni che costituiscano lrsquo ingresso della rete Il cambiamento puograve avvenire in un istante qualsiasi

bull Nella rete di figura (Moore) le uscite sono comunque certamente sincronizzate con il clock e se gli ingressi X0n 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 egrave il medesimo che si avrebbe se gli ingressi fossero sincronizzati

14

Sincronizzazione degli ingressi

bull La cosa cambia perograve se la rete egrave di tipo Mealy

Rete combinatoria

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

bull In questo caso un cambiamento asincrono degli ingressi provoca in generale un cambiamento asincrono delle uscite

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 5: Reti Sincrone

5

I FF sincronibull Esistono molti FF di tipo sincrono ma oggi si usa UNICAMENTE il FF D il cui

comportamento egrave stato studiato come rete asincrona ma che qui viene utilizzato come FF sincrono (nella pratica nella sua versione 74xx74)

D Q

QCK D

bull Il FF D si chiama cosigrave percheacute D sta per Delay (ritardo) Infatti lrsquouscita Q segue lrsquoingresso D con un periodo T di ritardo (se il segnale di ingresso D egrave sincrono ndash 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

bull Il triangolo sul clock (CK) indica che egrave edge triggered ovvero che scatta sul fronte positivo del clock

D Q

QCK DPR

CL

I segnali CL e PR agiscono in modo asincrono ovvero immediatamente senza attendere il clock

6

Reti sequenziali sincrone

bull 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)

bull Ciograve che conta in questo caso egrave il fronte positivo del clock la distanza fra fronti positivi successivi (nel rispetto di setup e hold ndash v reti asincrone) NON ha importanza

bull 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

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Si veda lo schema delle reti asincrone con la retroazione tramite FF RS in cui S=R

Reti Sequenziali Sincrone (RSS)

k (k)FFD

k

k FFD sullrsquoanello di retroazione Tutti con lo stesso clock di periodo T

S S S SCK

S

U

S

I

t t+T t+2Tt-TNel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

7

Il FFD come elemento fondamentale delle RSSSe allrsquoingresso 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 egrave contemporaneo a quelli clock (nel rispetto di setup e hold)

Qn+1 = Dn

D

CK

QT T T T

FFDD

CK

Q

Q

D

CK

Q

Q

8

NB il concetto di contemporaneitagrave potrebbe apparire in contrasto con la necessitagrave 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 porsquo 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+t

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti di salita del clock che si susseguono con periodo T

bull La rete risponde ogni T se si desidera massimizzare la velocitagrave di risposta della rArruscita egrave necessario adottare il modello di Mealy

bull La sequenza degli stati della rete egrave svincolata dai ritardi della rete combinatoria (purcheacute la distanza fra i fronti positivi del segnale clock sia superiore al massimo ritardo della rete combinatoria) Quindi nessun problema di corse critiche

bull Allrsquointerno di uno stesso progetto (ad esempio un processore) sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stesso eo coincide con il clock del processore

bull Le RSS sono piugrave facili da progettare delle RSA

9

Clock gating e glitch sul clockNelle reti sincrone egrave 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-10] eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

CK

P

CK_G

Glitch sul clock rarr possibile commutazione spuria del FFD

X

CK

Q

QFFD

D

CK

Q

QCK_GRete di Decodifica

I[n-10]P

t

NO

10

Naturalmente tutto dipende dalla larghezza dellrsquoimpulso spurio se molto stretto il FF potrebbe non sentirlo Quindi il clock gating non egrave proibito ma egrave un rischio da evitare in caso di incertezza

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 lrsquouscita Q assume al clock il valore di X altrimenti lrsquouscita Q copia seacute stessa e rimane invariata

Clock gating e glitch sul clock

X

CK

Q

QFFD

D

CK

Q

Q

I[n-10] P

t

01SEL

01SEL

Rete di Decodifica

Il clock gating oltre a generare potenziali glitch introduceldquoclock-skewrdquo (disallineamento) Ad esempio consideriamo due RSS soggette al FF1 e al FF2

Clock gating e clock-skew

CK

CK_GtAND tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND (in generale dalla eventuale RC) interposto Tale fenomeno (ldquoclock-skewrdquo) egrave 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 ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

I1

CK

B

BCK_GP

I2

CK

A

A

tAND

FFD-1D

CK

Q

QFFD-2

D

CK

Q

Q

12

13

Sincronizzazione degli ingressibull Finora si egrave dato implicitamente per scontato che gli ingressi di una rete sincrona commutino

in modo sincrono con il clock

bull Ciograve egrave 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

X0n

Z0m

y0k

Y0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Rete combinatoria

bull Nella realtagrave le cose stanno diversamente Si pensi al caso di pulsanti esterni che costituiscano lrsquo ingresso della rete Il cambiamento puograve avvenire in un istante qualsiasi

bull Nella rete di figura (Moore) le uscite sono comunque certamente sincronizzate con il clock e se gli ingressi X0n 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 egrave il medesimo che si avrebbe se gli ingressi fossero sincronizzati

14

Sincronizzazione degli ingressi

bull La cosa cambia perograve se la rete egrave di tipo Mealy

Rete combinatoria

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

bull In questo caso un cambiamento asincrono degli ingressi provoca in generale un cambiamento asincrono delle uscite

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 6: Reti Sincrone

6

Reti sequenziali sincrone

bull 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)

bull Ciograve che conta in questo caso egrave il fronte positivo del clock la distanza fra fronti positivi successivi (nel rispetto di setup e hold ndash v reti asincrone) NON ha importanza

bull 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

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Si veda lo schema delle reti asincrone con la retroazione tramite FF RS in cui S=R

Reti Sequenziali Sincrone (RSS)

k (k)FFD

k

k FFD sullrsquoanello di retroazione Tutti con lo stesso clock di periodo T

S S S SCK

S

U

S

I

t t+T t+2Tt-TNel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

7

Il FFD come elemento fondamentale delle RSSSe allrsquoingresso 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 egrave contemporaneo a quelli clock (nel rispetto di setup e hold)

Qn+1 = Dn

D

CK

QT T T T

FFDD

CK

Q

Q

D

CK

Q

Q

8

NB il concetto di contemporaneitagrave potrebbe apparire in contrasto con la necessitagrave 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 porsquo 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+t

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti di salita del clock che si susseguono con periodo T

bull La rete risponde ogni T se si desidera massimizzare la velocitagrave di risposta della rArruscita egrave necessario adottare il modello di Mealy

bull La sequenza degli stati della rete egrave svincolata dai ritardi della rete combinatoria (purcheacute la distanza fra i fronti positivi del segnale clock sia superiore al massimo ritardo della rete combinatoria) Quindi nessun problema di corse critiche

bull Allrsquointerno di uno stesso progetto (ad esempio un processore) sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stesso eo coincide con il clock del processore

bull Le RSS sono piugrave facili da progettare delle RSA

9

Clock gating e glitch sul clockNelle reti sincrone egrave 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-10] eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

CK

P

CK_G

Glitch sul clock rarr possibile commutazione spuria del FFD

X

CK

Q

QFFD

D

CK

Q

QCK_GRete di Decodifica

I[n-10]P

t

NO

10

Naturalmente tutto dipende dalla larghezza dellrsquoimpulso spurio se molto stretto il FF potrebbe non sentirlo Quindi il clock gating non egrave proibito ma egrave un rischio da evitare in caso di incertezza

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 lrsquouscita Q assume al clock il valore di X altrimenti lrsquouscita Q copia seacute stessa e rimane invariata

Clock gating e glitch sul clock

X

CK

Q

QFFD

D

CK

Q

Q

I[n-10] P

t

01SEL

01SEL

Rete di Decodifica

Il clock gating oltre a generare potenziali glitch introduceldquoclock-skewrdquo (disallineamento) Ad esempio consideriamo due RSS soggette al FF1 e al FF2

Clock gating e clock-skew

CK

CK_GtAND tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND (in generale dalla eventuale RC) interposto Tale fenomeno (ldquoclock-skewrdquo) egrave 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 ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

I1

CK

B

BCK_GP

I2

CK

A

A

tAND

FFD-1D

CK

Q

QFFD-2

D

CK

Q

Q

12

13

Sincronizzazione degli ingressibull Finora si egrave dato implicitamente per scontato che gli ingressi di una rete sincrona commutino

in modo sincrono con il clock

bull Ciograve egrave 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

X0n

Z0m

y0k

Y0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Rete combinatoria

bull Nella realtagrave le cose stanno diversamente Si pensi al caso di pulsanti esterni che costituiscano lrsquo ingresso della rete Il cambiamento puograve avvenire in un istante qualsiasi

bull Nella rete di figura (Moore) le uscite sono comunque certamente sincronizzate con il clock e se gli ingressi X0n 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 egrave il medesimo che si avrebbe se gli ingressi fossero sincronizzati

14

Sincronizzazione degli ingressi

bull La cosa cambia perograve se la rete egrave di tipo Mealy

Rete combinatoria

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

bull In questo caso un cambiamento asincrono degli ingressi provoca in generale un cambiamento asincrono delle uscite

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 7: Reti Sincrone

Reti Sequenziali Sincrone (RSS)

k (k)FFD

k

k FFD sullrsquoanello di retroazione Tutti con lo stesso clock di periodo T

S S S SCK

S

U

S

I

t t+T t+2Tt-TNel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

7

Il FFD come elemento fondamentale delle RSSSe allrsquoingresso 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 egrave contemporaneo a quelli clock (nel rispetto di setup e hold)

Qn+1 = Dn

D

CK

QT T T T

FFDD

CK

Q

Q

D

CK

Q

Q

8

NB il concetto di contemporaneitagrave potrebbe apparire in contrasto con la necessitagrave 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 porsquo 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+t

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti di salita del clock che si susseguono con periodo T

bull La rete risponde ogni T se si desidera massimizzare la velocitagrave di risposta della rArruscita egrave necessario adottare il modello di Mealy

bull La sequenza degli stati della rete egrave svincolata dai ritardi della rete combinatoria (purcheacute la distanza fra i fronti positivi del segnale clock sia superiore al massimo ritardo della rete combinatoria) Quindi nessun problema di corse critiche

bull Allrsquointerno di uno stesso progetto (ad esempio un processore) sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stesso eo coincide con il clock del processore

bull Le RSS sono piugrave facili da progettare delle RSA

9

Clock gating e glitch sul clockNelle reti sincrone egrave 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-10] eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

CK

P

CK_G

Glitch sul clock rarr possibile commutazione spuria del FFD

X

CK

Q

QFFD

D

CK

Q

QCK_GRete di Decodifica

I[n-10]P

t

NO

10

Naturalmente tutto dipende dalla larghezza dellrsquoimpulso spurio se molto stretto il FF potrebbe non sentirlo Quindi il clock gating non egrave proibito ma egrave un rischio da evitare in caso di incertezza

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 lrsquouscita Q assume al clock il valore di X altrimenti lrsquouscita Q copia seacute stessa e rimane invariata

Clock gating e glitch sul clock

X

CK

Q

QFFD

D

CK

Q

Q

I[n-10] P

t

01SEL

01SEL

Rete di Decodifica

Il clock gating oltre a generare potenziali glitch introduceldquoclock-skewrdquo (disallineamento) Ad esempio consideriamo due RSS soggette al FF1 e al FF2

Clock gating e clock-skew

CK

CK_GtAND tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND (in generale dalla eventuale RC) interposto Tale fenomeno (ldquoclock-skewrdquo) egrave 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 ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

I1

CK

B

BCK_GP

I2

CK

A

A

tAND

FFD-1D

CK

Q

QFFD-2

D

CK

Q

Q

12

13

Sincronizzazione degli ingressibull Finora si egrave dato implicitamente per scontato che gli ingressi di una rete sincrona commutino

in modo sincrono con il clock

bull Ciograve egrave 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

X0n

Z0m

y0k

Y0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Rete combinatoria

bull Nella realtagrave le cose stanno diversamente Si pensi al caso di pulsanti esterni che costituiscano lrsquo ingresso della rete Il cambiamento puograve avvenire in un istante qualsiasi

bull Nella rete di figura (Moore) le uscite sono comunque certamente sincronizzate con il clock e se gli ingressi X0n 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 egrave il medesimo che si avrebbe se gli ingressi fossero sincronizzati

14

Sincronizzazione degli ingressi

bull La cosa cambia perograve se la rete egrave di tipo Mealy

Rete combinatoria

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

bull In questo caso un cambiamento asincrono degli ingressi provoca in generale un cambiamento asincrono delle uscite

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 8: Reti Sincrone

Il FFD come elemento fondamentale delle RSSSe allrsquoingresso 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 egrave contemporaneo a quelli clock (nel rispetto di setup e hold)

Qn+1 = Dn

D

CK

QT T T T

FFDD

CK

Q

Q

D

CK

Q

Q

8

NB il concetto di contemporaneitagrave potrebbe apparire in contrasto con la necessitagrave 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 porsquo 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+t

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti di salita del clock che si susseguono con periodo T

bull La rete risponde ogni T se si desidera massimizzare la velocitagrave di risposta della rArruscita egrave necessario adottare il modello di Mealy

bull La sequenza degli stati della rete egrave svincolata dai ritardi della rete combinatoria (purcheacute la distanza fra i fronti positivi del segnale clock sia superiore al massimo ritardo della rete combinatoria) Quindi nessun problema di corse critiche

bull Allrsquointerno di uno stesso progetto (ad esempio un processore) sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stesso eo coincide con il clock del processore

bull Le RSS sono piugrave facili da progettare delle RSA

9

Clock gating e glitch sul clockNelle reti sincrone egrave 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-10] eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

CK

P

CK_G

Glitch sul clock rarr possibile commutazione spuria del FFD

X

CK

Q

QFFD

D

CK

Q

QCK_GRete di Decodifica

I[n-10]P

t

NO

10

Naturalmente tutto dipende dalla larghezza dellrsquoimpulso spurio se molto stretto il FF potrebbe non sentirlo Quindi il clock gating non egrave proibito ma egrave un rischio da evitare in caso di incertezza

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 lrsquouscita Q assume al clock il valore di X altrimenti lrsquouscita Q copia seacute stessa e rimane invariata

Clock gating e glitch sul clock

X

CK

Q

QFFD

D

CK

Q

Q

I[n-10] P

t

01SEL

01SEL

Rete di Decodifica

Il clock gating oltre a generare potenziali glitch introduceldquoclock-skewrdquo (disallineamento) Ad esempio consideriamo due RSS soggette al FF1 e al FF2

Clock gating e clock-skew

CK

CK_GtAND tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND (in generale dalla eventuale RC) interposto Tale fenomeno (ldquoclock-skewrdquo) egrave 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 ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

I1

CK

B

BCK_GP

I2

CK

A

A

tAND

FFD-1D

CK

Q

QFFD-2

D

CK

Q

Q

12

13

Sincronizzazione degli ingressibull Finora si egrave dato implicitamente per scontato che gli ingressi di una rete sincrona commutino

in modo sincrono con il clock

bull Ciograve egrave 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

X0n

Z0m

y0k

Y0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Rete combinatoria

bull Nella realtagrave le cose stanno diversamente Si pensi al caso di pulsanti esterni che costituiscano lrsquo ingresso della rete Il cambiamento puograve avvenire in un istante qualsiasi

bull Nella rete di figura (Moore) le uscite sono comunque certamente sincronizzate con il clock e se gli ingressi X0n 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 egrave il medesimo che si avrebbe se gli ingressi fossero sincronizzati

14

Sincronizzazione degli ingressi

bull La cosa cambia perograve se la rete egrave di tipo Mealy

Rete combinatoria

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

bull In questo caso un cambiamento asincrono degli ingressi provoca in generale un cambiamento asincrono delle uscite

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 9: Reti Sincrone

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti di salita del clock che si susseguono con periodo T

bull La rete risponde ogni T se si desidera massimizzare la velocitagrave di risposta della rArruscita egrave necessario adottare il modello di Mealy

bull La sequenza degli stati della rete egrave svincolata dai ritardi della rete combinatoria (purcheacute la distanza fra i fronti positivi del segnale clock sia superiore al massimo ritardo della rete combinatoria) Quindi nessun problema di corse critiche

bull Allrsquointerno di uno stesso progetto (ad esempio un processore) sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stesso eo coincide con il clock del processore

bull Le RSS sono piugrave facili da progettare delle RSA

9

Clock gating e glitch sul clockNelle reti sincrone egrave 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-10] eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

CK

P

CK_G

Glitch sul clock rarr possibile commutazione spuria del FFD

X

CK

Q

QFFD

D

CK

Q

QCK_GRete di Decodifica

I[n-10]P

t

NO

10

Naturalmente tutto dipende dalla larghezza dellrsquoimpulso spurio se molto stretto il FF potrebbe non sentirlo Quindi il clock gating non egrave proibito ma egrave un rischio da evitare in caso di incertezza

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 lrsquouscita Q assume al clock il valore di X altrimenti lrsquouscita Q copia seacute stessa e rimane invariata

Clock gating e glitch sul clock

X

CK

Q

QFFD

D

CK

Q

Q

I[n-10] P

t

01SEL

01SEL

Rete di Decodifica

Il clock gating oltre a generare potenziali glitch introduceldquoclock-skewrdquo (disallineamento) Ad esempio consideriamo due RSS soggette al FF1 e al FF2

Clock gating e clock-skew

CK

CK_GtAND tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND (in generale dalla eventuale RC) interposto Tale fenomeno (ldquoclock-skewrdquo) egrave 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 ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

I1

CK

B

BCK_GP

I2

CK

A

A

tAND

FFD-1D

CK

Q

QFFD-2

D

CK

Q

Q

12

13

Sincronizzazione degli ingressibull Finora si egrave dato implicitamente per scontato che gli ingressi di una rete sincrona commutino

in modo sincrono con il clock

bull Ciograve egrave 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

X0n

Z0m

y0k

Y0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Rete combinatoria

bull Nella realtagrave le cose stanno diversamente Si pensi al caso di pulsanti esterni che costituiscano lrsquo ingresso della rete Il cambiamento puograve avvenire in un istante qualsiasi

bull Nella rete di figura (Moore) le uscite sono comunque certamente sincronizzate con il clock e se gli ingressi X0n 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 egrave il medesimo che si avrebbe se gli ingressi fossero sincronizzati

14

Sincronizzazione degli ingressi

bull La cosa cambia perograve se la rete egrave di tipo Mealy

Rete combinatoria

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

bull In questo caso un cambiamento asincrono degli ingressi provoca in generale un cambiamento asincrono delle uscite

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 10: Reti Sincrone

Clock gating e glitch sul clockNelle reti sincrone egrave 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-10] eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

CK

P

CK_G

Glitch sul clock rarr possibile commutazione spuria del FFD

X

CK

Q

QFFD

D

CK

Q

QCK_GRete di Decodifica

I[n-10]P

t

NO

10

Naturalmente tutto dipende dalla larghezza dellrsquoimpulso spurio se molto stretto il FF potrebbe non sentirlo Quindi il clock gating non egrave proibito ma egrave un rischio da evitare in caso di incertezza

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 lrsquouscita Q assume al clock il valore di X altrimenti lrsquouscita Q copia seacute stessa e rimane invariata

Clock gating e glitch sul clock

X

CK

Q

QFFD

D

CK

Q

Q

I[n-10] P

t

01SEL

01SEL

Rete di Decodifica

Il clock gating oltre a generare potenziali glitch introduceldquoclock-skewrdquo (disallineamento) Ad esempio consideriamo due RSS soggette al FF1 e al FF2

Clock gating e clock-skew

CK

CK_GtAND tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND (in generale dalla eventuale RC) interposto Tale fenomeno (ldquoclock-skewrdquo) egrave 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 ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

I1

CK

B

BCK_GP

I2

CK

A

A

tAND

FFD-1D

CK

Q

QFFD-2

D

CK

Q

Q

12

13

Sincronizzazione degli ingressibull Finora si egrave dato implicitamente per scontato che gli ingressi di una rete sincrona commutino

in modo sincrono con il clock

bull Ciograve egrave 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

X0n

Z0m

y0k

Y0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Rete combinatoria

bull Nella realtagrave le cose stanno diversamente Si pensi al caso di pulsanti esterni che costituiscano lrsquo ingresso della rete Il cambiamento puograve avvenire in un istante qualsiasi

bull Nella rete di figura (Moore) le uscite sono comunque certamente sincronizzate con il clock e se gli ingressi X0n 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 egrave il medesimo che si avrebbe se gli ingressi fossero sincronizzati

14

Sincronizzazione degli ingressi

bull La cosa cambia perograve se la rete egrave di tipo Mealy

Rete combinatoria

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

bull In questo caso un cambiamento asincrono degli ingressi provoca in generale un cambiamento asincrono delle uscite

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 11: Reti Sincrone

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 lrsquouscita Q assume al clock il valore di X altrimenti lrsquouscita Q copia seacute stessa e rimane invariata

Clock gating e glitch sul clock

X

CK

Q

QFFD

D

CK

Q

Q

I[n-10] P

t

01SEL

01SEL

Rete di Decodifica

Il clock gating oltre a generare potenziali glitch introduceldquoclock-skewrdquo (disallineamento) Ad esempio consideriamo due RSS soggette al FF1 e al FF2

Clock gating e clock-skew

CK

CK_GtAND tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND (in generale dalla eventuale RC) interposto Tale fenomeno (ldquoclock-skewrdquo) egrave 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 ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

I1

CK

B

BCK_GP

I2

CK

A

A

tAND

FFD-1D

CK

Q

QFFD-2

D

CK

Q

Q

12

13

Sincronizzazione degli ingressibull Finora si egrave dato implicitamente per scontato che gli ingressi di una rete sincrona commutino

in modo sincrono con il clock

bull Ciograve egrave 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

X0n

Z0m

y0k

Y0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Rete combinatoria

bull Nella realtagrave le cose stanno diversamente Si pensi al caso di pulsanti esterni che costituiscano lrsquo ingresso della rete Il cambiamento puograve avvenire in un istante qualsiasi

bull Nella rete di figura (Moore) le uscite sono comunque certamente sincronizzate con il clock e se gli ingressi X0n 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 egrave il medesimo che si avrebbe se gli ingressi fossero sincronizzati

14

Sincronizzazione degli ingressi

bull La cosa cambia perograve se la rete egrave di tipo Mealy

Rete combinatoria

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

bull In questo caso un cambiamento asincrono degli ingressi provoca in generale un cambiamento asincrono delle uscite

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 12: Reti Sincrone

Il clock gating oltre a generare potenziali glitch introduceldquoclock-skewrdquo (disallineamento) Ad esempio consideriamo due RSS soggette al FF1 e al FF2

Clock gating e clock-skew

CK

CK_GtAND tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND (in generale dalla eventuale RC) interposto Tale fenomeno (ldquoclock-skewrdquo) egrave 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 ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

I1

CK

B

BCK_GP

I2

CK

A

A

tAND

FFD-1D

CK

Q

QFFD-2

D

CK

Q

Q

12

13

Sincronizzazione degli ingressibull Finora si egrave dato implicitamente per scontato che gli ingressi di una rete sincrona commutino

in modo sincrono con il clock

bull Ciograve egrave 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

X0n

Z0m

y0k

Y0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Rete combinatoria

bull Nella realtagrave le cose stanno diversamente Si pensi al caso di pulsanti esterni che costituiscano lrsquo ingresso della rete Il cambiamento puograve avvenire in un istante qualsiasi

bull Nella rete di figura (Moore) le uscite sono comunque certamente sincronizzate con il clock e se gli ingressi X0n 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 egrave il medesimo che si avrebbe se gli ingressi fossero sincronizzati

14

Sincronizzazione degli ingressi

bull La cosa cambia perograve se la rete egrave di tipo Mealy

Rete combinatoria

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

bull In questo caso un cambiamento asincrono degli ingressi provoca in generale un cambiamento asincrono delle uscite

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 13: Reti Sincrone

13

Sincronizzazione degli ingressibull Finora si egrave dato implicitamente per scontato che gli ingressi di una rete sincrona commutino

in modo sincrono con il clock

bull Ciograve egrave 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

X0n

Z0m

y0k

Y0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

Rete combinatoria

bull Nella realtagrave le cose stanno diversamente Si pensi al caso di pulsanti esterni che costituiscano lrsquo ingresso della rete Il cambiamento puograve avvenire in un istante qualsiasi

bull Nella rete di figura (Moore) le uscite sono comunque certamente sincronizzate con il clock e se gli ingressi X0n 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 egrave il medesimo che si avrebbe se gli ingressi fossero sincronizzati

14

Sincronizzazione degli ingressi

bull La cosa cambia perograve se la rete egrave di tipo Mealy

Rete combinatoria

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

bull In questo caso un cambiamento asincrono degli ingressi provoca in generale un cambiamento asincrono delle uscite

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 14: Reti Sincrone

14

Sincronizzazione degli ingressi

bull La cosa cambia perograve se la rete egrave di tipo Mealy

Rete combinatoria

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k CK

bull In questo caso un cambiamento asincrono degli ingressi provoca in generale un cambiamento asincrono delle uscite

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 15: Reti Sincrone

15

Esempio la cassaforte (dotata di una doppia tastiera - due ingressi) si apre solo se gli ingressi hanno assunto NEL TEMPO le configurazioni

00-01-01-10 Ogni violazione della sequenza riporta il sistema nello stato iniziale NB Essendo gli ingressi campionati la sequenza di ingresso 01-01 egrave possibile e significativa

hellip Cassaforte hellip sincrona hellip

NB si puograve supporre che gli ingressi cambino allo stesso istante delle variabili di stato ma la cosa non egrave necessaria Se la rete egrave di tipo Moore anche se gli ingressi cambiano a metagrave di un periodo di clock il comportamento dal punto di vista degli stati e quindi delle uscite egrave assolutamente lo stesso (ogni variazione egrave rilevata solo alla fine del periodo)

E11101

0111

11

F0

01

01

G0

0000

11 00

11

11

10

1001

10

00

10 0110

01

01

00

Per ogni stato tutte le combinazioni di ingresso

00

10

10

11

C0A0 B0 D0

Gli stati NON sono stabili per gli ingressi che li hanno provocati

00

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 16: Reti Sincrone

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

A0 B0 C0 E10011

01

10

0111

11

11

D0 10

F0

01

01

G0

0000

00

00

11

11

10

1001

1010 0110

01

11

00

Cassaforte sincrona

16

01

NB in questo esempio non vi sono condizioni di indifferenza Anzicheacute 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 puograve evidenziare che alcune combinazioni di ingresso per alcuni stati non si presentano In questo caso si ritorna al concetto di compatibilitagrave

00

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 17: Reti Sincrone

17

Cassaforte sincrona

Classi di equivalenza [AFG] =gt a[B] =gt b[C] =gt g[D] =gt d[E] =gt e

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B

C

D

E

F

G

A B C D E F

CF

FD CD

CFGE

CFGE

DFGE

--- CF DF GE

--- C F DF GE --

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1 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

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 18: Reti Sincrone

18

b

00 01 11 10

a a aa

b g a ab

b d a ag

b a a ed

b a a ae

X1X2

0

0

0

0

1

Cassaforte sincrona

001

00 01 11 10

000 000 000000

001 011 000 000001

001 010 000 000011

001 000 000 100010

001 000 000 000100

X1X2

-- -- -- --101

-- -- -- --111

-- -- -- --110

0

0

0

0

1

--

--

--

Y1Y2 Y3

a =gt 000b =gt 001g =gt 011d =gt 010e =gt 100

D1= X1X2Y2Y3

D2=X1X2Y3

D3=X1X2+X1Y2Y3 Z =Y1

Sintetizzando con FFD la sintesi degli ingressi Di si ottiene sintetizzando le funzioni Yi (Yn+1=Dn)

Nessun problema di corse codifica libera (possibilmente ottima)

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 19: Reti Sincrone

19

Sintesi

Direttorio cassaforte sincrona

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 20: Reti Sincrone

20

00 01 01 10

Sintesi ndash simulazione funzionale

NB Gli ingressi cambiano in modo NON sincrono con il clock ma lrsquo uscita egrave sincrona essendo la rete di tipo Moore

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 21: Reti Sincrone

21

Sintesi ndash simulazione timing

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 piugrave correttamente

d

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 22: Reti Sincrone

22

E con Mealy

B

00 01 11 10

F A GA

B C A GB

B D A GCB F A ED

B F A GE

B F AA- GF

B F A GG

0

0

0

0

1

0

0

X1X2

B0

00 01 11 10

F0 A0 G0A

B0 C0 A0 G0B

B0 D0 A0 G0CB0 F0 A0 E1D

B1 F1 A1 G1E

B0 F0 A0A-G0F

B0 F0 A0 G0G

X1X2

Potrei mettere una indifferenza sullrsquouscita Si si possono mettere indifferenze sulle uscite che cambiano Anticipazione o ritardo del cambiamento

Sintetizzare e simulare con Altera

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 23: Reti Sincrone

23

bull Allrsquoesame orale egrave necessario portare un esercizio di reti sincrone e uno di reti asincrone NON ldquomutuatordquo da altri hellip

bull I due esercizi debbono essere portati su una chiavetta (o dispositivo equivalente) debbono contenere una spiegazione e anche la progettazionesimulazione con Altera

bull Il candidato deve dimostrare di sapere usare il sistema Altera e spiegare i progetti portati

bull Gli esercizi di reti sincrone hanno spesso il diagramma degli stati ma solo per verificahellip

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 24: Reti Sincrone

Monoimpulsore A

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z1

D

Clock

Clock

D

Z

Q1

Q2

Qui lrsquoingresso asincrono D egrave 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 lrsquoingresso torna a 1 dopo essere stato a 0 Lrsquouscita deve essere sincronizzata con il clock

24

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 25: Reti Sincrone

25

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z

D

Clock

Monoimpulsore A

1

0

1

1

0

A0 B1

C0

0

A

A

A

-

B

C

C

-

DQ2

Q1

B

0 1

C

-

Z0

0

1

-

A 00

--

00

00

10

--

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

-

1

0000

10

11

01

B

C

-

A

Q1=D Q2= DQ1 Z=Q1Q2

00

00

01

01

10

10

11

11

DQ2

Q1

01

0 1

11

10

Z0

0

0

1

00

MAhellip

Q1=D Q2= Q1 Z=Q1Q2

Moore necessariamente

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 26: Reti Sincrone

26

D1 Q1

Q1CKFFD

D2 Q2

Q2CKFFD Z2

D

Clock

Monoimpulsore B

Clock

D

Z2

Q1

Q2

Lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincrona

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 27: Reti Sincrone

27

D Q

QCKFFD Z

D

Clock

Monoimpulsore C

Clock

D

Z

Q

Anche qui lrsquoingresso asincrono D agisce direttamente sullrsquouscita Z che quindi risulta asincronaSi noti che se lrsquoingresso oscilla una volta che il FF ha campionato un 1 e fino a quando non campiona uno 0 lrsquouscita oscilla

Qui la rete egrave di tipo Mealy e quindi con ingresso asincrono egrave possibile che vi sia uscita asincrona

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 28: Reti Sincrone

28

Considerazioni sui monoimpulsori A B e C

Il diagramma degli stati corrispondente al funzionamento reale dei due monoimpulsori B e C NON puograve essere tracciato percheacute 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 lrsquoingresso asincrono lrsquouscita (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 puograve essere tracciato solo partendo da una analisi asincrona ldquoaprendordquo quindi i FF D inseriti Ovviamente egrave possibile progettare le due reti senza lrsquouso dei FF D partendo da un diagramma degli stati asincrono ldquotradizionalerdquo

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

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 29: Reti Sincrone

29

Monoimpulsori A-B-C

30

31

Contatori

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 30: Reti Sincrone

30

31

Contatori

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 31: Reti Sincrone

31

Contatori

A B C D Z

Circuiti senza ingresso (a parte il clock) nella versione piugrave semplice

D0 Q0

Q0CKFFD

MUX

1

0D1 Q1

Q1CKFFD

(Il clock egrave spesso sottinteso nei circuiti sincroni)

U0 U1

Esempio contatore binario x 4 con decodifica del 3

000 010 100 111

OUT

Q1 cambia stato quando Q0 egrave a 1 e passa a 0

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 32: Reti Sincrone

CK

u1

u0

OUT (0) (1) (2) (0) (1) (2)(3) (3)

Contatore x 4 con decodifica del 3

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 33: Reti Sincrone

33

Contatori binari in base non potenza di 2

A B C D E

000 001 010 011 100Contatore

binario per 5

D0 Q0

Q0CKFFD

MUX

1

0 1D1 Q1

Q1CKFFD

MUX

1

0D Q2

Q2CKFFD

Questo conta x8 ma per contare x5 arrivati a 4 bisogna ritornare a 0

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 34: Reti Sincrone

34

D0 Q0

Q0CKFFD D1 Q1

Q1CKFFD

MUX

1

0 D2 Q2

Q2CKFFD

MUX

1

0

ABC

ldquo4rdquo

Contatore x 5

Decoder

La decodifica del 4 porta a zero lrsquouscita del decodificatore e quindi a 0 tutte le uscite degli AND rosa e al successivo fronte positivo del clock i tre FF campionano uno ldquo0rdquo

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

ldquo3rdquo

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 35: Reti Sincrone

35

Contatori con ingressi di controllo

Ex Contatore integrato x 16 con Load e Enable

bull Il contatore conta per 16 (0-15) se il segnale EN egrave a 1 Allorchegrave il segnale LD va a 1 il dato presente sugli ingressi D egrave inserito nei 4 FF (lrsquoingresso puograve essere sincrono o asincrono) Nel caso precedente il decodificatore del ldquo3rdquo (uscita vera va portato) allrsquoingresso LD con tutti i Di a zero

bull In generale il contatore fornisce anche unrsquouscita ldquocarryrdquo che va a 1 quando il contatore raggiunge il valore FF Questa uscita puograve essere connessa allrsquoenable di un contatore a valle per ottenere un contatore per 256 cosigrave via (Progettarlo come esercizio)

EN

Q0 Q1 Q2 Q3CKLD

D0 D1 D2 D3

EN

Q0 Q1 Q2 Q3CK

CYLD

D0 D1 D2 D3

bull Esistono contatori UPDOWN nei quali un ingresso (UD) seleziona se il conteggio deve avvenire avanti o indietro Nel caso sia selezionata la modalitagrave ldquoindietrordquo il carry si attiva quando si raggiunge il valore ldquotutti zerirdquo

bull Esiste una molteplicitagrave di contatori ciascuno con le proprie specifiche peculiaritagrave con o senza RESET (che normalmente agisce in modo asincrono) UD con o senza LD etc etc

NB qualunque circuito sincrono (con sequenza non binaria) riconducibile al diagramma degli stati di un contatore egrave sempre un contatore

101 010 000 111 110 Contatore x 5 non binario

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 36: Reti Sincrone

36

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 38 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

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 37: Reti Sincrone

37

Glitch

Simulazione timingNB 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 egrave realizzato il circuito Analogamente la sensibilitagrave di eventuali ingressi di clock collegati allrsquouscita con il glitch dipende dalle caratteristiche del dispositivo Se ad esempio nel dispositivo Altera utilizzato si collega allrsquouscita Y6 il clock di un FFD non si ha commutazione del FF ma questo non egrave vero in assoluto

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 38: Reti Sincrone

38

Cosa succede al contatore X5 progettato precedentemente se allrsquoaccensione non disponendo di un segnale di RESET i FF si portano in uno stato non facente parte del cicloNB La condizione allrsquoaccensione egrave del tutto casuale e dipende unicamente dalle condizioni elettriche

di realizzazione Ersquo impredicibileSupponiamo che i FF si portino al valore 110 (il numero 6 fuori dal ciclo) Analizziamo il comportamento

D0 Q0Q0CK

FFD D1 Q1Q1CK

FFD

MUX

1

0 D2 Q2Q2CK

FFD

MUX

1

0

ABC

ldquo4rdquo

000 001 010 011 100 110 111

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

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 39: Reti Sincrone

39

Solo come esempio (da non utilizzare ) a scopo didattico vediamo la tabella delle transizioni di un contatore per 6 UpDown con comando di Reset I segnali di ingresso cambiano in modo asincrono ma hanno effetto in modo sincrono

Per compensare allrsquoaccensione

Sintetizzare e simulareCome dovrebbe essere modificato lo schema in Altera per permettere di

ldquopresettarerdquo in modo asincrono il contatore a un particolare valore di ingresso

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

111

110

000 101

000

101

y3 y2 y100 01 11 10

UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 40: Reti Sincrone

40

D0Q0

CKFFD

Clocky2

DEC

y3

y2

y1

ldquo1rdquo

ldquo2rdquo

ldquo3rdquo

ldquo4rdquo

1

0

UPDown

Sintesi di y2 in modo ldquodirettordquo

1

0

00 01 11 10UpDown Res

000000

000 000 000001

010 000011

001 000 000 011010

000 001

010

000 100

011 000100

100 000 000101

000 000111

000 000 000 000110

000 101

000

000 000

101

y3 y2 y1

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 41: Reti Sincrone

41

Cassaforte hellipDisponendo 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 X1X2 00-01-01-10) con modello Moore

Cx8RES

Q0 Q1 Q2 CK

RES= (ldquo0rdquoX1X2 + ldquo1rdquo X1X2 + ldquo2rdquo X1X2 + ldquo3rdquo X1 X2)Z = ldquo4rdquo (ldquo0rdquordquo1rdquordquo2rdquordquo3rdquordquo4rdquo sono le decodifiche binarie delle tre uscite del contatore)

Il contatore si resetta ogni volta che non si presenta lrsquoingresso giusto relativo al particolare stato Ilcontatore quindi si resetta e rimane resettato se non nelle condizioni espresse dalla funzione RESIl 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 ldquorandomrdquo

ABC

ldquo0rdquoldquo1rdquoldquo2rdquoldquo3rdquoldquo4rdquo

RLAND-OR

X1X2

RESZ

Cx8RES

Q0 Q1 Q2 CK

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 42: Reti Sincrone

42

Contatori

EN

Q0 Q1 Q2 Q3CKCY

RESET

bull Attenzione Consideriamo il contatore di figura (questa volta con RESET asincrono) e supponiamo di utilizzarlo per contare per 5 (NB per il Reset si usa il ldquo5rdquo in questo casohellip glitch)

ABCD

ldquo5rdquo

ldquo1rdquo Percheacute questo schema egrave sbagliato

bull Percheacute 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 ldquo4rdquo sul decoder e quindi alcuni FF potrebbero non fare in tempo a resettarsi E allora

EN

Q0 Q1 Q2 Q3CKCY

RESET

ABCD

ldquo5rdquo

ldquo1rdquo

RS

Y ldquo0rdquo

bull Cosigrave facendo il ldquo4rdquo attiva il SET e il FF NON si resetta fino a quando non egrave stato raggiunto la ldquo0rdquo NB lo schema ldquosbagliatordquo si puograve usare solo se si egrave certi della rapiditagrave di reset dei FF del contatore

bull Verificare con Altera

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 43: Reti Sincrone

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 egrave stata condotta in modo ldquodirettordquo ovvero senza passare per la sintesi formale e utilizzando componenti disponibili e helliphellip materia grigia La sintesi dei circuiti sincroni si fa sempre e unicamente cosigrave

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 44: Reti Sincrone

44

Simulazione funzionale (no timing)

NB 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 ldquoriposordquo del contatore egrave il valore 4 I segnali Yi sono le decodifiche dei segnali di di ingresso X1 e X2

00 01 01 10

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 45: Reti Sincrone

45

Simulazione timing

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 46: Reti Sincrone

46

NB Si egrave scelto di utilizzare SOLO gli ingressi SINCRONI del contatore per semplicitagrave Il contatore rimane al valore 100 fino a quando non si presenta allrsquoingresso il valore 00 Se la sequenza egrave esatta il contatore continua a contare in avanti fino alla generazione dellrsquouscita (valore 11 del contatore) altrimenti si riporta al valore 100 ovvero Qc=1) Il segnale GN (Gate Not) egrave 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 egrave corretta o egrave interrotta il contatore si riporta sempre a 100

00 01 11 10

001 000 000

X1

000000 010 100 100001

000 100 100 011010

100 100 100 100011

000 100 100 100100

000 100 100 100101

000 100 100 100110

000 100 100 100111

0

0

0

1

0

0

0

0

X2

000

NB la tabella delle transizioni derivata della rete realizzata NON ha ovviamente condizioni di indifferenza

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 47: Reti Sincrone

47

Progettare un contatore packed BCD updown a 8 bit (due digit)

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 48: Reti Sincrone

48

Generazione di forme drsquoondabull Ersquo possibile generare forme drsquoonda periodiche mediante circuiti sincroni di periodo

sottomultiplo intero del clock

Esempio 1Divisore di frequenza per 2

D0k Q0k

CK D Q

CK Clock

Q

Esempio 2 generare una forma drsquoonda periodica con periodo 5T (ove T sia il periodo del clock) in cui in un semiperiodo 3T lrsquouscita sia alta e nellrsquoaltro semiperiodo 2T lrsquouscita sia bassa

Q0 Q1 Q2 CK

Cx5

C

B

A

01234

DecoderDemux

Clock

ZZ T

3T2T

3T

NB una rete logica egrave 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

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 49: Reti Sincrone

49

Di che circuito si tratta

D0k Q0k

CK D0 Q0

CKQ0

D0k Q0k

CK D1 Q1

CK

D0k Q0k

CK D2 Q2

CKClock

Clock

Q0

Q1

Q2

Ersquo 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 egrave sintetizzabile come una rete sincrona e una sintesi formale sarebbe possibile solo trattando il circuito come asincrono ovvero ldquoaprendordquo i FF Sarebbe possibile trasformarlo in un contatore x6 mantenendo la stessa impostazione

Sintetizzare e simulare con Altera

NB il segnale di clock non egrave in comune

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 50: Reti Sincrone

50

7493

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 51: Reti Sincrone

51

Altera Contatore asincrono

Contatore asincrono

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 52: Reti Sincrone

52

Simulazione timing

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 53: Reti Sincrone

53

Come puograve essere utilizzato un FFD per catturare un impulso piugrave breve di un periodo

D2 Q2

Q2CKFFD Z

Clock

D1 Q1

Q1CKFFD

D0 Q00

Q0CKFFD

ldquo1rdquo CL

Lrsquoimpulso breve viene catturato dal FF 0 (purcheacute di larghezza sufficiente per la tecnologia del FF) - che quindi agisce come integratore ndash la cui uscita alimenta il monoimpulsore di tipo A Lrsquoattivazione del FF 1 resetta il FF 0 (supponendo che il segnale di CL sia ldquopositiverdquotruerdquo)

Ci puograve essere un problema se il CL agisce in modo asincrono

NB questo circuito e quello del lucido precedente evidenziano il fatto che nella realtagrave nessuna rete egrave solo sincrona ma bensigrave egrave pressocheacute sempre necessario utilizzare reti di natura diversa anche percheacute vi egrave sempre una interazione fra reti con clock diversi eo con segnali provenienti dal mondo esterno NON sincronizzati con il clock

Monoimpulsore di tipo A ldquorivistordquo

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 54: Reti Sincrone

54

bull Uno shift register a sinistra (a destra) egrave 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 piugrave a destra (sinistra) viene immesso uno ldquo0rdquo Questi tipi di registri shift si chiamano ldquologicirdquo

Shift register (registri a traslazione o scorrimento)

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

ldquo0rdquo

Shift register a sinistra

bull 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

bull Si noti che uno shift register egrave 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 egrave arrivato lrsquouno indica il valore del conteggio in base a un codice ldquouno su nrdquo (un codice decodificato)

bull Spesso uno stesso registro puograve 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 Qigrave+1 o Qigrave-1 Con questa configurazione lo shift register diventa anche un contatore avantiindietro

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 55: Reti Sincrone

Registro a scorrimento (shift-register) a 3 bit

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 56: Reti Sincrone

CK

IN

A_RESET

OUT1

OUT2

OUT0

Registro a scorrimento (shift-register) a 3 bit

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 57: Reti Sincrone

57

Esempio 74164 (serial In parallel OUT)

bull In questo registro a traslazione ad ogni fronte positivo del clock i dati sono traslati a destra (Q0 -gt Q1 Q1-gtQ2 etc) Il registro egrave dotato in un Master Reset (vero negato) e il dato inserito nel FF Q0 egrave dato dallrsquoAND dei due ingressi Dsa e Dsb

bull Si noti che lrsquooperazione 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

0 1 1 0 1 0 1 0

010101102 = 10810

Shift left =gt x2

Shift right =gt 2

101011002 = 21610

001010112 = 5910

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

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 58: Reti Sincrone

58

bull Esistono anche i registri a traslazione ldquoaritmeticirdquo In questi shift register a destra anzicheacute fare entrare nel FF piugrave a sinistra lo ldquo0rdquo viene immesso sempre ripetutamente il suo valore logico

Shift aritmetico

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

D7 D6 D5 D4 D3 D2 D1 D0

I LDCK Esempio

11001010SRA

11100101 interpretato in complemento a 2

001101102=5410

C2 C2

000110112=2710

bull Lo shift aritmetico a destra effettua una divisione per 2 mantenendo il segno

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 59: Reti Sincrone

59

Rotazione

Nei computer egrave sovente necessario utilizzare una rotazione a destra o a sinistra del contenuto dei FF La cosa si ottiene retroazionando uno shift register

D0kQ0k

CK DnQn

CK

D0kQ0k

CK Dn-1Qn-1

CK

D0kQ0k

CK Dn-2Qn-2

CK

D0kQ0k

CK D0Q0

CK

Molto spesso nei computer egrave 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 puograve essere avviato o Q1 o Qn

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 60: Reti Sincrone

60

Contatori con shift register ndash Contatore retroazionato EX-OR

Q2Q0

Shift right 3 bitDQ1

110 111 011 101 010 001

Diagramma degli stati disgiunto

Uno shift register con n FF retroazionato con un EX-OR (scelta degli ingressi variabile) egrave un contatore NON binario che conta per 2n-1 (purcheacute presettato a un valore diverso da tutti zeri)

000

100

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 61: Reti Sincrone

61

Contatore di Johnson (riempimento e svuotamento)

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

000-gt100-gt110-gt111-gt011-gt001-gt000-gtStati isolati 101-gt010-gt101gt1

Poicheacute configurazioni adiacenti del codice Johnson differiscono di un solo bit il contatore puograve essere utilizzato per generare forme drsquoonda prive di alee

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 62: Reti Sincrone

62

Contatore ad anello con un solo 1 (ovvero che genera direttamente il codice 1su n)

FFDD Q

QR

RESET

FFDD Q

QR

RESET

FFDD Q

QPR

RESET

OUT3OUT1OUT0

CK

FFDD Q

QR

RESET

OUT2

0001-gt1000-gt0100-gt0010-gt0010n FF per contare per n (mentre con i contatori binari il numero dei FF egrave il log2m ove m egrave il primo intero maggiore o uguale a n)

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 63: Reti Sincrone

63

Barrel shifter (rotore)Un barrel shifter egrave uno shift register in grado di traslare di ldquonrdquo posizioni in un solo clock il contenuto dei suoi FF In figura egrave riportato il barrel shifter della Altera Gli ingressi A-H in presenza dellrsquoattivazione del segnale LDST al primo fronte positivo del clock sono depositati nei FF Quando LDST egrave 0 ad ogni fronte positivo del clock i bit di uscita sono ruotati di n posizioni in senso antiorario (ovvero lrsquouscita H diventa la G la G diventa la Fhellipe lrsquouscita A diventa la H) ove n egrave il valore binario indicato dai segnali S0 S1 e S2

Si noti che il circuito in questione egrave di fatto un registro con 8 FF allrsquoingresso di ciascuno dei quali egrave 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 puograve essere osservata ldquoclikkandordquo due volte sul dispositivo nello schema di Altera

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 64: Reti Sincrone

64

Barrel shifter

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 65: Reti Sincrone

6565

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 66: Reti Sincrone

66

Simulazione timing

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 67: Reti Sincrone

67

bull Utilizzando il sistema Altera progettare un orologio con secondi minuti ora partendo da un oscillatore a quarzo con frequenza 500 KHz

bull E se si volesse proseguire e realizzare anche un datario (giorno mese e anno )

bull Come potrebbe essere integrato con una sveglia Si ricordi che lrsquoorologio deve essere anche essere ldquopresettatordquo

bull Quali circuiti utilizzare per la visualizzazione

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 68: Reti Sincrone

68

EPROM

X0nZ0m

y0kY0k

Clock

D0kQ0k

FFD0k

CK D0kQ0k 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 egrave 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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
Page 69: Reti Sincrone

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 egrave sempre decomponibile in tre sottosistemi il controllo con la sua decodifica (unitagrave di controllo) il percorso dei dati con le unitagrave che li trasformano (datapath) e i registri di deposito e di ingresso dei dati

Questa egrave la struttura base di qualunque unitagrave centrale di qualunque computer

La differenza consiste solo nel fatto che anzicheacute avere una sequenza fissa di operazioni ne viene generata una volta a volta che dipende appunto dalla istruzione che deve essere eseguita Come si vedragrave 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 helliphellip)

  • Reti Sincrone
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69