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