Tesi Robotica Analisi, progettazione e implementazione... | Page 92
i
i
“LP_Tesi” — 2013/10/17 — 18:27 — page 92 — #92
i
92
i
4. VERILOG E BLUESPEC SYSTEMVERILOG
Sulla sinistra è possibile scegliere il modulo a cui si è interessati, una volta scelto
il modulo si possono scegliere i suo componenti, in questo caso del modulo tb
si può scegliere fra i 4 input/output del sotto modulo contatore. Nella parte
destra invece vengono visualizzate le forme d’onda, nel caso in cui un segnale
abbia un solo bit, questo viene rappresentato tramite un’onda quadra (clk, rst,
enable), nel caso invece si trattasse di un array di segnali questi vengono rappresentati come un unico numero (out) che può essere espanso per aumentare
la visualizzazione delle informazioni.
Ovviamente i programmi possono essere molto più complicati di questo, andando ad introdurre macchine a stati finiti e segnali di controllo molto intricati,
ed è questo il momento in cui Bluespec SystemVerilog (BSV) ci viene in aiuto
permettendo di astrarci dai concetti base quali segnali di input ed output per
arrivare ai metodi come se si stesse chiamando una funzione di un oggetto in un
comune OOL.
4.2
Bluespec
Bluespec o BSV è un linguaggio usato nello sviluppo di sistemi elettronici (ASIC,
FPGA,...), utilizzato per tutto lo spettro delle applicazioni esistenti (processori,
memorie, sottosistemi, interconnessioni, trasferimento dati, multimedia e comunicazioni, acceleratore per signal processing, computer ad alte-prestazioni,
ecc).
Essendo un linguaggio di alto livello completamente sintetizzabile in hardware,
viene utilizzato durante molte attività di sviluppo, come descritto sopra. Questa combinazione tra alto livello e sintetizabilità completa permette a molte di
queste applicazioni, che una volta potevano essere solo simulate in software (escludendo così la sintetizzazione), di essere spostate su FPGA molto facilmente.
Questo permette di aumentare la velocità di sviluppo delle attività di 3 o 6 ordini
di grandezza, permettendo così l’esecuzione di attività prima di oggi impensabili
da eseguire.
BSV permette la compilazione del codice in due modi, la prima prevede l’utilizzo
di bluesim, compilatore che trasforma il codice BSV in codice C++, quest’ultimo
può essere ancora una volta compilato ed eseguito per simulare il comportamento
del circuito descritto. Il secondo modo prevede la compilazione in Verilog che
successivamente potrà essere sintetizzato sull’FPGA.
i
i
i
i