![Page 1: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/1.jpg)
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
![Page 2: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/2.jpg)
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.
![Page 3: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/3.jpg)
Introducción
• Systems on Chip (SoCs)• Flujo de Diseño• Modelos y Lenguajes
![Page 4: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/4.jpg)
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).
![Page 5: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/5.jpg)
Common make-up for SoC
Microprocessor
Analog circuitry
Low freq.
Memory
Analog circuitryRF freq.
Digital Logic
FPGA
![Page 6: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/6.jpg)
Diseño en el nivel de sistemas
Memory DSP core3rd Party
IP
uPCore
UserLogic
Std.Interface
User Logic
System on ChipSystem on Chip
![Page 7: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/7.jpg)
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
![Page 8: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/8.jpg)
Aplicaciones SoCs
SoCSoC
![Page 9: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/9.jpg)
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.
![Page 10: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/10.jpg)
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
![Page 11: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/11.jpg)
Flujo de diseño de SoCs
![Page 12: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/12.jpg)
Modelo del Sistema
![Page 13: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/13.jpg)
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]
![Page 14: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/14.jpg)
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
![Page 15: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/15.jpg)
Motivaciones
•Motivaciones generales•Trabajos relacionados
![Page 16: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/16.jpg)
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
![Page 17: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/17.jpg)
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.
![Page 18: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/18.jpg)
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.
![Page 19: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/19.jpg)
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.
![Page 20: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/20.jpg)
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.
![Page 21: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/21.jpg)
Objetivos
•Objetivos Generales•Objetivos Específicos
![Page 22: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/22.jpg)
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.
![Page 23: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/23.jpg)
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.
![Page 24: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/24.jpg)
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.
![Page 25: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/25.jpg)
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.
![Page 26: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/26.jpg)
Representación de Diseño
• Dominios de descripción y niveles de abstracción• Separación de Computación y Comunicación.
![Page 27: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/27.jpg)
Diagrama Y (Gajski – U. of California, 1994)
Dominios de descripción y niveles de abstracción
![Page 28: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/28.jpg)
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]
![Page 29: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/29.jpg)
Representación Intermediaria
•Definición•Características
![Page 30: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/30.jpg)
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.).
![Page 31: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/31.jpg)
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
![Page 32: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/32.jpg)
Modelos de Sistemas Digitales
• Modelos Homogéneos de Computación• Modelos Heterogéneos• Modelos Estructurales
![Page 33: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/33.jpg)
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
![Page 34: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/34.jpg)
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]
![Page 35: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/35.jpg)
Modelos Estructurales
Modelo en el nivel de Puertas Lógicas.
Modelo en el nivel RTL.
Modelo en el nivel de Sistemas.
![Page 36: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/36.jpg)
UnIR: Una Representación Intermediaria Unificada
•Definición•Modelo de Objetos•Ejemplos de Representación en UnIR
![Page 37: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/37.jpg)
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.
![Page 38: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/38.jpg)
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.
![Page 39: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/39.jpg)
Process:(Computación)
Medium Process Scene Behavior Fields
Modelo de Modelo de ObjetosObjetos
![Page 40: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/40.jpg)
Fields: Port
Interface
Variable Link Constant
Modelo de Modelo de ObjetosObjetos
![Page 41: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/41.jpg)
Medium:(Comunicación)
Process Medium Scene Service Fields
Modelo de Modelo de ObjetosObjetos
![Page 42: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/42.jpg)
Scene: Scene Register Function Link Fields
Modelo de Modelo de ObjetosObjetos
![Page 43: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/43.jpg)
Representación de Máquinas de Estados en UnIR
SceneType:”State”
![Page 44: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/44.jpg)
Representación de Redes de Petri en
UnIR
Value=1
Value=1 Value=0
Value=0
Value=0
SceneType:”Transition”
SceneType:”Transition”
RegisterType:”Token”
![Page 45: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/45.jpg)
Representación en UnIR de Modelos en el Nivel de Sistemas
![Page 46: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/46.jpg)
System Design Languages (SLDL)
HDL-Based Flow
C++ Based Flow
SystemC-Based Flow
![Page 47: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/47.jpg)
![Page 48: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/48.jpg)
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.
![Page 49: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/49.jpg)
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
![Page 50: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/50.jpg)
System Design Languages (cont...)
Examples C/C++-based: SystemC, SpecC HDL-based: SystemVerilog
![Page 51: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/51.jpg)
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
![Page 52: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/52.jpg)
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
![Page 53: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/53.jpg)
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)
![Page 54: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/54.jpg)
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
![Page 55: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/55.jpg)
SystemC
C++ class library to create a cycle-accurate model of software algorithms, hardware architecture, and interfaces of SoC.
![Page 56: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/56.jpg)
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
![Page 57: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/57.jpg)
Scenic
UC IrvineSynopsysIMEC
FrontierDesign
SystemC V0.9 by OSCI (Open SystemC Initiative)
Mid of 1990s
1999
SystemC V1.02000
SystemC V2.02001
SystemC history
![Page 58: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/58.jpg)
![Page 59: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/59.jpg)
![Page 60: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/60.jpg)
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
![Page 61: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/61.jpg)
… 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
![Page 62: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/62.jpg)
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
![Page 63: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/63.jpg)
…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
![Page 64: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/64.jpg)
SystemC Language Arquitecture
![Page 65: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/65.jpg)
Modern System Design Flow
![Page 66: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/66.jpg)
![Page 67: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/67.jpg)
![Page 68: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/68.jpg)
![Page 69: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/69.jpg)
Structure of a SystemC Program
Module
ports processes channelsinoutinout
methods
threads
constructor
events
Sensitivity list
![Page 70: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/70.jpg)
![Page 71: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/71.jpg)
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
![Page 72: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/72.jpg)
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).
![Page 73: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/73.jpg)
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.
![Page 74: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/74.jpg)
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.
![Page 75: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/75.jpg)
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).
![Page 76: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/76.jpg)
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.
![Page 77: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/77.jpg)
Mapeado de SystemC en la UnIR
![Page 78: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/78.jpg)
Experimentos
GCD (Greatest Common Divisor)
• Ejemplos de CDFGs en SystemC.
![Page 79: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/79.jpg)
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.
![Page 80: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/80.jpg)
![Page 81: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/81.jpg)
![Page 82: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/82.jpg)
Estructura de datos de la UnIR
![Page 83: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/83.jpg)
Máquina de Traducción
![Page 84: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/84.jpg)
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.
![Page 85: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/85.jpg)
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).
![Page 86: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/86.jpg)
Conclusiones
•Conclusiones generales•Trabajos Futuros
![Page 87: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/87.jpg)
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.
![Page 88: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/88.jpg)
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.
![Page 89: Gustavo Adolfo Patiño Álvarez Proyecto de Maestría Laboratorio de Microelectrónica](https://reader030.vdocuments.pub/reader030/viewer/2022012917/56815505550346895dc2ef99/html5/thumbnails/89.jpg)
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.