Codiseño de sistemas integrados de hardware/software
La complejidad de los sistemas incorporados que tienen componentes de hardware y software no deja de aumentar, cosa que exige metodologías integrales que sustenten el proceso de diseño desde múltiples niveles de abstracción. La adopción de ciertas técnicas de amplio uso en el desarrollo de software para la modelización y la síntesis orientadas a objetos ha sido un acontecimiento de lo más interesante. Sin embargo, existen diferencias sustanciales entre la naturaleza del software y el hardware que harían imposible la adaptación directa de lenguajes de programación comunes orientados a objetos. System C es una biblioteca de clase C++ y una metodología que introdujo en C/C++ los rasgos de hardware faltantes pero típicos. En el seno del proyecto ODETTE se consiguió la transición de VDHL (Lenguaje de Descripción de Hardware VHSIC) objetivo a System C. Este cambio fue impulsado principalmente por los socios industriales del proyecto, que consideraron que ésta era la mejor opción. Lo que es más importante, en los laboratorios de Synopsys en Francia se crearon herramientas especializadas para la cosimulación del comportamiento funcional y temporal del hardware y el software que proporcionan especificaciones ejecutables del sistema en su totalidad. Integradas en el juego de herramientas de diseño y verificación en System C «CoCentric® System Studio», permiten a los usuarios de System C emplear propiedades intelectuales desarrolladas en VHDL. Además, el entorno de cosimulación posibilita la simulación del sistema de hardware/software entero, en la cual las partes del modelo correspondientes al software se escriben en C/C++ y las partes correspondientes al hardware en System C. La modelización del sistema de hardware/software entero, que se describe en diferentes lenguajes, es posible gracias a la capacidad del entorno de modelización en System C de cooperar con simuladores de HDL. El modelo de comportamiento dinámico del sistema de hardware/software, que interactúa con su modelo de entorno, puede ofrecer la perspectiva necesaria para realizar un análisis profundo de diseños complejos. Para las tareas de refinamiento, particionado de software y hardware, simulación y verificación durante el proceso de diseño, se proporciona apoyo con distintas herramientas desde los niveles de abstracción más altos hasta el nivel de registro-transferencia dentro de un único entorno.