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

i i “LP_Tesi” — 2011/9/9 — 21:20 — page 92 — #92 i 4.7. MODULO TB i 92 viene lasciata alla regola manager (r:5 Alg:4.28), la quale aspetta che i loader siano pronti per inviare nuove righe (codizione di fire) e ad ogni segnale di restart dal modulo Top li riavvia allo scopo di riattivare il flusso di pixel in trasmissione. Come prima, il contatore c scandisce l’operazione, permettendole di essere eseguita solamente dopo che la fase di inizializzazione è terminata (c > 1). Algoritmo 4.28 Tb: rule loader+manager 1 2 3 rule loader (loaderL.getFinNotEmpty && loaderR.getFinNotEmpty); top.put(loaderL.get(),loaderR.get()); endrule: loader 4 5 6 7 8 9 10 rule manager(!loaderL.getReadLine && !loaderR.getReadLine && c>1); top.manager(); if(top.restart) begin loaderL.restart(); loaderR.restart(); end endrule: manager Una volta che i processor cominciano a terminare la computazione è possibile andare a prelevare il risultato sotto forma di elementi DispAddr, grazie al metodo top.get(). È in questo momento che entra in gioco la regola getter (Alg:4.29). La rule non ha condizioni di fire, ma ciò non implica che venga eseguita ad ogni ciclo di clock, infatti proprio la chiamata al metodo get del modulo Top inibisce la sua esecuzione. Come si può ben vedere da Alg:4.12 il metodo get ha come condizione fout.notEmpty, ciò significa che se la FIFO di uscita è vuota, il metodo non può entrare in esecuzione, e così come il metodo anche tutte le regole che lo chiamano (r:3 Alg:4.29). Prima o poi la FIFO si comincerà a riempire di elementi DispAddr, quindi la regola entrerà in azione prelevando valori da analizzare. Se la disparità dell’iesimo elemento è pari a 0 c’è poco da fare, l’i-esimo pixel della riga (sia della mappa di disparità che quella delle occlusioni) diventerà nero, se invece la disparità è diversa da 0, si analizza il colore e nell’i-esimo pixel della riga della mappa delle occlusioni si setta il canale corrispondente a 255, mentre nell’iesimo pixel della riga della mappa di disparità si setta semplicemente il valore con quello ricevuto, tranne nel caso in cui si tratti di un occlusione, ovvero color = GREEN (r:15 Alg:4.29). i i i i