La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Aplicación de Patrones de diseño al diseño de Hardware

Presentaciones similares


Presentación del tema: "Aplicación de Patrones de diseño al diseño de Hardware"— Transcripción de la presentación:

1 Aplicación de Patrones de diseño al diseño de Hardware
Alumnos: Bolatti, Dante Legajo: B-3299/9 Danelon, Javier Legajo: D-2011/7

2 Características de los Patrones de diseño I
Los patrones son utilizados para lograr un software flexible, capaz de tener componentes reutilizable. Es un lenguaje entre los diseñadores, capaz de trasmitir a través de experiencias el mejor patrón a seguir ante un determinado problema.

3 Características de los Patrones de diseño II
Deben ser lo mas abstractos posibles. Independientes del lenguaje de programación. Los patrones promueven y facilitan la reutilización de arquitecturas.

4 Aplicación de Patrones de diseño al diseño de HW.
Robertas Damaševičius Giedrius Majauskas Vytautas Štuikys

5 Introducción I Patrones que encapsulan soluciones comunes en recurrentes problemas de diseño han contribuido al incremento del uso, calidad y productividad en el diseño del software. Proponen la utilización de patrones al diseño de hardware. Para la integración de la Propiedad intelectual (IP) en sistemas de diseño “on-Chip”.

6 Introducción II Formulan el rol de los patrones de diseño para diseño de hardware y describen la implementación usando meta-Programación. Proponen el patrón de diseño “Wrapper” para adaptar el comportamiento del “soft IPs” y demuestran una aplicación a la síntesis de las interfase de comunicación.

7 Introducción III El beneficio de utilizar Patrones al diseño de hardware pueden ser indicado de la siguiente forma: Describiendo un sistema hardware de una forma abstracta puede elevar significativamente el nivel de abstracción. Uso de UML facilita la comunicación entre diferentes equipos de diseñadores. Uso de diseño OO y las metodologías de testeo pueden asegurar un HW de alta calidad.

8 Introducción IV Uso de herramientas graficas, catálogos de diseño de patrones y herramientas de generación de código automático pueden incrementar significativamente la automatización y productividad de HW así como acelerar el reuso, la comparición y la transferencia.

9 Contribución del trabajo:
Análisis del rol que cumplen los patrones de diseño y los problemas a la aplicación a diseño de HW. Definen un nuevo patrón de diseño llamado “Wrapper” para adaptar la interfase y el comportamiento de un IP a un contexto de uso. Proponen la implementación del patrón de diseño de HW usando meta-programación. Demuestran una aplicación del patrón “Wrapper” a una síntesis de interfase de comunicación.

10 Contribución del trabajo:
Existen diversos formas de afrontar el diseño de HW. El trabajo se basa en como el patrón de diseño de software puede ser aplicado también al diseño de HW. Pero descubriendo nuevos patrones de diseño en vez de adaptar los existentes. El patrón descubierto es el “Wrapper” el cual es aplicable a una gran variedad de aplicaciones.

11 Rol de los patrones de diseños en diseño de HW.
La combinación de grandes bloques IPs y SW embebido en SoC (System on Chip) está precipitando a un cambio de una metodología de diseño de HW basado en contenido a basado en integración

12 Rol de los patrones de diseños en diseño de HW.
Basado en contenido: Se basa en un diseño que comienza desde cero y luego se procede a la verificación del mismo. Basado en integración: A diferencia, este último trata los problemas de la evaluación, customizacion y la integración de múltiples bloque IPs.

13 Proceso de diseño de HW Existen dos procesos: Register-transfer-level (RTL): Es el nivel mas bajo, el cual se encarga de realizar los bloques IPs desde cero. Por lo general con leguaje HDL. System-Level (SL): Es el nivel mas alto, el cual se encarga de interconectar todos los bloques IPs para una requerida funcionalidad.

14 Proceso de diseño de HW

15 Ejemplos de aplicación de Patrones de Diseños en el desarrollo de Hardware

16 En el desarrollo de Hardware no existen aún patrones “formales”, a pesar de ello se utilizan ampliamente patrones “informales” Por Ejemplo: Máquinas de estado finito (MEF), para soluciones basadas en control secuencial. Se implementan con el patrón “STATE” Patrón STATE: Permite que un objeto modifique su comportamiento cada vez que cambie su estado interno.

