Accelerare lo sviluppo di sistemi basati su Fpga

Ogni nuova generazione di Fpga è composta da dispositivi caratterizzati da maggiore densità di funzioni logiche, potenza di elaborazione superiore e ampiezza di banda più estese. Se da un lato ciò si traduce in notevoli vantaggi per i prodotti finali, dall’altro rappresenta un problema di non poco contro per i team di progetto, costretti a garantire maggiori funzionalità, una gamma di caratteristiche più ampia e prestazioni più spinte in tempi via via più ridotti. L’unica soluzione a questo dilemma è incrementare la produttività. Molti sviluppatori hanno a disposizione due “armi” su cui far leva per affrontare questa battaglia apparentemente senza fine: il riutilizzo di proprietà intellettuali e i tool di progettazione di sistema ad alto livello. Qsys è la nuova e importante arma che va ad arricchire l’arsenale di tool di progettazione a livello di sistema di Altera. I progettisti che hanno già familiarità con l’ambiente di sviluppo Altera conosceranno sicuramente Sopc Builder. Questo tool è stato progettato una decina di anni fa per consentire agli sviluppatori di assemblare in modo semplice e veloce un sistema basato sul processore soft-Nios. Nel momento della sua introduzione, Sopc Builder ha rappresentato una vera rivoluzione nel campo della progettazione di sistemi: l’utilizzatore doveva semplicemente selezionare i componenti da un elenco, impostare i singoli parametri utilizzando un wizard grafico e scegliere la modalità di interconnessione attraverso un pannello di permutazione (patch panel) di tipo grafico. Una volta effettuata questa operazione, era sufficiente premere il tasto “Generate” e il tool generava istanze (ovvero oggetti) della IP parametrizzata e tutta la logica di interconnessione tra di loro – compresa qualsiasi arbitrazione, regolazione dell’ampiezza del bus e ogni altra conversione richiesta per il collegamento dell’IP. Nel caso fosse richiesta una successiva modifica, era sufficiente aprire Sopc Builder, editare il sistema nell’interfaccia utente grafica e ricreare la logica. In altre parole, Sopc Builder consentiva praticamente a chiunque di progettare sistemi nel volgere di pochi minuti.
Fin dal momento dell’introduzione di questo tool, Altera ha aggiunto numerose caratteristiche e funzionalità come i bridge di interconnessione Avalon, le funzionalità di streaming e la possibilità di importare moduli IP scritti dall’utente: tutto ciò ha permesso a Sopc Builder di mantenere la leadership nel settore dei tool di progettazione a livello di sistema. Nel frattempo la tecnologia è evoluta e le esigenze sono cambiate a causa soprattutto dell’aumento delle dimensioni e della complessità dei sistemi. Al giorno d’oggi un sistema processore spesso non è la parte principale di un progetto e il problema fondamentale può essere quello di dar vita a un sistema caratterizzato da un’ampiezza di banda particolarmente estesa da utilizzare ad esempio in applicazioni video o di networking.
Anche se Sopc Builder può essere utilizzato per generare progetti molto complessi, è chiaro che sistemi di grandi dimensioni sono difficili da osservare, lenti da visualizzare e complicati da gestire, specialmente nei casi in cui si ottiene un elevato throughput del sistema mediante l’implementazione di un’elaborazione parallela che utilizza più istanze dello stesso insieme di componenti IP. Nel momento in cui si ampliano le dimensioni del sistema e vengono aggiunte più maschere (master), le prestazioni dell’interconnessione Avalon generata diminuiscono fino al punto in cui potrebbero rappresentare un limite per le prestazioni del sistema. Sebbene Sopc Builder abbia subito nel corso degli anni una significativa evoluzione, appare chiara la necessità di apportare modifiche ad alcuni degli obbiettivi chiave di progetto per risolvere in maniera efficace questi problemi.

Qsys: il punto di svolta
Per conseguire questo scopo Altera ha sviluppato un nuovo tool denominato Qsys. Esso, pur ereditando la collaudata interfaccia utente e la semplicità d’uso di Sopc Builder, è stato esplicitamente concepito per realizzare sistemi con prestazioni più spinte e garantire maggiori livelli di produttività per gli sviluppatori. Gli utenti di Sopc Builder riconosceranno immediatamente che il progetto dell’interfaccia ha il medesimo stile e le stesse modalità di interazione di quelle di Sopc Builder. Questa caratteristica, abbinata alla totale compatibilità “a ritroso” con i sistemi generati mediante Sopc Builder, assicura la massima semplicità di migrazione verso il nuovo tool Qsys.

