3 Reti Sequenziali - Home - Computer Vision...

95
3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria Meccatronica Stefano Mattoccia Dipartimento di Informatica Università di Bologna

Transcript of 3 Reti Sequenziali - Home - Computer Vision...

Page 1: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

3 Reti Sequenziali

1

Fondamenti di Informatica P2 Ingegneria Meccatronica

Stefano MattocciaDipartimento di Informatica

Universitagrave di Bologna

Le reti di maggiore interesse non dipendonounicamente dagli ingressi (reti combinatorieRC) ma anche da elaborazioni precedenti

Pertanto per le reti sequenziali sononecessari dispositivi per memorizzareelaborazioni precedenti (stato)

Il modello di tale rete (macchina a statifiniti o FSM) puograve essere schematizzato cosigrave

RC

MEM

n r

k k

I U

SS

Modello della Macchina a Stati Finiti (FSM) - Mealy

F

G

k

nI

r U

S S

U=F(SI)S=G(SI)

k

F

G

k

nI

r U

S S k

U=F(S)S=G(SI)

Modello della Macchina a Stati Finiti (FSM) - Moore

Reti Sequenziali Asincrone (RSA)

k tk

Retroazione diretta(t ritardo intrinseco della RC G)

S

U

S

I

S S S S

t t+t

(1)

(2) (3)

bull Le reti asincrone rispondono molto rapidamente (appena possibile) alle variazioni degli ingressi

bull Non egrave necessario un segnale di sincronismo (clock)

bull Ridotta dissipazione di potenza

Aspetti positivi delle RSA (vs RSS)

Aspetti negativi delle RSA (vs RSS)bull Vincoli per il corretto impiego

- lrsquoingresso puograve variare solo quando la rete ha raggiunto una condizione di stabilitagrave

- i segnali di ingresso possono variare uno alla volta

bull Esposte a potenziali malfunzionamenti (corse critiche)

bull Difficili da progettare

In pratica sono utilizzate per realizzare latch e flip-flop

A noi interessano (maggiormente) le reti sincrone (RSS)

RSA notevoli Flip-Flop D

FFDD Q

Q

D

CK

Q

Q = NOT(Q)

FFD RSA che assume il valore logico presente sullrsquoingresso D durante i fronti di salita (positive edge triggered) dellrsquoingresso CK

Il FFD egrave tipicamente utilizzato come cella elementare di memoria nelle reti sequenziali sincrone In tal caso il segnale CK egrave unsegnale di tipo periodico (clock)

CK

D

Q

Datasheet FFD httpwwwticomlitdssdls119sdls119pdf

FFDD

CK

Q

Q

D

CK

Q

Q

A_SET

A_RES

A_RES

A_SET

CK

D

Q

Q

I FFD sono dotati di due ulteriori ingressi ldquoasincronirdquo che consentonodi settare (A_SET) o resettare (A_RES) Q indipendentemente da CK e D

A_SET

A_RES

Tipica realizzazione di un FFD della famiglia TTL (lsquo374) mediante 3 latch SR

Q=0 se A_RES=1Q=1 se A_SET=1

A_SET e A_RES sono prioritari rispetto a CK e D

NOTA i segnali asincroni di set e reset denominati nella slide (rispettivamente) A_SET e A_RESsono spesso denominati (rispettivamente) PR e CL oppure S e R Inoltre se non indicati nello schema logico si suppone che tali comandi siano non asseriti (A_SET=0 e A_RES=0)

Vincoli di corretto impiego per i FFD

Tempi di Setup (tSU) Hold (tH) e Risposta (tR)

FFDD

CK

Q

Q

D

CK

Q

Q

CK

D

Q

tHtSU

tR

Il corretto funzionamento egrave garantito solo se tSUge tSUmin e tH ge tHminIn caso contrario metastabilitagrave

Cosa implicano i parametri tSUmin e tRmin indicati nei datasheet

Il FFD come elemento fondamentale delle RSS

D

CK

Q

Se 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

Qn+1 = Dn

FFDD

CK

Q

Q

D

CK

Q

Q

T T T T

Vincoli di campionamento e metastabilitagrave

Il mancato rispetto dei vincoli sul campionamento dei segnali porta a metastabilitagrave

CK

D

Q

tSU tH

0 1

metastabile

stabile stabile

1

0t =

Sincronizzazione di segnali (non sincroni)

FFDD

CK

QImetastabile

FFDD

CK

Q

Stabile ()I_sync

I_M

Normalmente i segnali provenienti dallrsquoesterno (ma non solo) non sonosincroni con il clock della RSS Questo egrave un problema molto comune

Come gestire potenziali situazioni di metastabilitagrave che potrebbero compromettere il corretto funzionamento della RSS

CK

bull La soluzione mostrata garantisce che lrsquouscita I_sync assume il valoredi I nel momento in cui tale segnale egrave stato campionato

bull Sono sufficienti due livelli di FF

bull Quali sono gli effetti collaterali di questa soluzione

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

Nel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti disalita del clock che (tipicamente) si susseguono con periodo T

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

bull La rete egrave svincolata dai ritardi della rete G Quindi nessunproblema di corse critiche (purcheacute T gt tSUmin + tRmin )

bull Allrsquointerno di uno stesso progetto sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stessoeo coincide con il clock del processore

bull Le RSS sono (piugrave) facili da progettare delle RSA

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 2: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Le reti di maggiore interesse non dipendonounicamente dagli ingressi (reti combinatorieRC) ma anche da elaborazioni precedenti

Pertanto per le reti sequenziali sononecessari dispositivi per memorizzareelaborazioni precedenti (stato)

Il modello di tale rete (macchina a statifiniti o FSM) puograve essere schematizzato cosigrave

RC

MEM

n r

k k

I U

SS

Modello della Macchina a Stati Finiti (FSM) - Mealy

F

G

k

nI

r U

S S

U=F(SI)S=G(SI)

k

F

G

k

nI

r U

S S k

U=F(S)S=G(SI)

Modello della Macchina a Stati Finiti (FSM) - Moore

Reti Sequenziali Asincrone (RSA)

k tk

Retroazione diretta(t ritardo intrinseco della RC G)

S

U

S

I

S S S S

t t+t

(1)

(2) (3)

bull Le reti asincrone rispondono molto rapidamente (appena possibile) alle variazioni degli ingressi

bull Non egrave necessario un segnale di sincronismo (clock)

bull Ridotta dissipazione di potenza

Aspetti positivi delle RSA (vs RSS)

Aspetti negativi delle RSA (vs RSS)bull Vincoli per il corretto impiego

- lrsquoingresso puograve variare solo quando la rete ha raggiunto una condizione di stabilitagrave

- i segnali di ingresso possono variare uno alla volta

bull Esposte a potenziali malfunzionamenti (corse critiche)

bull Difficili da progettare

In pratica sono utilizzate per realizzare latch e flip-flop

A noi interessano (maggiormente) le reti sincrone (RSS)

RSA notevoli Flip-Flop D

FFDD Q

Q

D

CK

Q

Q = NOT(Q)

FFD RSA che assume il valore logico presente sullrsquoingresso D durante i fronti di salita (positive edge triggered) dellrsquoingresso CK

Il FFD egrave tipicamente utilizzato come cella elementare di memoria nelle reti sequenziali sincrone In tal caso il segnale CK egrave unsegnale di tipo periodico (clock)

CK

D

Q

Datasheet FFD httpwwwticomlitdssdls119sdls119pdf

FFDD

CK

Q

Q

D

CK

Q

Q

A_SET

A_RES

A_RES

A_SET

CK

D

Q

Q

I FFD sono dotati di due ulteriori ingressi ldquoasincronirdquo che consentonodi settare (A_SET) o resettare (A_RES) Q indipendentemente da CK e D

A_SET

A_RES

Tipica realizzazione di un FFD della famiglia TTL (lsquo374) mediante 3 latch SR

Q=0 se A_RES=1Q=1 se A_SET=1

A_SET e A_RES sono prioritari rispetto a CK e D

NOTA i segnali asincroni di set e reset denominati nella slide (rispettivamente) A_SET e A_RESsono spesso denominati (rispettivamente) PR e CL oppure S e R Inoltre se non indicati nello schema logico si suppone che tali comandi siano non asseriti (A_SET=0 e A_RES=0)

Vincoli di corretto impiego per i FFD

Tempi di Setup (tSU) Hold (tH) e Risposta (tR)

FFDD

CK

Q

Q

D

CK

Q

Q

CK

D

Q

tHtSU

tR

Il corretto funzionamento egrave garantito solo se tSUge tSUmin e tH ge tHminIn caso contrario metastabilitagrave

