percorso s

14
Percorso S Una rete sequenziale asincrona ha il compito di gestire il comportamento di un cursore che si muove in un percorso ad S. Tramite due segnali di ingresso X0 e X1 l’utente indica in quale direzione vuole muovere il cursore: Il sistema da uscita positiva quando il cursore giunge alla fine del suo percorso. Il cursore non può mai muoversi di più di una casella nella stessa direzione, muoversi in direzione opposta a quella da cui proviene. Se l’utente sceglie la direzione sbagliata il cursore viene riportato nella posizione iniziale. Una volta che il cursore è giunto a fine percorso, qualsiasi direzione consentita viene scelta, il cursore viene riportato nella posizione iniziale. Il sistema è dotato anche di un segnale di reset, che quando è a ‘1’ riporta il cursore nella posizione X1 X0 Reti Logiche – Galassi Andrea – Prof. Neri Gi

Upload: margaret-william

Post on 30-Dec-2015

32 views

Category:

Documents


2 download

DESCRIPTION

Percorso S. X1 X0. Il sistema da uscita positiva quando il cursore giunge alla fine del suo percorso. Il cursore non può mai muoversi di più di una casella nella stessa direzione, né muoversi in direzione opposta a quella da cui proviene. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Percorso S

Percorso SUna rete sequenziale asincrona ha il compito di gestire il comportamento di un cursore che si muove in un percorso ad S.Tramite due segnali di ingresso X0 e X1 l’utente indica in quale direzione vuole muovere il cursore:

Il sistema da uscita positiva quando il cursore giunge alla fine del suo percorso.Il cursore non può mai muoversi di più di una casella nella stessa direzione, né muoversi in direzione opposta a quella da cui proviene.Se l’utente sceglie la direzione sbagliata il cursore viene riportato nella posizione iniziale.Una volta che il cursore è giunto a fine percorso, qualsiasi direzione consentita viene scelta, il cursore viene riportato nella posizione iniziale.Il sistema è dotato anche di un segnale di reset, che quando è a ‘1’ riporta il cursore nella posizione iniziale.

X1 X0

Reti Logiche – Galassi Andrea – Prof. Neri Giovanni

Page 2: Percorso S

Lo stato A è lo stato iniziale, corrisponde alla posizione 1 nel percorsoGli stati B, C, D ed E sono gli stati intermedi del percorso, corrispondono rispettivamente alle posizioni 2, 3, 4 e 5 del percorso.Lo stato F è lo stato finale del percorso, l’unico che da uscita positiva. Corrisponde alla posizione 6.

Gli stati G, H, I e L sono gli stati intermedi che riportano il cursore nella posizione iniziale se il percorso è finito o se è stata scelta la direzione sbagliata. Corrispondono alle posizioni 5, 4, 3, e 2.

Diagramma degli stati (Moore)

Page 3: Percorso S

Tabella delle transizioniX1 X0 00 01 11 10A, 0 A B A A

B, 0 A B C -

C, 0 - L C D

D, 0 I - E D

E, 0 - F E H

F, 1 G F G -

G, 0 H H H H

H, 0 I I I I

I, 0 L L L L

L, 0 A A A A

In verde gli stati stabili. In grigio le indifferenze.Gli stati transitori G, H, I e L non sono stabili per nessuna configurazione degli ingressi

Page 4: Percorso S

Tabella Triangolare

Non vi sono stati compatibili

Page 5: Percorso S

Variabili di stato

Poiché abbiamo 10 stati dovremo usare 4 variabili di stato.Dopo un’analisi del comportamento del circuito attribuiamo un valore binario ad ogni stato in modo che non vi siano corse critiche: ogni stato differisce dal precedente solo per il valore di una variabile di stato

A 1000

B 0000

C 0001

D 0011

E 0010

F 0110

G 1110

H 1010

I 1011

L 1001

Page 6: Percorso S

Tabella delle Transizioni 2 X1 X0 00 01 11 10

A 1000, 0 1000 0000 1000 1000

B 0000, 0 1000 0000 0001 -

C 0001, 0 - 1001 0001 0011

D 0011, 0 1011 - 0010 0011

E 0010, 0 - 0110 0010 1010

F 0110, 1 1110 0110 1110 -

G 1110, 0 1010 1010 1010 1010

H 1010, 0 1011 1011 1011 1011

I 1011, 0 1001 1001 1001 1001

L 1001, 0 1000 1000 1000 1000

