Elettronica Plus

Metodologie di progetto per i system on a programmable chipERT

I progressi compiuti nel settore dei dispositivi logici programmabili in termini di aumento di velocità e riduzione delle dimensioni, uniti alla sempre più ampia disponibilità di nuclei di processori embedded e di blocchi IP non sono sufficienti ad assicurare l’implementazione degli attuali System-on-a-Programmable-Chip (SoPC).

E’ necessario disporre di una metodologia in grado di gestire la complessità a livello di sistema per poter ottenere la riduzione del time to market che rappresenta uno dei principali vantaggi legati all’impiego dei dispositivi logici programmabili.
In passato gli utilizzatori di logiche programmabili hanno apprezzato l’elevato livello di integrazione di MAX+PLUS II, un ambiente di design veramente completo che racchiudeva funzioni di design entry, sintesi, simulazione, place & route e analisi delle temporizzazioni.

Oggigiorno i medesimi utilizzatori richiedono la disponibilità dei migliori tool di sintesi, simulazione e analisi delle temporizzazioni. Gli strumenti preposti alle operazioni di sbroglio dei PLD devono adeguarsi al mutare delle esigenze in modo tale che l’intera metodologia di progetto ricordi molto da vicino quella adottata per i circuiti ASIC.

Se messa a punto correttamente, questa metodologia permette di integrare i blocchi IP in maniera molto più rapida rispetto a quanto consentito dalla tecnologia ASIC, oltre a garantire la flessibilità e la possibilità di personalizzazione proprie delle logiche programmabili.

Uno scenario in evoluzione

Attualmente i blocchi IP vengono sempre più frequentemente utilizzati in dispositivi a elevata densità. Per parecchi anni gli utilizzatori hanno fatto ricorso a funzioni di interfacciamento dei bus (come il bus PCI a 66 MHz) e a funzioni DSP (come ad esempio i filtri FIR). Attualmente la situazione è cambiata, per tre motivi fondamentali, che si andranno brevemente a illustrare.

In primo luogo la disponibilità di compilatori application-specific garantiscono ai blocchi IP enormi vantaggi in termini di funzionalità e flessibilità. Un compilatore per filtri FIR, ad esempio, consente la progettazione di un filtro con qualsiasi numero di stadi (tap), e integra un generatore di coefficienti che supporta ampiezze dei coefficienti con precisione compresa tra 4 e 32 bit. Il compilatore FIR supporta opzioni di decimazione e interpolazione, oltre a funzioni aritmetiche seriali e parallele.

Il risultato finale è la disponibilità di un filtro ottimizzato in termini sia di prestazioni sia di ingombri, che può essere facilmente modificato al variare dei requisiti di sistema.

Il secondo aspetto da prendere in considerazione riguarda le interfacce ora disponibili verso i tool di design. Il compilatore FIR appena citato, ora genera modelli di simulazione Matlab, Simulink, Vhdl, Verilog. Simili compilatori stanno iniziando ad apparire per supportare applicazioni DSP come ad esempio la correzione dell’errore di tipo Reed Solomon.
Il terzo elemento da considerare è l’affermarsi di processori embedded ottimizzati per i dispositivi logici programmabili.

E’ solamente la disponibilità di processori a elevate prestazioni che permette di sfruttare appieno il potenziale effettivo dei SoPC. In teoria, un progettista dovrebbe semplicemente generare il codice C per rappresentare le specifiche di sistema, mentre l’”intelligenza” celata nei tool dovrebbe partizionare alcuni algoritmi nel processore embedded e sintetizzare la logica per gli algoritmi rimanenti.

Sfortunatamente i tool disponibili non sono ancora così sofisticati. L’integrazione dei processori embedded all’interno dei PLD comporta per i progettisti complessità di non poco conto. La nuova metodologia di progetto deve tener conto di problemi quale modellazione, interazione di processori e PLD nella fase di design entry, sviluppo di elementi di interfaccia in grado di ottimizzare le prestazioni di un sistema.

Soluzione dei problemi system-level

Per risolvere in maniera ottimale problemi a livello di sistema, i tool devono fornire modelli accurati e completi delle modalità di interazione del core del processore con memorie, dispositivi periferici e blocchi di I/O. La progettazione con un processore con un core hard spesso richiede un modello funzionale del bus del processore che descriva il funzionamento del bus in quel particolare sistema, le temporizzazioni e le interfacce verso altri blocchi presenti all’interno del design.

I processori il cui core è implementato in maniera software necessitano invece di adeguati modelli comportamentali per verificare che le specifiche di temporizzazione del sottosistema del processore siano congruenti con l’effettiva implementazione mediante il PLD.

E’ inoltre indispensabile poter accedere a simulazioni VHDL o Verilog del design del SoPC nel suo complesso, alla simulazione comportamentale e ai testbench VHDL e Verilog.

Uno dei fattori chiave per assicurare un utilizzo proficuo dei processori embedded nei PLD è lo sviluppo di una metodologia intuitiva per la scelta di un processore specifico, selezionare oculatamente le funzioni periferiche e i controllori di memoria esterni e definire la mappa di memoria. SOPC Builder di Altera fa ricorso a un semplicissimo Mega Wizard per aiutare il progettista a districarsi tra le diverse opzioni possibili. La figura 1 evidenzia le varie opzioni per la selezione delle periferiche per il processore con core soft Nios.