Cosa implicano i parametri tSUmin e tRmin indicati nei datasheet

Il FFD come elemento fondamentale delle RSS

D

CK

Q

Se 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

Qn+1 = Dn

FFDD

CK

Q

Q

D

CK

Q

Q

T T T T

Vincoli di campionamento e metastabilitagrave

Il mancato rispetto dei vincoli sul campionamento dei segnali porta a metastabilitagrave

CK

D

Q

tSU tH

0 1

metastabile

stabile stabile

1

0t =

Sincronizzazione di segnali (non sincroni)

FFDD

CK

QImetastabile

FFDD

CK

Q

Stabile ()I_sync

I_M

Normalmente i segnali provenienti dallrsquoesterno (ma non solo) non sonosincroni con il clock della RSS Questo egrave un problema molto comune

Come gestire potenziali situazioni di metastabilitagrave che potrebbero compromettere il corretto funzionamento della RSS

CK

bull La soluzione mostrata garantisce che lrsquouscita I_sync assume il valoredi I nel momento in cui tale segnale egrave stato campionato

bull Sono sufficienti due livelli di FF

bull Quali sono gli effetti collaterali di questa soluzione

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

Nel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti disalita del clock che (tipicamente) si susseguono con periodo T

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

bull La rete egrave svincolata dai ritardi della rete G Quindi nessunproblema di corse critiche (purcheacute T gt tSUmin + tRmin )

bull Allrsquointerno di uno stesso progetto sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stessoeo coincide con il clock del processore

bull Le RSS sono (piugrave) facili da progettare delle RSA

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 3: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Modello della Macchina a Stati Finiti (FSM) - Mealy

F

G

k

nI

r U

S S

U=F(SI)S=G(SI)

k

F

G

k

nI

r U

S S k

U=F(S)S=G(SI)

Modello della Macchina a Stati Finiti (FSM) - Moore

Reti Sequenziali Asincrone (RSA)

k tk

Retroazione diretta(t ritardo intrinseco della RC G)

S

U

S

I

S S S S

t t+t

(1)

(2) (3)

bull Le reti asincrone rispondono molto rapidamente (appena possibile) alle variazioni degli ingressi

bull Non egrave necessario un segnale di sincronismo (clock)

bull Ridotta dissipazione di potenza

Aspetti positivi delle RSA (vs RSS)

Aspetti negativi delle RSA (vs RSS)bull Vincoli per il corretto impiego

- lrsquoingresso puograve variare solo quando la rete ha raggiunto una condizione di stabilitagrave

- i segnali di ingresso possono variare uno alla volta

bull Esposte a potenziali malfunzionamenti (corse critiche)

bull Difficili da progettare

In pratica sono utilizzate per realizzare latch e flip-flop

A noi interessano (maggiormente) le reti sincrone (RSS)

RSA notevoli Flip-Flop D

FFDD Q

Q

D

CK

Q

Q = NOT(Q)

FFD RSA che assume il valore logico presente sullrsquoingresso D durante i fronti di salita (positive edge triggered) dellrsquoingresso CK

Il FFD egrave tipicamente utilizzato come cella elementare di memoria nelle reti sequenziali sincrone In tal caso il segnale CK egrave unsegnale di tipo periodico (clock)

CK

D

Q

Datasheet FFD httpwwwticomlitdssdls119sdls119pdf

FFDD

CK

Q

Q

D

CK

Q

Q

A_SET

A_RES

A_RES

A_SET

CK

D

Q

Q

I FFD sono dotati di due ulteriori ingressi ldquoasincronirdquo che consentonodi settare (A_SET) o resettare (A_RES) Q indipendentemente da CK e D

A_SET

A_RES

Tipica realizzazione di un FFD della famiglia TTL (lsquo374) mediante 3 latch SR

Q=0 se A_RES=1Q=1 se A_SET=1

A_SET e A_RES sono prioritari rispetto a CK e D

NOTA i segnali asincroni di set e reset denominati nella slide (rispettivamente) A_SET e A_RESsono spesso denominati (rispettivamente) PR e CL oppure S e R Inoltre se non indicati nello schema logico si suppone che tali comandi siano non asseriti (A_SET=0 e A_RES=0)

Vincoli di corretto impiego per i FFD

Tempi di Setup (tSU) Hold (tH) e Risposta (tR)

FFDD

CK

Q

Q

D

CK

Q

Q

CK

D

Q

tHtSU

tR

Il corretto funzionamento egrave garantito solo se tSUge tSUmin e tH ge tHminIn caso contrario metastabilitagrave

Cosa implicano i parametri tSUmin e tRmin indicati nei datasheet

Il FFD come elemento fondamentale delle RSS

D

CK

Q

Se 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

Qn+1 = Dn

FFDD

CK

Q

Q

D

CK

Q

Q

T T T T

Vincoli di campionamento e metastabilitagrave

Il mancato rispetto dei vincoli sul campionamento dei segnali porta a metastabilitagrave

CK

D

Q

tSU tH

0 1

metastabile

stabile stabile

1

0t =

Sincronizzazione di segnali (non sincroni)

FFDD

CK

QImetastabile

FFDD

CK

Q

Stabile ()I_sync

I_M

Normalmente i segnali provenienti dallrsquoesterno (ma non solo) non sonosincroni con il clock della RSS Questo egrave un problema molto comune

Come gestire potenziali situazioni di metastabilitagrave che potrebbero compromettere il corretto funzionamento della RSS

CK

bull La soluzione mostrata garantisce che lrsquouscita I_sync assume il valoredi I nel momento in cui tale segnale egrave stato campionato

bull Sono sufficienti due livelli di FF

bull Quali sono gli effetti collaterali di questa soluzione

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

Nel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti disalita del clock che (tipicamente) si susseguono con periodo T

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

bull La rete egrave svincolata dai ritardi della rete G Quindi nessunproblema di corse critiche (purcheacute T gt tSUmin + tRmin )

bull Allrsquointerno di uno stesso progetto sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stessoeo coincide con il clock del processore

bull Le RSS sono (piugrave) facili da progettare delle RSA

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 4: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

F

G

k

nI

r U

S S k

U=F(S)S=G(SI)

Modello della Macchina a Stati Finiti (FSM) - Moore

Reti Sequenziali Asincrone (RSA)

k tk

Retroazione diretta(t ritardo intrinseco della RC G)

S

U

S

I

S S S S

t t+t

(1)

(2) (3)

bull Le reti asincrone rispondono molto rapidamente (appena possibile) alle variazioni degli ingressi

bull Non egrave necessario un segnale di sincronismo (clock)

bull Ridotta dissipazione di potenza

Aspetti positivi delle RSA (vs RSS)

Aspetti negativi delle RSA (vs RSS)bull Vincoli per il corretto impiego

- lrsquoingresso puograve variare solo quando la rete ha raggiunto una condizione di stabilitagrave

- i segnali di ingresso possono variare uno alla volta

bull Esposte a potenziali malfunzionamenti (corse critiche)

bull Difficili da progettare

In pratica sono utilizzate per realizzare latch e flip-flop

A noi interessano (maggiormente) le reti sincrone (RSS)

RSA notevoli Flip-Flop D

FFDD Q

Q

D

CK

Q

Q = NOT(Q)

FFD RSA che assume il valore logico presente sullrsquoingresso D durante i fronti di salita (positive edge triggered) dellrsquoingresso CK

Il FFD egrave tipicamente utilizzato come cella elementare di memoria nelle reti sequenziali sincrone In tal caso il segnale CK egrave unsegnale di tipo periodico (clock)

CK

D

Q

Datasheet FFD httpwwwticomlitdssdls119sdls119pdf

FFDD

CK

Q

Q

D

CK

Q

Q

A_SET

A_RES

A_RES

A_SET

CK

D

Q

Q

I FFD sono dotati di due ulteriori ingressi ldquoasincronirdquo che consentonodi settare (A_SET) o resettare (A_RES) Q indipendentemente da CK e D

A_SET

A_RES

Tipica realizzazione di un FFD della famiglia TTL (lsquo374) mediante 3 latch SR

Q=0 se A_RES=1Q=1 se A_SET=1

A_SET e A_RES sono prioritari rispetto a CK e D

NOTA i segnali asincroni di set e reset denominati nella slide (rispettivamente) A_SET e A_RESsono spesso denominati (rispettivamente) PR e CL oppure S e R Inoltre se non indicati nello schema logico si suppone che tali comandi siano non asseriti (A_SET=0 e A_RES=0)

Vincoli di corretto impiego per i FFD

Tempi di Setup (tSU) Hold (tH) e Risposta (tR)

FFDD

CK

Q

Q

D

CK

Q

Q

