Progetto RSS
Creazione di una rete per gestire
lo spegnimento di macchine in
caso di blackout
Problema
Un gruppo statico di continuità utilizza una rete sequenziale sincrona per gestire
lo spegnimento di alcune macchine in caso di blackout.
L’UPS utilizza il segnale d’ingresso I per mettere in funzione la rete.
Una volta avviata la rete deve inviare il comando di spegnimento a più macchine
(supponiamo 3) in questo modo: (il conteggio avanza solamente se I=1)
1. attende 6 cicli di clock e lancia il comando di spegnimento della macchina 1 (per
un ciclo di clock O1=1);
2. una volta lanciato lo spegnimento della prima macchina attende 6 cicli di clock e
lancia il comando di spegnimento per la seconda (per un ciclo di clock O2=1);
3. una volta lanciato lo spegnimento della seconda attende 6 cicli di clock e lancia
lo spegnimento della terza (per un ciclo di clock O3=1)
La rete è inoltre dotata di un segnale di Reset (A_RES) che viene utilizzato nel
caso la corrente sia tornata e non vi è più necessità di spegnere le macchine, la
rete deve provvedere a riaccendere attraverso il comando di Restart (Rn=1) le
macchine che erano già state spente.
Risoluzione
Ho risolto il problema attraverso la sintesi diretta utilizzando alcuni componenti già noti
Contatore per 5
SCHEMATICO
VHDL
Contatore per 3
SCHEMATICO
VHDL
Monoimpulsore A
SCHEMATICO
Il monoimpulsore A mi permette di generare un impulso di uscita di un
periodo di clock per ingresso 1. Un ulteriore impulso viene generato
solo se l’ingresso torna a 1 dopo essere stato a 0. (L’uscita è
sincronizzata con il clock)
Monoimpulsore A
VHDL
Monoimpulsore A modificato
SCHEMATICO
Questo tipo di monoimpulsore mi permette di catturare un breve impulso, in questo caso
il reset asincrono
Monoimpulsore A modificato
Schematico
VHDL(0)
VHDL(1)
VHDL(2)
VHDL(3)
Simulazione Schematico
Behavioral
Post-Route
Il ritardo introdotto è pari a circa 8 ns.
Simulazione VHDL
Behavioral
Post-Route
Il ritardo introdotto è pari a circa 9 ns.
Scarica

Presentazione