Gustavo Adolfo Patiño Álvarez

Slides:



Advertisements
Presentaciones similares
Lenguajes de Descripción de Hardware
Advertisements

Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Framework de.Net Infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican el desarrollo de aplicaciones Entorno.
Plan de Implantación Sistemas de Información III
Cb00843 Traductores Rogelio Dávila Pérez Profesor Planta
Lenguaje Unificado de Modelado
1 Circuitos Digitales II Circuitos Digitales II Fundamentos de Arquitectura de Computadores Información sobre el Curso Semana No.1 Semestre Prof.
Circuitos Digitales II
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
INSTITUTO TECNOLOGICO DE MINATITLAN
Aplicación de Patrones de diseño al diseño de Hardware
Vhdl para síntesis Alfredo Rosado Muñoz Universidad de Valencia Ingeniería Electrónica Diseño de Circuitos y Sistemas Electrónicos.
Inferencia de Árboles Multicast
Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz.
IEEE-std Práctica Recomendada para la Especificación de Requerimientos de Software Fuente: IEEE Recommendad Practice for Software Requirements.
Sistemas Distribuidos “Técnicas de Especificación Formal”
Introducción al Software
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Abstracción de los datos y Orientación a Objeto Clase 13.
Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.
VHDL.
Modelado Arquitectónico
STARUML.
Visualizador de señales digitales SDLC++ José Domingo Álvarez Hervás.
M.C. Meliza Contreras González
Validación de propiedades de Workflow Alumno: Fernando Villar Director: Dr. Germán Regis Universidad Nacional de Río Cuarto.
Capítulo.2 - Fundamentos del Lenguaje VHDL
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
Ingeniería de Software
DSL Domain Specific Language (Lenguaje Especifico del Dominio)
Lenguajes de programación para sistemas críticos (SC)
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
VHDL Breve introducción.
Tema I Arquitectura de Software. Arquitectura de software es un conjunto de reglas que definen la estructura de un sistema y las relaciones entre sus.
1 Diseño Orientado a Objetos Agustín J. González ELO-329: Diseño y Programación Orientados a Objetos 1er. Sem
Introducción Electrónica Digital
Programación de Sistemas
UML 2.0 Integrantes: Diana Carolina Valencia M. Jhon Fernando Lopez T. Carlos Alberto Castillo.
Diseño e Implementación de Sistemas Basados en Conocimiento
(c) P. Gomez-Gil, INAOEP DISEÑO DE SOFTWARE 2ª. parte NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP Versión:
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
Introducción a VHDL Agenda Un poco de historia Definiciones generales Entidades Arquitecturas Configuraciones.
Desarrollo de aplicaciones empresariales con Web Services
1 Diseño Orientado al Objeto Agustín J. González ELO-326: Seminario de Computadores II 2do. Sem
Especificación de sistemas embebidos Agustín J. González 1s06 Se ha tomado como base el material generado por Peter Marwedel de la Univ. Dortmund, Alemania.
Especificación de sistemas embebidos Agustín J. González 1s07 Se ha tomado como base el material generado por Peter Marwedel de la Univ. Dortmund, Alemania.
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
Diseño de Software y su Proceso
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
Sistemas de Información Agosto-Diciembre 2007 Sesión # 10.
Diseño de Sistemas.
Introducción a UML Departamento de Informática Universidad de Rancagua
Ingeniería de Requisitos
DIAGRAMA DE SECUENCIA Y ACTIVIDADES.
UNIVERSIDAD LATINA INTRODUCCION A LA PROGRAMACION INTRODUCCIÓN.
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
UML.
Ingeniería de Requerimientos
Integrantes: Dennys Quintero José Ortega Simón Fagundez Caracas 09 de Febrero de 2015.
TEMA: DISEÑO DE LA SOLUCION INTREGRANTES DE EQUIPO: ERIKA CRUZ MARTINEZ RODOLFO LOPEZ ANOTA LUIS ARMANDO LIÑA QUECHA JOSE FRANCISCO MEZO VARELA LUIS ENRIQUE.
Unified Modeling Language (Lenguaje de Modelamiento unificado)
COIS 115 Profesor: Gustavo A. Vélez.  Proceso donde necesito estar seguro que usted llego al salón  ¿Esta usted aquí, AHORA?  Elimine lo que tiene.
Diseño jerárquico con VHDL
Programación de Sistemas
Diseño Lógico 2 Metodología de Diseño
INSIS Plataforma PMS única
MODELAMIENTO VISUAL Y UML
1 LENGUAJE DE DESCRIPCION DE HARDWARE ELECTRONICA DIGITAL NAYIBE CHIO CHO NAYIBE CHIO CHO.
Programación en VHDL.
Transcripción de la presentación:

