TUTORIAL - Técnicas de Depuración Hardware

TUTORIAL - Técnicas de Depuración Hardware TUTORIAL - Técnicas de Depuración Hardware M. A. Aguirre, J. N. Tombs Grupo de Ingeniería Electrónica. Esc

0 downloads 114 Views 289KB Size

Story Transcript

TUTORIAL - Técnicas de Depuración Hardware

TUTORIAL - Técnicas de Depuración Hardware M. A. Aguirre, J. N. Tombs Grupo de Ingeniería Electrónica. Escuela Superior de Ingenieros. Universidad de Sevilla. [email protected]

Resumen. Este tutorial realizará un recorrido de los diferente aspectos relacionados con la depuración de un circuito que se ejecuta sobre una FPGA. Se presentan tres aproximaciones y se comentan las ventajas e inconvenientes de cada una de ellas.

1. Introducción El presente tutorial está dedicado a exponer la problemática asociada a la utilización de la FPGA para la evaluación interna de un diseño. El diseñador necesita de la posibilidad de estudiar el comportamiento de los diferentes módulos internos de un diseño durante la ejecución del mismo. La depuración consiste en visualizar el comportamiento interno de un diseño cuando se encuentra insertado en el sistema y contemplando todas las posibles situaciones, incluso algunas que no han podido ser descritas durante la fase de diseño para ser simuladas. En diseños complejos y de gran tamaño, con frecuencia la depuración mediante herramientas de simulación resulta insuficiente, bien debido a la falta de secuencias de estímulos que representen el comportamiento del circuito junto con el sistema con el cual interactúa, bien por situaciones en las que el tamaño del circuito es tal que simular una pequeña parte de su funcionalidad ha de realizarse en tiempos excesivamente largos. El uso de FPGAs para validar un diseño forma parte de cualquier procedimiento estándar del desarrollo de un circuito integrado de aplicación específica ASICs. Las técnicas para la validación de un diseño en estas condiciones se les denomina Prototipado Rápido. Las nuevas generaciones de FPGAs están sustituyendo a los ASICs gracias a

las elevadas prestaciones que alcanzan a precios muy accesibles. En ambos casos la FPGA juega un papel fundamental en la reducción de los riesgos asociados al desarrollo la solución. El proceso de evaluación de la solución en la FPGA requiere un estudio detallado y la utilización de recursos adicionales que permitan diagnosticar los procesos internos. Por tanto el proceso de estudio y diagnóstico de los procesos internos requiere un esfuerzo extraordinario para encontrar los puntos de diagnóstico y generar una información significativa. El proceso de depuración exige, por tanto, el conocimiento detallado del diseño que se desea inspeccionar. Podremos distinguir, a pesar de esto, dos tipo de procedimientos de depuración de un diseño: Procedimientos “ad hoc”, o particularizados para cada diseño. Procedimientos generalizados, o aplicables a todos los diseños. En el presente tutorial formalizaremos el problema de la depuración, realizaremos un recorrido por las diferentes técnica de depuración que ofrecen los fabricantes y finalmente expondremos las técnicas desarrolladas en la Universidad de Sevilla.

2. Fundamentos de la Depuración Hardware La depuración hardware se fundamenta en la adición de elementos que faciliten el estudio por parte de un diseñador de elementos que permitan determinar la coherencia del estado de un circuito frente a las especificaciones del mismo a cada instante de tiempo.

FPGAs: Metodologías, herramientas y aplicaciones Editores: Juan A. Gómez Pulido, Juan M. Sánchez Pérez, Miguel A. Vega Rodríguez - Universidad de Extremadura ISBN-10: 84-611-1314-4 ISBN-13: 978-84-611-1314-9 Pág. 187

TUTORIAL - Técnicas de Depuración Hardware

