Tesi Robotica Un co-processore per Stereo-Matching: Architettura | Page 77

i i “LP_Tesi” — 2011/9/9 — 21:20 — page 77 — #77 i 4.5. MODULO SCORING i 77 le altre RAM. Essendo un algoritmo di programmazione dinamica, i valori del punteggio in una certa cella dipende da tanti fattori, fra questi ci sono anche i punteggi precedenti, per questo motivo è stato necessario creare una feedback di pre-lettura (preRead) che leggesse i valori precedenti. • OUTPUT: – PORT 1 : collegata alla solita FIFO di out (fout) per generare asincronia c’è la fase di backtracking, durante questa fase le direzioni presenti nelle matrici GNorth, GWest e Diag vengono lette per creare l’allineamento ottimo. Questo viene passato al modulo successivo inviando solamente i punti che ne fanno parte, evitando così di dover per forza passare tutte le matrici create. Implementazione Essendo il modulo dello Scoring molto grande, questi occupa la maggior parte dello spazio sull’FPGA dopo la sintetizzazione, sia per quanto riguarda la memoria, sia per quanto riguarda la logica. Iniziamo ora a vedere le variabili usate: size: la variabile width contiene le dimensioni dell’immagine ed è definita nel Package Struct, questa variabile risulta utile per certi controlli; gap, egap, bound: costanti intrinseche al programma, riferirsi alla descrizione dell’algoritmo (Cap:3). score, gapNorth, gapWest, diag: RAM che rappresentano rispettivamente la matrice dei punteggi, la matrice dei gap di Nord, la matrice dei gap di West e la matrice di Diag. fout: FIFO per mantenere il modulo asincrono; addr: indirizzo di scrittura e lettura di tutte le RAM presenti nel modulo; step: scandisce le condizioni di fire per le varie regole e metodi; west: registro che contiene il valore della cella precedente a quella attualmente puntata da addr; top,left: artifizzi che simulano la presenza di due righe, una al disopra e l’altra a sinistra della matrice dei punteggi; i i i i