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

i i “LP_Tesi” — 2013/10/17 — 18:27 — page 165 — #165 i 7.1. PARALLELIZZAZIONE INTERNA i 165 sempre pari a 1 dato che la riga successiva a quella attuale è sempre più grande di un solo elemento, in questa release si trattano intParDeep righe alla volta, costringendo il programma ad incrementare il limite di questa quantità ogni volta che si raggiunge il fine della riga più lunga. Algoritmo 7.4 Rule di lettura Raster Right 1 2 3 4 5 6 7 rule r_r (startRead); raster.portB.request.put(requestPixel(False, addrr, ?)); if(addrr==rip) begin rip<=rip+fromInteger(intParDeep); row<=row+fromInteger(intParDeep); addrr<=0; end else addrr<=addrr+1; 8 9 10 11 12 13 14 if(row>=bound && addrr==rip) begin startRead<=False; stopWrite<=False; addrw<=0; end endrule Il metodo get invece prende il risultato della lettura lo inserisce nella variabile toGet dopo aver shiftato i risultati precedenti (Alg:7.5). Algoritmo 7.5 Metodo get del Raster Right 1 2 3 4 5 6 method ActionValue#(BitIntParDeep) get(); let x <-raster.portB.response.get(); let y = extend(pack(x))+(toGet<<24); toGet<= y; return y; endmethod 7.1.2 Modulo Scoring In questo modulo è possibile trovare i miglioramenti spiegati all’inizio del capitolo, ogni regola è stata inserita in un ciclo for in modo da ottenere array di regole a cui ognuna viene affidata la gestione di un riempitore di riga. i i i i