Tesi Robotica Analisi, progettazione e implementazione... | Page 131

i i “LP_Tesi” — 2013/10/17 — 18:27 — page 131 — #131 i 6.2. IMPLEMENTAZIONE i 131 Algoritmo 6.6 Sotto moduli di Processor 1 2 3 4 5 6 7 8 9 10 11 Raster_Ifc rasterL <− mkRaster(0); Raster_Ifc rasterR <− mkRaster(1); Scoring_Ifc scoring <− mkScoring(); Tracking_Ifc tracking <− mkTracking(); Disparity_Ifc disparity <− mkDisparity(); BRAM_Configure cfg = BRAM_Configure{ memorySize:(((width∗width/2)+width/2)∗2)/32+1, latency :1, outFIFODepth:3, loadFormat:None, allowWriteResponseBypass:False }; BRAM1Port#(BitF, Bit#(32)) cache <− mkBRAM1Server(cfg); scelta si è deciso di prevenire un eventuale migrazione dall’utilizzo delle BRAM all’utilizzo di vere e proprio RAM DDR presenti all’esterno dell’FPGA, DDR che normalmente lavorano con parole di 32 bit. In Alg:6.7 vengono istanziati i registri e i fili necessari alla comunicazione dei moduli. Come si può ben vedere sono presenti due fili reqScore e reqTrack che trasportano informazioni di tipo BRAMRequest, come detto prima questi fili permettono la condivisione delle informazioni presenti nella BRAM cache. I registri invece vengono utilizzati per la pacchettizzazione di 16 parole da 2 bit in una parola da 32. Grazie all’eleganza del codice BSV i