La crescente complessità dei sistemi, sia a livello di componenti, sia a livello di applicazione, ha fatto crescere la complessità del processo di progettazione. Gli strumenti di progettazione assistita e automatizzata si stanno sviluppando e innovando adottando le più avanzate tecnologie e metodologie hardware e software. Gli strumenti Eda, Inizialmente pensati per la progettazione assistita da computer di sistemi elettronici o di parte dei sistemi elettronici come i circuiti stampati e i circuiti integrati, si sono evoluti in accordo con la complessità dei sistemi, in particolare dei circuiti integrati a larghissima scala di integrazione e della convergenza tra sistema e circuiti integrati in quella che è diventata la tecnologia del System-on-Chip, in cui il ruolo del circuito stampato ha perso di importanza e con esso le problematiche di sviluppo ad esso connesse. I circuiti integrati hardware programmabili, come gli Fpga di ultima generazione, hanno raggiunto una complessità tale che solo con l’ausilio di strumenti Eda molto avanzati e innovativi è possibile affrontare lo sviluppo di un applicazione eseguendo in maniera efficace tutte le fasi dello sviluppo. I sistemi embedded rappresentano il contesto applicativo ove la complessità di sistema ha raggiunto il massimo livello, in particolare quello automotive e quello dei dispositivi smart.
Eda e automotive
L’automotive rappresenta un contesto applicativo in continua evoluzione verso la complessità, e il sistema di guida autonomo costituisce in ordine di tempo l’ultimo gradino di complessità che si è aggiunto. I circuiti integrati impiegati nell’ambito automotive sono tra i più complessi dello scenario tecnologico della microelettronica, in conseguenza della complessità delle applicazioni che stanno caratterizzando l’auto del futuro che ormai è molto oltre la natura dell’auto tradizionale. Funzionalità nuove riguardano la sicurezza alla guida (airbag e Abs), l’assistenza al guidatore (parcheggio assistito o guida assistita), oppure il confort del guidatore e dei passeggeri (climatizzazione, intrattenimento e comunicazione). In questo scenario di esplosione della complessità i sistemi Eda rappresentano l’unica strategia di progettazione capace di tenere sotto controllo i processi di sviluppo e produzione al fine di soddisfare i requisiti applicativi fondamentali dell’automotive: bassissimi consumi di potenza, bassissimi costi di sistema, verifica funzionale logica e fisica. Il vantaggio dell’Eda sta nell’integrazione di paradigmi di progettazione assistita da computer, alcuni esistenti, altri nuovi come la simulazione, la prototipazione virtuale, il system profiling e l’energy profiling che consentono una gestione globale e integrata del processo di progettazione e sviluppo, fino alla produzione. La verifica funzionale di un sistema senza le limitazioni delle tecniche della progettazione tradizionale rigidamente legata alla disponibilità del prototipo fisico è un altro elemento di innovazione nella progettazione che con la prototipazione virtuale perviene al massimo della flessibilità nel ciclo di sviluppo (la validazione del software in assenza dell’hardware). Un caso emblematico è il sistema di guida autonoma cui Mentor ha focalizzato il Vehicle System Design Toolset, un ambiente Eda che consente di controllare il completo flusso di sviluppo di un sistema di controllo basato su Autosar, dalla definizione dell’architettura al test del software. In particolare Volcano Vehicle System Architect consente di definire e progettare l’architettura software e l’architettura hardware (Ecu, reti, sensori e attuatori), la verifica di consistenza tramite linguaggi di scripting, il supporto completo del metamodello Autosar. Volcano Vehicle System Architect è basato sulla piattaforma aperta e flessibile Eclipse. L’industria automotive si sta impegnando in maniera massiccia verso la cosiddetta guida autonoma, portando alla proliferazione dei sensori on-board, alla comunicazione car-to-car e in-vehicle, e a una molteplicità di dispositivi di visualizzazione ad alta definizione. Ciò ha portato a un aumento esponenziale della complessità del sistema automotive, ed alla esasperazione delle specifiche di sicurezza, della funzionalità, delle prestazioni real-time e dei consumi energetici e non ultimo il costo dell’elettronica. Uno dei compiti dei fornitori di sistemi e soluzioni Eda è diventato, in maniera sempre più stringente, quello di trovare soluzioni che ottimizzano in maniera soddisfacente i requisiti di progettazione in un contesto altamente complesso come quello automotive. Oltre a configurare ambienti di sviluppo Eda dotati di strumenti che consentono di dominare da parte degli sviluppatori le problematiche come quelle che attengono alla sicurezza, l’affidabilità, il controllo energetico, ecc., alcuni produttori di ambienti Eda si sono impegnati a sviluppare soluzioni hardware e software application-specific. Per esempio, Cadence fornisce processori ad alte prestazioni specifici (per esempio Dsp) per supportare efficientemente le problematiche computazionali dell’Adas e IP complete per l’automotive. Cadence, tramite Tensilica, fornisce una potente soluzione Dsp che consente di gestire in tempo-reale le applicazioni di Infotainement (radio, speech-recognition, gesture, ecc.) e di connettività automotive.
Eda e Machine Learning
Il Machine Learning, ovvero l’apprendimento automatico delle macchine, è una metodologia computazionale particolarmente potente che consente di automatizzare in maniera particolarmente efficace i processi di elaborazione dell’informazione direttamente dai dati fisici. In passato le tecniche di machine learning hanno riguardato soprattutto i sistemi adattivi che avevano proprio come caratteristica nella estrazione dai dati l’autoconfigurazione del sistema (per esempio i filtri adattivi). Oggi il Macchine Learning rappresenta la metodologia più potente ed efficace per consentire ai sistemi complessi, per esempio i sistemi di automazione della progettazione, di interagire con altri sistemi complessi in condizioni difficili e con dati incerti. Il Machine Learning è particolarmente produttivo quando si avvale di paradigmi computazionali particolarmente potenti come le reti neurali artificiali o di altri paradigmi di “deep learning” derivati dalle Ann. Il Machine Learning sta avendo impatto anche sullo sviluppo degli strumenti Eda in quanto porterebbe a ridurre i tempi del ciclo di sviluppo nonché i costi. Il ruolo del Machine Learning per l’Eda è quello dell’aumento delle capacità dei tool di cui si compone rendendolo in tal modo uno strumento di sviluppo particolarmente potente.
Eda e modellazione
La modellazione orientata alla progettazione, prototipazione e testing del sistema è da tempo oggetto di innovazione nell’ambito degli strumenti Eda, che da specifici strumenti di progettazione dei circuiti integrati si sono progressivamente trasformati in strumenti di progettazione di sistemi complessi, quindi anche di natura software e basati su molteplici paradigmi tecnologici. Matlab e Simulink di Mathworks rappresentano un esempio emblematico in questo scenario di innovazione tecnologica finalizzata al supporto della progettazione elettronica. Matlab è un noto linguaggio di script che consente di modellare applicazioni di svariata natura (controllo, comunicazione, pattern matching, visione, ecc.) e di eseguire test e validazione attraverso una serie di tools avanzati di presentazione e analisi dei dati. Affiancato da Simulink, alla modellazione basata sul linguaggio di script viene aggiunta la modalità di programmazione grafica e la simulazione di natura funzionale, con la possibilità di integrare nel modello (hardware in the loop) anche i sottosistemi hardware componenti del sistema finale (prodotto). In tal modo è stato possibile concretizzare il concetto di prototipazione rapida. La prototipazione rapida è diventata una pratica effettiva con l’introduzione dei cosiddetti Bsp (Board support package), cioè di una serie di librerie di codice application-specific relativa alle più diffuse piattaforma di sviluppo hardware disponibili sul mercato. L’ultima novità relativa ai Bsp resi disponibili da Mathworks per Simulink è quella relativa alla piattaforma hardware dello Smartphone Android. Il Bsp Android consente di modellare in modalità grafica Simulink applicazioni che utilizzano le risorse hardware dello smartphone, eseguirne la simulazione e il test funzionale e quindi scaricare sulla piattaforma Android l’applicazione per la verifica real-time sul target finale. L’ampio set di Bsp disponibili riguardano piattaforme computazionali come i core Arm, Dsp, Fpga, ecc.