Metodología de diseño de HW/SW basada en la notación UML y SystemC Blanca Alicia Correa Montes blanca@microe.udea.edu.co Grupo de Microelectrónica y Control Facultad de Ingeniería Universidad de Antioquia
Contenido Objetivos Revisión de conceptos Avances Proyecto de Maestría Conclusiones Trabajo futuro
Objetivos del proyecto General: Establecer criterios para una metodología de modelado HW/SW basada en la notación UML y SystemC. Específicos: Evaluar la notación UML para el modelado de Hardware/Software. Analizar semánticamente las relaciones entre la notación UML y el código SystemC. Definir una estrategia de traducción de modelos descritos en UML a código SystemC. Realizar una prueba de los criterios establecidos para una metodología a partir del uso de modelos de hardware concretos.
Revisión de conceptos generales
Complejidad en el diseño de sistemas HW/SW en diferentes generaciones* *D.C Black and J. Donovan. SystemC from Ground Up. Boston. 2004
Flujo de diseño con UML y SystemC Lenguaje gráfico de modelado para la especificación, visualización, construcción y documentación de sistemas. Librería de C++ para el diseño y la simulación de sistemas HW/SW. Lenguaje de modelado Unificado (UML) SystemC Proceso de transformación
Perfil de UML para SystemC UML-SystemC Grupo en UML de estereotipos, restricciones y valores etiquetados que adicionan información específica de dominio al UML. Perfil de UML para SystemC correspondencia Módulos Canales Interfaces Puertos Procesos Elementos de SystemC
Avances
Avances Estado del arte, estudio de UML y SystemC Selección de diagramas UML Avances Proceso de transformación UML-SystemC Elaboración de casos de estudio Perfil de UML para SystemC
Estado del arte Perfiles de UML para Metodologías de transformación YAML (Sinha00) SLOOP (Zhu02) RT2SystemC (Tan04) Rhapsody (Nguyen04) UMLSC (Xi05) Using UML 2.0 for System Level Design of Real Time SoC Platforms for Stream Processing (Zhu05) A MDA based SoC Modeling Approach using UML and SystemC (Wang06) Perfiles de UML para sistemas HW/SW SysML (OMG) MARTE (THALES; INRIA; CEA) TUT (Tampere University of Technology, Finland; Nokia Research Center) UML for SoC (Fujitsu; IBM) UML 2.0 for SystemC (STMicroelectronics; University of Catania, Italia)
Herramienta de modelado para UML: Enterprise Architect EA ofrece soporte para los 13 diagramas de UML 2.1, mecanismos de extensión y plugins.
Selección de diagramas UML Diagrama de Clases Permite describir la estructura de un sistema, y los atributos y las operaciones de las clases.
Transformación de diagramas de clases
Selección de diagramas UML Composite Structure Diagram Permite describir la conexión de las partes en de un sistema. Definición de puertos Definición de Módulos Definición de Interfaces Definición de canales
Transformación de diagramas de estructura compuesta
Proceso de transformación UML-SystemC Modelo UML XMI Parser Template Engine Estructura de datos SystemC Template SystemC Skeleton Code
XMI Modelo UML <uml:Model xmi:type="uml:Model" name="EA_Model" visibility="public"> <packagedElement xmi:type="uml:Class" xmi:id="EAID_9C167732_1B1E_4716_8679_DBB61F5927DB" name="Counter" visibility="public"> <ownedOperation xmi:id="EAID_7B4C8906_2F20_4cf3_AFB3_11E8E3A9700E" name="do_inc" visibility="public" concurrency="sequential"/> </packagedElement> <thecustomprofile:sc_module base_Class="EAID_9C167732_1B1E_4716_8679_DBB61F5927DB"/> </uml:Model> XMI Estándar para el intercambio de modelos entre herramientas de UML
Proceso de parsing Parser Parser Estructura de datos <uml:Model xmi:type="uml:Model" name="EA_Model" visibility="public"> <packagedElement xmi:type="uml:Class" xmi:id="EAID_9C167732_1B1E_4716_8679_DBB61F5927DB" name="Counter" visibility="public"> <ownedOperation xmi:id="EAID_7B4C8906_2F20_4cf3_AFB3_11E8E3A9700E" name="do_inc" visibility="public" concurrency="sequential"/> </packagedElement> <thecustomprofile:sc_module base_Class="EAID_9C167732_1B1E_4716_8679_DBB61F5927DB"/> </uml:Model> Estructura de datos Parser Parser Estructura de datos
Template Engine Template Engine Estructura de datos SystemC Template Software o componente de software que combina uno o varios templates con un modelo de datos para producir como resultado uno o varios documentos. Template Engine SystemC Skeleton Code
Herramientas UML: Plugin para enlazar Enterprise Architect con Eclipse SystemC: Plugin para Eclipse Parser y template engine: Librerías de Python Eclipse: Integrated development environment (IDE)
Caso de estudio: Cifrador AES (Advanced Encryption Standard) AES: Especifica un algoritmo de encriptación empleado para proteger datos electrónicos. El algoritmo AES es un esquema de cifrado por bloques que puede encriptar y desencriptar información.
Diagrama de clases
Diagrama de estructura compuesta
Perfil de UML para SystemC Se deben definir los estereotipos y las restricciones: Tabla de estereotipos Elementos de SystemC Elemento en UML Estereotipo Módulo Clase sc_module Canal sc_channel Puerto sc_port Interfaz sc_interface Conector sc_connector Proceso Métodos de las clases sc_method sc_thread sc_cthread
Proyecto de Maestría
Situación problemática Las transformaciones de UML a SystemC presentadas hasta el momento no incluyen la verificación de los diagramas descritos mediante perfiles de UML para SystemC. Debido a que UML es un lenguaje de naturaleza informal, los diseños pueden presentar problemas de inconsistencia.
Situación problemática Propuesta: Plantear un proceso para la verificación de la consistencia en diseños UML 2.0 orientados al dominio de los SE requiere La definición de restricciones en el perfil de UML para SystemC permite Modelos adecuados para la generación de código SystemC
Objetivos General: Plantear un método de análisis de la consistencia en el diseño de Sistemas Embebidos (SE) basado en la notación UML 2.0, sus perfiles y SystemC. Específicos: Analizar los métodos y herramientas basadas en UML 2.0, sus perfiles y SystemC para el diseño de SE. Plantear un proceso de verificación de la consistencia para el diseño de SE con la notación UML 2.0, sus perfiles y SystemC. Validar el proceso de verificación mediante casos de estudio.
Estrategia Se plantean diferentes tipos de configuraciones en los diagramas de clases y de estructura compuesta. Se hacen pruebas en SystemC para determinar si estas configuraciones generan errores al compilar el código. De acuerdo a esta experimentación se define un conjunto de reglas en lenguaje natural para el modelado de SE con los diagramas de clases y de estructura compuesta. Las reglas establecidas se expresan mediante OCL, el cual es un lenguaje formal para describir las restricciones en los modelos de UML. Las restricciones en OCL se chequean mediante una herramienta que chequee restricciones OCL. Se realimenta la información sobre el chequeo de las restricciones al modelo en UML. Se transforma el modelo UML a código SystemC. Se prueba que el código no genere errores en la compilación.
Experimento: Problemas de modelado en el proceso de diseño con UML, sus perfiles y SystemC
Error en el código generado en SystemC
Lista de restricciones para la verificación de la consistencia Módulos Dos módulos no pueden tener el mismo nombre. En un módulo no se pueden dejar puertos desconectados. Puertos Un puerto requiere la definición de una interfaz. Un puerto de un módulo hijo contenido en un módulo padre no se puede conectar a un módulo externo directamente. Se debe conectar primero al puerto del módulo padre. No se puede conectar un puerto directamente a un canal. Se debe conectar a través de una interfaz.
Lista de restricciones para la verificación de la consistencia Interfaces En una interfaz sólo se pueden definir operaciones. Las interfaces no deben poseer atributos. Las operaciones de una interfaz deben ser públicas. No se puede realizar la conexión directa de una interfaz entre dos módulos sin definir los puertos en cada uno. Una interfaz es requerida a través de puertos. 33
Conclusiones Las metodologías de diseño que emplean UML y SystemC requieren que se defina: Un perfil que agregue estereotipos y restricciones a los diseños en UML para que presenten correspondencia con la notación SystemC. Un método de transformación que procese la información de la notación gráfica UML y la convierta a código SystemC.
Trabajo futuro Implementar el método de transformación propuesto mediante las herramientas sugeridas (EA, librerías de Python, plugins para Eclipse). Expresar las reglas para el chequeo de la consistencia en OCL (Object Constraint Languaje) y aplicarlas a los modelos en UML. Desarrollar más casos de estudio con el fin de validar la implementación del método de transformación.
Gracias
Referencias [Sinha00] V. Sinha, F. Doucet, C. Siska, R. Gupta, S. Liao and A. Ghosh, “YAML: a tool for hardware design visualization and capture”, System Synthesis, 2000. [Zhu02] Q. Zhu, A. Matsuda, N. Kuwamura, T. Nakata and M. Shoji, "An object-oriented design process for System-on-Chip using UML", Proc. of the 15 th Int. Symposium on System Synthesis. 2002. pp. 249-254. [Nguyen04] K. Nguyen, Z. Sun, P. Thiagarajan and W.-F. Wong, “Model-driven SoC design via executable UML to SystemC”. Proc. of RTSS. 2004. pp. 459. [Xi05] C. Xi, L. JianHua, Z. ZuCheng, S. YaoHui. “Modeling SystemC design in UML and automatic code generation”. Proc. of ASP-DAC. 2005. pp. 932. [Zhu05] Y. Zhu, Z. Sun, A. Maxiaguine and W. Wong. “Using UML 2.0 for System Level Design of Real Time SoC Platforms for Stream Processing”. Proc. of RTCSA. Vol. 00. 2005. pp. 154. [Wang06] Y. Wang, X. Zhou, B. Zhou, L. Liang and C. Peng. “A MDA based SoC Modeling Approach using UML and SystemC”. Proc. of CIT. Vol. 00. 2006. pp. 245. [UML] UML Resource Page. http://www.uml.org. [SystemC] SystemC home page. http://www.systemc.org [OMG] OMG home page. http://www.omg.org [OCL] OMG. UML 2.0 OCL Specification, ptc/03-10-14. [AES] NIST, Federal Information Processing Standards 197, Advanced Encryption Standard, 2001.Disponible online: http://csrc.aist.gov/publications/fipdfips197/fips-1 97. pdf. [SysML] SysML Partners web site. http://www.sysml.org/ [MARTE] INRIA. The UML profile MARTE for Real-Time and Embedded Systems Design. Disponible online: http://ralyx.inria.fr/2006/Raweb/espresso/uid57.html [TUT] P. Kukkala, J. Riihimäki, M. Hännikäinen, T. D. Hämäläinen, K. Kronlöf . “UML 2.0 Profile for Embedded System Design”. DATE. 2005. [UML for SoC] Fujitsu Limited, IBM, NEC. A UML Extension Profile for SoC. Draft RFC to 0MG, 2005-01-01. [UML 2.0 for SystemC] E. Riccobene, P. Scandurra, A. Rosti and S. Bocchio. “A SoC Design Methodology Involving a UML 2.0 Profile for SystemC”. DATE. Vol. 2. 2005. pp. 704. [EA] The Enterprise Architect tool: www.sparxsystems.com.au/ [Eclipse] Eclipse home page. http://www.eclipse.org