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