La tecnologia Network on Chip
Il nucleo centrale di Qsys è rappresentato da una nuova tecnologia di interconnessione basata sul principio del NoC (Network-On-Chip). Gli Fpga di più recente introduzione, poichè dispongono di una gran quantità di connessioni organizzate in maniera prevedibile e regolare, sono i componenti ideali per l’implementazione del concetto di NoC. L’interconnessione NoC di Qsys supporta le transazioni a latenza nulla (dove la destinazione dei dati può accettare una transazione nel medesimo ciclo durante il quale è stata originata) e le transazioni su singolo ciclo (dove le operazioni di lettura e scrittura vengono eseguire in un singolo ciclo di clock), eguagliando e superando le prestazioni della struttura di commutazione Avalon che è chiamata a sostituire. L’architettura della rete NoC viene sviluppata dal tool Qsys nel corso della generazione del sistema, in modo da consentire l’ottimizzazione della topologia e del formato dei pacchetti per ciascuna applicazione. Il sistema mappato in memoria di Avalon basato su bus è sostituito dall’interconnessione basata sulla rete NoC. La rete NoC trasmette pacchetti tra i moduli IP utilizzando un formato dei dati e dei comandi interni flessibile opportunamente personalizzato durante la generazione per garantire una soluzione ottimizzata per i componenti IP che devono essere collegati. Il nucleo della rete di Qsys è alimentato mediante un sistema di interfaccia modulare che converte i requisiti di comunicazione dei componenti IP in pacchetti di dati/comandi in formato NoC. Un tale livello di modularità assicura un semplice supporto dei differenti protocolli presenti a bordo del chip (come ad esempio Amba, Ocp, Wishbone): tutto     quello che viene richiesto è una semplice sostituzione dei moduli di traduzione (translator) e agente (agent) che effettuano la conversione tra comandi/risposte delle interfacce del componente IP e le transazioni della rete Qsys.
Il concetto di progettazione modulare si estende allo stesso sistema NoC, semplificando l’automazione della pipelining della rete NoC mediante l’aggiunta di stadi di pipeline a segmenti ben identificati della rete NoC. Ciò consente in pratica ai progettisti di duplicare la massima frequenza di clock di progetti particolarmente complessi con un semplice click del mouse nell’interfaccia utente di Qsys. Per i progettisti che vogliono personalizzare l’interconnessione al fine di conseguire un’ottimizzazione ancora più spinta, Qsys consente di visualizzare e modificare ogni connessione e componente secondario interno nel sistema di interconnessione NoC generato.
L’utilizzo di una nuova tecnologia di interconnessione “turbo” garantisce prestazioni del sistema più spinte e la possibilità di aggiungere nuove funzionalità.

Maggiore produttività
Qsys è anche stato sviluppato per consentire di affrontare in maniera efficace le problematiche di produttività legate alla generazione del sistema mediante questo tool. All’interno di Sopc Builder il codice HDL sviluppato dall’utente potrebbe essere importato per generare un componente custom facilmente condivisibile tra sviluppatori e team di progetto. Qsys permette di operare a un livello di astrazione più alto: infatti non solo è possibile sviluppare e condividere componenti in linguaggio Hdl, ma anche sottosistemi completi i quali possono in seguito essere riutilizzati senza problemi. Quando i sottosistemi realizzati in Qsys sono caricati nel design del sistema, essi vengono visualizzati nell’interfaccia utente di Qsys come un singolo componente: in questo modo è possibile adottare un approccio alla progettazione di tipo gerarchico che semplifica lo sviluppo di complessi sistemi di ampie dimensioni e la gestione di progetti sofisticati da parte di più team di sviluppo. Ciò si traduce in una visualizzazione più “compatta” e intuitiva del sistema nell’interfaccia utente del tool, con l’ulteriore vantaggio di poter visualizzare e apportare modifiche ai sistemi in maniera più rapida ed efficiente.
Qsys implementa anche la generazione di un sistema di natura incrementale: in altre parole, nel momento in cui viene apportata una modifica a una parte del sistema, solo questa parte interessata viene ricreata, e non l’intero sistema. Anche se può apparire a prima vista un vantaggio di modesta entità, in presenza di sistemi di ampie dimensioni con decine o addirittura centinaia di componenti e in considerazione del gran numero di modifiche di lieve entità che vengono realizzate nel ciclo di vita di un progetto, una funzionalità di questo tipo permette di risparmiare parecchie ore di lavoro. Realizzato a partire dai riscontri forniti dagli utilizzatori, Qsys modifica in maniera radicale lo sviluppo di sistemi basati su Fpga.     

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome