Electronic Design Automation: verso il virtual system

La complessità crescente sia delle applicazioni sia dei dispositivi elettronici di natura embedded ed ultra embedded fa emergere nuovi requisiti di progettazione che trovano nelle soluzioni di natura Eda lo strumento e le metodologie più adeguate. L’Eda è fondamentalmente un insieme integrato di strumenti software per la progettazione di circuiti integrati e circuiti stampati. In particolare, relativamente ai circuiti integrati, la problematica di progettazione che in passato riguardava soprattutto ai circuiti a larga scala di integrazione di natura esclusivamente digitale, ora è molto più complessa e riguarda soprattutto i sistemi on chip anche a tecnologie miste (analogiche e digitali). In quest’ottica, l’evoluzione dei sistemi Eda si è indirizzata in modo da soddisfare soprattutto la crescente complessità della progettazione dei circuiti integrati, considerando questi non semplicemente come componenti, ma come veri e propri sistemi. Altri paradigmi di progettazione assistita da computer sono emersi, integrando in contesti Eda innovativi metodologie come la simulazione, la prototipazione virtuale, il system profiling, l’energy profiling, ecc. Il virtual prototyping è una tecnica di prototipazione e di verifica della funzionalità di un sistema che va oltre le possibilità offerte da metodologie tradizionali come la simulazione e l’emulazione. Rispetto a queste tecniche, il virtual prototyping è a tutti gli effetti una fase della progettazione di sistema in quanto si basa su un modello funzionale che è direttamente applicabile nella fase vera e propria di progettazione, cioè quando si rende disponibile l’hardware finale. Il vantaggio è quello di ottenere la validazione del software prima della disponibilità dell’hardware accelerando il processo di progettazione.