Gustavo Adolfo Patiño Álvarez 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.

Systems on Chip (SoCs) Flujo de Diseño Modelos y Lenguajes 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).

Common make-up for SoC FPGA Memory Digital Logic Microprocessor Analog circuitry Low freq. Memory RF freq. Digital Logic FPGA

Diseño en el nivel de sistemas System on Chip User Logic User Logic uP Core Std. Interface Memory DSP core 3rd Party IP

Design Methodology and EDA Enable SoC Ejemplo de Diseño From ASIC to System on a Chip Satellite (DVB) Video Broadcasting Multimedia Game System Wireless GSM Pocket Communicator Design Methodology and EDA Enable SoC

Aplicaciones SoCs SoC SoC is the domain of Semis, well served by EDA, Roughly a Market of $130B Systems Design not really automated yet, huge market of $1T EDA has the opprtunity of serving this Market. Our Customers tell us that they really fear the design of each new generation of products. Etc. etc. Nokia G3 example. Talk about verticals.

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.

De la Especificación Funcional a la Implementación de HW/SW Functional Specification Partitioning Software Functional Specification Hardware Functional Specification Software Compilers Linkers RTOS Device Drivers Binary Refinement Hardware Implementable Specification RTL/Gates HW Synthesis

Flujo de diseño de SoCs

Modelo del Sistema

Flujo de Diseño Genérico Especificación Modelado Estímulos Representación de Diseño Validación Estimativas [LVG99] Lavagno, L.; Sangiovanni-Vincentelli, A. and Sentovich, E. Models of Computation for Embedded System Design, in System-Level Synthesis, Kluwer Academic Publishers, Dordrecht, The Netherlands, pp. 45–102; 1999. Biblioteca de Tecnologia Síntesis [Lavagno, L. Netherlands, 1999] Implementación

Modelos en el Flujo de Diseño FSM Petri Net CDFG Netlist Eventos Discretos SDF E outros Modelo Abstrato de S.D (Comportamental e Estrutural) Modelo Abstrato de S.D (Comportamental e Estrutural) Modelo da R.I Modelo Abstrato Back-end Linguagem de Especificação Front-end Representação Intermediária FSM Petri Net CDFG Netlist Eventos Discretos SDF E outros 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 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 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.

Dominios de descripción y niveles de abstracción Modelos de Representación Descripción del sistema en el leng. de especificación Lenguaje de especificación de sistemas 1. Falar de exemplo da hierarquia. Diagrama Y (Gajski – U. of California, 1994)

Separación de Computación y Comunicación [Cai, Gajski, 2003] Modelamiento separado de los elementos de Computación y Comunicación. Granularidad del tempo.

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.).

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. Herramienta De Alocación De síntesis partición Modelo(s) Abstrato(s) lenguaje de Especificación 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] 3. Falar sobre o estudo e o levantamento feito sobre os principais modelos já estudados. 4. Falar bem rápido sobre os modelos.

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ísticas que 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 Estructural Representación Process: (Computación) Medium Process Scene Behavior Fields Comportamental Representación