17 Los “Wrappers” (envoltorios) ya son utilizados en muchas aplicaciones:
Reliability Wrapper: se utiliza en aplicaciones críticas para detectar fallas. Provee implementación de manejo de errores, y voto mayoritario. Bus Wrapper: se utiliza para la síntesis de comunicación en diseños SoC. Provee implementación de un protocolo particular. Protocol Wrapper: se utiliza para procesamiento de paquetes de Internet superpuestos. Provee una implementación de la capa OSI (Open System Interconection, ISO. 1982) de protocolo. Memory Wrapper: se utiliza para la adaptación automática de interfaces físicas de memoria con redes de comunicaciones que tienen un diferente numero de puertos de acceso. Provee implementación de el controlador, manejo de acceso, comunicación interna, y arbitración.

18 Adaptación de UML para diseño de Hardware

19 Existen dificultades cuando se aplican las técnicas de modelado OO (orientadas a Objetos) al desarrollo de Hardware Problema No existen un estándar definido para HDL Orientado a Objetos Motivos: La mayoría de los soft IP existentes fueron desarrollados utilizando un lenguaje HDL estandar Hay pocos esfuerzos para sintetizar conceptos OO en RTL

20 Hay que definir la forma en que se mapean las abstracciones de un lenguaje HDL (por ej: VHDL), en conceptos OO. Conceptos OO UML Conceptos HDL ??? Existe una analogía entre conceptos y principios

21 Conceptos Básicos HDL:
Herramienta CAD para el diseño de Hardware Describe, modela, simula e implementa un circuito electrónico digital El tipo de descripción puede ser por bloques o por comportamiento Varios lenguajes disponibles: VHDL, Verilog, ABEL, AHDL (Altera), JHDL (Java),Atom, SystemC (C++). NOTA: Utilizamos para el diseño en este trabajo VHDL

22 Ejemplo sencillo: Compuerta AND: entity PuertaAND is port ( A,B:in STD_Logic; C:out STD_LOGIC); end PuertaAND; architecture Estructural of PuertaAND is component AND2 port (I0,I1:in STD_LOGIC; O:out STD_LOGIC); end component; begin U1: AND2 port map (A,B,C); end Estructural; Caja Negra Caja Blanca

23 Adaptación: Entidad Arquitectura Atributos Configuración Métodos
Lenguaje OO VHDL Clase Abstracta Entidad Arquitectura Clase que implementa la clase abstracta Puertos (públicos) Señales (privadas) Atributos Instancias de la clase Configuración Métodos Procesos

24 Patrón de diseño “WRAPPER” (Envoltorio)

25 Se propone un patrón de diseño HW llamado “Wrapper”
Se propone un patrón de diseño HW llamado “Wrapper”. El mismo se define en un esquema estándar de descripción de patrones: [Intención] Permite adaptar una interface y un comportamiento de un componente IP al contexto de una aplicación dada [Aplicación] Utilice el Wrapper cuando necesite adaptar un componente a los requerimientos de su entorno. [Estructura]

26 [Consecuencias] El patrón puede anidarse
[Consecuencias] El patrón puede anidarse. Diferentes “Wrappers” pueden ser aplicados al mismo componente, como así tambíen un solo “Wrapper” puede aplicarse a distintos IPs Cores. Ejemplos: Wrapper_1 Wrapper_2 IP1 Wrapper_1 IP1 IP2 Wrapper_1 IP2

27 Implementación del patrón utilizando metaprogramacíon

28 Es posible generar el código que representa a un patrón en forma automática. Para ello se utiliza la “metaprogramación” (MPG). MPG Meta Programa Genera “Consiste en una familia de instancias de programa relacionadas con el domino, que describen la generación de una instancia particular dependiendo de los valores de los parámetros que se le pasan” Abstracción de alto nivel

29 Damaševičius, Majauskas, Štuikys (Kaunas University of Technology, Lituania, 2003), implementaron un metaprograma (generador de código parametrizado) que aplica un respectivo proceso de diseño (ej: “Wrapping”) a un dado soft IP. El rol de metaprograma es de servir de puente entre la descripción abstracta del proceso de diseño a nivel de sistema, y su implementación. Genera de forma automática el código VHDL para el caso en estudio.

30 Modelado Implementación

31 Caso de estudio

