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