Tesi Robotica Analisi, progettazione e implementazione... | Page 80

i i “LP_Tesi” — 2013/10/17 — 18:27 — page 80 — #80 i 80 i 3. SISTEMI EMBEDDED tramite un semplice cavo è possibile scaricare la configurazione appena creata dentro un FPGA per ottenere così il circuito desiderato. 3.2.1 HDL Il termine HDL (Hardware Description Language) viene utilizzato per classificare tutti quei linguaggi utilizzati per la descrizione hardware, i principali protagonisti di questo paradigma di programmazione sono System Verilog e VHDL (Very high-speed integrated circuit HDL). La programmazione hardware permette di fare cose con performance impossibili da raggiungere per un normale personal computer. Il tutto sta nel capire la logica che domina questo paradigma. Pensiamo ora al caso più semplice, come l’esecuzione di una somma, in un normale PC le somme vengono eseguite attraverso vari passi scanditi da un ciclo di clock. Esempio: Siano le variabile x=5 e y=7 queste sono presenti nella RAM del PC ad un certo indirizzo. Per eseguire l’istruzione z = x + y i seguenti step devono essere percorsi: • Portare il line pointer del programma all’indirizzo di x; • Leggere x; • Scrivere il contenuto di x nel registro a del processore; • Portare il line pointer del programma all’indirizzo di y; • Leggere y; • Scrivere il contenuto di y nel registro b del processore; • Sommare il contenuto dei registri a e b mettendo il risultato in un nuovo registro; • Scrivere il contenuto del nuovo registro all’indirizzo della variabile z. 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 i i i i