Tesi Robotica Analisi, progettazione e implementazione... | Page 81
i
i
“LP_Tesi” — 2013/10/17 — 18:27 — page 81 — #81
i
3.2. FPGA
i
81
Figura 3.2.3: Adder
è 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:
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.
3.2.2
Flusso di Sviluppo
Il più semplice flusso di sviluppo per un sistema basato su FPGA è mostrato in
Fig:3.2.4.
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
da un HDL astratto in una configurazione per dispositivi basati su celle e successivamente scaricato sull’FPGA. Nella parte destra abbiamo il processo di
validazione, nel quale viene controllato se il sistema corrisponde alle specifiche
funzionali e agli obbiettivi di performance. I passi principali nel diagramma
sono:
i
i
i
i