Una rete sequenziale sincrona deve gestire il funzionamento di un allarme antifurto. Esso è dotato di due sensori di rilevazione (S1 e S2) e un telecomando con due bottoni: uno per l’accensione e lo spegnimento dell’antifurto (B) e uno per lanciare l’allarme "panico", cioè l’attivazione manuale della sirena d’allarme (P). Inoltre, due uscite segnalano rispettivamente l'accensione dell'antifurto (Accensione) e l'attivazione dell'allarme (Allarme): solo quando l'antifurto è acceso l'allarme può attivarsi, restando in funzione fino a quando l'antifurto non viene spento. L’allarme deve scattare solamente se i sensori rilevano una presenza umana. Per questo motivo, quando il sensore 1 avverte un movimento, invia un impulso all'antifurto, che rimane all'erta per 3 periodi di clock: se entro questi 3 clock anche il sensore 2 si accende, è stata rilevata un'intrusione e viene dato l'allarme. Dunque il sensore 1 è prioritario rispetto al 2 ed è anche "retriggerabile": un nuovo impulso proveniente dal sensore 1 resetta il conteggio dei 3 clock. Per lanciare l'allarme "panico" è necessario tenere premuto l'apposito pulsante del telecomando per almeno 3 periodi di clock: indipendentemente dallo stato dei sensori, dunque, l'uscita d'allarme viene portata a 1. Per la natura del progetto, tutti i segnali d'ingresso sono supposti asincroni: questo significa che nel programma VHDL questi segnali faranno parte della Sensitivity List dei processi, insieme al segnale di Clock. Per la descrizione del comportamento della rete si fa uso di 4 processi, che dividono la gestione degli input e degli output a seconda del loro compito. Alcuni segnali interni alla Architecture hanno il compito di esportare i risultati ottenuti all’interno dei vari processi. I processi sono: • Processo Accensione: gestisce l’uscita Accensione attraverso il segnale B • Processo Panico: si occupa del segnale P per lanciare l’allarme ‘panico’ • Processo Sensore: si occupa del sensore S1 • Processo Allarme: riceve come input il sensore S2 e i segnali esportati dagli altri processi per gestire l’uscita Allarme Entity e segnali interni alla Architecture Processo Accensione (1) All’interno del processo si definiscono 3 variabili di supporto. Esse consentono di simulare il funzionamento di un monoimpulsore in grado di catturare impulsi più brevi di un clock. Processo Accensione (2) Processo Panico Processo Sensore Processo Allarme Il processo è sensibile ai segnali esportati dagli altri processi e al sensore 2. Una somma logica dei segnali stabilisce il valore dell’uscita Allarme. Test Bench (1) Test Bench (2) Simulazione Behavioral Simulazione Post Route La rete reagisce agli stimoli, con i dovuti ritardi fisici, secondo il comportamento atteso e senza causare glitches delle uscite.