Modelo de Objetos Fields: Port Interface Variable Link Constant

Representación Estructural Representación Comportamental Modelo de Objetos Estructural Representación Medium: (Comunicación) Process Medium Scene Service Fields Comportamental Representación

Representación Comportamental (Ramos, señales) Modelo de Objetos Scene: Scene Register Function Link Fields (Ramos, señales)

Representación de Máquinas de Estados en UnIR Process Scenes SceneType:”State” Links Ports Function

Representación de Redes de Petri en UnIR Scenes SceneType:”Transition” Process Registers RegisterType: ”Token” Value=1 Value=0 Value=1 Value=0 Scene SceneType:”Transition” Function Value=0 Links

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

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 C/C++ Modeling in HDL Verification in C/C++ Verification in HDL manual conversion Synthesis Need a uniform system modeling language

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

SystemVerilog Extension to Verilog Key enhancements A unified assertion language for both simulation and formal verification Object oriented C++ like classes Interfaces to encapsulate communication and protocol checking C like data types such as int and Structures and unions Strings and dynamic arrays Pass by reference to tasks, functions, and modules Semaphore and mailbox inter-process communication and synchronization Direct Programming Interface (DPI) for direct call to C functions and Verilog functions

SystemVerilog history Verilog (Gateway) 1989 Cadence acquired Gateway and opened Verilog 1995 IEEE standardized Verilog (IEEE Std. 1364), Verilog 95 1997 SUPERLOG (Co-Design) 2001 Verilog 01 2002 SystemVerilog V3.0 (Accellera) 2003 SystemVerilog V3.1

SpecC Extension to ANSI-C Constructs are added to support Behavioral and structural hierarchy Concurrency Timing Communication (behavior, channel, interface) Synchronization (event, wait, notify) State transition for FSM Exception handling (abortion, interrupt) Hardware data types (bit-vector)

SpecC (cont…) History First version was developed in 1997 at UC Irvine. SpecC Open Technology Consortium (STOC) was founded in 1999. SpecC v2.0 approved by STOC in 2002

SystemC C++ class library to create a cycle-accurate model of software algorithms, hardware architecture, and interfaces of SoC.

SystemC (cont…) Constructs added to standard C++ Advantages Notion of time Concurrency Reactive behavior Hardware data types Advantages Familiar to the engineering community Easy to write and debug Concurrent design of software and hardware Fast simulation Can use C/C++ programming environments

SystemC V0.9 by OSCI (Open SystemC Initiative) SystemC history Scenic UC Irvine Synopsys Frontier Design IMEC Mid of 1990s SystemC V0.9 by OSCI (Open SystemC Initiative) 1999 SystemC V1.0 2000 SystemC V2.0 2001

SystemC: What it is ... A library of C++ classes Processes (for concurrency) Clocks (for time) Hardware data types (bit vectors, 4-valued logic, fixed-point types, arbitrary precision integers) Waiting and watching (for reactivity) Modules, ports, signals (for hierarchy) A light-weight simulation kernel

… And what SystemC is not A replacement for Verilog and VHDL and associated simulation tools. The most efficient simulation and debugging environment for C++-based designs. A compiled simulator with its own debugger would be a better environment

What SystemC is useful for ... Modeling system architecture Untimed Transaction-accurate Clock-cycle-accurate Modeling hardware (processors, peripherals, ASSPs, ASICs) Algorithmic Behavioral RTL Modeling software

…and what SystemC is not useful for Modeling dataflow systems It can be done, but not efficiently Modeling analog and RF systems It can be done, but not accurately Modeling MEMS (Micro Electro-Mechanical Systems) Cannot be done today

SystemC Language Arquitecture

Modern System Design Flow

Structure of a SystemC Program Module ports processes channels in methods out inout threads constructor events Sensitivity list

