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).
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
Memory
Std.
Interface
User Logic
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
Aplicaciones SoCs
SoC
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
Software Compilers
Hardware Functional Specification
Refinement
Hardware Implementable Specification
Linkers
RTOS
Device Drivers
HW Synthesis
Binary
RTL/Gates
Flujo de diseño de SoCs
Modelo del Sistema
Flujo de Diseño Genérico
Especificación
Modelado
Estimativas
Biblioteca
de
Tecnologia
Representación
de
Diseño
Estímulos
Validación
Síntesis
[Lavagno, L. Netherlands, 1999]
Implementación
Modelos en el Flujo de Diseño
Modelo Abstrato
de S.D
Modelo
Abstrato de S.D (Comportamental e Estrutural)
(Comportamental
e Estrutural)
Modelo
Linguagem de
Especificação
FSM
Petri Net
CDFG
Netlist
Eventos Discretos
SDF
E outros
Front-end
FSM
Petri Net
CDFG
Netlist
Eventos Discretos
SDF
E outros
da R.I
Modelo Abstrato
Representação
Intermediária
Back-end
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.
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
lógica,
estimación y visualización gráfica de SD.
partición
Modelo(s)
Abstrato(s)
lenguaje
de Especificación
Representación
intermediaria
Parsing
Herramienta
De Alocación
Herramienta
De síntesis
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í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.
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”
Representación de
Redes de Petri en
UnIR
SceneType:”Transition”
Value=1
Value=0
RegisterType:
”Token”
Value=0
Value=1
SceneType:”Transition”
Value=0
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
Problems
Specification
Modeling
in C/C++

Modeling
in HDL

Verification
in C/C++
manual conversion
Verification
in HDL
Synthesis
Need a uniform system
modeling language

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
SystemVerilog history
1980s
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++





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
Synopsys
Mid of 1990s
UC Irvine
Scenic
Frontier
Design
IMEC
1999
SystemC V0.9 by OSCI (Open SystemC Initiative)
2000
SystemC V1.0
2001
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 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 ElectroMechanical 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(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
• 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
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 Alvarez
[email protected]
http://microe.udea.edu.co/~gpatino
Descargar

Document