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

i i “LP_Tesi” — 2011/9/9 — 21:20 — page 67 — #67 i 4.2. MODULO TOP i 67 for alla riga 3 serve per prendere in considerazione tutti i processor. Data l’impossibilità di usare un break per fermare il ciclo, è stata istanziata la variabile check con tale scopo. Il metodo restart (r:18 Alg:4.12) si attiva quando almeno uno dei processor è pronto per la scrittura. Algoritmo 4.12 Top: method 1 2 3 4 5 6 7 8 9 10 11 method Action manager if(!deque && row!=0); Bool check=True; for(Integer i=0; i=1); method Bool finish() = row==0; A questo punto entrano in gioco le rule, principalmente abbiamo due regole, una che gestisce i segnali di restart e una che gestisce l’output. Una volta che un processor ha finito di elaborare una riga, e va quindi nello stato di pronto, queste si attivano in sequenza. Il ciclo for di enque (r:9 Alg:4.13) genera tante regole quanti sono i processor. Ognuna di queste viene attivata solo quando il processor corrispondente alla regola stessa è il primo presente nella FIFO sorter e non è ancora pronto per essere riscritto. Tutto questo allo scopo di prelevare l’output dell’elaborazione e infilarlo nella FIFO fout (r:14) in modo ordinato. Il flag di deque viene messo a True, e quando il processor diventerà pronto per essere riscritto, cioè avrà finito di elaborare la riga, la regola r_1 (r:1 Alg:4.13) i i i i