Generación e Implementación de la UnIR Flujo de Creación de una RI Selección del Ambiente de Trabajo Implementación del Parser Máquina de Traducción Estructura de datos de UnIR Experimentos Ventajas de las Herramientas Implementadas

Flujo general de creación de una RI Descripción en un lenguaje SLDL o HDL. Parser. Árbol Sintáctico Abstracto (AST) e Tabla de símbolos. Traductor o Máquina de Traducción. Representación intermediaria (RI).

Selección del Ambiente de Programación SystemC (lenguaje para el diseño de sistemas de HW/SW). C++, STL, e programación orientada a objetos.

Selección del Ambiente de Programación (cont...) GNU-Linux. ANTLR(ANoTher Language Recognizer): [Terence Parr, 1989-2005 University of San Francisco] Características similares a las de Bison y de Flex de GNU. Lenguaje y plataforma para ayuda en la creación del: Analizador Léxico y Sintáctico del lenguaje SLDL. Analizador semántico del modelo do sistema.

Implementación del Parser Identificación de las reglas gramaticales de SystemC para escribir el código del Analizador léxico y Sintáctico. ANTLR: Plataforma que genera el Parser a partir de la especificación de las reglas gramaticales del lenguaje analizado. Generación del Árbol Sintáctico Abstracto (AST).

Máquina de Traducción Recorre el AST generado con el fin de buscar la información deseada del sistema digital descrito en el lenguaje de especificación. En el recorrido de la AST, se extrae la información del sistema descrita por símbolos léxicos del lenguaje. Mientras se hace el recorrido, se definen acciones semánticas para capturar la información y llevarla a la UnIR.

Mapeado de SystemC en la UnIR

Experimentos GCD (Greatest Common Divisor) Ejemplos de CDFGs en SystemC. GCD (Greatest Common Divisor)

Codificación de las reglas gramaticales de SystemC Estudio de las reglas gramaticales de C++. Cómo es posible insertar las reglas gramaticales de SystemC en las reglas gramaticales de C++ ? Especificación en Java de las reglas gramaticales de SystemC usando la plataforma ANTLR.

Estructura de datos de la UnIR

Máquina de Traducción

Ventajas de las Herramientas Implementadas Extensibilidad Fácilmente extendidas para futuras evoluciones del lenguaje SystemC. La estructura de datos de la RI también puede ser extendida mediante nuevas clases, siguiendo los esquemas de jerarquía estructural e listas enlazadas utilizados en el proyecto. Adaptabilidad El conjunto de clases definidas para la UnIR es totalmente independiente de la herramienta de Parser utilizada.

Ventajas de las Herramientas Implementadas (Cont...) Eficiencia La eficiencia de las herramientas de parsing e de traducción es garantizada por el uso de la plataforma ANTLR en la especificación de las tareas de generación de los códigos fuente de las herramientas del Parser e del traductor del AST (Tree-Walker).

Conclusiones generales Trabajos Futuros

Conclusiones Generales Desarrollo de un modelo de representación intermediaria que busca la unificación de niveles de abstracción y de dominios de descripción. Modelado conjunto de diferentes modelos de Computación. Modelado separado de la Computación e de la Comunicación. Representación jerárquica de los sistemas. Útil para extraer la información de diseño de un lenguaje tal como SystemC.

Trabajos Futuros Construir una interfase de procedimientos entre o desarrollador de herramientas y los objetos de la RI. Expandir el front-end desarrollado con la inclusión de más ítems de la sintaxis y gramática del lenguaje SystemC. Implementar más modelos abstractos como FSM, Redes de Petri, etc. En la traducción del AST para la RI.

Trabajos Futuros (cont...) Integrar el software del front-end desarrollado y la estructura de datos de la UnIR, con herramientas desarrolladas por el Grupo SEIS.

Gustavo Adolfo Patiño Alvarez Muchas Gracias !!! Gustavo Adolfo Patiño Alvarez gpatigno@yahoo.com http://microe.udea.edu.co/~gpatino