Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica

Post on 27-Jan-2016

44 views 1 download

description

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. - PowerPoint PPT Presentation

Transcript of Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica

Especificación e Implementación de una Representación Intermediaria Unificada para Sistemas Digitales

Gustavo Adolfo Patiño ÁlvarezProyecto de Maestría

Laboratorio de MicroelectrónicaUniversidad de São Paulo, Brasil

Enero-2006

Contenido

IntroducciónMotivaciones.Objetivos.Representación de DiseñoRepresentació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).

Common make-up for SoC

Microprocessor

Analog circuitry

Low freq.

Memory

Analog circuitryRF freq.

Digital Logic

FPGA

Diseño en el nivel de sistemas

Memory DSP core3rd Party

IP

uPCore

UserLogic

Std.Interface

User Logic

System on ChipSystem on Chip

Ejemplo de Diseño

From ASIC to System on a Chip

Satellite (DVB) VideoBroadcasting

Wireless GSM Pocket Communicator

Multimedia GameSystem

Design Methodology and EDA Enable SoC

Aplicaciones SoCs

SoCSoC

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

HW SynthesisHW Synthesis

RTL/GatesRTL/Gates

Functional Specification

Software CompilersSoftware Compilers

LinkersLinkers RTOS RTOS Device DriversDevice Drivers

BinaryBinary

PartitioningPartitioning

Software Functional Specification Hardware Functional Specification

RefinementRefinement

Hardware Implementable Specification

Flujo de diseño de SoCs

Modelo del Sistema

Flujo de Diseño GenéricoEspecificación

Modelado

Validación

Síntesis

Implementación

Representaciónde

DiseñoEstimativas

Estímulos

Biblioteca de

Tecnologia

[Lavagno, L. Netherlands, 1999]

Modelo Abstrato

Modelo da R.I

Front-end

Back-end

Modelo Abstrato de S.D

(Comportamental

e Estrutural)

FSMPetri NetCDFGNetlistEventos DiscretosSDFE outros

Linguagem de Especificação

Modelo Abstrato de S.D (Comportamental e Estrutural)

FSMPetri NetCDFGNetlistEventos DiscretosSDFE outros

Back-end: Generación de código, o herramientas de síntesis, validación, visualización, etc.

Modelos en el Flujo de Diseño

Front-end: Analizador léxico y sintáctico del lenguaje

Representação Intermediária

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.

Diagrama Y (Gajski – U. of California, 1994)

Dominios de descripción y niveles de abstracción

Separación de Computación y Comunicación

Granularidad del tempo.

• Modelamiento separado de los elementos de Computación y Comunicación.

[Cai, Gajski, 2003]

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.

Modelo(s)Abstrato(s)

Representaciónintermediaria

lenguaje de Especificación

HerramientaDe Alocación

HerramientaDe síntesis

partición

ParsingParsing

Modelos de Sistemas Digitales

• Modelos Homogéneos de Computación• Modelos Heterogéneos• Modelos Estructurales

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 de Computación Homogéneos

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.

Process:(Computación)

Medium Process Scene Behavior Fields

Modelo de Modelo de ObjetosObjetos

Fields: Port

Interface

Variable Link Constant

Modelo de Modelo de ObjetosObjetos

Medium:(Comunicación)

Process Medium Scene Service Fields

Modelo de Modelo de ObjetosObjetos

Scene: Scene Register Function Link Fields

Modelo de Modelo de ObjetosObjetos

Representación de Máquinas de Estados en UnIR

SceneType:”State”

Representación de Redes de Petri en

UnIR

Value=1

Value=1 Value=0

Value=0

Value=0

SceneType:”Transition”

SceneType:”Transition”

RegisterType:”Token”

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

Modelingin HDL

Verificationin C/C++

Modelingin C/C++

Verificationin HDL

Synthesis

Need a uniform system

modeling language

manual conversion

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.

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

Verilog (Gateway)1980s

1995

SystemVerilog V3.0 (Accellera)2002

Cadence acquired Gateway and opened Verilog1989

IEEE standardized Verilog (IEEE Std. 1364), Verilog 95

SUPERLOG (Co-Design)1997

SystemVerilog V3.12003

Verilog 012001

SystemVerilog history

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++ 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

Scenic

UC IrvineSynopsysIMEC

FrontierDesign

SystemC V0.9 by OSCI (Open SystemC Initiative)

Mid of 1990s

1999

SystemC V1.02000

SystemC V2.02001

SystemC history

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 channelsinoutinout

methods

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.

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

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

Muchas Gracias !!!

Gustavo Adolfo Patiño Alvarezgpatigno@yahoo.com

http://microe.udea.edu.co/~gpatino