Il Virtual Prototyping
I costi di progettazione in maggiore e rapida crescita sono quelli cosiddetti ingegneristici non ricorrenti, cioè quei costi che implica la fase di sviluppo per arrivare alla realizzazione del prototipo prima di iniziare la fase di industrializzazione e produzione. Si tratta di costi relativi all’acquisizione e sviluppo della conoscenza del software e degli strumenti proprietari, che ricorrono solo nella fase iniziale della progettazione, e quindi incidono sui costi del prodotto finale in maniera unitaria. I costi Nre non sono minimizzabili in fase di produzione, quindi vanno minimizzati in fase di valutazione, cioè nella fase iniziale. A tale scopo giocano un ruolo fondamentale le tecnologie Eda e le relative innovazioni, come per esempio la prototipazione virtuale e la simulazione. Grazie a tali strumenti, parte integrante o cooperativi dell’ambiente Eda, è possibile ottenere, in tempi brevi e con elevatissima accuratezza, la simulazione del modello dell’hardware che si renderà disponibile al gruppo di progettazione più o meno molto dopo l’inizio del progetto. I vantaggi che ne derivano sono molteplici e contribuiscono in maniera determinante alla competitività del prodotto finale. Infatti, oltre a ridurre i costi Nre, vengono ridotti i costi della realizzazione del prototipo hardware e, grazie alla maggiore accuratezza ottenibile nella fase di debug hardware/software, anche dei costi aggiuntivi di revisione dell’hardware nella fase di industrializzazione e produzione. Vista Virtual Prototyping fa parte della piattaforma Vista di Mentor Graphics ed è uno strumento che permette di ottenere il modello funzionale dell’hardware su cui i progettisti del software possono implementare e verificare i requisiti e le prestazioni di sistema in assenza della piattaforma hardware. Questo strumento si basa sulla astrazione del concetto di modellazione delle unità funzionali dei sistemi digitali, il Transaction-level modeling che separa gli aspetti di comunicazione tra le unità da quelli di implementazione delle unità stesse. A tale scopo viene utilizzato il codice SystemC per rappresentare i transaction-level model nel contesto della piattaforma Tlm. Grazie alla disponibilità di una libreria di Tlm predefiniti, è possibile ottenere configurazioni custom dei modelli relativamente ad attributi chiave come per esempio il timing, il consumo di potenza, ecc.. Vista opera a due livelli, a livello di piattaforma Tlm e a livello di prototipazione virtuale. Il prototipo virtuale viene derivato dalla piattaforma Tlm in termini codice eseguibile standalone. La piattaforma Tlm è quindi un ambiente di modellazione e progettazione che consente, tramite una interfaccia grafica o anche una semplice interfaccia di linea, di creare il prototipo virtuale dal modello. La modalità operativa di Vista è tale da offrire una considerevole flessibilità nella gestione del prototipo virtuale in quanto, pur essendo il prototipo una codice eseguibile, la sua funzionalità può essere modificata run-time grazie alla disponibilità di un file che contiene i parametri del modello che ha generato il prototipo. Modificando i parametri, il prototipo si riconfigura funzionalmente e non è necessario rigenerare l’eseguibile. Il codice è eseguibile sia sotto sistema operativo Linux, sia sotto sistema operativo Windows. Un aspetto importante del system-level design riguarda la verifica e validazione delle interfacce hardware/software di sistema. La Virtual System Platform di Cadence è una soluzione di prototipazione virtuale per lo sviluppo indipendente dell’hardware che consente di implementare il sistema di interfaccia tra hardware e software per quando il register-transfer level (Rtl) si renderà disponibile. Ciò facilita lo sviluppo anticipato del software garantendo l’integrazione hardware/software. Questa piattaforma semplifica la creazione e la gestione dei prototipi virtuali automatizzando la modellazione e accelerando in debugging.
La cosimulazione è un elemento ulteriore di efficienza ed efficacia della Virtual System Platform in quanto operante sulla Palladium XP Verification Computing Platform. Questa piattaforma di computing consente di compilare, fare il link ed eseguire un modello system-level disponibile ai vari livelli di astrazione, per esempio C, C++, SystemC, transaction-level model , Rtl, gate-level e silicon-based IP.
Synopsys ha sviluppato Virtualizer, un set di strumenti applicabili alle due categorie di utilizzatori, lo sviluppatore che crea il virtual prototype e lo sviluppatore software che lo utilizza. Queste due categorie di utilizzatori sono distinte tra loro e richiedono strumenti ottimizzati di sviluppo. Per lo sviluppatore del prototipo sono disponibili strumenti efficienti per la creazione di blocchi di modellazione di base e di assemblaggio di tali blocchi in un sistema di prototipazione virtuale. Per l’utilizzatore del prototipo sono disponibili strumenti che consentono di implementare il prototipo virtuale relativamente all’esecuzione di specifiche attività di progettazione come l’integrazione e il test del software, la verifica dell’hardware, l’integrazione di sistema a livello di singolo chip (SoC) e la validazione e test di sistema. Particolarmente interessante è la Hybrid Prototyping Solution di Synopsys che unisce due metodi relativamente indipendenti per la prototipazione dei System-on-Chip, la prototipazione virtuale basata sul Transaction-level Model e la prototipazione basata su Fpga. La prototipazione virtuale rappresenta l’approccio migliore per ottenere lo sviluppo del software prima della fase Rtl attraverso l’esecuzione veloce del Tlm. A sua volta, la prototipazione basata su Fpga consente di eseguire con accuratezza dei cicli e con elevate prestazioni, fruendo di connettività reale verso il mondo esterno. L’hybrid prototyping di Synopsys è quindi una soluzione che sfrutta allo stesso tempo i vantaggi dei due approcci alla prototipazione per ottimizzare il ciclo di vita del progetto. Con tale approccio i SoC multicore possono essere prototipati con modalità di ripartizione a blocchi tra il prototipo virtuale e quello Fpga, per massimizzare le prestazioni globali. Il vantaggio dell’uso della prototipazione Fpga sta anche nel riutilizzo di logica già esistente, quindi da non riprogettare nel prototipo virtuale. Inoltre risulta più facile integrare i modelli dei processori Arm Cortex, dei transactor per Arm Amba Interconnect e le IP DesignWare.

