Tesi Robotica Analisi, progettazione e implementazione... | Page 164
i
i
“LP_Tesi” — 2013/10/17 — 18:27 — page 164 — #164
i
164
i
7. TERZA RELEASE
numero di riempitori fosse fissato a uno, questo perché le regole sono annidate
all’interno di cicli for, questo permette di estendere il numero di riempitori che
si possono servire. Venendo con ordine la prima rule r_l gestisce la lettura
diretta dalla BRAM raster. Il tutto è controllato dalle variabili di addrr e
rip, queste tengono conto del punto raggiunto della lettura, quando si arriva al
limite, il Raster si ferma e attende che la fase di Backtracking finisca.
Le rule gen_start e gen invece formattano i pixel per spedirli in uscita. Ogni
pixel è composto di 24 bit, in uscita però si hanno 24∗intP arDeep, questo perché
i pixel vengono impacchettati assieme ad altri pixel, uno per ogni riempitore. Le
rule gen, eseguono proprio questa operazione, ovvero quella di impacchettare
tutto nel registro toGet, il cui contenuto sarà inserito in una coda chiamata
fint (internal FIFO).
A questo punto entra in gioco il metodo get (Alg:7.3), questi non fa altro
che contare il numero di volte in cui la FIFO fint è stata letta, se la riga di
riempimento è terminata allora il registro step viene settato a 1 provocando il
reset del modulo attraverso una rule appositamente creata.
Algoritmo 7.3 Metodo get Raster Left
1
2
3
4
5
6
7
8
9
10
method ActionValue#(BitIntParDeep) get() if(step==0);
if(row>=bound && counter==limit) step<=1;
if(counter==limit)begin
counter<=0;
fint.deq();
limit<=limit+fromInteger(intParDeep);
row<=row+fromInteger(intParDeep);
end else counter<=counter+1;
return fint.first;
endmethod
Raster Right
Il secondo raster invece è stato gestito similmente ad uno shift-register. Oltre ad
una regola per la scrittura è possibile osservarne solamente un’altra (r_r), che
tra l’altro è molto simile a come si presentava nella seconda release (Alg:7.4).
L’unica differenza sta nell’incremento delle variabili che indicano il limite sempre
diverso per ogni lettura. Mentre nella seconda release questo incremento era
i
i
i
i