Esta definición nos permite introducir dos de los elementos necesarios en los que se basa la depuración hardware: Estado: es el contenido de los elementos de memoria del circuito. Son los valores de los Flipflops, latches y memorias. Instante de tiempo: realmente en prototipado hardware esta idea está soportada por los ciclos de reloj en los que el circuito evoluciona. Para poder realizar una depuración adecuada es necesario disponer de capacidad para visualizar internamente el estado del circuito y en segundo lugar dotar al mismo de capacidad para detectar situaciones de interés, bien porque se sospecha de que existe una anomalía en ese instante, bien porque se detecta una condición funcional interesante para su estudio. Es por tanto que en el proceso de depuración se han de incluir elementos que permitan dotar al circuito de observabilidad interna y de controlabilidad de la ejecución. Observabilidad: Es la visualización del estado, conociendo a priori la relación de éste con los nombres de las instancias dados durante la fase de diseño. Controlabilidad: La inserción de ciertos mecanismos de influencia en el comportamiento del circuito que faciliten un mejor análisis. Usualmente se aplica a instantes de interés. La depuración hardware tiene muchos elementos de similitud con respecto a la depuración tradicional del un software. La observación de un estado se asimila a la visualización de valores de registros, asociado a su nombre de variable en el código fuente. La controlabilidad se asocia a la posibilidad de incluir puntos de ruptura, ejecución paso a paso o simplemente inserción de código extra para una mejor comprensión de la evolución del programa. Sin embargo existe una diferencia esencial entre una depuración software y hardware: La plataforma natural de ejecución en el caso hardware es absolutamente ajena a la de desarrollo. Aún en tareas de depuración software para plataformas diferentes existen similitudes arquitecturales que permiten la sistematización del proceso y una rápida preparación del diseño a su depuración.

En depuración hardware se trabaja con una plataforma heterogénea, en la que la inserción de los mecanismos de depuración requiere una planificación previa a los procesos de síntesis y place & route sobre la FPGA, procesos que son en ocasiones muy costosos en tiempo y por tanto hacen en la práctica de la depuración un procedimiento inflexible e ineficaz. Esta última idea es de enorme importancia, ya que si se emplean horas para la síntesis de un diseño la depuración se vuelve una tarea penosa. Otro aspecto de gran importancia es la evaluación, tanto de los recursos extraordinarios requeridos para realizar los procesos de depuración, como del grado de influencia sobre las prestaciones del circuito ante la presencia del circuito de depuración. Al exceso de circuitería necesaria se le denomina overhead del sistema. En conjunto ambos efectos determinan el grado de intrusión del mecanismo de depuración sobre el circuito. Por tanto realizaremos la clasificación de las técnicas de depuración atendiendo al grado de generalidad de las mismas y se realizará una valoración de los diferentes mecanismos de control y observación atendiendo a los diferentes puntos de vista hasta ahora expuestos.

2.1. Clasificación de las técnicas de Depuración

Podremos clasificar las técnicas de depuración en tres grupos: 1. Técnicas “ad hoc”, o técnicas específicas de depuración de un circuito. Técnicas que insertan elementos específicos en el circuito. 2. Técnicas estándar o basadas en la inserción de mecanismos de propósito general. Se basan en la introducción de bloques de memoria que se configuran como analizadores lógicos internos que registran valores de señales ante determinadas condiciones de disparo. 3. Técnicas de baja intrusión, utilizando la memoria de configuración. Este método es exclusivo de las FPGAs de Xilinx. Los capítulos siguientes los dedicaremos a evaluar cada una de las técnicas propuestas.

FPGAs: Metodologías, herramientas y aplicaciones Editores: Juan A. Gómez Pulido, Juan M. Sánchez Pérez, Miguel A. Vega Rodríguez - Universidad de Extremadura ISBN-10: 84-611-1314-4 ISBN-13: 978-84-611-1314-9 Pág. 188

TUTORIAL - Técnicas de Depuración Hardware

3. Técnicas “ad hoc” Son técnicas basadas en la aplicación de elementos de control y observación atendiendo a la especificidad del circuito. En este tipo de análisis se utilizan recursos diversos de la FPGA. Habitualmente se destinan pines externos de la FPGA a extraer indicadores del estado del circuito. Estos indicadores están determinados previos a la síntesis del mismo y se configuran según la intuición del diseñador acerca del comportamiento interno.

3.1. Descripción detallada

Las técnicas ad hoc se basan en el conocimiento detallado del circuito. Son muy eficientes cuando se encuentran posiciones de la arquitectura especialmente sensibles a errores como son por ejemplo registros de acumuladores, contadores, máquinas de estado,… La idea consiste en añadir al circuito original elementos de detección de eventos y elementos de registro de valores. A su vez, a estos elementos se les ha de dotar de un mecanismo de visibilidad interna que permita diagnosticar los errores a partir de los eventos ocurridos. A modo de ejemplo podemos enumerar algunos de los mecanismos:

3.2. Eventos de detección