32 Problema: Se quiere adaptar la interface de un núcleo IP para la transmisión de datos utilizando un protocolo de datos Handshake de 4 fases. Descripción: El núcleo IP se comunica con un micro controlador (MC), el cual maneja el IP a través de un canal (bus) utilizando un protocolo Handshake de datos (DP).

33 Wrapper

34 En este caso de aplicación se estudia el lado Cliente unicamente

35 Objetivo: Adaptar la interface del núcleo IP, de manera de establecer comunicación directa entre el MC y el IP. Patrón: Permite envolver al núcleo IP, junto con la lógica de control. El sistema envuelto queda listo para integrarlo en un sistema de HW mayor. Que permite el patrón?: Añade funcionalidad al núcleo IP Ajusta la interfaz del componente de manera que sea compatible. Es transparente al hardware. Similar al patrón “Decorator” de software

36 Los autores construyeron un generador “Wrapper” para generar automáticamente los envoltorios de cualquier núcleo IP escrito en VHDL. El generador “Wrapper” utiliza un analizador VHDL para analizar el tipo de interface del núcleo IP. Utiliza varias clases de JAVA (Metaprograma) para generar código VHDL de acuerdo al patrón. El proceso de generación es completamente automático.

37 El generador “Wrapper” (desde un metaprograma ) realiza la envoltura generando una instancia de la MEF (máquina de estado) que implementa el proceso de comunicación, y realiza además un mapeo de puertos, el cual mapea las señales del “envoltorio” con las del núcleo IP. Se puede ver la arquitectura en un diagrama UML.

38 - Hereda I/O - Declara nuevos I/O Implementa funcionalidad

39 Evaluación y discusión

40 - Las ventajas de utilizar patrones en diseño de Hardware, y que se pudieron evaluar a lo largo del paper fueron: El contenido de diseño se puede capturar inmediatamente y en forma intuitiva, aumentando la comprensión del diseño. El diseño basado en patrones puede ser soportado por las herramientas de generación de código y de validación, incrementando la reutilización, calidad y productividad. El nivel de abstracción se lleva a nivel de sistema, permitiendo así manejar de forma mas sencilla la creciente complejidad de los sistemas HW.

41 Ventajas adicionales:
Reduce la brecha entre el desarrollo de SW y HW de los diferentes componentes del SoC. Puede resultar muy útil diseñar las diferentes partes de un sistema utilizando la misma metodología de diseño (OO). La misma descripción de alto nivel puede ser implementada tanto en HW, como en SW corriendo en un micro embebido, permitiendo así al diseñador optar por cualquiera de las dos implementaciones, dando mayor flexibilidad.

42 Desventajas: Brecha conceptual: los diseñadores de SW piensan en términos OO (objetos y mensajes), mientras que los diseñadores de HW piensan en términos de componentes (bloques y cables). Brecha metodológica: de que forma los procesos SL descriptos utilizando los patrones de HW basados en UML, pueden ser convertidos en forma semi-automática ?. Brecha Física: como pueden ser reflejadas las restricciones físicas (ej: retardos temporales), en un modelo OO (patrón)? Brecha Tecnológica: de que manera los objetos, o patrones enteros de diseño pueden ser sintetizados directamente a RTL?

43 Conclusiones y trabajo futuro

44 La aplicación de técnicas de modelado orientadas a objetos se ha convertido recientemente en un tema de investigación. Los autores lograron implementar un patrón de diseño orientado a Hardware, llamado “Wrapper” (Envoltorio), en forma eficiente y eficaz. Se motiva a continuar la investigación y búsqueda de patrones de diseño en HW, en forma similar a la hecha por el GoF (Gamma, Helm, Johnson, Vlissides). Se espera que la aplicación de patrones de diseño aplicados a HW contribuya al incremento en la reutilización de los diseños, automatización, incremento en la calidad y productividad del diseñador.

45 Bibliografía: R. Damaševičius, G. Majauskas, V. Štuikys. Application of Design Patterns for Hardware Design. ACM, 2003. E. Gamma, R. Helm, R. Johnson y J. Vlissides. Design Paterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. Ing. E. D´Agostino. Patrones de diseño y Estructuras de datos. FCEIA, 2008. F. Pardo Carpio. VHDL, Lenguaje para descripción y modelado de circuitos. Universitat de Valéncia, 1997. URL:


Descargar ppt "Aplicación de Patrones de diseño al diseño de Hardware"

Presentaciones similares


Anuncios Google