Tesi Robotica Analisi, progettazione e implementazione... | Page 135
i
i
“LP_Tesi” — 2013/10/17 — 18:27 — page 135 — #135
i
6.2. IMPLEMENTAZIONE
i
135
• OUTPUT:
– Method finish: segnala al modulo Tracking quando cominciare ad
elaborare la BRAM delle direzioni vista prima.
– Method reqDir: invia richieste di scrittura alla BRAM delle direzioni
cache, questa viene riempita dall’alto verso il basso da sinistra verso
destra.
Implementazione
Nella prima parte del codice vengono istanziati tutti i moduli di supporto all’esecuzione dell’algoritmo (Alg:6.10), Prima di tutto è possibile osservare la
definizione di alcuni parametri fondamentali come gap, egap e le dimensioni
dell’immagine. In un secondo momento vengono istanziate alcune FIFO, fra
Algoritmo 6.10 Elementi di supporto al modulo Scoring
1
2
3
BitF size = fromInteger(width);
BitScore gap=69, egap=98, bound=255;
Reg#(Bit#(2)) step <− mkReg(0);
4
5
6
7
8
9
FIFO#(BitScore) delta <− mkSizedFIFO(2);
FIFO#(Bit#(1)) en <− mkSizedFIFO(2);
FIFO#(BitScoreDir) ramNorth <− mkSizedFIFO(width);
FIFO#(BitScoreDir) result <− mkSizedFIFO(3);
RWire#(BRAMRequest#(BitF, Direction)) req <− mkRWire();
10
11
12
13
14
15
RegBitF
RegBitF
RegBitF
RegBitF
RegBitF
addr <− mkReg(0);
waddr <− mkReg(0);
slack <− mkReg(size);
row <− mkReg(0);
col <− mkReg(0);
16
17
18
19
20
Reg#(BitScoreDir) maxu <− mkReg(?);
Reg#(Direction) gapWest <− mkReg(?);
RegBitScore west <− mkReg(0);
RegBitScore north <− mkReg(0);
21
22
23
24
25
RegBitScore northWest <− mkReg(0);
RegBitScore top <− mkReg(gap);
RegBitScore left <− mkReg(gap);
Reg#(Bit#(1)) fin <− mkReg(0);
i
i
i
i