Transcript Document
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 colocado en una sistema electrónico tarjeta impresa es (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 RF freq .
Analog circuitry Low freq .
Diseño en el nivel de sistemas
System on Chip uP Core User Logic Std.
Interface User Logic Memory DSP core 3rd Party IP
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
SoC
Aplicaciones SoCs
Diseño de SoCs
Un SoC es usualmente diseñado en módulos .
Lo que realmente define un SoC es la circuiteria analógica a layouts digitales.
adición de 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 Refinement RTOS Device Drivers
Hardware Implementable Specification
HW Synthesis Binary RTL/Gates
Flujo de diseño de SoCs
Modelo del Sistema
Flujo de Diseño Genérico
Especificación Modelado Estímulos Estimativas Representación de Diseño Validación Biblioteca de Tecnologia Síntesis Implementación [Lavagno, L. Netherlands, 1999]
Modelos en el Flujo de Diseño
FSM Petri Net CDFG Netlist Eventos Discretos SDF E outros
(Comportamental e Estrutural) Modelo da R.I
Linguagem de Especificação FSM Petri Net CDFG Netlist Eventos Discretos SDF Front-end Front-end Modelo Abstrato Intermediária Back-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
7
Motivaciones Generales
Los sistemas heterogéneos.
actuales son complejos y Actualmente los diseñadores de sistemas digitales usan una colección de herramientas que no están Watanabe, 2003].
conectadas entre sí [F. Balarin, Y.
Como consecuencia, pueden surgir errores dificiles de identificar y eliminar.
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 2002] [Bergamaschi, IBM, 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 modelado de SD.
y utilizados en el
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
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 estimación y visualización gráfica de SD.
lógica, partición Modelo(s) Abstrato(s) lenguaje de Especificación
Representación intermediaria
Herramienta De Alocación Herramienta De síntesis 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:
Un ified I ntermediate R epresentation.
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 descripción estructural y comportamental.
de
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.
Modelo de Objetos
Process: (Computación) Medium Process Scene Behavior Fields
Modelo de Objetos
Fields: Port Interface Variable Link Constant
Modelo de Objetos
Medium: (Comunicación) Process Medium Scene Service Fields
Modelo de Objetos
Scene: Scene Register Function Link Fields
Representación de Máquinas de Estados en UnIR
SceneType:”State”
Value=1 Value=1 Value=0 Value=0 Value=0
Representación de Redes de Petri en UnIR
SceneType:”Transition” RegisterType: ”Token” SceneType:”Transition”
Representación en UnIR de Modelos en el Nivel de Sistemas
System Design Languages (SLDL) HDL-Based Flow C++ Based Flow SystemC-Based Flow
Current Methodology
Specification Modeling in C/C++ Verification in C/C++
manual conversion
Modeling in HDL Verification in HDL Synthesis 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.
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 exploration Accurate modeling for efficient design space 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 synchronization mailbox inter-process communication and Direct Programming Interface (DPI) for direct call to C functions and Verilog functions
SystemVerilog history
1980s
Verilog (Gateway)
1989 1995
IEEE standardized Verilog (IEEE Std. 1364), Verilog 95
1997
Cadence acquired Gateway and opened Verilog SUPERLOG (Co-Design)
2001 2002
Verilog 01 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, architecture, and interfaces of SoC.
hardware
SystemC
(cont…) Constructs added to standard C++ 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 history
Mid of 1990s
Synopsys UC Irvine
Scenic
Frontier Design IMEC
1999
SystemC V0.9 by OSCI (Open SystemC Initiative)
2000 2001
SystemC V1.0
SystemC V2.0
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 debugging designs.
efficient environment simulation for and C++-based 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 in out inout processes methods threads constructor events Sensitivity list channels
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 ( AN o T her L anguage R ecognizer): [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
• Ejemplos de CDFGs en SystemC. GCD (Greatest Common Divisor)
Codificación de las reglas gramaticales de SystemC
Estudio de las gramaticales de C++.
reglas 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 plataforma ANTLR.
la
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 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 Grupo SEIS.
software del front-end desarrollado y la estructura de datos de la UnIR, con herramientas desarrolladas por el
Muchas Gracias !!!
Gustavo Adolfo Patiño Alvarez [email protected]
http://microe.udea.edu.co/~gpatino