CK

D

Q

tHtSU

tR

Il corretto funzionamento egrave garantito solo se tSUge tSUmin e tH ge tHminIn caso contrario metastabilitagrave

Cosa implicano i parametri tSUmin e tRmin indicati nei datasheet

Il FFD come elemento fondamentale delle RSS

D

CK

Q

Se 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

Qn+1 = Dn

FFDD

CK

Q

Q

D

CK

Q

Q

T T T T

Vincoli di campionamento e metastabilitagrave

Il mancato rispetto dei vincoli sul campionamento dei segnali porta a metastabilitagrave

CK

D

Q

tSU tH

0 1

metastabile

stabile stabile

1

0t =

Sincronizzazione di segnali (non sincroni)

FFDD

CK

QImetastabile

FFDD

CK

Q

Stabile ()I_sync

I_M

Normalmente i segnali provenienti dallrsquoesterno (ma non solo) non sonosincroni con il clock della RSS Questo egrave un problema molto comune

Come gestire potenziali situazioni di metastabilitagrave che potrebbero compromettere il corretto funzionamento della RSS

CK

bull La soluzione mostrata garantisce che lrsquouscita I_sync assume il valoredi I nel momento in cui tale segnale egrave stato campionato

bull Sono sufficienti due livelli di FF

bull Quali sono gli effetti collaterali di questa soluzione

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

Nel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti disalita del clock che (tipicamente) si susseguono con periodo T

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

bull La rete egrave svincolata dai ritardi della rete G Quindi nessunproblema di corse critiche (purcheacute T gt tSUmin + tRmin )

bull Allrsquointerno di uno stesso progetto sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stessoeo coincide con il clock del processore

bull Le RSS sono (piugrave) facili da progettare delle RSA

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 5: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Reti Sequenziali Asincrone (RSA)

k tk

Retroazione diretta(t ritardo intrinseco della RC G)

S

U

S

I

S S S S

t t+t

(1)

(2) (3)

bull Le reti asincrone rispondono molto rapidamente (appena possibile) alle variazioni degli ingressi

bull Non egrave necessario un segnale di sincronismo (clock)

bull Ridotta dissipazione di potenza

Aspetti positivi delle RSA (vs RSS)

Aspetti negativi delle RSA (vs RSS)bull Vincoli per il corretto impiego

- lrsquoingresso puograve variare solo quando la rete ha raggiunto una condizione di stabilitagrave

- i segnali di ingresso possono variare uno alla volta

bull Esposte a potenziali malfunzionamenti (corse critiche)

bull Difficili da progettare

In pratica sono utilizzate per realizzare latch e flip-flop

A noi interessano (maggiormente) le reti sincrone (RSS)

RSA notevoli Flip-Flop D

FFDD Q

Q

D

CK

Q

Q = NOT(Q)

FFD RSA che assume il valore logico presente sullrsquoingresso D durante i fronti di salita (positive edge triggered) dellrsquoingresso CK

Il FFD egrave tipicamente utilizzato come cella elementare di memoria nelle reti sequenziali sincrone In tal caso il segnale CK egrave unsegnale di tipo periodico (clock)

CK

D

Q

Datasheet FFD httpwwwticomlitdssdls119sdls119pdf

FFDD

CK

Q

Q

D

CK

Q

Q

A_SET

A_RES

A_RES

A_SET

CK

D

Q

Q

I FFD sono dotati di due ulteriori ingressi ldquoasincronirdquo che consentonodi settare (A_SET) o resettare (A_RES) Q indipendentemente da CK e D

A_SET

A_RES

Tipica realizzazione di un FFD della famiglia TTL (lsquo374) mediante 3 latch SR

Q=0 se A_RES=1Q=1 se A_SET=1

A_SET e A_RES sono prioritari rispetto a CK e D

NOTA i segnali asincroni di set e reset denominati nella slide (rispettivamente) A_SET e A_RESsono spesso denominati (rispettivamente) PR e CL oppure S e R Inoltre se non indicati nello schema logico si suppone che tali comandi siano non asseriti (A_SET=0 e A_RES=0)

Vincoli di corretto impiego per i FFD

Tempi di Setup (tSU) Hold (tH) e Risposta (tR)

FFDD

CK

Q

Q

D

CK

Q

Q

CK

D

Q

tHtSU

tR

Il corretto funzionamento egrave garantito solo se tSUge tSUmin e tH ge tHminIn caso contrario metastabilitagrave

Cosa implicano i parametri tSUmin e tRmin indicati nei datasheet

Il FFD come elemento fondamentale delle RSS

D

CK

Q

Se 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

Qn+1 = Dn

FFDD

CK

Q

Q

D

CK

Q

Q

T T T T

Vincoli di campionamento e metastabilitagrave

Il mancato rispetto dei vincoli sul campionamento dei segnali porta a metastabilitagrave

CK

D

Q

tSU tH

0 1

metastabile

stabile stabile

1

0t =

Sincronizzazione di segnali (non sincroni)

FFDD

CK

QImetastabile

FFDD

CK

Q

Stabile ()I_sync

I_M

Normalmente i segnali provenienti dallrsquoesterno (ma non solo) non sonosincroni con il clock della RSS Questo egrave un problema molto comune

Come gestire potenziali situazioni di metastabilitagrave che potrebbero compromettere il corretto funzionamento della RSS

CK

bull La soluzione mostrata garantisce che lrsquouscita I_sync assume il valoredi I nel momento in cui tale segnale egrave stato campionato

bull Sono sufficienti due livelli di FF

bull Quali sono gli effetti collaterali di questa soluzione

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

Nel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti disalita del clock che (tipicamente) si susseguono con periodo T

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

bull La rete egrave svincolata dai ritardi della rete G Quindi nessunproblema di corse critiche (purcheacute T gt tSUmin + tRmin )

bull Allrsquointerno di uno stesso progetto sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stessoeo coincide con il clock del processore

bull Le RSS sono (piugrave) facili da progettare delle RSA

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 6: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

bull Le reti asincrone rispondono molto rapidamente (appena possibile) alle variazioni degli ingressi

bull Non egrave necessario un segnale di sincronismo (clock)

bull Ridotta dissipazione di potenza

Aspetti positivi delle RSA (vs RSS)

Aspetti negativi delle RSA (vs RSS)bull Vincoli per il corretto impiego

- lrsquoingresso puograve variare solo quando la rete ha raggiunto una condizione di stabilitagrave

- i segnali di ingresso possono variare uno alla volta

bull Esposte a potenziali malfunzionamenti (corse critiche)

bull Difficili da progettare

In pratica sono utilizzate per realizzare latch e flip-flop

A noi interessano (maggiormente) le reti sincrone (RSS)

RSA notevoli Flip-Flop D

FFDD Q

Q

D

CK

Q

Q = NOT(Q)

FFD RSA che assume il valore logico presente sullrsquoingresso D durante i fronti di salita (positive edge triggered) dellrsquoingresso CK

Il FFD egrave tipicamente utilizzato come cella elementare di memoria nelle reti sequenziali sincrone In tal caso il segnale CK egrave unsegnale di tipo periodico (clock)

CK

D

Q

Datasheet FFD httpwwwticomlitdssdls119sdls119pdf

FFDD

CK

Q

Q

D

CK

Q

Q

A_SET

A_RES

A_RES

A_SET

CK

D

Q

Q

I FFD sono dotati di due ulteriori ingressi ldquoasincronirdquo che consentonodi settare (A_SET) o resettare (A_RES) Q indipendentemente da CK e D

A_SET

A_RES

Tipica realizzazione di un FFD della famiglia TTL (lsquo374) mediante 3 latch SR

Q=0 se A_RES=1Q=1 se A_SET=1

A_SET e A_RES sono prioritari rispetto a CK e D

NOTA i segnali asincroni di set e reset denominati nella slide (rispettivamente) A_SET e A_RESsono spesso denominati (rispettivamente) PR e CL oppure S e R Inoltre se non indicati nello schema logico si suppone che tali comandi siano non asseriti (A_SET=0 e A_RES=0)

Vincoli di corretto impiego per i FFD

Tempi di Setup (tSU) Hold (tH) e Risposta (tR)

FFDD

CK

Q

Q

D

CK

Q

Q

CK

D

Q

tHtSU

tR

Il corretto funzionamento egrave garantito solo se tSUge tSUmin e tH ge tHminIn caso contrario metastabilitagrave

Cosa implicano i parametri tSUmin e tRmin indicati nei datasheet

Il FFD come elemento fondamentale delle RSS

D

CK

Q

Se 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

Qn+1 = Dn

FFDD

CK

Q

Q

D

CK

Q

Q

T T T T

