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