Cassaforte asincrona II
assegnamento
Descrizione
Il progetto Cassaforte II assegnamento consiste in una codifica diversa delle variabili
di stato.
Codifica iniziale:
Codifica riassegnata:
x1x2
x1x2
00
01
11
10
00
01
11
10
A
B
A
A
A
A
00
11
00
00
00
0
B
B
C
A
A
B
11
11
10
00
00
0
C
A
C
D
A
C
10
00
10
01
00
0
D
A
A
D
A
D
01
00
00
01
00
1
y1y2
Sono state evidenziate le corse critiche di giallo, mentre la corsa di colore verde è
ammessa.
Sintesi delle funzioni
Viene eseguita le sintesi delle funzioni attraverso la mappa di Karnaugh:
x1x2
00
y1y2
01
11
10
x1x2
00
y1y2
01
11
10
00
11
00
00
00
0
00
11
00
00
00
0
01
00
00
01
00
1
01
00
00
01
00
1
11
11
10
00
00
0
11
11
10
00
00
0
10
00
10
01
00
0
10
00
10
01
00
0
x1x2
00
y1y2
01
11
10
Dalla tabella delle transizioni sintetizzo
le equazioni delle variabili di stato y1,
y2 e dell’uscita Z.
00
11
00
00
00
0
01
00
00
01
00
1
11
11
10
00
00
0
10
00
10
01
00
0
y1 = !x1!x2!y1!y2 + !x1x2y1 + !x1y1y2
y2 = !x1!x2!y1!y2 + !x1!x2y1y2+
x1x2y1!y2 + x1x2!y1y2
Z = !y1y2
Simulazioni da schematico e VHDL: Behavioural e Post-Route
Dalla simulazione Behavioural si può notare che essa si blocca dopo 650ns, esattamente
mentre l’uscita Z dovrebbe portarsi a 1, riportando un errore nella console.
Il cambiamento simultaneo di entrambe le variabili di stato genera questo errore e
blocca la rete.
La simulazione Post-Route avviene con successo, ma presenta punti instabili, di errore, e
per certe configurazioni di ingresso porta la rete in uno stato sbagliato.
Dopo aver resettato la rete, quando la configurazione di ingresso diventa
x1=x2=0 la rete secondo la tabella delle transizioni dovrebbe portarsi
nello stato successivo y1=y2=1, cosa che fisicamente non sarebbe
possibile in quanto le due variabili di stato y1 e y2 dovrebbero cambiare
contemporaneamente. Invece ciò avviene e rende la rete non più in
grado di rispondere agli stimoli successivi, difatti l’uscita Z non si porta
mai a 1.
Quando la configurazione di ingresso è x1=x2=0 e la rete si trova nello
stato 00, il suo comportamento non è prevedibile. Dalla simulazione si
nota che le variabili di stato si portano in entrambe le due occasioni a 1
simultaneamente, ma in realtà potrebbero restare a 0 o generare errori.
Considerazioni
x1x2
00
01
11
10
00
11
00
00
00
0
11
11
10
00
00
0
10
00
10
01
00
0
01
00
00
01
00
1
y1y2
Dalle simulazioni è stata esaminata
la corsa critica segnalata dal colore
verde, ma essa non è l’unica corsa
pericolosa della rete. In particolare
la corsa evidenziata in giallo
potrebbe causare seri problemi nel
funzionamento della rete, difatti
prima di passare allo stato 01 dallo
stato 10, la rete potrebbe transitare
o dallo stato 00 il quale rimarrebbe
stabile per ingressi x1=x2=1, oppure
per lo stato 11. Quest’ultimo
comporterebbe un altro doppio
cambiamento delle variabili di stato
al quale consegue o la possibilità
che la rete riesca a raggiungere la
configurazione voluta oppure che si
riporti allo stato 10 in condizione di
instabilità. I ritardi determinano il
comportamento della rete.
x1x2
00
01
11
10
0010
0000
0000
0000
1100
1100
1000
1110
1000
1000
0000
1000
1001
0000
0100
0000
0000
0100
0000
0010
1010
----
0000
----
1110
1100
----
0110
----
1010
1110
----
----
----
0110
----
----
0010
----
0001
----
----
----
----
1101
----
----
0101
----
1001
----
----
1101
----
0101
----
----
0100
----
0011
----
----
----
----
1111
----
----
----
----
1011
----
----
----
----
0111
----
----
----
----
y1y2y3y4
0000
Dalla dimostrazione ne risulta
che l’assegnamento scelto per
la cassaforte non è funzionale:
la rete, oltre ad essere più
complessa, genera diverse
corse critiche che
interferiscono con il
funzionamento.
Per ovviare al problema
sarebbe necessario
aggiungere variabili di stato in
modo da eliminare le corse e
rendere la rete stabile in ogni
stato a seconda degli ingressi.
Una possibile soluzione
potrebbe essere la seguente:
Scarica

Presentazione