900 likes | 1.08k Views
Especificación e Implementación de una Representación Intermediaria Unificada para Sistemas Digitales. Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica Universidad de São Paulo, Brasil Enero-2006. Contenido. Introducción Motivaciones. Objetivos.
E N D
Especificación e Implementación de una Representación Intermediaria Unificada para Sistemas Digitales Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica Universidad de São Paulo, Brasil Enero-2006
Contenido • Introducción • Motivaciones. • Objetivos. • Representación de Diseño • Representación Intermediaria (R.I). • Modelos de Sistemas Digitales. • UnIR: Una Representación Intermediaria Unificada. • System Design Languages (SLDL). • Generación e Implementación de la UnIR. • Conclusiones.
Introducción Systems on Chip (SoCs) Flujo de Diseño Modelos y Lenguajes
Qué es SoC ? • SoC es literalmente la integración de los componentes de un sistema en un chip. • Normalmente un sistema electrónico es colocado en una tarjeta impresa (PCB) con varios ICs representando el sistema. • Un SoC puede incluir: procesadores, lógica digital, FPGAs, unidades de DSP, memoria, circuitos análogos, y circuitos de interfase (A/D, D/A).
FPGA Memory Digital Logic Microprocessor Analog circuitry Low freq. Analog circuitry RF freq. Common make-up for SoC
Diseño en el nivel de sistemas System on Chip User Logic User Logic uP Core Std. Interface Memory DSP core 3rd Party IP
From ASIC to System on a Chip Multimedia Game System Wireless GSM Pocket Communicator Satellite (DVB) Video Broadcasting Ejemplo de Diseño Design Methodology and EDA Enable SoC
SoC Aplicaciones SoCs
Diseño de SoCs • Un SoC es usualmente diseñado en módulos. • Lo que realmente define un SoC es la adición de circuiteria analógica a layouts digitales. • La complejidad en el diseño de SoCs crea la necesidad por herramientas de CAD. • Cada herramienta tiene una biblioteca de celdas para especificar un diseño de ASIC.
Partitioning Hardware Functional Specification Software Functional Specification Refinement Software Compilers Hardware Implementable Specification Linkers RTOS Device Drivers HW Synthesis Binary RTL/Gates De la Especificación Funcional a la Implementación de HW/SW Functional Specification
Flujo de Diseño Genérico Especificación Modelado Estímulos Representación de Diseño Validación Estimativas Biblioteca de Tecnologia Síntesis [Lavagno, L. Netherlands, 1999] Implementación
FSM Petri Net CDFG Netlist Eventos Discretos SDF E outros FSM Petri Net CDFG Netlist Eventos Discretos SDF E outros Linguagem de Especificação Representação Intermediária Front-end Back-end Modelos en el Flujo de Diseño Modelo Abstrato de S.D (Comportamental e Estrutural) Modelo Abstrato de S.D (Comportamental e Estrutural) Modelo da R.I Modelo Abstrato Front-end: Analizador léxico y sintáctico del lenguaje Back-end: Generación de código, o herramientas de síntesis, validación, visualización, etc.
Motivaciones Motivaciones generales Trabajos relacionados
Motivaciones Generales • Los sistemas actuales son complejos y heterogéneos. • Actualmente los diseñadores de sistemas digitales usan una colección de herramientas que no están conectadas entre sí[F. Balarin, Y. Watanabe, 2003]. • Como consecuencia, pueden surgir errores dificiles de identificar y eliminar. 7
Motivaciones Generales(cont...) • Búsqueda por una representación formal y unificada en varios niveles de abstracción, y en los dominios comportamental y estructural. • Búsqueda por una R.I. que permita a la colección de herramientas involucradas en un proceso general de diseño leer y escribir al mismo modelo de representación.
Representaciones Intermediarias halladas en la literatura • Solar [Jerraya, TIMA, France, 1995] • Es una representación de diseño de los conceptos del nivel de sistemas que están basados en flujo de control. • Principalmente adaptado para propósitos de síntesis. • Su modelo de representación es basado en un modelo FSM-extendido. • Colif [Cesario, TIMA-France, 2001] • Es una representación de diseño que modela la comunicación on-chip en diferentes niveles de abstracción, separando el comportamiento de los componentes, de la infraestructura de comunicación.
Representaciones Intermediarias hallados en la literatura (cont...) • Funstate [Strehl, ETH-Zurich, 2002] • Mezcla aspectos de diferentes MoCs, sólo las tareas de diseño de planificación (scheduling) y verificación son enfocados, sin aportar una especificación de unificación. • BNG (Behavioral Network Graph [Bergamaschi, IBM, 2002] • RI para tareas de síntesis. Proporciona um camino para conectar la síntesis de alto nível com la síntese lógica. • Red RTL/nivel de puertas-lógicas, la cual representa todos las máquinas de estado possibles que una especificación comportamental pode asumir.
Representaciones Intermediarias hallados en la literatura (cont...) Modelos propuestos como soluciones particulares, útiles para los respectivos grupos de investigación, no obstante, diseñados para manipular sólo algunos niveles de abstracción en el dominio comportamental.
Objetivos Objetivos Generales Objetivos Específicos
Objetivos Generales • Estudio de los conceptos de modelado presentes en el flujo de diseño de los sistemas digitales (SD). • Análisis de varios de los modelos de computación y de los modelos estructurales más desarrollados y utilizados en el modelado de SD.
Objetivos Generales (cont…) • Basándose en los modelos existentes, el desarrollo de una representación intermediaria (RI) que unifique algunos modelos de computación y modelos estructurales. • Concepción de una RI extensible a nuevos modelos de computación. • Ejemplo de generación e implementación de la representación intermediaria desarrollada.
Objetivos Específicos • Capturar los objetos y la semántica de algunos de los modelos de computación más importantes y utilizados. • Representación jerárquica de un sistema en una descripción estructural y/o comportamental. • Modelado en los cuatro niveles de abstracción del flujo de diseño de S.D. (Nivel de sistemas hasta el nivel de puertas lógicas). • Representación separada de los conceptos de computación y comunicación.
Objetivos Específicos (cont...) • Una representación intermediaria disponible para los diferentes proyectos desarrollados el grupo G-SEIS (LME-USP). • Ejemplo de generación e implementación de la RI para sistemas descritos en SystemC.
Representación de Diseño Dominios de descripción y niveles de abstracción Separación de Computación y Comunicación.
Modelos de Representación Descripción del sistema en el leng. de especificación Lenguaje de especificación de sistemas Dominios de descripción y niveles de abstracción Diagrama Y (Gajski – U. of California, 1994)
Separación de Computación y Comunicación • Granularidad del tempo. [Cai, Gajski, 2003] • Modelamiento separado de los elementos de Computación y Comunicación.
Representación Intermediaria Definición Características
Definición • Estructura de datos que captura parcial o completamente los detalles de la descripción de un programa o sistema, dada en un respectivo lenguaje de programación (C++, Java) o de especificación (VHDL, SystemC, etc.).
partición Herramienta De Alocación lenguaje de Especificación Herramienta De síntesis Características • Captura el modelo abstracto (comportamental o estructural) representado en el lenguaje. • Almacena la información de diseño necesaria para las tareas de partición (partitioning), asignación (allocation), síntesis lógica, estimación y visualización gráfica de SD. Modelo(s) Abstrato(s) Representación intermediaria Parsing
Modelos de Sistemas Digitales Modelos Homogéneos de Computación Modelos Heterogéneos Modelos Estructurales
Modelos de Computación Homogéneos • FSM (e sus derivaciones) [Gill, A. NY, 1962] • FSMD, CFSM, HCFSM, PSM. • Sistemas de Eventos Discretos (DE). [Cassandras, Boston, 1993] • Redes de Petri. [Petri, C. A.; Bonn; 1962] • HLPN, CPN. • Grafos de Flujo de Datos. • [Davis, A. L. IEEE Computer, 1982]
Modelos Heterogéneos • Solar [Jerraya, TIMA, France, 1995] • Colif [Cesario, TIMA-France, 2001] • SPI [Ziegenbein, ETH-Zurich, 2001] • Funstate [Strehl, ETH-Zurich, 2002] • Tagged Signal Model (TSM) [Lee, Sangiovanni-Vincentelli, Berkeley, 1999] • Metropolis [Sangiovanni-Vincentelli, Berkeley, 2003]
Modelos Estructurales • Modelo en el nivel de Puertas Lógicas. • Modelo en el nivel RTL. • Modelo en el nivel de Sistemas.
UnIR: Una Representación Intermediaria Unificada Definición Modelo de Objetos Ejemplos de Representación en UnIR
Definición UnIR: Unified Intermediate Representation. • Representación intermediaria que unifica en un sólo modelo una gran cantidad de las característicasque poseen los diferentes niveles de abstracción y dominios de descripción estructural y comportamental.
Definición (cont...) • Soporta múltiples modelos de computación, tales como Redes de Petri, FSM, grafos de flujo de datos, y varias características de modelos heterogéneos como FunState y Metropolis.
Representación Estructural Representación Comportamental Modelo de Objetos • Process: (Computación) • Medium • Process • Scene • Behavior • Fields
Fields: Port Interface Variable Link Constant Modelo de Objetos
Medium: (Comunicación) Process Medium Scene Service Fields Representación Estructural Representación Comportamental Modelo de Objetos
Scene: Scene Register Function Link Fields Representación Comportamental Modelo de Objetos (Ramos, señales)
Process Scenes SceneType:”State” Representación de Máquinas de Estados en UnIR Links Ports Function
Scenes SceneType:”Transition” Registers Process RegisterType: ”Token” Scene SceneType:”Transition” Links Representación de Redes de Petri en UnIR Value=1 Value=0 Value=0 Value=1 Function Value=0
Representación en UnIR de Modelos en el Nivel de Sistemas Process Scenes Interface Medium
System Design Languages (SLDL) HDL-Based Flow C++ Based Flow SystemC-Based Flow
Need a uniform system modeling language Current Methodology • Problems • Disconnection between system model and HDL model. • Manual conversion from C to HDL is time consuming and error prone. • Test created for C model can’t be run against HDL model. Specification Modeling in HDL Modeling in C/C++ Verification in C/C++ Verification in HDL manual conversion Synthesis
System Design Languages • Requirements • Modeling at various levels of abstraction • Support SW as well as HW • Executable specification for easy simulation and evaluation • Fast simulation for efficient design space exploration • Accurate modeling • Separation of computation from communication for design reuse • Support good design tools/environment
System Design Languages(cont...) • Examples • C/C++-based: SystemC, SpecC • HDL-based: SystemVerilog