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