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