Vincoli di campionamento e metastabilitagrave

Il mancato rispetto dei vincoli sul campionamento dei segnali porta a metastabilitagrave

CK

D

Q

tSU tH

0 1

metastabile

stabile stabile

1

0t =

Sincronizzazione di segnali (non sincroni)

FFDD

CK

QImetastabile

FFDD

CK

Q

Stabile ()I_sync

I_M

Normalmente i segnali provenienti dallrsquoesterno (ma non solo) non sonosincroni con il clock della RSS Questo egrave un problema molto comune

Come gestire potenziali situazioni di metastabilitagrave che potrebbero compromettere il corretto funzionamento della RSS

CK

bull La soluzione mostrata garantisce che lrsquouscita I_sync assume il valoredi I nel momento in cui tale segnale egrave stato campionato

bull Sono sufficienti due livelli di FF

bull Quali sono gli effetti collaterali di questa soluzione

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

Nel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti disalita del clock che (tipicamente) si susseguono con periodo T

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

bull La rete egrave svincolata dai ritardi della rete G Quindi nessunproblema di corse critiche (purcheacute T gt tSUmin + tRmin )

bull Allrsquointerno di uno stesso progetto sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stessoeo coincide con il clock del processore

bull Le RSS sono (piugrave) facili da progettare delle RSA

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 7: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

RSA notevoli Flip-Flop D

FFDD Q

Q

D

CK

Q

Q = NOT(Q)

FFD RSA che assume il valore logico presente sullrsquoingresso D durante i fronti di salita (positive edge triggered) dellrsquoingresso CK

Il FFD egrave tipicamente utilizzato come cella elementare di memoria nelle reti sequenziali sincrone In tal caso il segnale CK egrave unsegnale di tipo periodico (clock)

CK

D

Q

Datasheet FFD httpwwwticomlitdssdls119sdls119pdf

FFDD

CK

Q

Q

D

CK

Q

Q

A_SET

A_RES

A_RES

A_SET

CK

D

Q

Q

I FFD sono dotati di due ulteriori ingressi ldquoasincronirdquo che consentonodi settare (A_SET) o resettare (A_RES) Q indipendentemente da CK e D

A_SET

A_RES

Tipica realizzazione di un FFD della famiglia TTL (lsquo374) mediante 3 latch SR

Q=0 se A_RES=1Q=1 se A_SET=1

A_SET e A_RES sono prioritari rispetto a CK e D

NOTA i segnali asincroni di set e reset denominati nella slide (rispettivamente) A_SET e A_RESsono spesso denominati (rispettivamente) PR e CL oppure S e R Inoltre se non indicati nello schema logico si suppone che tali comandi siano non asseriti (A_SET=0 e A_RES=0)

Vincoli di corretto impiego per i FFD

Tempi di Setup (tSU) Hold (tH) e Risposta (tR)

FFDD

CK

Q

Q

D

CK

Q

Q

CK

D

Q

tHtSU

tR

Il corretto funzionamento egrave garantito solo se tSUge tSUmin e tH ge tHminIn caso contrario metastabilitagrave

Cosa implicano i parametri tSUmin e tRmin indicati nei datasheet

Il FFD come elemento fondamentale delle RSS

D

CK

Q

Se 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

Qn+1 = Dn

FFDD

CK

Q

Q

D

CK

Q

Q

T T T T

Vincoli di campionamento e metastabilitagrave

Il mancato rispetto dei vincoli sul campionamento dei segnali porta a metastabilitagrave

CK

D

Q

tSU tH

0 1

metastabile

stabile stabile

1

0t =

Sincronizzazione di segnali (non sincroni)

FFDD

CK

QImetastabile

FFDD

CK

Q

Stabile ()I_sync

I_M

Normalmente i segnali provenienti dallrsquoesterno (ma non solo) non sonosincroni con il clock della RSS Questo egrave un problema molto comune

Come gestire potenziali situazioni di metastabilitagrave che potrebbero compromettere il corretto funzionamento della RSS

CK

bull La soluzione mostrata garantisce che lrsquouscita I_sync assume il valoredi I nel momento in cui tale segnale egrave stato campionato

bull Sono sufficienti due livelli di FF

bull Quali sono gli effetti collaterali di questa soluzione

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

Nel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti disalita del clock che (tipicamente) si susseguono con periodo T

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

bull La rete egrave svincolata dai ritardi della rete G Quindi nessunproblema di corse critiche (purcheacute T gt tSUmin + tRmin )

bull Allrsquointerno di uno stesso progetto sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stessoeo coincide con il clock del processore

bull Le RSS sono (piugrave) facili da progettare delle RSA

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 8: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

FFDD

CK

Q

Q

D

CK

Q

Q

A_SET

A_RES

A_RES

A_SET

CK

D

Q

Q

I FFD sono dotati di due ulteriori ingressi ldquoasincronirdquo che consentonodi settare (A_SET) o resettare (A_RES) Q indipendentemente da CK e D

A_SET

A_RES

Tipica realizzazione di un FFD della famiglia TTL (lsquo374) mediante 3 latch SR

Q=0 se A_RES=1Q=1 se A_SET=1

A_SET e A_RES sono prioritari rispetto a CK e D

NOTA i segnali asincroni di set e reset denominati nella slide (rispettivamente) A_SET e A_RESsono spesso denominati (rispettivamente) PR e CL oppure S e R Inoltre se non indicati nello schema logico si suppone che tali comandi siano non asseriti (A_SET=0 e A_RES=0)

Vincoli di corretto impiego per i FFD

Tempi di Setup (tSU) Hold (tH) e Risposta (tR)

FFDD

CK

Q

Q

D

CK

Q

Q

CK

D

Q

tHtSU

tR

Il corretto funzionamento egrave garantito solo se tSUge tSUmin e tH ge tHminIn caso contrario metastabilitagrave

Cosa implicano i parametri tSUmin e tRmin indicati nei datasheet

Il FFD come elemento fondamentale delle RSS

D

CK

Q

Se 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

Qn+1 = Dn

FFDD

CK

Q

Q

D

CK

Q

Q

T T T T

Vincoli di campionamento e metastabilitagrave

Il mancato rispetto dei vincoli sul campionamento dei segnali porta a metastabilitagrave

CK

D

Q

tSU tH

0 1

metastabile

stabile stabile

1

0t =

Sincronizzazione di segnali (non sincroni)

FFDD

CK

QImetastabile

FFDD

CK

Q

Stabile ()I_sync

I_M

Normalmente i segnali provenienti dallrsquoesterno (ma non solo) non sonosincroni con il clock della RSS Questo egrave un problema molto comune

Come gestire potenziali situazioni di metastabilitagrave che potrebbero compromettere il corretto funzionamento della RSS

CK

bull La soluzione mostrata garantisce che lrsquouscita I_sync assume il valoredi I nel momento in cui tale segnale egrave stato campionato

bull Sono sufficienti due livelli di FF

bull Quali sono gli effetti collaterali di questa soluzione

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

Nel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti disalita del clock che (tipicamente) si susseguono con periodo T

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

bull La rete egrave svincolata dai ritardi della rete G Quindi nessunproblema di corse critiche (purcheacute T gt tSUmin + tRmin )

bull Allrsquointerno di uno stesso progetto sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stessoeo coincide con il clock del processore

bull Le RSS sono (piugrave) facili da progettare delle RSA

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 9: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Vincoli di corretto impiego per i FFD

Tempi di Setup (tSU) Hold (tH) e Risposta (tR)

FFDD

CK

Q

Q

D

CK

Q

Q

CK

D

Q

tHtSU

tR

Il corretto funzionamento egrave garantito solo se tSUge tSUmin e tH ge tHminIn caso contrario metastabilitagrave

Cosa implicano i parametri tSUmin e tRmin indicati nei datasheet

Il FFD come elemento fondamentale delle RSS

D

CK

Q

Se 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

Qn+1 = Dn

FFDD

CK

Q

Q

D

CK

Q

Q

T T T T

Vincoli di campionamento e metastabilitagrave

Il mancato rispetto dei vincoli sul campionamento dei segnali porta a metastabilitagrave

CK

D

Q

tSU tH

0 1

metastabile

stabile stabile

1

0t =

Sincronizzazione di segnali (non sincroni)

FFDD

CK

QImetastabile

FFDD

CK

Q

Stabile ()I_sync

I_M

Normalmente i segnali provenienti dallrsquoesterno (ma non solo) non sonosincroni con il clock della RSS Questo egrave un problema molto comune

Come gestire potenziali situazioni di metastabilitagrave che potrebbero compromettere il corretto funzionamento della RSS

CK

