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