Tesi Robotica Un co-processore per Stereo-Matching: Architettura | Page 71

i i “LP_Tesi” — 2011/9/9 — 21:20 — page 71 — #71 i 4.3. MODULO PROCESSOR i 71 Algoritmo 4.15 Processor: method 1 2 3 method Action put (Pixel left, Pixel right); rasterL.write(left); rasterR.write(right); endmethod: put 4 5 6 7 method Action deque; disparity.deq(); endmethod: deque 8 9 10 11 method DispAddr get = disparity.get; method Bool getReady = disparity.getReady; method Bool getNotEmpty = disparity.getFoutNotEmpty; Venendo alla descrizione delle rule possiamo notare la loro semplicità ad una prima occhiata, consistono semplicemente nel collegare i raster con il modulo Scoring e il modulo Scoring con quello Disparity. Il tutto è reso estremamente asincrono grazie alla gestione delle condizioni di fire tramite i segnali. Il modulo Scoring non può essere riempito fino a quando i raster non mettono qualche elemento nella FIFO di uscita, quello Disparity non riceve niente fino a quando Scoring non inizia a elaborare i primi risultati. Algoritmo 4.16 Processor: rule 1 2 3 4 rule r_1 (rasterL.getFoutNotEmpty && rasterR.getFoutNotEmpty && scoring.getStep==1); scoring.put(rasterL.get(),rasterR.get()); endrule: r_1 5 6 7 8 rule r_2 (scoring.notEmpty); disparity.put(scoring.get()); scoring.deque(); endrule: r_2 i i i i