bull La soluzione mostrata garantisce che lrsquouscita I_sync assume il valoredi I nel momento in cui tale segnale egrave stato campionato

bull Sono sufficienti due livelli di FF

bull Quali sono gli effetti collaterali di questa soluzione

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

Nel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti disalita del clock che (tipicamente) si susseguono con periodo T

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

bull La rete egrave svincolata dai ritardi della rete G Quindi nessunproblema di corse critiche (purcheacute T gt tSUmin + tRmin )

bull Allrsquointerno di uno stesso progetto sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stessoeo coincide con il clock del processore

bull Le RSS sono (piugrave) facili da progettare delle RSA

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 10: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Il FFD come elemento fondamentale delle RSS

D

CK

Q

Se 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

Qn+1 = Dn

FFDD

CK

Q

Q

D

CK

Q

Q

T T T T

Vincoli di campionamento e metastabilitagrave

Il mancato rispetto dei vincoli sul campionamento dei segnali porta a metastabilitagrave

CK

D

Q

tSU tH

0 1

metastabile

stabile stabile

1

0t =

Sincronizzazione di segnali (non sincroni)

FFDD

CK

QImetastabile

FFDD

CK

Q

Stabile ()I_sync

I_M

Normalmente i segnali provenienti dallrsquoesterno (ma non solo) non sonosincroni con il clock della RSS Questo egrave un problema molto comune

Come gestire potenziali situazioni di metastabilitagrave che potrebbero compromettere il corretto funzionamento della RSS

CK

bull La soluzione mostrata garantisce che lrsquouscita I_sync assume il valoredi I nel momento in cui tale segnale egrave stato campionato

bull Sono sufficienti due livelli di FF

bull Quali sono gli effetti collaterali di questa soluzione

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

Nel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti disalita del clock che (tipicamente) si susseguono con periodo T

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

bull La rete egrave svincolata dai ritardi della rete G Quindi nessunproblema di corse critiche (purcheacute T gt tSUmin + tRmin )

bull Allrsquointerno di uno stesso progetto sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stessoeo coincide con il clock del processore

bull Le RSS sono (piugrave) facili da progettare delle RSA

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 11: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Vincoli di campionamento e metastabilitagrave

Il mancato rispetto dei vincoli sul campionamento dei segnali porta a metastabilitagrave

CK

D

Q

tSU tH

0 1

metastabile

stabile stabile

1

0t =

Sincronizzazione di segnali (non sincroni)

FFDD

CK

QImetastabile

FFDD

CK

Q

Stabile ()I_sync

I_M

Normalmente i segnali provenienti dallrsquoesterno (ma non solo) non sonosincroni con il clock della RSS Questo egrave un problema molto comune

Come gestire potenziali situazioni di metastabilitagrave che potrebbero compromettere il corretto funzionamento della RSS

CK

bull La soluzione mostrata garantisce che lrsquouscita I_sync assume il valoredi I nel momento in cui tale segnale egrave stato campionato

bull Sono sufficienti due livelli di FF

bull Quali sono gli effetti collaterali di questa soluzione

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

Nel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti disalita del clock che (tipicamente) si susseguono con periodo T

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

bull La rete egrave svincolata dai ritardi della rete G Quindi nessunproblema di corse critiche (purcheacute T gt tSUmin + tRmin )

bull Allrsquointerno di uno stesso progetto sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stessoeo coincide con il clock del processore

bull Le RSS sono (piugrave) facili da progettare delle RSA

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 12: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Sincronizzazione di segnali (non sincroni)

FFDD

CK

QImetastabile

FFDD

CK

Q

Stabile ()I_sync

I_M

Normalmente i segnali provenienti dallrsquoesterno (ma non solo) non sonosincroni con il clock della RSS Questo egrave un problema molto comune

Come gestire potenziali situazioni di metastabilitagrave che potrebbero compromettere il corretto funzionamento della RSS

CK

bull La soluzione mostrata garantisce che lrsquouscita I_sync assume il valoredi I nel momento in cui tale segnale egrave stato campionato

bull Sono sufficienti due livelli di FF

bull Quali sono gli effetti collaterali di questa soluzione

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

Nel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti disalita del clock che (tipicamente) si susseguono con periodo T

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

bull La rete egrave svincolata dai ritardi della rete G Quindi nessunproblema di corse critiche (purcheacute T gt tSUmin + tRmin )

bull Allrsquointerno di uno stesso progetto sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stessoeo coincide con il clock del processore

bull Le RSS sono (piugrave) facili da progettare delle RSA

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 13: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

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

Nel caso specifico Moore o Mealy Lo stato cambia anche se non cambia lrsquoingresso

Lrsquouscita cambia anche se non cambia lrsquoingresso

CK

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti disalita del clock che (tipicamente) si susseguono con periodo T

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

bull La rete egrave svincolata dai ritardi della rete G Quindi nessunproblema di corse critiche (purcheacute T gt tSUmin + tRmin )

bull Allrsquointerno di uno stesso progetto sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stessoeo coincide con il clock del processore

bull Le RSS sono (piugrave) facili da progettare delle RSA

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 14: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Alcune considerazioni sulle RSS

bull Lo stato della rete cambia solo in corrispondenza dei fronti disalita del clock che (tipicamente) si susseguono con periodo T

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

bull La rete egrave svincolata dai ritardi della rete G Quindi nessunproblema di corse critiche (purcheacute T gt tSUmin + tRmin )

bull Allrsquointerno di uno stesso progetto sono tipicamente presenti piugrave RSS e non necessariamente per tutte le RSS il clock egrave lo stessoeo coincide con il clock del processore

bull Le RSS sono (piugrave) facili da progettare delle RSA

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 15: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

t

t

tt

Si consideri il caso seguente nel quale lrsquouscita di una retecombinatoria egrave utilizzata come clock di un FFD

FFDD Q

Q

c

b

a

1

1

IN

OUT

S

u

u

St t t

Alea statica provoca un campionamento indesiderato del FFD

Alee nelle reti combinatorie

Lrsquouscita u presenta un glitch

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 16: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

bullIn realtagrave le alee possono essere eliminateintroducendo ulteriori gate (metodi che non vedremo)

bullIn alcuni casi le alee potrebbero essere filtratedagli stessi gates (ad esempio nel caso di lsquolentezzarsquodei dispositivi rispetto ai tempi del glitch) questapossibilitagrave deve essere verificata attentamenteanalizzando i datasheet dei componenti utilizzatip e r c h eacute e s p o n e l a r e t e a m a l f u n z i o n a m e n t i

bullIn ogni caso evitare sempre di inviare sul clock diu n a R S S l rsquo u s c i t a d i u n a r e t e c o m b i n a t o r i a

ab c

a

b

c

Un impulso troppo brevepotrebbe essere filtrato dallAND

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 17: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Clock gating e glitch sul clockNelle reti sincrone egrave necessario evitare variazioni spurie (glitch)del segnale di clock che possono provocare commutazioni indesiderate dei FFD

Ad esempio per via dei reciproci ritardi tra i t segnali D[t-10]eo le alee introdotte dalla rete combinatoria di decodifica a causa del ldquoclock gatingldquo puograve verificarsi quanto segue

FFDD

CK

Q

Q

D

CK

Q

Q

CK

P

CK_G

CK_G

Glitch sul clock rarr commutazione spuria del FFD

NO

Rete di Decodifica

D[t-10]P

t

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 18: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Il clock gating oltre a generare potenziali glitch introduce ldquoclock-skewrdquo Ad esempio consideriamo le due RSS seguenti

Clock gating e clock-skew

CK

CK_G

tAND

FFDD

CK

Q

Q

I1

CK

B

BCK_G1

FFDD

CK

Q

Q

I2

CK

A

A

tAND

tAND

I clock delle due reti sono sfasati di un tempo pari al ritardo introdotto dallrsquoAND Tale fenomeno (ldquoclock-skewrdquo) egrave potenzialmente dannoso Perchegrave

Il ldquoclock-skewrdquo non egrave causato solo dal clock gating ma anche (ad esempio) da percorsi elettrici di lunghezza diversa

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 19: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Notazione

Per una corretta e non ambigua rappresentazione delle reti logiche egrave bene adottare alcune convenzioni

RSSindicare

tutti i segnali anche allrsquointerno

Ingressi

Segnali asincroni(A_nome_segnale)

Uscite

Segnali asincroni (A_nome_segnale)o ulteriori segnali di ingresso (eg segnali di

input nei contatori con LOAD)

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 20: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

FFDD Q

Q

I

CK

A

AA_RES

FFDI

CK

A

A

0

1U

S

AB U

S

AB

A_RESET A_RESET

Inoltre

