Lo scopo del progetto è di implementare un componente hardware, descritto in VHDL, che, presi in ingresso gli indirizzi base delle otto zone di lavoro e un indirizzo da codificare, trasformi quest’ultimo, nel caso in cui appartenga all’intervallo di una delle zone di lavoro, utilizzando il metodo di codifica a bassa dissipazione di potenza denominato “Working Zone”.
Gli indirizzi in input sono 9: i primi 8 sono le Working Zone (WZ) e il 9° è l’indirizzo (ADDR) da codificare. Tutti gli ingressi sono a 8 bit. Ogni WZ corrisponde ad un intervallo fisso di 4 indirizzi. Il componente hardware deve codificare un indirizzo in uscita a 8 bit secondo l’algoritmo spiegato meglio nelle specifiche complete. L'implementazione del componente è stata realizzata interfacciandosi a una memoria contenente tutte le informazioni relative al problema e utilizzando appositi segnali.
L'implementazione del componente consiste principalmete nella realizzazione di una macchina a stati in grado di determinare se l’indirizzo (ADDR) da codificare è presente o meno in una Working Zone.
L'insieme di test utilizzato per la realizzazione del componente è contenuto all'interno del test bench_in e test bench_no.
L'insieme di test è stato realizzato a partire da quello della specifica andando a identificare i casi che spingono l'esecuzione verso condizioni critiche così da verificare la completa correttezza del sistema, non essendo a disposizione dei test privati utilizzati per la valutazione.
Tra i test sviluppati per sforzare il componente in situazioni particolari, i più significativi vengono chiamati:
- ADDR in ingresso minimo e non presente in nessuna WZ
- ADDR in ingresso minimo e presente nella prima WZ
- ADDR in ingresso massimo e non presente in nessuna WZ
- ADDR in ingresso massimo e presente nell’ultima WZ
- Reset asincrono
- Doppia computazione
Infine per poter garantire una maggiore robustezza sono stati utilizzati anche numerosi test randomici in modo tale da cercare di coprire tutti i possibili cammini di esecuzione della macchina a stati.