Comparadores. Son la situación más clásica. Mediante una comparación conciertos valores internos de contadores, operadores aritméticos, un estado particular de una máquina de estados finita, … etc se genera un pulso. Contadores de eventos. Son circuitos un poco más complejos, usualmente combinados con el mecanismo anterior, que generan e evento cuando aparecen un número definido de veces Condicionales. Circuitos basados en la generación de una condición de evento a

partir de la combinación de varios eventos sencillos. La combinación de eventos proporciona condiciones de disparo para poder capturar el estado del circuito. Dicha captura puede realizarse de manera estática o dinámica: a) Estática: Mediante un registro que guarda la información en el instante en se cumple la condición del evento. Se realiza una “fotografía” del estado en un instante. b) Dinámica: se registra a partir del cumplimiento de la condición del evento se registran determinados contenidos en ese instante y subsiguientes ciclos de reloj. Finalmente el mecanismo de visualización es de especial importancia, ya que los contenidos de los registros han de extraerse hacia el exterior para ser interpretados. En los métodos particularizados es usual utilizar: I/Os simples: marcadores de situación • interna basados en la medida directa de valores a las salidas. I/Os funcionales: Serializar valores de • los registros para reducir el número de pines necesarios.

3.3. Valoración de los métodos ad hoc

Ventajas: La gran ventaja de los métodos ad hoc se centra en el escaso número de recursos necesarios para la obtención de los valores internos, el que se realicen operaciones dedicadas a encontrar los errores sobre una arquitectura conocida hace que el sobrecoste (overhead) sea muy bajo o proporcional al grado de detalle de la inspección. Inconvenientes: En primer lugar la falta de sistematización del procedimiento hace que sea difícil para un usuario que no sea el diseñador poder realizar la tarea de depuración. En segundo, el propio flujo de inserción obliga a realizar una nueva síntesis completa del diseño, además de un place & route. El procedimiento, cuando el diseño es grande requiere pues horas de espera. También en la práctica influye el hecho de que si por algún

FPGAs: Metodologías, herramientas y aplicaciones Editores: Juan A. Gómez Pulido, Juan M. Sánchez Pérez, Miguel A. Vega Rodríguez - Universidad de Extremadura ISBN-10: 84-611-1314-4 ISBN-13: 978-84-611-1314-9 Pág. 189

TUTORIAL - Técnicas de Depuración Hardware

motivo deseamos ver nuevas señales o cambiar los eventos de disparo… hay que realzar un nuevo ciclo completo de síntesis.

De nuevo una reasignación de los eventos y de los registros de depuración nos lleva a un nuevo ciclo completo de diseño.

4. Técnicas de depuración hardware dinámicas

5. Técnicas de depuración hardware estáticas. Propuesta UNSHADES

Este tipo de técnica se basan en la introducción en la FPGA de un circuito que permita registrar los valores de registros a lo largo de un número de ciclos de reloj, es decir, diseñar un analizador lógico interno a la FPGA que, mediante el uso de los recursos sobrantes de la misma, se construyen todos los elementos necesarios.

La técnica de depuración está basada en la utilización de los recursos de configuración de la FPGA para realizar la depuración. Está basada en la presencia de una célula de memoria estática asociada a cada uno de los registros y que permita acceder a ella a través de los registros de configuración. Esta memoria permite registrar una copia del estado en tiempo de ejecución, cuando se activa una señal. Es como si realizara una “fotografía” del estado cuando se activa esta señal.

Es el caso de ChipScope de Xilinx o el ILA de Altera, los recursos son automáticamente gestionados desde el entorno de diseño. El entorno nos solicita las condiciones de disparo, las señales que deseamos registrar, la profundidad en tiempo (número de ciclos de reloj) y finalmente nos facilita las herramientas necesarias para acceder a la información a través de un dispositivo Bourdary-Scan (JTAG), para visualizar en un entorno de formas de ondas sus contenidos. Esta es la opción que los fabricantes de FPGAs más han potenciado. Hasta aquí todo son ventajas, sin embargo de nuevo este planteamiento presenta ciertos inconvenientes que vamos a enumerar: De nuevo la selección de eventos, la • selección de los registros y la profundidad de los mismos ha de realizarse en etapas previas a la síntesis del circuito y place & route. La cantidad de registros y la • profundidad de los mismos está limitada por los recursos presentes en la FPGA (fundamentalmente bloques de memoria), lo que nos lleva a tener que preseleccionar con ciertas limitaciones los registros. El procedimiento afecta al • comportamiento global del sistema, ya que al utilizar bloques de memoria afecta al posicionamiento del circuito y a la temporización de las rutas.