- le RSS hanno un clock mentre le reti combinatorie no etc

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 21: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Driver 3-state

OE

I UOE=0

I U

OE=1

I U

I

OE

U

Qual egrave il valore dellrsquouscita

OE I

1 0

1 1

0 0

0 1

U

0

1

Z

Z

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 22: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

OE=0

0

1

U=

Quale valore logico assume U

Che cosa egrave necessario garantire nella rete seguente

Quando il segnale U assume un valore logico significativo

1 U=OE1

OE2

I1

I2

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 23: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 1

Progettare un registro a 8 bit con uscita tri-stateutilizzando FFD positive edge triggered La rete ad ogni fronte di salita del clock memorizza il byte IN[70] in ingresso se WE=1 mentre mantiene il valore precedentemente memorizzato in caso contrario (WE=0) Lrsquouscita OUT[70] della rete deve essere posta nello stato di alta impedenza quando il segnale OE=0 Inoltre la rete deve essere dotata di un ingresso asincrono di RESET (A_RESET) che se 1 pone al livello logico 0 lrsquouscita OUT[70]indipendentemente dal valore dei segnali WE IN e CKQuali condizioni debbono essere soddisfatte percheacute sia garantito il corretto funzionamento della rete

WE

A_RESET

IN[70]

CK

OUT[70]

OEWE

IN[70]

OE

OUT[70]

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 24: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

WE

OE

FFDD Q

QR

IN OUT0

1

Q

A_RESET

Soluzione

Caso singolo bit

NOTA- Per garantire il corretto funzionamento della rete egravenecessario rispettare tempi di setup e hold

- Il FFD esiste (8X) in forma integrata (74XX374) ed egrave dotatodi comando di OE

CK

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 25: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

NOTA- La soluzione seguente NON egrave corretta in quanto

a) variazioni spurie (glitch) dovute a instabilitagrave delsegnale WE possono causare commutazioni indesiderate del flip-flop

b) il gate ritarda il segnale di clock del FFD e potrebbecausare potenziali sfasamenti (ldquoclock-skewrdquo) tra i clockdei vari componenti della rete sincrona complessiva

WE

OE

FFDD Q

QR

IN OUTQ

A_RESET

CK

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 26: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

FFDD Q

QR

IN7

WE OE

OUT70

1

FFDD Q

QR

IN1 OUT10

1

FFDD Q

QR

IN0 OUT00

1

Q7

Q1

Q0

A_RESET

Estensione a 8 bit

CK

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 27: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Estensione a 8 bit (meglio)

WE

OE

FFDD Q

QR

IN[70] OUT[70]0

1 Q[70]

A_RESET

CK

8888

88

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 28: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 2

Progettare una rete che periodicamente dopo ogni treperiodi di clock setta al livello logico 1 la propriauscita per un periodo clock

A_RESETCK

OUT

CK

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

OUT

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 29: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Soluzione canonica ottenuta mediante sintesi formale

Soluzione 31

A0 B0 C0 D1

Grafo degli stati

Tabella diflusso

sn sn+1

snu

u

A B 0

B C 0

C D 0D A 1

Tabella delle transizioni

y1n y0n u

0 0 0 1 0

0 1 1 0 0

1 0 1 1 01 1 0 0 1

y1n+1 y0n+1

Sintesi minima(mappe di Karnaughhellip)

u = y1nmiddoty0n

y0n+1 = y0n

y1n+1 = y1n XOR y0n

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 30: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

FFDD Q

QFFD

D Q

Q

XORy0 y1

R R

CKu

NOTA- Se si desidera aggiungere un segnale di ENABLE alla reteprecedente mediante il metodo della sintesi formale

- E necessario ripetere tutti i passi precedenti (grafodiagramma stati hellip)

- Noi non studieremo questo metodo

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 31: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

COUNTERX4

Una possibile soluzione si basa sullutilizzo di un contatore modulo 4

Soluzione 32

CK

u1

u0 OUT

A_RESET

Progettare un contatore modulo 4hellip

A_RES

Perchegrave

u1

u0

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 32: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Contatore modulo 4

+1 s1

s0

ca1

a0

b1

b0

FFDDQ

Q clock

FFDDQ

Q clock

1

0

u0

u1

G

Registro a 2 bit

Stato futuroStato presentecoincidente conuscita in questo caso ndashgt rete F egrave lrsquoidentitagrave

Modello di Moore

OUT = u1middotu0

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 33: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Stato StatoPresente Futuro

00 -gt 0101 -gt 1010 -gt 1111 -gt 0000 -gt 01

Possiamo capire da questi valori come progettare la rete

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 34: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0 00 11 01 1

u1 u0

Contatore modulo 4

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 35: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Contatore modulo 4 con comando di ENABLE (EN)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

EN

0

1

EN

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 36: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

0 00 11 01 1

u1 u0

Contatore modulo 4 UPDOWN (UD)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

0

1

UD

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 37: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Contatore modulo 4 con LOAD (L)

FFDD Q

QFFD

D Q

Q

XORu0 u1

R R

CK

A_RESET

1

0

L

1

0

L

i0 i1

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 38: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Logisim Evolution contatore modulo 4 UPDOWN

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 39: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizi

E3-1) Progettare un contatore modulo 4 dotato dei segnaliUD EN e L nei seguenti 2 casi

a) segnale L prioritario rispetto a EN

b) segnale EN prioritario rispetto a L

In entrambi i casi si supponga che UD sia ilsegnale meno prioritario tra i tre

E3-2) Progettare un contatore modulo 8

E3-3) Progettare un contatore modulo 5 utilizzando uncontatore modulo 8

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 40: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 3

Progettare un registro a scorrimento (shift-register) a 3 bit

IN

A_RESET

CK

OUT1

OUT2

OUT0IN

A_RESET

O1

O2

O0

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 41: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

CK

IN

A_RESET

OUT1

Soluzione

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 42: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

IN

OUT2OUT1OUT0

CK

Esercizi

E4-1) Progettare uno shift-register dotato di comandi di enable EN e LOAD (parallelo e prioritario rispetto allenable)

E4-2) Utilizzando due shift-register a 4 bit e uncontatore modulo 8 progettare un convertitore serie parallelo a 8 bit dotato di un segnale (ACK)

che comunica lavventura ricezione degli 8 bit

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 43: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 4

Progettare una rete sincrona dotata di un ingresso IN e di unrsquouscita OUT Lrsquouscita OUT deve asserirsi esattamente per un periodo di clock se viene rilevata una transizione da 0 a 1 del segnale di ingresso(monoimpulsore)

Si noti che il segnale di ingresso potrebbe anche essere non sincrono (purcheacute rispetti tempi di setupe hold)

IN

CK

OUT

CK

IN

OUT

IN OUT

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 44: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

FFDD Q

QFFD

D Q

Q

IN

OUT

CK

Soluzione

CK

IN

OUT

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 45: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

FFDD Q

Q

IN

OUT

CK

Perchegrave questa soluzione egrave sbagliata (1)

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 46: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Perchegrave questa soluzione egrave sbagliata (2)

FFDD Q

Q

IN

OUT

CK

CK

IN

OUT

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 47: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Perchegrave questa soluzione egrave sbagliata (3)

FFDD Q

Q

IN OUT

CK

CK

IN

OUT

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 48: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 5

Progettare un rete che controlla se gli ultimi trecaratteri che si sono presentati sullrsquoingressoIN[70] mentre il segnale VAL era a livello logico 1sono stati FFh (primo carattere della sequenza) 27h e30h Nel caso sia rilevata la sequenza FF-27-30 nelperiodo di clock successivo a quello dellrsquoultimocarattere ricevuto (30h) deve essere asseritalrsquouscita OUT e rimanere tale fino a che non vieneasserito il segnale (asincrono) di reset A_RESET Inseguito ad un reset deve riprendere immediatamente ilcontrollo della sequenza in ingresso come se non fossestato ricevuto alcun carattere

VAL

A_RESET

IN[70]

CK

OUTVAL

A_RESETIN[70]

OUT

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 49: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

CK

IN[7hellip0]

A_RESET

VAL

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 50: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

374D Q

Q

0

1

VAL

8 8374

D Q

Q

0

1

VAL

8 8

30h

IN[7hellip0]

27h FFh

8

VAL

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

DEC_30 DEC_27 DEC_FF

OEOE

0 0

Soluzione 61

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 51: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

30h

27h

FFh

IN[7hellip0]

8

Soluzione 62

FFDD Q

QR

0

1

VAL

CKFFD

D Q

QR

0

1

VAL

CK

FFDD Q

QR

0

1

VAL

CK

DEC_30

DEC_27 DEC_27_1T

DEC_FF DEC_FF_2T

