Tesi Robotica Un co-processore per Stereo-Matching: Architettura | Page 14
i
i
“LP_Tesi” — 2011/9/9 — 21:20 — page 14 — #14
i
i
brevissimo. Ed è qui che si trova la forza di questo linguaggio, l’apprendimento
del Verilog (o VHDL) è spesso lento per colpa della sua rigidità, e spesso molte
condizioni che in BSV vengono risolte in poco tempo e con qualche riga di
codice, in Verilog richiedono molto tempo per essere codificate.
Il codice originale scritto dai ricercatori dell’università di Kingston è stato fornito in Matlab, questo a indicare quanto il progetto sia ancora in fase di sviluppo
e preproduzione. All’esecuzione il programma risulta lento e poco ottimizzato
(a causa delle necessità di debug funzionale) e si è quindi deciso che questa versione fosse utilizzata solo a scopo di confronto tra i risultati raggiunti in BSV e
quelli originali.
I Tool utilizzati durante la durata del progetto sono diversi, vanno appunto da
Matlab per la comprensione del codice originale, Bluespec per la simulazione del
codice BSV e la compilazione in Verilog, Quartus II (sintetizzatore Altera) per
la sintesi del codice Verilog in NetList per l’applicazione su FPGA. La presente
tesi si occuperà di analizzare gli algoritmi e i sourcecode (è stata scritta anche
una versione software-only in C) in modo da spiegare con precisione come è
stato effettuato il passaggio da un linguaggio di programmazione per dispositivi
General Purpose ad un linguaggio per la descrizione Hardware.
Il presente lavoro di tesi è suddiviso in 6 capitoli.
Nel capitolo 1 si fornisce una panoramica sui sistemi embedded, si evidenziano
le peculiarità che distinguono tali sistemi da quelli general purpose, descrivendo come gli obiettivi e vincoli di progetto si riflettono sulle scelte architetturali. Si descrive in particolare l’architettura di un FPGA, il modo in cui
viene programmato e una breve panoramica su cosa significhi programmare in
HDL.
Nel capitolo 2 si affronta lo studio del linguaggio BSV, linguaggio che consente
di ridefinire il flusso di lavoro per un sistema programmato in hardware.
Nel capitolo 3 si comincia a descrivere in pseudo-codice l’algoritmo utilizzato per
risolvere il problema delle corrispondenze grazie all’ausilio di schemi di semplice
consultazione.
Nel capitolo 4 il codice fornito dai ricercatori dell’università di