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