A_RESET

A_RESET A_RESET

FFDD Q

Q

1

0

OUT

R

A_RESETCK

DEC_30VAL

DEC_27_1TDEC_FF_2T

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 52: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Soluzione 63

CK A_RESET

LOAD

ENABLE

0 0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

Una soluzione alternativa utilizzando un contatore dotato di comando di LOAD

Cegrave un problemahellip

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 53: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I1

I0O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

ENABLE = ATTESO_FFmiddotVALmiddotDEC_FF + ATTESO_27middotVALmiddotDEC_27 + ATTESO_30middotVALmiddotDEC_30

nella soluzione della pagina precedente cosa accade se icaratteri ricevuti (con VAL=1) sono FF-FF-27-30

DEC_FF

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 54: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT assuma il valore logico 1 in seguito allaricezione anche non consecutiva (con VAL=1) deicaratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti (mentreVAL=1) sono stati FF-7A-80-9F-27-B2-30-hellip

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 55: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 6

Modificare lesercizio precedente in modo che in seguito al rilevamento della sequenza luscita OUT assuma il valore logico 1 per un solo periodo di clock Appena ricevuta una sequenza completa il controllo dei caratteri in ingresso deve riprendere immediatamente

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 56: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 30h 16h 80h

OUT (1) (2) (3)

Soluzione 71

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 57: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0

OUT

R

RR

A_RESET A_RESET

A_RESET

CK CK

CK

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 58: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Soluzione 72

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30 + OUT

ENABLE = ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30

Rispetto allesercizio 62 egrave sufficiente modificare il comando di LOAD facendo in modo che LOAD=1 quando OUT=1

ENmiddotDEC_FF

Cosa accade se (con EN=1) la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 59: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizi

E6-1) Riprogettare la rete dellesercizio 6 in modo cheOUT=1 in seguito alla ricezione anche non consecutiva(con EN=1) dei caratteri FFh 27h e 30h

Ad esempio OUT=1 se i caratteri ricevuti mentre EN=1sono stati FF-7A-80-9F-27-B2-30-hellip

E6-2) Cosa accade alle soluzioni 61 e 62 se (mentre EN=1)la sequenza egrave 45-FF-27-30-FF-27-30-hellip

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 60: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 7

Progettare un rete che controlla se gli ultimi tre caratteri che si sono presentati in ingresso IN[70]mentre il segnale EN=1 sono stati FFh (primo carattere della sequenza) 27h e 30h Nel caso sia rilevata tale sequenza due periodi di clock successivi a quello dellrsquoultimo carattere della sequenza ricevuto deve essere asserita lrsquouscita OUT e rimanere tale fino a che il segnale di reset (asincrono) A_RESET non assume il valore logico 1 In seguito ad un reset (asincrono) la rete deve riprendere immediatamente il controllo della sequenza in ingresso come se non fosse stato ricevuto alcun carattere

ENA_RESET

IN[70]

CK

OUTOUTENA_RESET

IN[70]

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 61: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

CK

IN[7hellip0]

A_RESET

EN

30h FFh FFh 27h 55h 30h 18h 16h 80h

OUT (1) (2) (3)

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 62: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

374D Q

Q

0

1

EN

8 8374

D Q

Q

0

1

EN

8 8

30h

IN[7hellip0]

27h FFh

8

EN

FFDD Q

Q

1

0OUT

R

RR

A_RESET

A_RESET

A_RESET

Il segnale EN condiziona lultimo carattere della sequenza

CK CK

CK

FFDD Q

QR

A_RESETCK

Soluzione 81

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 63: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

CK A_RESET

LOAD

ENABLE

0

COUNTERX4

EN

A_RES

Q1

Q0

LI1 I0

DEC24

I0

I1O1

O0

O3

O2

EN

1

OUT

ATTESO_30

ATTESO_27

ATTESO_FF

30h

IN[7hellip0]

27h

FFh

8

DEC_30

DEC_27

DEC_FF

LOAD = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

ENABLE = (ATTESO_FFmiddotENmiddotDEC_FF + ATTESO_27middotENmiddotDEC_27 + ATTESO_30middotENmiddotDEC_30)OUT_1

DEC_FF

Soluzione 82

FFDDQ

QR

A_RESETCK

OUT_1

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 64: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 8

Progettare una rete dotata di tre ingressi E AI A_RES e unuscita OUT Il segnale di ingresso AIinfluisce sulla rete solo se contemporaneamente E=1 Luscita della rete deve andare al livello logico 1 per un periodo di clock se viene rilevato per cinque volte anche non consecutive il valore 1 del segnale AI in presenza del segnale E=1 Ogni volta che il segnale AI assume il valore 0 (con E=1) deve essere ridotto di uno il numero di eventi rilevati fino a quel momento Successivamente a un reset (segnale asincrono) o nel caso nessun evento sia stato ancora rilevato (o che il numero di incrementi sia stato compensato da un numero equivalente di decrementi) la rete deve rimanere nello stato 000 anche se AI=0 ed E=1 Dopo avere rilevato cinque eventi la rete deve riprendere immediatamente lrsquoanalisi degli ingressi

EAI

A_RESETCLOCK

OUTOUTEAI

A_RES

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 65: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

AILOAD

CLOCK

0 0

AI

A_RES

A_RESET

Soluzione 91

EIl conteggio egrave bloccato (EN=0) anche con E=1 se il contatore si trova nello stato 000 e il comando DOWN egrave asserito (AI=0)

STATO_0 = O2middotO1middotO0CONTEGGIO_INDIETRO = (AI)ENABLE_COUNTER = Emiddot(STATO_0middotCONTEGGIO_INDIETRO)

LOAD = OUT = O2middotO0

ENABLE_COUNTER O2O1O0

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 66: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Contatore modulo 8 con comando di UPDOWN

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 67: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

COUNTERX 8

EN

UD

LOAD

I2 I1 I0 O2O1O0

EAI

OUT

OUT

CLOCK

0 0

AI

O2O1O0

AI

A_RES

A_RESET

Soluzione 92

E

O1 non egrave necessario

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 68: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

A0 B0 C0 D0 E0

F1

E AI0 ndash1 0 0 ndash 0 ndash 0 ndash 0 ndash

1 1 1 1 1 1 1 1

1 1

1 10 ndash1 0

1 0 1 0 1 0 1 0

Soluzione mediante sintesi formale grafo -gt tabella di flusso -gt tabella delle transizioni NON SI USA

Soluzione 93

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 69: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 9

Utilizzando un microprocessore dotato di un bus indirizzi a 16 bit e di un bus dati a 8 bit mappare nello parte bassa dello spazio di indirizzamento 12k di RAM e nella parte alta 16k di EPROM

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 70: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Soluzione

RAM (12K)

EPROM (16K)

0000h

2FFFh

C000h

FFFFh

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)

1111 1111 1111 1111 (FFFFh)

0010 1111 1111 1111 (2FFFh)

1100 0000 0000 0000 (C000h)

RAM_1 (8k)

RAM_2 (2k)

RAM_3 (2k)

EPROM (16k)

0001 1111 1111 1111 (1FFFh)

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)

0010 1000 0000 0000 (2800h)

CS_RAM_1=A15middotA13

CS_RAM_2=A15middotA13middot A11CS_RAM_3=A15middotA13middot A11

CS_EPROM=A15

Segnali di decodifica

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 71: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

- Il segnale CS_EPROM si attiva per ogni indirizzo maggioreo uguale di 8000h (seconda metagrave dello spazio diindirizzamento) 0000h

C000h

FFFFh

8000h

Indirizzi di memoria con A15=1

CS_EPROM=A15

NOTA- La codifica semplificata implica lattivazione deisegnali di selezioni anche per indirizzi diversi daquelli in cui sono realmente presenti i dispositivi di memoria

EPROM (16K)

EPROM (16K)

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 72: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

- Il segnale CS_RAM_1 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=0

0000h

FFFFh

8000h

CS_RAM_1=A15middotA13

RAM_1 (8k)

A15A12 A11A8 A7A4 A3A0

0000 0000 0000 0000 (0000h)0001 1111 1111 1111 (1FFFh)

A15A12 A11A8 A7A4 A3A0

0100 0000 0000 0000 (4000h)0101 1111 1111 1111 (5FFFh)

Quindi CS_RAM_1=1 per entrambi i seguenti intervalli di memoria

1FFFh

4000hRAM_1 (8k)

5FFFh

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 73: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

- Il segnale CS_RAM_2 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=0

0000h

FFFFh

8000h

CS_RAM_2=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 0000 0000 0000 (2000h)0010 0111 1111 1111 (27FFh)A15A12 A11A8 A7A4 A3A0

