Tesi Robotica Un co-processore per Stereo-Matching: Architettura | Page 23
i
i
“LP_Tesi” — 2011/9/9 — 21:20 — page 23 — #23
i
1.2. FPGA
i
23
Ogni step richiede almeno un ciclo di clock, questo fa capire quanto tempo venga
sprecato per eseguire un operazione facile come l’addizione, per non parlare di
moltiplicazioni e divisioni. A questo punto bisogna chiedersi se per caso ci sia
un modo per ottimizzare il tutto. In un normale PC questo non è possibile data
l’architettura molto rigida. Per ottimizzare la semplice operazione di addizione
è quindi necessario creare una nuova architettura ottimizzata, e la più semplice
di quelle che vengono in mente comporta l’utilizzo di un circuito adder con n
ingressi per ogni bit del numero a, n per il numero b e n uscite per quello c, o
più semplicemente:
Figura 1.2.3: Adder
Sulla porta a (un bus seriale con n fili) abbiamo il primo numero espresso in
binario, mentre sulla porta b (sempre un bus seriale con n fili) il secondo, al successivo ciclo di clock basterà leggere l’uscita c per sapere il valore della somma,
il tutto viene fatto appunto in un singolo ciclo di clock risparmiando così un
sacco di tempo. E questo è un altro punto a favore di questo tipo di programmazione, ovvero, non essere vincolati dall’architettura del sistema, l’architettura infatti viene addirittura descritta, tutti i task possono essere eseguiti nel
minor spreco di tempo, ottimizzando così il rapporto: efficienza su frequenza di
funzionamento.
1.2.2
Flusso di Sviluppo
Il più semplice flusso di sviluppo per un sistema basato su FPGA è mostrato in
Fig:2.0.1.
Per facilitare ulteriormente la lettura, saranno usati i termini inseriti nella documentazione di Xilinx. La parte sinistra del diagramma rappresenta il raffinamento e il processo di programmazione, nel quale un sistema viene trasformato
i
i
i
i