Coprogettazione di sistemi hardware/software integrati
La complessità sempre crescente dei sistemi integrati comprendenti componenti hardware e software richiede metodologie globali che supportano la progettazione da più livelli di astrazione. Uno sviluppo estremamente interessante è costituito dall'adozione di tecniche approvate di sintesi e modellazione orientata agli oggetti, ampiamente utilizzate nello sviluppo di software. Ciò nonostante, esistono differenze significative tra la natura del software e dell'hardware, e l'adattamento diretto di linguaggi di programmazione comuni orientati agli oggetti potrebbe non essere possibile. System C è una metodologia e una classe di librerie C++ che ha introdotto le tipiche funzioni hardware mancanti in C/C++. Nell'ambito del progetto ODETTE, è stata realizzata la transizione a System C del linguaggio VHDL (VHSIC Hardware Description Language) a oggetti. Questo cambiamento è stato guidato soprattutto dai partner industriali del progetto, intravedendovi la soluzione migliore. Nei laboratori Synopsys, in Francia, sono stati sviluppati strumenti dedicati alla cosimulazione del funzionamento nel tempo dell'hardware e del software, che forniscono specifiche eseguibili del sistema completo. Come parte della suite di progettazione e verifica System C design CoCentric® System Studio, consente agli utenti di System C di utilizzare le proprietà intellettuali (IP) sviluppate in VHDL. L'ambiente di cosimulazione, inoltre, fornisce la simulazione del sistema hardware/software completo, in cui i componenti software del modello sono scritti in C/C++ e i componenti hardware in System C. La modellazione del sistema hardware/software completo, descritta in vari linguaggi, è consentita dalla capacità dell'ambiente di modellazione System C di cooperare con simulatori HDL. Il modello comportamentale dinamico del sistema hardware/software, che interagisce con il relativo modello ambientale, può fornire in seguito le intuizioni necessarie per un'analisi dettagliata di progetti complessi. Per le attività di perfezionamento, partizionamento software-hardware, simulazione e collaudo durante la fase di progettazione, è stato fornito un supporto strumentale dai più elevati livelli di astrazione fino al livello di registrazione-trasferimento in un singolo ambiente.