0011 0000 0000 0000 (3000h)0011 0111 1111 1111 (37FFh)

Quindi CS_RAM_2=1 per i seguenti quattro intervalli di memoria

2000h

4000h

6000h

A15A12 A11A8 A7A4 A3A0

0110 0000 0000 0000 (6000h)0110 0111 1111 1111 (67FFh)A15A12 A11A8 A7A4 A3A0

0111 0000 0000 0000 (7000h)0111 0111 1111 1111 (77FFh)

RAM_2 (2k)RAM_2 (2k) 3000h

RAM_2 (2k)RAM_2 (2k) 7000h

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 74: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

- Il segnale CS_RAM_3 si attiva per ogni indirizzo compresotra 0000h e 7FFFh (A15=0) per il quale A13=1 e A11=1

0000h

FFFFh

CS_RAM_3=A15middotA13middotA11

A15A12 A11A8 A7A4 A3A0

0010 1000 0000 0000 (2800h)0010 1111 1111 1111 (2FFFh)A15A12 A11A8 A7A4 A3A0

0011 1000 0000 0000 (3800h)0011 1111 1111 1111 (3FFFh)

Quindi CS_RAM_3=1 per i seguenti quattro intervalli di memoria

2800h

6800h

A15A12 A11A8 A7A4 A3A0

0110 1000 0000 0000 (6800h)0110 1111 1111 1111 (6FFFh)A15A12 A11A8 A7A4 A3A0

0111 1000 0000 0000 (7800h)0111 1111 1111 1111 (7FFFh)

RAM_3 (2k)RAM_3 (2k) 3800h

RAM_3 (2k)RAM_3 (2k) 7800h

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 75: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

0000h

FFFFh

2800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

2000h

3800h RAM_2 (2k)RAM_3 (2k)

3000h

4000h

6800h RAM_2 (2k)RAM_3 (2k)

RAM_1 (8k)

6000h

7800h RAM_2 (2k)RAM_3 (2k)

7000h

EPROM (16K)

EPROM (16K)

8000h

C000h

Effetto di replica nella mappatura in memoria dovuto alla decodifica semplificata Nella figura seguente sono indicati solo gli indirizzi iniziali

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 76: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 11

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare nello parte bassa dello spazio di indirizzamento32k di RAM e nella parte alta 32k di EPROM

Nel sistema sono presenti anche due dispositivi di IO denominati D1 (dotato di due registri interni) e D2 (dotato di quattro registri interni)

- mappare in memoria anche i due dispositivi di IO D1 eD2 agli indirizzi 2000h e 1000h

Osservando che esiste una sovrapposizione tra gli indirizzi di una memoria e dei due dispositivi di IO si scrivano i CS in forma semplificata di tutti i dispositivi presenti nel sistema riducendo al minimo gli indirizzi ldquosottrattirdquodai dispositivi di IO alla memoria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 77: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Soluzione

RAM 1 chip da 32KBRAM (00000h-gt07FFFh)CS_RAM = BA19middotCS_D1middotCS_D2

EPROM 1 chip da 32KBEPROM (F8000h ndash FFFFFh)CS_EPROM = BA19

D1 Mappato in memoria allindirizzo 02000h occupa 2 locazioni (A0)nello spazio di indirizzamento

CS_D1 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middot BA5middotBA4middotBA3middotBA2middotBA1

D2 Mappato in memoria allindirizzo 01000h occupa 4 locazioni (A1A0) nello spazio di indirizzamento

CS_D2 = BA19middotBA14middotBA13middotBA12middotBA11middotBA10middotBA9middotBA8middotBA7middotBA6middotBA5middotBA4middotBA3middotBA2

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 78: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 12

Utilizzando un microprocessore dotato di un bus indirizzi a 20 bit e di un bus dati a 8 bit

- mappare 32k di RAM nella parte bassa dello spazio diindirizzamento 32k di RAM a partire dallindirizzo 1C000h e 64k EPROM nella parte alta dello spazio diindirizzamento

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 79: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

RAM_1 (32k)

RAM_2 (32k)

EPROM (64k)

00000h

10000h

20000h

30000h

F0000h

1C000h 0001 1100 0000 0000 0000 23FFFh 0010 0011 1111 1111 1111

FFFFFh

Soluzione

00000h 0000 0000 0000 0000 0000 07FFFh 0000 0111 1111 1111 1111

F0000h 1111 0000 0000 0000 0000

FFFFFh 1011 1111 1111 1111 1111

CS_RAM_1=A19middotA17middotA16

CS_RAM_2=A19middot(A17 + A16)

CS_EPROM=A19

CS_RAM_2=A19middotCS_RAM_1

oppure

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 80: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 13

Progettare una rete che genera il codice Johnson a 3 bit (000-gt100-gt110-gt111-gt011-gt001-gt000-gthellip)

IN

A_RESET

CK

OUT1

OUT2

OUT0

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 81: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

FFDD Q

QR

A_RESET

OUT2OUT1OUT0

CK

NOTA- Poicheacute configurazioni adiacenti del codice Johnsondifferiscono di un solo bit loutput del contatore puograveessere utilizzato per generare forme donda prive dialee

Soluzione

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 82: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 14

Progettare una rete sincrona che genera la sequenza periodica di 3 bit seguente (contatore ad anello) 100-gt010-gt001-gt100-gthellip La rete egrave dotata di un comando di start asincrono (A_START)

A_START

CK

OUT1

OUT2

OUT0

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 83: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

FFDD Q

QR

FFDD Q

QR

FFDD Q

QR

A_START

OUT2OUT1OUT0

CK

Soluzione

S S S

1

1 1

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 84: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 15

Progettare un contatore modulo 2n-1 utilizzando uno shift-register a n bit

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 85: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

FFDD Q

QR

FFDD Q

QR

A_RESET

OUT1OUT0

CK

S S

1 1

Soluzione

Nel caso n=2

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 86: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 16

Progettare una rete che trasferisce in un FFD un bit memorizzato in un registro edge triggered a 4 bit Il bit da trasferire egrave individuato mediante i due segnali di selezione S1 ed S0 La scrittura nel registro a 4 bit egrave abilitata dal segnale WER mentre la scrittura nel FFD egrave abilitata dal segnale WEF

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 87: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Soluzione

Reg4 bit

WER

IN[30]

OUT1

4

OE

WE

D[30]

O3

O2

O1

O0

3

2

1

0

S1S0

0

1 FFDD Q

Q

WEF

CK

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 88: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio 17

Progettare una rete sincrona che quando il segnale ENABLE egrave attivo trasferisce un bit memorizzato in un registro edge triggered a 4 bit (dotato di comandi WEe OE) verso uno dei quattro flip-flop denominati FF3 FF2 FF1 FF0 nellipotesi che

- sia presente oltre ai segnali che codificanola sorgente (S1S0) e la destinazione (D1D0) del trasferimento anche un ulteriore segnale denominato WEF che abilita la scrittura nei flip-flop e WER che abilita la scrittura nelregistro

- il collegamento tra tutte le quattro uscite delregistro edge triggered e gli ingressi dei flip-flopdeve essere realizzato mediante un unico filo

- se il segnale ENABLE non egrave attivo le uscite delregistro a 4 bit devono essere elettricamentedisconnesse dal resto della rete

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 89: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Soluzione

Reg4 bit

IN[30]

OUT0

4

OE

WE

D[30]

O3

O2

O1

O0

FF0D Q

Q

CK

FF1D Q

Q

OUT1

FF2D Q

Q

FF3D Q

Q

OUT2

OUT3Percorso logico dei dati nel caso S1S0 = 11D1D0 = 10ENABLE = 1

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 90: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Reg4 bit

WER

IN[30]

OUT0

1

4

OE

WE

D[30]

O3

O2

O1

O0

S1S0

0

1 FFDD Q

Q

WEFCK

DEC24

3

2

10I0

I1

ENABLE EN

D1D0

DEC24

32

10I0

I1

ENABLE EN

0

1 FFDD Q

Q

OUT1

0

1 FFDD Q

Q

0

1 FFDD Q

Q

OUT2

OUT3DEC3DEC2DEC1DEC0

DEC0

DEC1

DEC2

DEC3

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state

Page 91: 3 Reti Sequenziali - Home - Computer Vision LABvision.deis.unibo.it/~smatt/DIDATTICA/Fondamenti_Informatica_P2/… · 3 Reti Sequenziali 1 Fondamenti di Informatica P2 Ingegneria

Esercizio

E possibile modificare la soluzione dellesercizioprecedente in modo da utilizzare un MUX a 4 vie e unsolo buffer tri-state in sostituzione dei 4 buffer tri-state