Es posible acceder a esta configuración mediante uno de los puertos de acceso y realizar la asignación de nombres. Este mecanismo ha sido útil para construir un procedimiento de depuración. Pasamos a discutir cómo se puede aprovechar para construir un sistema de depuración: Este mecanismo resuelve en si mismo la • observabilidad, con la ventaja de no suponer costo alguno en los recursos necesarios para registrar la información, así como de su acceso desde el interface hombre máquina. El principal inconveniente frente al mecanismo dinámico es que solamente existe profundidad 1, es decir, se registra un único ciclo de reloj. La captura del estado completo permite • no decidir qué valores se desean inspeccionar durante el periodo de análisis y se evita tener que tomar decisiones a priori como en los casos anteriores. Este mecanismo es exclusivo de las • FPGAs de Xilinx. El resto de los fabricantes no lo incluyen en sus FPGAs. Existen procedimientos para inducir • valores en los propios registros lo que significa que se pueden realizar operaciones de depuración muy

FPGAs: Metodologías, herramientas y aplicaciones Editores: Juan A. Gómez Pulido, Juan M. Sánchez Pérez, Miguel A. Vega Rodríguez - Universidad de Extremadura ISBN-10: 84-611-1314-4 ISBN-13: 978-84-611-1314-9 Pág. 190

TUTORIAL - Técnicas de Depuración Hardware

complejas, incluso definiendo un estado de partida. • El mecanismo de acceso a la configuración se puede realizar mediante los diferentes puertos de acceso (SelecMap, JTAG, o definido por el usuario a través de ICAP). Se pueden optimizar los tiempos de • acceso a la información mediante técnicas de reconfiguración parcial. El análisis mediante estas técnicas se puede mejorar si se utilizan procedimientos de evolución “paso a paso”, en los que se puede mejorar la profundidad del método, aunque se pierde el sincronismo con el sistema, en caso de que se esté realizando una depuración con la FPGA funcionando junto con un sistema externo (cámara, sensores, sistema de comunicaciones,…). En multitud de ocasiones este método es suficiente. En cuanto al modelo de eventos las técnicas de reconfiguración parcial permiten ciertas mejoras, ya que es posible definir un procedimiento de modificación de los eventos que evita tener que realizar un ciclo de diseño completo y tan sólo realizar un bitstream parcial. Esto es asimismo válido para todos los procedimientos propuestos en este tutorial.

6. Demostración Práctica Se mostrará una aplicación del Sistema UNSHADES sobre una placa comercial de Digilent, concretamente el modelo S3.

Referencias [1] Tesis Doctoral de Mario García Valderas. “Emulación en Prototipos Basados en FPGAs: Métodos de Depuración Mediante Inserción de Lógica Compatible con el Estándar IEEE-1149.1” Universidad Politécnica de Madrid. Madrid 2004. Chipscope user guide. [2] Xilinx http://www.xilinx.com [3] Altera [4] M.A. Aguirre, J.N. Tombs, A. Torralba and L.G Franquelo, “UNSHADES-1: An advanced tool for In-System Run-Time Hardware Debugging”. Proceedings of the Field Programmable Logic and Applications. Lisbon 2003. pp 1170-1173. [5] M.A. Aguirre, J.N. Tombs. “Real Time Hardware Debigging using the UNSHADES system” Proceedings of the Field Programmable Logic and Applications. Antwerp 2004.

El flujo de diseño mediante este método es muy sencillo, ya que se reduce a definir previamente los eventos de disparo, eventos que pueden ser internos o externos. Se ha comentado que no es preciso definir previamente a la síntesis de un diseño qué registros se desean visualizar. Consecuentemente el sobrecoste de este mecanismo es mínimo y apenas influye mínimamente en el comportamiento global del diseño. En el sistema UNSHADES se han desarrollado algunos elementos (que se reducen a unas pocas puertas) que facilitan el control del proceso de depuración, se ha sistematizado el proceso de inserción de eventos y se ha habilitado un mecanismo para un control paso a paso del diseño.

FPGAs: Metodologías, herramientas y aplicaciones Editores: Juan A. Gómez Pulido, Juan M. Sánchez Pérez, Miguel A. Vega Rodríguez - Universidad de Extremadura ISBN-10: 84-611-1314-4 ISBN-13: 978-84-611-1314-9 Pág. 191

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.