In verde gli stati stabiliIn grigio le indifferenze

Gli stati G, H, I e L non sono stabili per nessun ingresso, essi infatti sono stati transitori che servono esclusivamente per riportare il cursore allo stato A

Per essi e per A non sono previste indifferenze poiché sono raggiungibili con tutti e 4 le configurazioni di ingresso

Page 7: Percorso S

Mappe di Karnaugh

y1 y0 00 01 11 10

B 0 0 1000 0000 0001 -

C 0 1 - 1001 0001 0011

D 1 1 1011 - 0010 0011

E 1 0 - 0110 0010 1010

y1 y0 00 01 11 10

0 0 - - - -

0 1 - - - -

1 1 - - - -

F 1 0 1110 0110 1110 -

y1 y0 00 01 11 10

A 0 0 1000 0000 1000 1000

L 0 1 1000 1000 1000 1000

I 1 1 1001 1001 1001 1001

H 1 0 1011 1011 1011 1011

Y3=0 Y2=0 X1 X0 Y3=0 Y2=1 X1 X0

Y3=1 Y2=0 X1 X0 Y3=1 Y2=1 X1 X0

y1 y0 00 01 11 10

0 0 - - - -

0 1 - - - -

1 1 - - - -

G 1 0 1010 1010 1010 1010

Page 8: Percorso S

Formule

Y0= !R*(!Y3*!Y1*X1 + !Y3*Y0*!X0 + !Y3*Y0*!X1 + Y3*!Y2*Y1)Y1= !R*(Y1*!Y0 + !Y3*X1*!X0 + !Y3*Y1)Y2= !R*(!Y3*Y1*!Y0*!X1 + !Y3*Y2) = !R*!Y3*(Y1*!Y0*!X1 + Y2)Y3= R+(Y0*!X1 + !Y0*!X0 + Y2*X1 + Y3*Y1 + Y3*X1)

Z= !R*!Y3*Y2

R è il segnale di RESET. Se positivo il sistema deve tornare nello stato A (1000) con uscita 0.

Page 9: Percorso S

Schematico

Page 10: Percorso S

Testbench

Per verificare il corretto funzionamento del circuito, prima lo resettiamo, poi simuliamo 3 diverse eventualità:1. Un reset durante il percorso2. Un errore durante il percorso3. Un percorso che giunge fino alla fine

Page 11: Percorso S

--Simulo un percorso errato (A->B->C->A)X1<=‘0’; X0<=‘1’;--Input corretto -> Stato B:0000wait for CK_period*10;

X1<=‘1’; X0<=‘1’;--Input corretto -> Stato C:0001wait for CK_period*10;

X1<=‘1’; X0<=‘0’;--Input corretto -> Stato D:0011wait for CK_period*10;

X1<=‘1’; X0<=‘0’;--Input errato--Torno al punto di partenza: Stati I->L->Await for CK_period*10;

--verifico il funzionamento del resetX1<=‘0’; X0<=‘1’;--Input corretto -> Stato B:0000wait for CK_period*10;

X1<=‘1’; X0<=‘1’;--Input corretto -> Stato C:0001wait for CK_period*10;

Reset <='1';--Resetto -> Stato A:1000wait for CK_period*10;

Reset <='0';wait for CK_period*10;

Test Reset e Percorso Errato

Page 12: Percorso S

--simulo un percorso corretto--A->B->C->D->E->FX1<=‘0’; X0<=‘1’;--Input corretto -> Stato B:0000wait for CK_period*10;

X1<=‘1’; X0<=‘1’;--Input corretto -> Stato C:0001wait for CK_period*10;

X1<=‘1’; X0<=‘0’;--Input corretto -> Stato D:0011wait for CK_period*10;

X1<=‘1’; X0<=‘1’;

--Input corretto -> Stato E:0010wait for CK_period*10;

X1<=‘0’; X0<=‘1’;--Input corretto -> Stato F:0110, Uscita 1wait for CK_period*10;

--percorso corretto terminato--torno nella posizione inizialeX1<=‘1’; X0<=‘1’;--Stati G->H->I->L->Await for CK_period*10;

Test Percorso Corretto

Page 13: Percorso S

Simulazione Behavioral

Page 14: Percorso S

Simulazione Post Route

Il comportamento è lo stesso della simulazione behavioral, fatta eccezione per i ritardi e le corse che si verificano quando il circuito deve tornare nello stato A