Tesi Robotica Analisi, progettazione e implementazione... | Page 163
i
i
“LP_Tesi” — 2013/10/17 — 18:27 — page 163 — #163
i
7.1. PARALLELIZZAZIONE INTERNA
i
163
Algoritmo 7.1 Interfaccia Raster
1
2
3
4
interface Raster_Ifc;
method Action put(Pixel data);
method ActionValue#(BitIntParDeep) get();
endinterface: Raster_Ifc
Raster Left
Osservando il codice è possibile vedere che alcune rule sono rimaste invariate da
una release all’altra, queste rule servono al riempimento del Raster con i pixel
che provengono dal metodo put. Ma le somiglianze si fermano qui, perché una
volta che la lettura può cominciare tre regole che gestiscono la produzione per
l’output entrano in azione (Alg:7.2). Per meglio dire, le rule sarebbero tre se il
Algoritmo 7.2 Rule di lettura Raster Left
1
2
3
4
5
6
7
8
9
10
rule r_l(startRead && step==0);
raster.portB.request.put(requestPixel(False, addrr, ?));
addrr<=addrr+1;
if(addrr==rip) begin
rip<=rip+fromInteger(intParDeep);
row1<=row1+fromInteger(intParDeep);
end
if(row1>=bound && addrr==rip)
startRead<=False;
endrule
11
12
13
14
15
rule gen_start(cnt==fromInteger(intParDeep) && step==0);
cnt<=0;
fint.enq(toGet);
endrule
16
17
18
19
20
21
22
for(Integer i=0; i