Efficienza energetica system-level
I consumi energetici sono una componente di efficienza dei sistemi sempre più rilevante, considerando la destinazione applicativa dei circuiti integrati di natura embedded, come per esempio i dispositivi mobili, l’automotive, il medicale e il consumer in generale. Anche se necessari, gli strumenti tradizionali di energy profiling non sono sufficienti a garantire il miglior risultato nella riduzione dei tempi di sviluppo e soprattutto ad evitare la revisione del progetto in fase di ingegnerizzazione.
First Encounter Design and Exploration di Cadence per esempio include nel suo framework, orientato a supportare lo sviluppo di progetti di elevata complessità, il low power design, una tecnica avanzata che fa uso di domini di potenza multipli come power gating e dynamic voltage e frequency scaling. L’idea portante di First Encounter and Exploration è proprio quella dell’esplorazione anticipata del potenziale progetto relativamente alla sua fattibilità, soprattutto relativamente ai requisiti di dimensione, velocità e consumo di potenza elettrica. A tale scopo lo strumento di low power design di First Encounter, anche grazie all’approccio energetico a dominio multiplo, è di enorme attualità, soprattutto se la complessità del progetto è molto elevata. L’automatismo del processo di progettazione in questi casi diventa un fattore di grande efficienza. Un esempio è la disposizione automatica dei level shifter e delle relative connessioni di potenza. Vengono anche supportati i Common Power Format e Ieee 1801 per le specificazioni delle tecniche avanzate di power reduction, dalla fase di progettazione e verifica, fino alla fase finale di implementazione e signoff.

Il System-level Design
Il System-level Design, con l’evoluzione dalla dimensione chip a quella di sistema su chip, ha assunto una importanza determinante nella scelta dell’approccio alla progettazione, soprattutto quando l’obiettivo è quello di progettare una Cpu o, come accade sempre più spesso, di progettare sistemi multi-core, quindi caratterizzati da problematiche molto complesse di coerenza nell’accesso alla memoria condivisa. Uno dei problemi più “scottanti” è senza dubbio quello della coerenza di accesso alla memoria cache. Per sviluppare test di coerenza di accesso alla memoria cache è necessario di disporre di strumenti di automazione e metodi piuttosto avanzati, considerando che i SoC multicore sono sempre più spesso costituiti da core eterogenei (Cisc, Risc, Dsp, Mcu, ecc.). L’efficienza e l’efficacia dei test in questo caso dipendono molto dal livello dello strumento utilizzato per la metrica. Nel Performance Analysis Kit di Carbon Design Systems è inclusa questa tipologia di performance metrics relativa alla coerenza di accesso alla cache in configurazioni multicore, per misurare prestazioni relative alla banda, alla latenza e al throughput. Un altro aspetto importante del System-level Design è il linguaggio di programmazione. Questo, considerando la natura sistemistica e multicore della progettazione, implica la disponibilità di linguaggi di programmazione system-oriented. SystemC è senza dubbio il linguaggio di programmazione che meglio interpreta e soddisfa le esigenze di progettazione di sistemi di elevata complessità e a medio alto livello di parallelismo esecutivo, come per i SoC di ultima generazione. In tale contesto l’aspetto della simulazione è una delle problematiche più rilevanti. Vlab Works rende disponibile la libreria Oscar di simulazione compatibile con lo standard SystemC/Tlm. Si tratta di un simulatore che è stato costruito per essere compatibile con SystemC Tlm e in termini di model source code level con lo standard Ieee SystemC 1666 2005 e OSCI SystemC 2.2 e con lo standard transaction level modelling SystemC Tlm 2.0.1. Molte soluzioni SoC, in particolare quelle utilizzate nelle applicazioni mobili, utilizzano architetture multicore accoppiate con acceleratori hardware che eseguono il codice in parallelo con i core. Le prestazioni delle prestazioni dei simulatori virtuali a singolo thread non sono adeguate per essere scalate sulla natura di queste architetture di computing. QuantumLeap Virtual Platform Simulation Acceleration di Imperas è una soluzione intesa ad eliminare queste limitazioni attraverso l’allocazione dei core simulati su tutti i processori presenti nella macchina host. Le prestazioni esecutive che si ottengono con questa tecnologia sono state stimate in 15 volte superiori in velocità rispetto a quelle single core.

 

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome